2011-07-01: 00:05:55 the best kind of nough 00:07:44 "Nough (Persian: نوق) is a small village in Rafsanjan, south of Iran in the province of Kerman." 00:08:17 forged in angel hellfire 00:35:58 baahahahs 00:36:37 nooga is weird 00:36:45 *drunk 00:37:06 assuming those 16 girls mentioned above actually exist 00:38:24 now now, he's not cheater 00:38:44 ...are we _sure_ of that? 00:38:56 well nobody could be good enough at rping a shithead to be cheater 00:39:03 and cheater could never be anyone who isn't a shithead 00:39:04 so, i think yes 00:39:14 nooga: if you're cheater, you're an excellent actor, put this talent to good use 00:41:04 also, who is to say nooga actually wrote that. there are 17 (18?) possible suspects... 00:42:03 dun dun DUN 00:42:04 -!- zzo38 has joined. 00:42:17 WAIT A MINUTE 00:42:22 I've spotted a hole in this story 00:42:33 uh oh 00:42:46 nooga: BUSTED 00:42:46 There are no women in Poland.~ 00:42:55 nooga: SCRATCH THAT 00:43:02 lol 00:43:11 http://www.google.com/search?hl=en&biw=723&bih=717&q=women%20in%20poland&gs_sm=e&gs_upl=3049l4153l0l15l6l0l0l0l0l176l176l0.1l1&um=1&ie=UTF-8&tbm=isch&source=og&sa=N&tab=wi 00:43:13 none whatsoever 00:43:34 Those women could be from anywhere 00:43:42 Most of them are just stock photos, anyway 00:43:44 :P 00:44:19 proven 00:44:55 Lemma: All women from Poland are stock photo models. 00:45:30 i've seen putative polish women. admittedly they were in norway, not poland. maybe they've all left. 00:45:47 Well, with men like 'nooga' around, it's hardly a wonder 00:47:29 Why does using the -m option of the "setfont" program in Linux also set the keyboard input map? Even though I am trying to set output only map. 00:47:51 Esoteric, indeed 00:48:35 This supposed ... ``nooga'' 00:48:38 -!- tclifton has joined. 00:48:38 --NihilistDandy 00:48:47 oh tclifton looks new, should we lynch him now or later or... 00:49:01 (also hi) 00:49:14 * quintopia pays down the rope 00:49:23 how long i gotta stay in this tree? 00:49:28 dd if=/dev/mem bs=1 count=2048 skip=`dd if=/dev/mem bs=1 count=4 skip=268 | od -t u1 | awk 'NR==1{print $5*0x1000+$4*0x10+$3*0x100+$2*0x1}'` of=rom8x8font 00:49:35 This part works 00:49:42 Are you decrementing me, commenting me, or attributing that to me? :D 00:49:49 setfont -v rom8x8font # This part also works 00:50:00 seq 0 127 | awk '{print ($0+128) " " $0}' > G1consolemap # And this one 00:50:08 grep '^[0-9]' < $0 >> G1consolemap # And also this one 00:50:52 setfont -u /dev/null -m G1consolemap; kbd_mode -a; echo -e '\e%@\e(U\e)K' # This seems to set the keyboard map too even though I am trying to set output map only! 00:51:04 Can you please tell me why? 00:51:10 -!- tclifton has left. 00:52:29 So, pushing some of the keys causes it to input the wrong characters (but it works if using the number pad or using ALT+numbers) 00:52:34 rip tclifton 00:52:50 Are you decrementing me, commenting me, or attributing that to me? :D 00:52:51 latter 00:52:57 you totally said "* tclifton (~tclifton@212.101.233.220.static.exetel.com.au) has joined #esoteric" 00:53:22 It's all my fault 00:58:56 aaah 00:58:59 screw you 00:59:00 -!- tibuda has joined. 00:59:09 NihilistDandy is a nolife 00:59:21 -!- nooga has left. 00:59:25 -!- nooga has joined. 00:59:28 bye nooga hi nooga 00:59:36 pg dn does not work 00:59:43 -!- tibuda has left. 00:59:49 bye tibuda 01:01:51 NihilistDandy: you're a nolife 01:03:55 I guess so 01:05:41 hhhhh 01:07:16 does it feel good 01:09:23 Of course. I thirst for attention, and tiny validation I get everytime someone highlights me is the only thing that keeps me going in the vortex of depression that is my existence. 01:09:35 Or something. 01:09:49 nolife nolife 01:10:17 Feels good, man 01:12:57 Do you know why setting the console map does that? 01:13:06 And how to prevent it? 01:13:52 zzo38: You might find more input on #linux 01:13:53 NihilistDandy: 01:13:53 NihilistDandy: 01:13:54 NihilistDandy: 01:13:54 NihilistDandy: 01:13:56 ur welcum 01:14:08 I HAVE... THE POWER! 01:14:15 nolife power 01:14:49 lol i read nooga and monqy as the same from "hhhhh" 01:15:14 NihilistDandy: I will try. 01:16:34 -!- zzo38 has left. 01:18:03 carbon 01:23:14 that's not germanium to the discussion 01:26:29 No need to get fermium with poor elliott 01:27:41 oh, sodium. 01:29:18 if he speaks like that he just has to sulphur the consequences. 01:30:33 berp 01:31:09 I suppose he'll just have to grin and barium 01:32:07 polonium 01:32:28 Don't be so niobium 01:32:47 this is not precisely fluoride prose 01:33:04 *fluorine 01:33:49 unbibium 01:33:50 Don't radon my parade 01:33:56 I like breathing oxygen. 01:34:57 CakeProphet: how boron 01:35:26 carbon, hydrogen, oxygen 01:35:44 i just had some 01:36:12 how iron-nickel 01:36:43 goddamn oerjan is the master of puns 01:36:46 really 01:36:56 -!- elliott has quit (Remote host closed the connection). 01:37:00 yeah they're all gold 01:37:21 -!- elliott has joined. 01:37:28 elliott: seen that? 01:37:33 A nobelium effort 01:38:02 nooga: seen what 01:38:19 03:35 < oerjan> how iron-nickel 01:38:19 03:36 < nooga> goddamn oerjan is the master of puns 01:38:24 03:36 < oerjan> yeah they're all gold 01:38:34 heh 01:38:43 pun war pun war 01:39:00 oh no, where will this lead 01:39:12 thank god i understand this games 01:39:23 at least that 01:39:54 it's always good to have a silver of understanding 01:41:19 I'll have your head on a platinum 01:42:29 And either cut out your tungsten or feed you to the wolfram 01:43:16 you're making a mercury of this 01:43:35 you speak manganese 01:43:54 Drop the actinium or hit the rhodium 01:43:55 no just francium 01:44:10 nooga is a serial arsenic 01:44:40 what an antimony... 01:44:42 er 01:44:54 iron 01:44:55 y 01:45:36 You don't know the hafnium 01:46:04 go to californium 01:47:43 how tin 01:47:45 Silicon Valley? 01:47:58 * pikhq can has Google+ 01:48:07 i die 01:48:09 pikhq: as in you do or you want? 01:48:27 coppro: I do. 01:48:30 * nooga can has bed 01:48:34 right now 01:48:38 good night 01:48:50 There's a single fundamental problem with this: invite only sucks. 01:48:53 i guess the pun war is cesium 01:49:00 -!- nooga has left. 01:49:31 pikhq: invite only social network #badideas 01:49:57 Now the helium can begin 01:50:20 pikhq: it's still in rollout phase. right now you can invite people by sharing with their email address 01:50:45 coppro: Except that they're at capacity right now 01:50:53 Strange, I literally *just* got an invite. 01:50:58 And am on. 01:51:02 Oh, wow 01:51:08 Maybe the situation's changed in the last few hours 01:51:10 They're doing rate limiting 01:51:22 if you F5 the link your invite has, you'll get a slot 01:51:30 or so I am told 01:51:36 this is hearsay 01:51:45 We should test it 01:51:49 pikhq: Invite people 01:52:14 pikhq: hey give me an invite i will add nobody 01:52:15 because 01:52:16 i have no friends 01:52:49 T_T 01:53:00 i will add you though because 01:53:01 if you invite me 01:53:02 you will be 01:53:03 my first 01:53:05 friend ;_______; 01:53:56 ever 01:54:17 it's because elliott is ugly with his 1 meter wide mouth 01:54:29 elliott: What was your email again? 01:54:44 ostrichofhell@microsoft.com 01:54:55 pikhq: penguinofthegods@gmail.com 02:02:04 -!- elliott_ has joined. 02:02:04 -!- elliott has quit (Remote host closed the connection). 02:02:21 pikhq: oh thanks first friend :)))) 02:02:28 Google may use my information to personalize content and ads on non-Google web sites. 02:02:30 gee what a checkbox 02:02:58 good checkbox 02:03:45 At least it's there 02:03:49 MAKING MY FIRST COMMENT ZOMG I SPECIAL 02:03:58 Keeping Facebook out of my business is a bitch 02:06:13 Error saving profile. Please enter valid start and end years. 02:06:15 omg it erased all my hard work 02:06:48 start and end years what 02:07:01 for al lmy various employments 02:07:06 microsoft,ibm,sun microsystems.....spies.... 02:07:24 employed in the future 02:07:25 year abc 02:07:35 the interface to this is ok 02:07:42 oh my god i can add agora-business 02:07:45 so...tempting... 02:07:54 Yeah, the interface seems to show at least some polish. 02:09:06 * elliott_ hopes pikhq realised what he signed up for when he added me... to his CIRCLES... 02:09:19 oh man i am already in other peoples' cirlces 02:09:34 elliott_: The nice thing is, I can partition you off from other people. >:D 02:10:04 * elliott_ wonders: Can you stop people in certain circles from seeing that you have people in other circles? for instance, I can see that pikhq has Steven Wallace in a circle 02:10:17 which is like crossing the streams :( unless steven wallace is some other internet person you added i guess 02:11:08 Steven Wallace is a good friend of mine that I originally know from the Internet. 02:11:17 am i in the same circle 02:11:24 oh sorry if you didn't want me to say his name i'm tired 02:11:32 No big. 02:11:38 He's been in here a couple of times. 02:11:52 (when I was doing Dimensifuck, IIRC) 02:11:52 but yeah, is he in a different circle? because it'd suck if you could see all the terrible people that bug me 02:11:56 (note: above is joke but yeah) 02:12:02 He's in a different circle ATM. 02:12:17 ok, so i can see people in your other circles... that worries me, I wonder how you can stop that 02:12:21 It sounds so... circular 02:12:34 I dunno. 02:12:39 nice, it has data liberation in the settings 02:12:50 It seems to me like the partitioning really need to be a bit... More. 02:13:06 ah, i can hide people in my circles altogether 02:13:26 Imperfect, but workable. 02:14:42 "Bragging rights - Examples: survived high school, have 3 kids, etc." 02:14:45 contravarsial, google 02:14:53 Very nice 02:15:29 have 42 kids, most of which survived high school 02:18:27 "Each post has an indicator that summarizes who the post is shared with (Public, Limited, and so on). Click the indicator for details about who the post is shared with. Remember that anyone a post is shared with can see all comments to that post, who else it's shared with, and share the post with others." 02:18:34 it seems like there should be a way to segregate off comments from various circles 02:18:50 (maybe i should just have two accounts with my kind of total internet segregation practices) 02:19:28 how do you edit the sharing of a post... 02:39:38 oh no all my friends will think im frainds with an insane man called elliott 02:52:35 -!- augur has joined. 03:24:29 -!- oerjan has quit (Remote host closed the connection). 03:25:12 :t (0:1:) 03:25:13 The operator `:' [infixr 5] of a section 03:25:13 must have lower precedence than that of the operand, 03:25:13 namely `:' [infixr 5] 03:25:23 such a shame. 03:25:28 that's one of my haskell wishes 03:26:06 what would you even call it? "better sections"? 03:26:30 sections with associativity? 03:26:40 MultiOperatorSections 03:26:52 :t (+ 3 - 4) 03:26:53 The operator `+' [infixl 6] of a section 03:26:53 must have lower precedence than that of the operand, 03:26:53 namely `-' [infixl 6] 03:26:55 ah. yes. 03:27:15 along with IdiomBrackets and MLModules :) 03:27:34 more like IdiotBrackets hurrrr 03:27:53 do you even know what idiombrackets are 03:28:01 * CakeProphet doesn't actually know what idiom brackets are. 03:28:08 read you some conor mcbride, fool 03:31:09 -!- pikhq has quit (Read error: Operation timed out). 03:31:23 are idiom brackets the things that do (pure f <*> a1 <*> a2 <*> ... <*> an) 03:31:33 or do they do more than that 03:31:42 they're that, yes 03:31:47 she implements them 03:32:08 conor mcbride makes me want a twitter 03:32:10 just to get his tweets 03:32:23 so is it like a overloaded thing? 03:32:24 is she any good then? 03:32:38 CakeProphet: uh. no. 03:32:41 all I know about it is it's a haskell preprocessor thing does idiom brackets 03:32:43 -!- pikhq has joined. 03:32:49 I forgot the rest 03:33:00 monqy: yes it's great, it also lifts data to constructorless datatypes, emulating datakinds 03:33:07 mmmmmm 03:33:17 read 03:33:19 http://personal.cis.strath.ac.uk/~conor/pub/she/faking.html 03:33:19 http://personal.cis.strath.ac.uk/~conor/pub/she/pi.html 03:33:21 they'll make you happy 03:33:27 oh and http://personal.cis.strath.ac.uk/~conor/pub/she/idiom.html 03:33:34 I read the idiom one earlier today 03:33:49 constructorless, you say? 03:34:05 I hate constructors so I'll probably like this 03:34:11 monqy: the only features apart from that are http://personal.cis.strath.ac.uk/~conor/pub/she/patsy.html and http://personal.cis.strath.ac.uk/~conor/pub/she/higpig.html 03:34:16 also is that srs, what's wrong with constructors 03:34:16 rather, I hate messes of nested constructors 03:34:40 (to form complex structures) 03:34:56 monqy: scrap your boilerplate could help there 03:35:06 by letting you abstract your data traversal to avoid explicit pattern matching 03:35:15 e.g. everywhere lets you just apply a function everywhere in a structure where it's well-typed 03:35:26 mm that sounds nice 03:35:32 and ofc you can define your own traversal strategies with the basic tools 03:35:36 http://hackage.haskell.org/package/syb try it 03:35:58 -!- hagb4rd has joined. 03:36:04 (see also the http://hackage.haskell.org/packages/archive/base/4.3.1.0/doc/html/Data-Data.html module from base that it's based upon, dunno why the rest of syb isn't in base) 03:36:05 (but that part is) 03:37:02 will read eventually 03:37:24 my reading list is a bit too big so I'll have to read some stuff soon 03:37:32 just read mcbride tweets first, they'll make you all happy 03:37:42 (my reading list is a bunch of open tabs it's really messy) 03:38:28 "A Gentle Introduction to Category Theory" ;; this title sure doesn't bode well 03:38:37 "Heh, heh... yes, it is rather brutal, but unfortunately it is the easiest-to-understand on-line tutorial I've found so far." 03:38:41 heh, i was right 03:43:24 My hatred of distros is probably a bit too far ATM. 03:43:32 At the moment I'm even thinking LFS does everything wrong. 03:43:37 And LFS does hardly anything! 03:43:44 :( 03:43:52 http://www.linuxfromscratch.org/lfs/view/stable/chapter05/chapter05.html This is at least 50 lines too long. 03:44:32 It should read "Binutils, GCC, Linux headers, glibc, Busybox". 03:45:42 nice how binutils and gcc each have two passes 03:45:56 It's pointless cargo culting. 03:46:23 Also, GCC has *4* passes. 03:46:25 "This system will contain just enough tools to start constructing the final LFS system in Chapter 6 and allow a working environment with more user convenience than a minimum environment would." 03:46:26 The first build bootstraps. 03:46:36 delicious 03:46:38 Deewiant: They lie. 03:46:47 Deewiant: Busybox would be much more comfortable. 03:46:55 Why's that 03:47:11 Busybox is, surprisingly, a fairly full-featured userspace. 03:47:30 busybox sucks tho 03:47:43 Yeah, but it beats GNU. 03:48:10 it would be nice if there was an actually good coreutils 03:49:35 hmm 03:49:36 or did i find one 03:49:37 i forget 03:50:02 pikhq: So just do it with busybox? 03:50:07 pikhq: second build is to do the other half of the bootstrap right? 03:50:13 NihilistDandy: Yeah. 03:50:30 coppro: No, it's to make a GCC linked against your new libc. 03:50:40 My feeling on the whole LFS thing was "Here are some neat instructions, but do whatever the hell you want." 03:50:49 pikhq: oh dear 03:50:57 I built two of them, and I never followed everything to the letter 03:50:57 I told you, it's fucking cargo cult. 03:51:25 If you're a Linux user who's content following directions because the internet told you to, you deserve the cargo cult 03:51:38 Or any *NIX, for that matter 03:51:48 Pop quiz: What are the complexities of many common (codepoint-based) operations on a structure which consists of a raw block of UTF-8 bytes, plus another list as long as the number of codepoints with offsets into the string saying where those codepoints start? 03:52:15 e.g. inserting into the middle 03:52:43 O(n^2)? 03:53:20 * NihilistDandy didn't even read the question 03:53:34 pikhq: how did you invite me btw 03:53:36 NihilistDandy: gj 03:53:42 elliott_: I sent you a message. 03:53:55 It autoinvites people that you send messages to. 03:53:58 (btw by raw block I actually meant like a cord srtucture or whatever) 03:54:00 pikhq: nice 03:54:19 pikhq: Message, please? :D 03:54:25 elliott_: How far off was I? 03:55:51 NihilistDandy: dunno, it's me asking you guys 03:56:28 pikhq: does it have to be just them? 03:56:53 elliott_: I dunno, maybe? 04:04:55 "The problem is right there. Always has been. People who think that 04:04:56 userspace filesystems are realistic for anything but toys are just 04:04:56 misguided." 04:04:58 oh, linus is wrong 04:05:00 that's rare 04:07:06 lol 04:11:18 http://www.bioinformatics.org/benchmark/results.html 04:11:27 I wonder why these programs are generally faster in Windows... 04:13:33 scheduling etc.? 04:14:01 I'd need more information to say. 04:14:15 have i mentioned 04:14:29 @ @ @ is great 04:14:29 @ we all appreciate 04:14:32 Though the odds are good glibc is to blame. 04:15:23 @ has no libc 04:15:25 @ @ @ 04:15:34 @_@ 04:15:59 :)_:) 04:16:02 (:_(: 04:16:07 :)_(: 04:16:09 (:_:) 04:16:30 * CakeProphet is trying to find a Perl vs Python benchmark that isn't a) lacking in information b) biased towards one language in some way 04:16:37 I am not finding anything.. 04:16:41 http://graphcomp.com/pogl.cgi?v=0111s3B2 04:16:53 this site obviously has a bias towards Perl... 04:16:59 benchmarking languages 04:17:02 >youlose.jpg 04:17:40 Benchmarking languages is the wrong question. 04:19:36 In other news, Stephen Colbert is now a so-called "Super PAC". 04:19:59 Awesome 04:20:06 FSOV awesome 04:20:08 Which means that he is personally a lobbying organisation that can be handed infinite amounts of money by corporations. 04:20:13 Personally. 04:20:16 elliott_: well, considering both Python and Perl both have one major implementation, this isn't unreasonable. 04:20:37 US politics has devolved into comedy. 04:20:46 CakeProphet: Still not comparing language speed. 04:20:49 pikhq: Have you seen the "serious" Super PACs? 04:20:51 Implementation speed, perhaps, but hey. 04:20:53 NihilistDandy: No. 04:20:58 CakeProphet: they're not even real languages, there is no definition 04:21:02 Hang on, I'll find some links 04:21:07 elliott_: what? 04:21:25 CakeProphet: Here's the Perl spec. "What /bin/perl does." 04:21:32 CakeProphet: Here's the Python spec. "What /bin/python does." 04:21:40 is this some trivial formalism thing you guys are talking about? If so, I don't care about that. 04:21:42 That's just shitty. 04:21:58 pikhq: Python is actually interpreter-is-correct? I thought it was spec-based 04:22:03 pikhq: Also Perl 6 has a spec 04:22:05 although it's a messy one 04:22:09 pikhq: http://www.youtube.com/watch?v=bv_WG0v_kO0 04:22:12 CakeProphet: Show me the definition of Python. 04:22:15 CakeProphet: Show me the definition of Perl. 04:22:30 Any inconsistency in Perl between docs and program is officially a bug in the docs 04:22:32 The ad released by "Turn Right USA", another Super PAC 04:22:33 *Perl 5 04:22:34 if you point to an implementation, then you're saying that the language has defined segfaults 04:22:49 Probably NSFW, and definitely unsafe for nonracists 04:23:21 elliott_: Python has a grammar spec. Does that count? 04:23:48 No. 04:23:53 -!- zzo38 has joined. 04:23:53 coppro: Non-officially; they don't even go so far as to say "the implementation is correct". 04:24:03 Python, de jure, DNE. 04:25:06 I would say this http://docs.python.org/reference/ is pretty close to being a spec. 04:26:02 Documentation != spec. 04:26:34 ^ 04:27:13 There is no such thing as a compliant Python interpreter. 04:27:15 But I would say in the case of TeX, the program book and documentation book together make up a specification of how standard TeX should work 04:27:24 What makes that document not a language specification? 04:27:34 CakeProphet: It is not considered authoritative 04:27:41 ...k? 04:27:46 Someone could implement that document entirely and it would not necessarily be considered correct 04:28:02 There are only interpreters which happen to execute input similarly to the "CPython" program. 04:28:30 coppro: well, it would be missing the standard library. 04:28:57 CakeProphet: And certainly not be bug-for-bug compliant. 04:29:29 How would you know if it is correct or not? And what if there is some ambiguous things mentioned in the document? 04:29:47 ...but this has nothing to do with benchmarking the most commonly used implementation of a language. 04:30:21 Yes it does, because there is no language. 04:30:21 it's just something to be picky about.. 04:30:35 There are only interpreters 04:31:00 And yes, we are just being picky. 04:31:06 That doesn't make it any better. 04:31:11 it means they're not languages, though 04:31:41 There is an entire set of documentation on the language, standard libraries, and grammar of the CPython implementation that is considered standard for any practical purpose. I don't see why it matters that it's not called a specification. 04:32:40 if the implementation violated the documentation (not in an obviously buggy way like segfaulting), which would be fixed? 04:32:52 if you can't answer "the implementation, no question whatsoever", then it is not a specification. 04:33:29 And that is one purpose to use literate programming; is so you do not have this problem. 04:34:04 Is it possible? 04:34:08 ..but you can't say "there is no Python language" as a result. 04:34:10 I think so. 04:34:31 because there clearly is one. It is documented to exist. 04:34:49 There is "the CPython interpreter's behavior". 04:34:52 nope, there's a program 04:34:54 whats python 04:34:58 its called cpython 04:35:03 oh thanks 04:35:03 theres some other programs that try to imitate it 04:35:05 there is no language 04:35:09 To create a "Python" interpreter, one is imitating CPython. 04:35:10 Yes, you can't say "there is no Python language" as a result unless perhaps you have some philosophy and you are being very philosophical about it then you might prefer to say there is no such thing, maybe....... maybe not...... 04:35:13 ...this is a completely pointless discussion. I am done. 04:35:21 zzo38: We're being philosophical about it. 04:35:25 the language specified by what cpython does 04:35:52 Dang, Congress is even more disfunctional than usual. 04:36:04 18 bills have passed this year. 04:36:10 bad bills? 04:36:25 No, utterly trivial bills. 04:36:28 hehehe 04:36:29 15 of them name buildings. 04:36:34 wow what 04:36:36 http://www.e-pig.org/epilogue/?p=955 i never understand mcbride, but he always makes me happy 04:36:45 pikhq: and the other three? 04:36:51 coppro: name horses 04:37:01 elliott_: this man-crush is becoming somewhat eerie. 04:37:04 I suppose you can be philosophical about it, or whatever else you want to be about it; especially, this is esoteric programming channel, but even in non-esoteric programming you can think about such things for whatever reason whatsoever, even. 04:37:20 man-crush is that when one man crushes another man 04:37:32 es 04:37:33 murder is okay when it's manly 04:37:34 *yes 04:37:38 for some definition of crush 04:37:39 CakeProphet: haha 04:37:43 CakeProphet: i just had the tab open 04:37:46 thanks to crushing on him 04:37:49 and he linked to the new e-pig post 04:37:50 and 04:37:50 yeah 04:38:07 do you dream about conor mcbride 04:38:30 yes 04:38:40 im going to go into his house and take off his skin and wear it and become him 04:38:49 make yourself happy 04:38:53 all by yourself 04:38:54 https://secure.wikimedia.org/wikipedia/en/wiki/Acts_of_the_112th_United_States_Congress 04:39:41 zzo38: I just don't see how not making a spec for a language /invalids all benchmarking ever/. Which was how this topic started. 04:39:53 *invalidates 04:40:02 We're travelling fast towards default. 04:40:06 haha benchmarking 04:40:10 AKA "The end of economy". 04:40:27 sorry I pretty much just got back but why do you want benchmarking 04:40:34 isn't benchmarking an implementation thing anyway 04:40:45 CakeProphet: you were talking about benchmarking the implementations of a language 04:40:47 but there is no such language 04:41:05 okay, I will never say Python again. 04:41:11 this depends on the definition of language doesnt it 04:41:12 because it does not exist. 04:41:17 CakeProphet: It doesn't (with the exception of a few kinds of philosophical ideas) but it is helpful. But benchmarking is helpful for implementation mostly is in fact correct. But can be compared 04:41:20 you can say python 04:41:23 but you can't refer to it as a language 04:41:35 if languages can be specified by the behavior of a program then yeah python is a language 04:41:48 that's a specification that nobody believes 04:41:49 you know why? 04:41:56 because people report bugs in the python program for implementing Python wrong 04:41:58 Such as, the program "python" and the "python" snake and the "Monty Python" and so on 04:42:02 okay, yesterday I wrote a program in the python interpreter. It was not a programming language. I just programmed thin air. 04:42:02 "this behaviour is incorrect", etc. 04:42:06 heheheheheheheehehe 04:42:22 CakeProphet: you programmed a Python program. but Python is not a programming language. 04:42:33 python is a human language 04:42:42 for communicating between humans 04:42:45 right, the Python program was written in nothingness. Python is pretty mystical sometimes. 04:42:47 elliott_: Yes, it does make difficult. Is it just the idea of the people who have programmed it, or the collective? So, one could say either the document or implementation might be the wrong one possibly? 04:42:50 pikhq: I count 23 04:42:58 coppro: Yeah, I got a miscount. 04:43:03 Still utterly ridiculous. 04:43:17 zzo38: They could both be wrong. 04:43:24 pikhq: also I definitely do not see 15 for naming buildings 04:43:27 zzo38: If van Rossum says so. 04:43:39 coppro: So further research told me I was wrong? 04:43:44 ok, python is a language whose spec is a physical brain 04:43:46 pikhq: Yes maybe they could both be wrong. Maybe. (It is, again, another kind of philosophical idea) 04:43:49 coppro: Still. Utterly ridiculous. 04:44:13 zzo38: Slightly less philosophical, because Python runs on the benevolent dictator model. 04:44:23 it's been a while since I've done anything in python. I don't think I've ever used any of its really fancy features either. those things are spooky. 04:44:41 pikhq: Perhaps. OK. 04:44:53 monqy: What kind of realy fancy features? 04:45:00 I dunno I forgot them all 04:45:17 they're probably really simple too but they spook me out 04:45:20 I often wonder what language I'm writing in when I write a Python program. It is deeply confusing to me. This conversation has clarified things for me. 04:45:40 I have done two things in Python. I wrote some solitaire card games and I have modified a drive wipe script for FreeGeek Vancouver. 04:45:40 i write my python programs in perl btw 04:46:07 monqy: !!!!??? 04:46:21 oh wait perl doesn't exist either 04:46:21 sorry 04:47:05 I guess I really am confused about what language I'm writing in when I write a Python program. 04:47:08 deeply confused. 04:47:44 if only you had some kind of document that described the language to you. A document that may in fact be subject to change in the future. 04:48:05 Stick to SKI, then. At least that's a mathematical fact. 04:48:05 a formal specification? 04:48:08 as the language changes, for whatever reason. These things are ephemeral. 04:48:26 ephemeral sucks 04:48:45 Perhaps instead of saying you wrote the program in Python you say it is written in python instead (that is, without uppercase "P"), which is used to indicate that, you have the program "python" which can be used to interpret the program in the language whatever it happens to be, if anything... 04:48:46 what if you define a language by a spec and then leave that spec alone and make a new spec when you want to change it 04:49:04 monqy: Then you should give them version numbers, or, if they don't have them, refer to them by dates. 04:49:14 monqy: Well, then you'd have Haskell~ 04:49:22 NihilistDandy: or scheme 04:49:24 NihilistDandy: Haskell is versioned. 04:49:28 or a bunch of other languages 04:49:32 pikhq: ~ means sarcasm 04:49:39 oh 04:49:42 I thought it meant singing 04:49:46 lol 04:49:48 * CakeProphet wrote a program in the C language yesterday. 04:49:52 which C 04:49:55 C. 04:49:58 what's C 04:50:03 There's two such languages. 04:50:04 I dunno, I was pretty confused myself. 04:50:06 Soon to be 3. 04:50:18 was it C99 04:50:20 NihilistDandy: Strange, I thought it was a vaguely sing-songy type thing. だね〜? 04:50:33 I dunno, I couldn't find the spec. 04:50:34 And then there are variants of C and implementation specific features of C programs, in addition to others too. 04:50:55 I'm bad at googling. 04:51:02 would you like me to find the spec~ 04:51:19 Sure. Go find the spec for C. 04:51:23 what 04:51:35 which version 04:51:45 which C 04:51:47 , that is 04:51:47 I don't know. I thought I explained this... 04:51:52 we are going in circles now... 04:52:11 I happen to like a subset of the "GNU89" version of C 04:52:31 I like the subset of C that is quines. 04:52:44 quines as specified by which version of C 04:52:45 pikhq: In Japanese I've always thought of it more as an extension of the vowel, but I suppose many speakers make that sound fairly sing-dongy 04:52:48 *songy 04:53:06 Fuck it, I'll presume ISO C99+POSIX 2008.1 04:53:11 CakeProphet: http://pubs.opengroup.org/onlinepubs/9699919799/toc.htm 04:53:14 Have fun! 04:53:47 monqy: The C that is implemented by the gcc, I think. 04:53:48 NihilistDandy: Fair 'nough. 04:53:50 CakeProphet: Not knowing because is explained and how you go in circles is one of the kind of philosophical because sometimes making philosophy, if it is of the confusing kind, results in this kind of things. So that is how you learn (kind of)! 04:54:01 NihilistDandy: loldongs 04:54:04 CakeProphet: So ISO C99! 04:54:32 oh okay. Yeah sometimes I get confused because people are like "go write programs in C", and I assume C is a language. 04:54:36 * CakeProphet didn't know how wrong he was. 04:54:59 C is a family of languages 04:55:10 An incestuous family of languages 04:55:17 gross 04:56:20 a happy family? 04:56:41 CakeProphet: They don't know. 04:57:07 the thing about Python is that the language changes between CPython versions, pretty much. 04:57:41 Another thing is what parts should be considered "the language" 04:58:05 the language defined by cpython's behaviour at verison (version here) 04:58:37 I would Python is a family of languages, with specific languages being versioned. 04:59:03 I remember in #python it would sometimes help to specify which version of Python you were talking about 04:59:36 +say ... -_- 04:59:37 if only python were formally specified 04:59:47 yes, then it could be one language, like C. 04:59:53 what 05:00:05 proper implementations of python _must not have_ tail call optimisation 05:00:13 haha. yes. it's required. 05:00:29 by the... er wait, by.. 05:00:36 uh... 05:00:42 by the cpython. by the guidos brain. 05:00:42 by the CPython source! 05:01:48 !perl $x = hello => $x; 05:01:59 !perl print $x = hello => $x; 05:02:00 hellohello 05:02:12 what just happened :( 05:02:22 dunno. Consult the Perl spec. 05:02:29 I think it's in /bin/perl 05:02:33 gross 05:02:34 !perl print $x = 5 => $x = 6; 05:02:35 66 05:02:39 snazzy 05:03:14 !perl print $x = 5 => $x = 6 => $x = $x; 05:03:15 666 05:03:20 I'm actually not sure what is happening now... 05:03:34 I would expect 566 05:03:53 !perl print $x = $x => $x = 5 => $x = 6; 05:03:53 666 05:04:33 ..yeah, assignment precedence does weird things. 05:05:01 that and the fact that , does two completely different things. 05:05:33 !perl print ($x = (print ($x = print ($x = 5)))) 05:05:33 511 05:06:06 see, it would be nice if print actually returned what it printed, but instead it returns 1 05:06:28 !perl print $x => ($x = print ($x = 5)) => $x 05:06:28 5111 05:06:35 dang it perl 05:07:10 !perl print $x => ($x = 5) => $x 05:07:11 555 05:07:20 how did it figure that out 05:07:46 > (print 1) => (print 2) 05:07:47 : parse error on input `=>' 05:07:55 !perl (print 1) => (print 2) 05:07:56 12 05:08:01 good question. :P 05:08:10 Perl can see the future, obviously. 05:08:43 See reverse state monad. 05:08:47 god that monad is so hot. 05:08:50 I have a mancrush on it. 05:08:59 I crushed it with my minds. 05:09:01 !perl $a = 5; ($a, $b) = ($b, $a); print $a; 05:09:24 yeah see I have no clue why it printed 555 above. 05:09:25 unification failure there perl 05:09:38 lol 05:09:52 -!- fizzie has joined. 05:10:30 !perl print $x, ($x=5) 05:10:30 55 05:10:33 ...see, what. 05:10:49 !perl print ($x=5), $x 05:10:49 5 05:10:54 whoa!! 05:11:10 !perl print ($x=5) => $x 05:11:10 5 05:11:16 => is just , 05:11:19 so it's sequencing 05:11:25 !perl print $x => ($x = 5) => $x 05:11:25 555 05:11:27 but with one special thing so why not have another 05:11:33 print ($x, $x = 5, $x) 05:11:34 now 05:11:37 if you look at how this evaluates 05:11:38 it 05:11:38 uh 05:11:41 it allows a bareword on the left right? 05:11:43 that makes no sense :( 05:11:47 maybe it evaluates assignments first 05:11:48 or something 05:11:50 monqy: yeah 05:11:57 oh 05:12:01 but then what about ($x=5), $x 05:12:01 monqy: hm 05:12:01 monqy: maybe it turns into 05:12:11 print "$x", ($x = 5), ... no wait 05:12:15 it seems to be exclusive to the print operator. 05:12:15 that wouldn't explain the last one 05:12:15 hmm 05:12:17 oh well 05:12:23 "" 05:12:32 !perl @x = ($x, $x=5); print @x 05:12:33 55 05:12:36 ...or not. 05:12:45 so it's a list operator thing. 05:13:02 perl is confusing 05:13:04 im confused 05:13:38 !perl @x = ($x, $x, $y); $x=5;$y=2; print @x 05:13:43 -!- zzo38 has left. 05:14:06 might have something to do with how Perl uses lists in assignment operators. 05:14:12 What's confusing about it? 05:14:29 the evaluation order was unexpected. 05:14:33 i always hate when people post about areas of my expertise because they'll be wrong 05:14:37 Ah, that 05:15:23 !perl @z = (my ($x=$y, $y=2)); print @z; 05:15:24 Can't declare scalar assignment in "my" at /tmp/input.18475 line 1, near "))" 05:16:29 !perl (@z = ($x=$y, $y=2)) = ('a','b'); print @z, $x, $y; 05:16:30 ab2 05:16:33 lol 05:16:50 !perl (@z = ($x=$y, $y=2)) = ('a','b'); print @z, ' ', $x, $y; 05:16:50 ab 2 05:17:16 -!- zzo38 has joined. 05:17:56 !perl (@z = ($x=$y, $y=2)); print @z, ' ', $x, $y; 05:17:56 2 2 05:18:15 okay, these are expected... 05:18:42 but now I don't know what is expected and what is unexpected... 05:18:48 so maybe not. 05:18:53 what if perl had a real spec 05:18:57 would that help 05:19:16 (no that was a trick question it would be too much of a mess) 05:19:29 ((that was a joke of course it would help)) 05:19:32 (((what am I saying))) 05:20:03 to #perl! 05:20:07 the official spec of perl. 05:20:17 im afraid 05:20:22 is it a good place 05:22:03 not really. it's occasionally helpful. 05:22:38 more often than not I get assaulted with useless pickiness, which is weird because it's Perl we're talking about.. 05:22:56 theres only one way to do it 05:23:47 * elliott_ notes that CakeProphet considers everything useless pickiness 05:23:54 do they get mad about doing obscene things with perl 05:23:57 i.e. anything with perl 05:24:03 (perl jokes are funny) 05:24:41 seriously though is there any sort of perl that's considered abusive 05:25:37 obfuscated too far for respect 05:25:48 depends on who you talk to. I generally don't care. others do. 05:25:55 exploited a bug in the spec 05:26:07 obfuscated too far for respect / exploited a bug in the spec 05:26:12 opening lyrics of Abusive Perl 05:27:43 Also, valid Perl. 05:31:18 < tm604> eval: [ $x, $x - 3, $x = 5, $x - 3 ] # they're processed left-to-right but since $x is an lvalue it'll stay as $x in the resulting expression 05:31:26 < SpiceMan> anyway, assigning in a list is wrong 05:31:44 I didn't know programming style was such a deep, ethical issue. 05:31:54 in perl it is 05:31:56 -!- zzo38 has left. 05:32:04 there's more than one way to do it but that isn't one 05:32:55 < tm604> It'll evaluate to 5 when converting to the arrayref in the above example - but would stay as an lvalue if you passed that list to a function call. 05:33:15 interesting... 05:33:18 "is wrong" -- oh noes ethical judgement 05:36:38 They're not called perl monks for nothing 05:37:46 im having trouble grokking the concept of perl style pedantry 05:37:58 isnt perl for dirty hacks why else would anyone use it 05:38:22 yes I am having similar difficulties. 05:38:29 I guess there are pedants for every language... 05:39:10 Perl pedants are former C pedants who decided they wanted something more opaque. 05:39:18 ~ 05:39:44 Sort of 05:40:20 Actually, I don't think I've known anyone that used perl for long without developing their own particular brand of pedantry about it 05:40:38 Except the ones who switched to python because it was the sexy new (nonexistent) thing 05:41:03 !perl @x = ($x,$x,$x=2); ($x[0],$y) = (3,4); print @x,' ',$x,$y 05:41:03 322 24 05:41:14 my perl pedantry is i cant stand perl code that doesnt cave in to heinous obfuscation 05:41:23 NihilistDandy: I switched from python to perl, so... 05:41:41 so far I am not pedantic about Perl. But I'm not pedantic about any language really. 05:41:44 so this makes sense. 05:41:53 * NihilistDandy nods 05:41:56 /especially/ languages that don't exist. 05:42:00 Just don't drink the Wall-aid too hard 05:42:30 sounds dangerous. 05:42:54 Any language is dangerous if you buy into the hype 05:43:07 so apparently the lvalues evaluated after the list evaluates. So it's just a weird case that happens inside lists. 05:43:17 "Lisp has all the visual appeal of oatmeal with fingernail clippings mixed in." -- literally god 05:43:52 perl -Wall 05:43:58 --pedantic 05:44:48 lol 05:44:55 !perl sub test {$_[0] = 2} $x = 1; test($x); print $x; 05:44:55 2 05:45:14 im n ur code, reassigning ur lvalues. 05:45:27 call by vile 05:45:43 heh 05:46:14 usually this "feature" is disabled when you reassign @_ or use shift, which is what 99% of Perl functions do. 05:47:11 I think, let's test this. 05:47:18 !perl sub test {shift = 2} $x = 1; test($x); print $x; 05:47:18 Can't modify shift in scalar assignment at /tmp/input.20928 line 1, near "2}" 05:48:47 you /can/ define subroutines that can be used as lvalues. 05:48:55 but shift is not one of those. 05:52:57 !perl sub take : lvalue {$_[0]} sub test { &take = 3} $x = 0; test($x); print $x; 05:52:57 3 05:58:43 hi im 05:59:04 I actually enjoy Perl's depravity. This is what stands out to me. 05:59:16 Pervert. :P 06:03:40 You could actually write programs in a style similar to Python. 06:03:44 but how boron would that be? 06:05:13 well no, you would actually want to /declare/ your variables. This is counter-intuitive to Python style. 06:06:36 in which variables magically appear at runtime like the hash table keys they are. 06:08:28 in a class definition? don't want a hash table? no worries, you can just define a huge list of strings named __slots__. Very clean and pythonic. 06:09:56 actually it might be a tuple. I can't recall. 06:16:27 it's a list 06:40:57 -!- CakeProphet has quit (Ping timeout: 255 seconds). 06:50:32 -!- zzo38 has joined. 06:54:28 Yes, it is true! It is not true! 06:54:33 taupe 06:57:10 toupe 06:58:48 targot 07:02:05 I do not think pi has anything to do with circles. I think circles has to do with pi. Some people think tau (2pi) should be used instead of pi but I am one of those who disagrees with that idea. Even if you somehow believe that the ratio of a circumference to the diameter is 3, that doesn't mean pi is 3. 07:04:06 fyguhijokp[l];';kljhgfdrt90iuhgvui09-hviop0jhbvi90jio0-9ijnbjio0- 07:09:10 Can you please write it more clearly this time? 07:09:23 asfdjqieprtg 07:10:13 -!- CakeProphet has joined. 07:10:13 -!- CakeProphet has quit (Changing host). 07:10:13 -!- CakeProphet has joined. 07:13:43 -!- pikhq_ has joined. 07:14:00 -!- monqy has quit (Quit: hello). 07:16:06 -!- pikhq has quit (Ping timeout: 240 seconds). 07:29:24 -!- CakeProphet has quit (Ping timeout: 276 seconds). 07:29:33 -!- foocraft_ has quit (Ping timeout: 255 seconds). 07:56:12 -!- zzo38 has quit (Remote host closed the connection). 08:06:04 oh my god 08:06:07 the opengl haskell binding 08:06:09 actualyl uses Ptr 08:06:11 r u joking 08:06:20 not even Ptr Blah 08:06:21 Ptr a 08:06:21 yes 08:06:22 a 08:06:24 a pointer to fucking anything 08:06:26 clap 08:25:21 What part of it? 08:25:35 Deewiant: vertex object things 08:25:41 GL.bufferData GL.ArrayBuffer GL.$= (fromIntegral size, ptr, GL.StaticDraw) 08:25:47 that ptr could literally be a pointer to ()s 08:25:49 or to (forall a. a)s 08:25:53 at least use a typeclass, jeez 08:26:01 -!- ais523 has quit (Remote host closed the connection). 08:26:05 What should it be? :-P 08:34:38 -!- Vorpal has joined. 08:39:55 Deewiant: A typeclass, since the a should always be one of the GL value types :P 08:39:58 (Unless I'm missing something) 08:40:08 You can always cast it 08:40:14 I'm not sure it should be 08:40:18 I think it really can be anything 08:41:52 You can use it to just store arbitrary data on the GPU AFAICT 08:43:39 Heh 08:43:50 Deewiant: That sounds like a terrible idea if you have e.g. Ptr (a -> b) 08:44:02 Or, any heap type 08:44:05 GC doesn't look at GPU memory :P 08:44:32 If you move GC data away from the GC then obviously you have to handle it somehow, yes :-) 08:52:12 "Someone should be paying you full-time to actually make all of these things that will be so much better than all the other versions of those things." 08:52:17 the nicest thing i have ever been told ;_____; 09:23:56 -!- wth has joined. 09:24:22 -!- wth has changed nick to Guest41798. 09:24:30 -!- Guest41798 has left. 10:05:56 -!- foocraft has joined. 10:21:16 ?src Functor Either 10:21:16 Source not found. My pet ferret can type better than you! 10:21:49 ?src Either fmap 10:21:49 fmap _ (Left x) = Left x 10:21:50 fmap f (Right y) = Right (f y) 10:22:03 Deewiant: yeah, then i realised that's not relevant 10:22:10 * elliott_ is trying to make the code in http://personal.cis.strath.ac.uk/~conor/Kleisli.pdf work 10:22:18 specifically 10:22:19 instance (IFunctor f ,IFunctor g) ⇒ IFunctor (f :+: g) where 10:22:19 imap h (InL fp) = InL (imap h fp) 10:22:19 imap h (InR gp) = InR (imap h gp) 10:24:13 And why doesn't that work 10:25:12 Deewiant: 10:25:14 /home/elliott/Code/outrageous-fortune/outrageous-fortune.hs:58:33: 10:25:15 Could not deduce (g ~ f) 10:25:15 from the context (IFunctor f, IFunctor g) 10:25:15 bound by the instance declaration 10:25:15 at /home/elliott/Code/outrageous-fortune/outrageous-fortune.hs:3:10-55 10:25:15 `g' is a rigid type variable bound by 10:25:19 the instance declaration 10:25:22 at /home/elliott/Code/outrageous-fortune/outrageous-fortune.hs:3:32 10:25:24 `f' is a rigid type variable bound by 10:25:25 the instance declaration 10:25:27 at /home/elliott/Code/outrageous-fortune/outrageous-fortune.hs:3:20 10:25:30 Expected type: f s i 10:25:31 Actual type: g s i 10:25:33 In the second argument of `imap', namely `gp' 10:25:36 In the first argument of `InL', namely `(imap h gp)' 10:25:37 In the expression: InL (imap h gp) 10:25:39 Failed, modules loaded: none. 10:27:55 (This after I added kind signatures to :+:.0 10:27:55 ) 10:31:47 OH 10:31:48 duh 10:37:19 -!- azaq23 has joined. 10:47:49 ?src (<*) 10:47:49 (<*) = liftA2 const 10:47:54 ?. unpl src (<*) 10:47:54 () 10:47:57 o_O 10:48:09 ?src liftA2 10:48:10 liftA2 f a b = f <$> a <*> b 10:48:13 right 10:48:19 \a b -> const <$> a <*> b 10:48:47 ?unpl (<*) = liftA2 const 10:48:48 (<*) = liftA2 (\ a _ -> a) 10:49:14 ?src (*>) 10:49:14 (*>) = liftA2 (const id) 10:49:29 const id <$> a <*> b 10:49:30 hmm 10:49:34 no simpler way to write that, right 10:49:35 ? 10:49:46 ?ty \a b -> const id <$> a <*> b 10:49:47 forall a a1 (f :: * -> *). (Applicative f) => f a1 -> f a -> f a 10:50:01 ?ty (*>) 10:50:01 forall (f :: * -> *) a b. (Applicative f) => f a -> f b -> f b 10:50:03 ? 10:50:22 Well, that's where you got it from I guess, heh 10:51:58 haha wow, the arrows of outrageous fortune are... 10:52:01 outrageously slow 10:52:11 Howso 10:52:24 So, choose a big text file, a Shakespearean tragedy, perhaps, and invoke 10:52:24 runFH $ fileContents "Hamlet.txt" 10:52:24 and wait 10:52:25 . 10:52:27 he is not kidding 10:52:34 :-D 10:52:37 im running it on /usr/share/dict words and my computer isnt showing what im typing any more oh 10:52:39 and 10:52:39 i think my memory 10:52:41 is 10:52:41 all 10:52:42 leaked 10:52:42 ow 10:52:43 fuck 10:52:47 switching to tv 10:53:34 Deewiant: oh my god 10:53:42 i just watched the oom killer kill chrome 10:53:46 for ghc's sins 10:54:11 oh and THEN he tells us how to do it fastly 10:54:14 fucker 11:05:27 -!- Sgeo has joined. 11:21:31 elliott_, gnome 3 is a disaster, I gave up on it when I couldn't even locate the setting for changing window decorations theme after 10 minutes of searching in the preferences... 11:21:46 heh 11:21:56 Maybe you can't change it 11:22:02 After all, configurability is bad and confusing 11:22:21 elliott_, gave lxde a try but it was crashy. Could be due to catalyst drivers since it was X itself that crashed from trying to change lxde desktop bg colour, but the backtrace from X segfaulting seemed free from catalyst things 11:22:25 xfce seems to work well 11:22:38 Why do people use desktop environments 11:22:57 Deewiant, as opposed to just a window manager? 11:23:20 Yep 11:24:11 Deewiant, hm, for me, because I haven't found a window manager that I liked yet. I tried a few. 11:24:21 I don't like tiling window managers I found out 11:25:40 So you like gnome 2 / lxde / xfce but not any WMs, or? 11:26:18 Deewiant, well lxde I have been unable to decide if I like yet 11:26:26 due to it crashing on some stuff 11:26:49 but lxde had a few other issues as well 11:27:11 like not being able (as far as I could tell) to use the default X cursors, instead of fancy ones. 11:27:26 and also I didn't find a non-horrible window decoration theme in it 11:27:40 Deewiant, gnome 2 I like. KDE 3.5 and older too. xfce4 is quite nice 11:28:27 Deewiant, I tried a few WMs and twm is kind of nice when it comes to behaviour, but it looks ugly as fuck, even if you change the colours with xresources or whatever it was 11:28:41 tiling WMs I don't seem to like so far 11:28:56 Deewiant, any suggestions for non-tiling WMs? 11:29:16 I use openbox 11:29:23 And shall now relocate to a bus stop --> 11:29:28 hm, I haven't tried that one actually 11:29:34 I think I tried some other *box? 11:49:57 I found small nits in all the other boxes (no I can't remember what they were) 11:50:16 ah 11:50:51 (including IceWM) 11:56:27 -!- CakeProphet has joined. 12:43:23 yess rayman installer launches 12:43:43 "Full installation MMX for DirectX [six].[one]" 12:43:48 ah...yes, this is what i want... 12:45:14 12:47:01 ah, i need dlinput.dll for this 12:47:10 quintopia: Deewiant: CakeProphet: do any of you use windows ever 12:47:12 Sgeo: 12:47:15 :P 12:47:23 Hi 12:47:41 oh wait its on the cd 12:47:42 yayyy 12:48:17 hm or wait is it 12:50:08 In my case, I used a Windows Vista "dinput.dll" file, as the one from my "Rayman 2" CD didn't work for me. 12:50:09 ah 12:50:13 Sgeo: do you have access to a windows partition 12:50:23 The one I'm currently using 12:50:31 Is 7 close enough/identical? 12:50:39 yes 12:50:47 Sgeo: can i have your \windows\system[thirtytwo]\dinput.dll file? 12:51:09 Hold on 12:52:57 * Sgeo takes elliott's email address from Agora 12:53:32 in return you can have a useless google+ invite 12:53:34 unless you already have one 12:54:07 I don't 12:55:05 invited 12:55:17 thx for file 12:55:31 yw 12:55:42 still doesn't work though :D 12:55:42 hmm 12:57:13 Huh, I have to link Google+ with Picasa 12:57:23 Maybe this will make Picasa on my phone work? 12:57:25 have to? 12:57:53 The choices given were to link, or not to join Google+ 12:58:07 WORKS NOW YAAAY 12:58:08 Sgeo: heh 12:58:20 "SITE RAYMAN2" <-- good english in menus 12:58:58 this is working A+ good 12:59:05 todo: get antialiasing enabled in it somehow, maybe dare to try widescreen, fullscreen 12:59:07 rayman yaay 12:59:12 sgeo you've played rayman right 12:59:14 two 12:59:18 then you can UNDERSTAND MY DELIGHT 12:59:25 I've... heard of it. Might have seen it being playe 12:59:28 played 12:59:33 Unless I'm thinking of a different game 12:59:45 go pirate it and play it it's the best three-dimensional platform game ever created :{ 12:59:56 elliott_: Yes, I dualboot Windows 7 for gaming 13:00:00 Deewiant: TOO LATE 13:00:06 You were just toooo slow. 13:00:12 I didn't really want to help you anyway 13:00:20 Nobody ever does ;____; 13:00:26 elliott_, does it have glowy sphere things called lums? 13:00:49 Sgeo: yes. 13:01:04 Ok, yeah, I've watched my friend play it a long time ago 13:02:01 brb playing it 13:02:03 -!- elliott_ has quit (Quit: Leaving). 13:09:47 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 13:12:37 -!- elliott has joined. 13:12:43 Stupidly hard to get this to fullscreen right 13:12:50 Is there a way to get wine to do everything as a virtual desktop, just a fullscreen one :P 13:18:26 -!- elliott has quit (Quit: Leaving). 13:34:26 -!- copumpkin has joined. 13:34:26 -!- copumpkin has quit (Changing host). 13:34:26 -!- copumpkin has joined. 13:34:42 perhaps virtual box has what elliott is looking for 13:34:54 also, installing Windows will likely have a similar effect. 13:36:04 CakeProphet, I thought VirtualBox doesn't work well with 3d 13:43:11 -!- azaq23 has quit (Read error: Operation timed out). 13:44:58 -!- azaq23 has joined. 13:45:01 -!- azaq23 has quit (Changing host). 13:45:01 -!- azaq23 has joined. 13:56:47 -!- azaq23 has quit (Quit: Leaving.). 14:01:33 -!- azaq23 has joined. 14:05:24 -!- elliott has joined. 14:14:43 -!- Sgeo has quit (Read error: Connection reset by peer). 14:15:24 -!- Sgeo has joined. 14:25:18 -!- elliott_ has joined. 14:25:18 -!- elliott has quit (Read error: Connection reset by peer). 15:18:17 -!- Slereah has quit (Ping timeout: 252 seconds). 15:22:01 olsner: you konw how you were oh and i want with and but yeah its let me knwo if? 15:33:03 unsafePerformIO (>>= #0 #1) = seq# #0 (#1 #0); 15:33:03 unsafePerformIO (return #0) = #0; 15:34:00 olsner: your dreams answered 15:35:40 wait i can do that better, unsafePerformIO could be id 15:35:48 #? 15:35:51 Yes. 15:38:30 Unboxed? I'm generally clueless about that. Why is #1 being used like a function? 15:39:05 It's not Haskell. 15:39:31 o.O 15:50:42 olsner: yeah i pretty much invented the best 16:27:24 -!- MigoMipo has joined. 16:37:14 -!- Phantom_Hoover has joined. 16:37:31 -!- copumpkin has quit (Ping timeout: 246 seconds). 16:38:07 -!- copumpkin has joined. 16:38:08 -!- copumpkin has quit (Changing host). 16:38:08 -!- copumpkin has joined. 16:47:41 -!- Sgeo_ has joined. 16:51:27 -!- Sgeo has quit (Ping timeout: 276 seconds). 17:02:28 -!- Slereah has joined. 17:18:56 -!- Sgeo__ has joined. 17:21:25 -!- Sgeo_ has quit (Ping timeout: 250 seconds). 17:23:36 -!- Sgeo has joined. 17:24:00 -!- Sgeo__ has quit (Ping timeout: 255 seconds). 17:32:27 -!- Sgeo_ has joined. 17:35:29 -!- Sgeo_ has quit (Read error: Connection reset by peer). 17:35:42 -!- Sgeo has quit (Ping timeout: 255 seconds). 17:36:52 -!- Sgeo has joined. 17:59:55 -!- monqy has joined. 18:02:04 -!- nooga has joined. 18:16:04 -!- elliott has joined. 18:16:04 -!- elliott_ has quit (Read error: Connection reset by peer). 18:30:54 I should be able to use calibre to work around Nook Touch's file support limitations, right? 18:40:48 -!- Sgeo_ has joined. 18:41:52 -!- Sgeo has quit (Ping timeout: 255 seconds). 19:01:06 -!- nooga has quit (Ping timeout: 250 seconds). 19:13:46 -!- nooga has joined. 19:17:59 -!- nooga has quit (Ping timeout: 244 seconds). 19:18:52 -!- nooga has joined. 19:24:35 -!- oerjan has joined. 19:26:36 oerjan joers oerasn an 19:27:06 hey oerjan unsafePerformIO $0 = $0; 19:27:33 -!- micahjohnston has left ("〆"). 19:27:44 Joe R'Jan 19:34:27 Gregor: Can GGGGGGGGGGGGC handle two consecutive non-pointer members? 19:34:37 You can't really tag the previous field in that situation. 19:34:52 what is 〆 ? 19:35:17 kanji of some kind, it seems 19:35:21 -!- elliott has left ("Leaving"). 19:35:23 For closing. 19:35:23 Phantom_Hoover: You have 1 new message. '/msg lambdabot @messages' to read it. 19:35:26 -!- elliott has joined. 19:38:26 -!- derrik has joined. 19:41:02 elliott: I assume you're referring to Fythe? 19:41:11 Gregor: No I am referring to GGGGGGGGGC 19:41:19 Well 19:41:24 GGGGC only uses tagging w/ Fythe. 19:41:28 GGGGC with Fythe's model of distinguishing literal values 19:41:38 Can that model handle consecutive non-pointers? 19:41:50 Remember what a Fythe value is? 19:42:04 Yes, but that doesn't answer my question :P 19:42:14 Yes, it does. 19:42:27 It tells me you didn't do it that way. 19:42:32 It cannot handle consecutive non-pointers, and it doesn't need to. 19:42:33 It doesn't tell me it can't be done that way. 19:42:37 Thank you. 19:42:53 I'll probably just put a tag on every word, then. 19:43:44 -!- derrik has left. 19:45:45 hey oerjan unsafePerformIO $0 = $0; <-- wat 19:45:55 oerjan: yep 19:46:30 = $0; does not parse afaik 19:46:44 oerjan: who said it was haskell 19:47:03 bonody 19:47:19 _start = (>>) main (return Unit); 19:47:19 main = (>>) (putStrLn _Cstr_0) (putStrLn _Cstr_1); 19:47:20 _Cstr_0 = (:) 72 ((:) 101 ((:) 108 ((:) 108 ((:) 111 ((:) 44 ((:) 32 ((:) 119 ((:) 111 ((:) 114 ((:) 108 ((:) 100 ((:) 33 [])))))))))))); 19:47:20 _Cstr_1 = (:) 71 ((:) 111 ((:) 111 ((:) 100 ((:) 98 ((:) 121 ((:) 101 ((:) 44 ((:) 32 ((:) 99 ((:) 114 ((:) 117 ((:) 101 ((:) 108 ((:) 32 ((:) 119 ((:) 111 ((:) 114 ((:) 108 ((:) 100 ((:) 33 [])))))))))))))))))))); 19:47:20 Unit; 19:47:22 []; 19:47:24 (:) x xs; 19:47:26 return $0 = $0; 19:47:28 (>>=) $0 $1 = seq# $0 ($1 $0); 19:47:32 (>>) = seq#; 19:47:34 #foreign import "std" "putStrLn#" 19:47:36 putStrLn = putStrLn#; 19:48:02 core? 19:50:23 oerjan: nope 19:50:26 well, yes and no. 20:01:45 Gregor: Erm, did prgmr create a default account called codu on your system? X-D 20:01:51 elliott: is that output from some program? 20:02:37 newsham: nope 20:02:42 hand-written 20:03:10 I see. do you want a psychological referral? 20:03:35 newsham: been there, done that. 20:03:35 elliott: I don't recall. I don't think so, I think I created it. 20:03:41 next q: whats it input for? :) 20:03:47 newsham: a hypothetical program 20:04:02 Gregor: What, an account called "codu"? Why would you want an account named that? 20:04:08 (My reasons for assuming they do are COMPLICATED) 20:04:14 and does "seq# $0 ($1 $0)" work because of some kind of memoization? 20:04:37 I don't see how memoisation is relevant 20:04:39 if its just hypothetical, why not use teh infexes? :) 20:04:40 Don't you just mean sharing? 20:05:04 elliott: yes, sharing of the result of seq# on $0 20:05:15 Prelude System.IO.Unsafe> let x = unsafePerformIO (print 99 >> return 0) 20:05:15 Prelude System.IO.Unsafe> x `seq` id x 20:05:16 99 20:05:16 0 20:05:19 memoizing the result the first time its computed 20:05:21 That's a basic property of all functional languages 20:05:23 It's not memoisation 20:05:25 It's just reducing a thunk 20:05:29 elliott: My main account is codu, because why not? 20:05:33 Well, sure, that's a kind of memoisation, but that seems backwards to me 20:05:47 elliott: yah, replacing the thunk with its result.. memoization. 20:06:01 newsham, hey, why is your name an example of the Curry-Howard isomorphism? 20:06:03 memotato, memotahtoe 20:06:14 newsham: it's more like memoisation is ak ind of thunk reduction. 20:06:19 hoover: afaik its not. 20:06:27 newsham, it is. 20:06:35 my name is "tim" 20:06:36 Well, your whois one, at least. 20:06:46 the whois is that because i think CH is wikkit cool 20:07:16 Pfft, it's not even dependently typed. 20:07:37 what isnt? my example? 20:08:26 Yes. 20:08:35 elliott: you are of course aware that haskell permits implementations to assume referential transparency and evaluate x more than once. 20:09:00 oerjan: of course 20:09:11 oerjan: I'm just saying that any implementation that _didn't_ reduce thunks in such a way would be completely braindead 20:09:14 and that ghc may have inlining optimizations which risk doing that. 20:09:19 since sharing is integral to doing just about /anything/ circular with Haskell 20:09:36 i.e., non-sharing implementations don't scale in a very major way in the physical universe 20:10:52 http://www.smbc-comics.com/index.php?db=comics&id=2245 20:11:17 newsham: Anyway, there is no sharing or thunks as such in my model 20:11:20 It's purely based on symbolic term rewriting 20:11:27 So the "sharing" is just in that it literally reduces the term 20:11:38 so why's the seq# needed? 20:11:48 Because otherwise your IO actions would happen in a totally random order? 20:12:12 elliott: but if there's no sharing, they can still happen in an odd order 20:12:15 because they can happen two times 20:12:23 elliott: in ghc you are _not_ guaranteed that a is evaluated first in a `seq` b 20:12:43 also when does io "happen" in term rewriting? 20:12:51 oerjan: hm really? 20:12:55 oerjan: what's the explicit guarantee? 20:12:57 anyway, this isn't GHC 20:13:04 newsham: Of course there's sharing 20:13:09 It's implicit in the term reduction model 20:13:16 the explicit guarantee is that both will be evaluated before the seq returns... 20:13:18 [10:08] < elliott> newsham: Anyway, there is no sharing or thunks as such in my model 20:13:26 yes, because it's not explicit 20:13:30 oerjan: right 20:13:39 newsham: Anyway, it "happens" completely unsafely; whenever (putStrLn# s) gets reduced, it prints out the line. 20:13:44 @google pseq 20:13:45 http://cs.hubfs.net/forums/thread/16353.aspx 20:13:45 Title: hubFS: THE place for F# - Using PSeq from powerpack 20:13:46 er 20:13:49 Of course it is totally unsafe and impure, but this is just the low-level, untyped implementation. 20:13:50 @hoogle pseq 20:13:50 Control.Parallel pseq :: a -> b -> b 20:13:52 The focus is simplicity and speed. 20:14:19 elliott: pseq does give such a guarantee though, and exists precisely because seq doesn't 20:14:40 http://www.thenewsh.com/~newsham/lambda/prelude.lam 20:15:16 oerjan: In my model, the semantics are simple: when reducing (seq# a b), if a can be reduced, then it will be, within the seq# application; otherwise, the expression will be replaced by b. 20:17:13 Gregor, fix glogbot's rsync already. 20:20:12 pikhq_: http://www.reddit.com/r/programming/comments/ie7ze/lambdas_in_c/ post ur real lambdas 20:21:14 the lambada calculus 20:22:19 # builtins: 20:22:24 newsham, you're a bad person. 20:22:46 who needs closures when you have c 20:22:58 Closures? 20:22:59 What? 20:23:03 http://www.reddit.com/r/programming/comments/ie7ze/lambdas_in_c/ 20:23:08 rather 20:23:12 13:20:13 < elliott> pikhq_: http://www.reddit.com/r/programming/comments/ie7ze/lambdas_in_c/ post ur real lambdas 20:23:51 Ah. 20:23:59 -!- zzo38 has joined. 20:24:31 phantom: at the very least I wanted a way to display numbers as ascii 20:24:35 i do have numbers as lambdas, too 20:24:53 newsham, that's a little more forgiveable. 20:25:04 (\f -> f a b c d (... sixty four arguments ...)) 20:25:04 Also have I mentioned my lambda calculus IO monad. 20:25:07 fast lambda numerics 20:25:38 phantom: actually I dont see numbers as lambdas in the prelude.. but i've written em! :) 20:26:35 Pah, I implement numbers in the place they _should_ be: the type system. 20:26:55 Phantom_Hoover: I can see nothing wrong with glogbot's rsync. 20:27:20 elliott: real men implement numbers in a language that doesn't have a distinction between type system and values 20:27:32 elliott: It's actually pretty close to the same thing. 20:27:35 coppro: real men implement numbers in epigram two 20:27:50 oops 20:27:51 copumpkin: 20:27:53 elliott: my "lambda" is just plain ole vanilla untyped lambda calc 20:28:00 newsham: vanilla, more like villain 20:28:07 Vanillain? 20:28:14 elliott: Mine just return a struct with closed variables instead of a raw function pointer. 20:28:19 Gregor, http://sprunge.us/WXgg 20:28:24 would a villain help me do this? http://www.thenewsh.com/~newsham/x/obf2.py 20:28:42 yes 20:28:53 that looks like the work of a villain alright 20:28:57 newsham, ow, my eyes. 20:29:22 Phantom_Hoover: ... fail. 20:29:32 Phantom_Hoover: glogbot tells you the rsync path for the channel you ask it in. 20:29:41 If you ask it in PM, it'll tell you where the hypothetical PM logs would be. 20:29:52 -!- foocraft has quit (Ping timeout: 255 seconds). 20:29:54 Gregor, I blame elliott. 20:30:03 obf2.py is a translation of http://www.thenewsh.com/~newsham/lambda/primes2.lam with a very minimal evaluator 20:30:03 Gregor: that sounds somewhat noisy 20:30:21 oerjan: E_DONTCARE 20:30:46 E_GLOGBOTBANNEDFORSPAMMING 20:30:51 perhaps I should translate it to SKI. 20:30:54 that might be fun 20:31:12 Gregor, more relevantly, it's not at all clear that it works that way. 20:31:14 oerjan: E_FORONEITRESPONDSINNOTICEANDFORTWOITONLYRESPONDSWHENASKEDJUSTLIKEEVERYOTHERBOT 20:31:22 newsham, automated quite easily. 20:31:43 See Lazy K's LC → Lazy K compiler, for instance. 20:31:45 E_GREGORTHINKSIMSERIOUS 20:32:46 That Lazy K interpreter sucks. It leaks memory like a seive. 20:33:18 ph: i'd still have to write the code to expand macros, and translate, and minimize the number of parens. 20:33:19 Phantom_Hoover: There 20:33:22 but yah.. 20:33:24 (You incompetent morons >_< ) 20:33:29 oh and also write a small set of ski prims 20:33:49 !glogbot_help 20:34:06 !logs 20:34:19 !die 20:34:23 !carpal tunnel syndrmoe 20:35:56 elliott: Ohhey, you can type symbols above numbers (and presumably numbers, too) 20:36:06 Gregor: i copied 20:36:15 ... 20:36:27 im waiting for the new os x so i dont have to reinstall twice 20:36:34 (once to wipe it for sending to apple) 20:36:38 (once to inevitably upgrade after) 20:38:41 ph: i'd still have to write the code to expand macros, and translate, and minimize the number of parens. 20:38:49 This is why I just use Lazy K's. 20:38:57 Also, your IO monad is a bit weird. 20:38:58 one install to wipe them all 20:39:37 Phantom_Hoover: is yours just state realworld? 20:39:48 where realworld is i guess the input and output streams in lazy k 20:39:52 elliott, yeah, basically. 20:40:16 I can't remember the details; realworld is a triple of somethin. 20:40:20 *something 20:41:25 Wait, yeah, it's what you said. 20:41:41 No idea what newsham's is, though. 20:42:55 in mine I just used a state monad that passes around a dummy value to sequence my "io" 20:43:03 elliott: stop that 20:43:11 coppro: stop being named coppro 20:43:25 newsham, does that actually work? 20:43:39 -!- foocraft has joined. 20:43:43 As in, does it actually force sequencing? 20:43:51 ISTR having a hell of a time getting mine to work. 20:44:40 well his io model is probably different 20:44:50 phantom: i've used it successfully :) 20:44:50 I guess. 20:45:07 Oh, of course, your ints and stuff are all built-in. 20:45:37 yah. i'm using builtin ints. and I have the ability to print a builtin string (but not manipulate it.. its more of a symbol than a string) 20:46:09 here's an example program that uses bind_ to sequence IO http://www.thenewsh.com/~newsham/lambda/hanoi.lam 20:48:30 Someone recommend one of the Schemes in Debian's repository to me; I can't pick. 20:48:48 sisc 20:48:59 it's java, but it's rigidly rfivers-compliant. 20:49:03 Not there. 20:49:06 yes it is 20:49:08 apt-get install sisc 20:49:23 wtf, it's not in squeeze 20:49:31 Phantom_Hoover: get the deb from http://packages.debian.org/wheezy/main/sisc then 20:49:33 * oerjan thought elliott was misspelling sigh there 20:54:38 -!- myndzi has quit (Ping timeout: 250 seconds). 20:57:06 newsham, wait did I link you to my quasi-monadic IO thing? 20:57:10 Do you even care? 20:57:19 (Noöne else did. I was so sad.) 20:57:20 -!- myndzi has joined. 20:57:35 i dont know if you did, i dont know if i care.. more info required 20:57:44 i agree with newsham 20:57:54 newsham, http://esolangs.org/wiki/User:Phantom_Hoover/io.scm 20:58:32 ty, i'll take a looksy (but not right now) 20:59:17 * Phantom_Hoover notes that he still hasn't cleaned up the bind function after it was strictified to no avail. 21:02:03 http://esolangs.org/wiki/D1ffe7e45e no top 21:02:04 stop 21:02:13 -!- quintopia has quit (Remote host closed the connection). 21:02:13 dieeeeeeee 21:02:28 Stop. This is too stupid. 21:02:30 elliott did you see madk's pogo interpreter('s source code) 21:02:37 :( link 21:02:52 http://dl.dropbox.com/u/10116881/esoteric/PoGo.zip 21:03:01 oh dropbox famous code distirbution service 21:03:09 its good code 21:03:16 oh is this 21:03:17 blitzbasic 21:03:34 I'm not sure which is sadder, the video or the Christians trying and failing to explain why it's wrong http://www.youtube.com/watch?v=myfZ8hmmApE 21:03:50 it does a case to assign every command a number 21:03:57 and then does a case on the numbers 21:04:00 Oh, there's one that hits a relevant point 21:04:11 http://prog21.dadgum.com/21.html 21:04:11 http://prog21.dadgum.com/83.html 21:04:13 -!- quintopia has joined. 21:04:13 -!- quintopia has quit (Changing host). 21:04:13 -!- quintopia has joined. 21:04:13 blitzmax 21:04:23 monqy: this is impressive code 21:04:37 wheres the chuck norris 21:04:58 I'm not sure which is sadder, the video or the Christians trying and failing to explain why it's wrong http://www.youtube.com/watch?v=myfZ8hmmApE 21:05:04 --Sgeo "I disproved God with Prolog" Sgeo 21:05:06 see Function masculinity 21:05:10 (and where it's called) 21:05:21 this is good soundtrack for god disproving 21:05:49 Sgeo_: That's hilariously awful 21:05:55 theory (cantor) 21:06:01 this is great 21:06:01 i like lines 294-302 21:06:09 this is really great 21:06:23 Ah, yes, A Euro B 21:06:31 lmao 21:06:45 Artist: Reel Big Fish 21:06:45 Buy "Beer" on: iTunes 21:06:45 Show more 21:06:50 disproving that god exists to the song: Beer 21:07:07 this is the perfect video 21:07:10 can i get it on bluray 21:07:14 want to archive it forever 21:07:41 And the little cop-out at the end just makes it all the sweeter 21:07:50 Sgeo_, oi, fix diagonalfish. 21:08:02 i like the comments 21:08:08 Phantom_Hoover, what's wrong with it this time? 21:08:12 monqy, I'm SJGster >.> 21:08:18 http://www.youtube.com/watch?v=Iu6lgNgAH38 21:08:24 also best video 21:08:28 Sgeo_, half the files don't work. 21:08:31 "Location: Admiring them boobs" 21:08:32 thats not a location 21:08:37 Oh god please let the karaoke still be ther. 21:08:38 *there 21:08:47 THANK GOD 21:08:51 "I do suspect that the idea of an omniscient being can be mathematically disproven, but I don't think your video does that." 21:08:53 lol 21:09:07 Wait, I can't; Sgeo_ disproved him with Prolog. 21:09:24 now we have no morals 21:09:48 elliott: His mouse obeys the law of the excluded middle :/ 21:09:48 Sgeo_, also none of the subdirectories work. 21:09:55 `addquote elliott: His mouse obeys the law of the excluded middle :/ 21:09:59 476) elliott: His mouse obeys the law of the excluded middle :/ 21:10:00 `quote 21:10:02 278) mtve, now he's an expert idler. mtve: kitty kitty kitty 21:10:06 `quote 21:10:06 `quote 21:10:06 `quote 21:10:07 `quote 21:10:07 72) Oranjer: the taylor's series is also alternately fnord as follows ( i'm using the latex notation here): david ben gurion signed the compensation agreement with germany when there was considerable division over these issues, because these are speculations without " any historical basis". 21:10:07 `quote 21:10:08 `quote 21:10:08 `quote 21:10:08 251) Maybe they should just get rid of Minecraft. If more people want it someone can make using GNU GPL v3 or later version, with different people, might improve slightly. 21:10:10 297) `addquote I'm a bit 'tarded. (NOTHING PERSONAL!) 21:10:11 352) django is named after a person? thought it would be a giraffe or something 21:10:11 408) `quote django ​352) django is named after a person? thought it would be a giraffe or something \ 407) `quote django ​352) django is named after a person? thought it would be a giraffe or something thankfully only one thankfully only two 21:10:13 173) i think of languages as tools, there is no holy grail of languages even if there's no holy grail, that doesn't mean cups of crap is ok 21:10:14 115) I don't know that I've ever heard apocalypi described in terms of depth ... 21:10:17 oh, the django sequence 21:10:21 a good sequence, that one 21:10:24 Phantom_Hoover, I haven't finished manually making sure nothing links to anything malicious 21:10:31 Phantom_Hoover, what directory do you want? 21:10:36 Sgeo_, all of them. 21:10:50 Also, fix your crack pairings so they include all 4 quadrants. 21:11:05 Phantom_Hoover, the crack pairings generator is obsolete 21:11:09 -!- Nisstyre has joined. 21:11:16 why am i reading these words on my screen 21:11:17 More tables have been added to the thread it's based off, but then the thread was closed 21:11:34 Sgeo_, a tragedy indeed. 21:11:44 Nisstyre: who's nissing my tyres 21:11:46 Related Videos: "2x2=5? Good math trick!" 21:11:47 and, also, can they stop 21:11:59 elliott: wat 21:12:00 NihilistDandy: youtueb intelectual 21:12:07 Nisstyre: i want my tyres unnissed 21:12:12 This much is obvious 21:12:13 nissing probably does bad things to my car 21:12:14 lol 21:12:25 so which was it, wiki or /list 21:12:33 that's the only two ways anyone ever finds us 21:12:43 so, this channel is for Brainfuck, GolfScript, etc..? 21:12:45 Poor, naïve elliott. 21:12:45 yep 21:12:49 also intercal, underload 21:12:52 Nisstyre, ostensibly, yes. 21:12:54 // 21:12:55 erm 21:12:56 /// 21:12:56 etc. 21:13:01 elliott: I got here through #haskell 21:13:03 also the official bf joust channel 21:13:05 ...but usually we're offtopic 21:13:07 Wait, we were actually talking about esolangs only 10 minutes ago or so. 21:13:11 NihilistDandy: oh well that's just personal recruitment. 21:13:15 lol 21:13:15 Phantom_Hoover: yikes 21:13:24 NihilistDandy, you didn't come through during the Great Channelling, did you? 21:13:30 I don't think so, so 21:13:32 *no 21:13:46 Truly, 'twas a day none who saw it could ever forget. 21:13:55 I think elliott dropped into #haskell and said "hey, somebody come to #esoteric" 21:14:06 NihilistDandy, ah, no, this was greater still. 21:14:32 I dropped into #haskell and told them to come to here, and then I told the one guy who showed up to join #ooc-lang. 21:14:52 I got here by doing /j #brainfuck out of curiosity 21:15:13 Nisstyre: well, you're in the right place 21:15:19 unlike the people who somehow think freenode has religious channels... 21:15:20 Latest comment on that 2+2=5 video: Aλγεβρα. the best part of mathematics. God i adore it. 21:15:23 * NihilistDandy sighs 21:15:31 LMAO Aλγεβρα 21:15:38 that's amazing 21:15:40 #esoteric is like the only place #haskell isn't considered esoteric. 21:15:43 i remember the guy who thought this was a hiphop channel but i forget his name 21:15:45 amazing guy that 21:15:45 ;-) 21:15:59 Truth 21:16:04 newsham: i would say that the top tier intellectuals of #haskell are #esoteric quality :D 21:16:11 unlike all those terrible _practical_ folk 21:16:26 monqy: Three people in the last 24 hours seem to have thought it's some kind of tech support channel 21:16:31 oerjan became so top-tier he miraculously stopped being in #haskell any more, he was just that #esoteric 21:16:41 elliott: surprising amount of people in #python are Schemers/Haskellers 21:16:50 Nisstyre: you may be interested in our wiki: http://esolangs.org/wiki/Main_Page 21:16:53 But python's not a language~ 21:16:59 and occasionally MLers and Ocamlers 21:17:07 yeah, there's a lot of people in #python who are there because of... bad life decisions i guess? 21:17:13 rather than innate character flaws such as enjoying python 21:17:15 Heavy drinking 21:17:19 yes 21:17:21 NihilistDandy: no, PHP's not a language 21:17:26 elliott: seems like they'd rather join #coq though ;-) 21:17:31 Nisstyre: It's a reference to an earlier conversation 21:17:38 oh ok 21:17:40 newsham: better than those ruffians in #agda 21:17:40 (or agda) 21:17:50 NihilistDandy: [asterisk]trolling session 21:18:00 heh 21:18:09 #python has got to be the least useful channel on all of ircdom 21:18:26 I mean, what do they even talk about? Ruby? 21:18:26 newsham: I kind of agree 21:18:32 it's too fascist about staying on topic 21:18:34 yeah #python is like 21:18:37 you ask a question 21:18:41 fifteen people who don't know the answer 21:18:43 waste five hours of your time 21:18:47 nihil: they talk about how stupid whatever question was just asked is 21:18:48 by trying to get the source code to your entire project 21:18:54 then they tell you to completely restructure and write everything 21:18:56 elliott: #ubuntu is the same way 21:18:59 because they don't know how to solve your problem 21:19:02 and part of the reason I switched to arch 21:19:02 #programming is the same way 21:19:12 Nisstyre: my experience with #ubuntu is that it's so high-traffic you literally never get a response. 21:19:14 is there really a 21:19:16 #programming 21:19:17 unless someone just pipes ubottu at you unjustifiably 21:19:18 really??? 21:19:26 monqy: Yeah. It's depressingly awful. 21:19:32 no but theres a ##programming 21:19:40 there's also a #linux 21:19:44 and it's a pretty boring channel 21:19:46 Nisstyre: also, you could have just switched to Debian :-) ...although #debian isn't that good either 21:19:55 although it _is_ unofficial, IIRC, maybe it's actually ##debian 21:19:59 How's #gentoo? 21:20:00 the official Debian is on OFTC 21:20:01 elliott: well I can't even remember why I decided to try Arch now 21:20:07 NihilistDandy: full of Gentoo users, I'd presume, so... "yeah" 21:20:10 I think it was just on someone's recommendation 21:20:11 lo 21:20:13 *l 21:21:18 yeah i think #ubuntu is objectively the least helpful channel on irc 21:21:21 -!- variable has left ("I found 1 in /dev/zero"). 21:21:31 We should do a study 21:21:38 I've never been in any of these channels 21:21:43 NihilistDandy: it's full of this guy http://www.filehurricane.com/photos/7162007115229PM_ricer_10.jpg 21:21:51 monqy: go to ##php its like going to a zoo 21:22:00 -!- variable has quit (Remote host closed the connection). 21:22:00 Nisstyre: I might cry a little 21:22:11 elliott: using php is like going to a zoo 21:22:19 oblig. http://funroll-loops.info/ 21:22:20 a zoo where all of the animals are in the same cage 21:22:28 (aka one massive namespace for everything) 21:22:29 Nisstyre: no, it's interviewing for the position of an animal at the zoo 21:22:46 elliott knows this because he was raised in the zoo. 21:22:50 yes. 21:22:52 lol 21:22:57 gentoo http://funroll-loops.info/computer.jpg 21:22:58 elliott: that is not true. i have determined that like 10% of #ubuntu users actually get answers. #plover is now the least useful. 21:23:16 Hey, now, you can't blame the PHP users. They lack the higher cognitive functions to operate as we do.~ 21:23:20 since there are only four people there counting me, and i haven't gotten an answer to the question i've asked three times now 21:23:22 Or, wait, was that animals? 21:23:26 I can't remember anymore. 21:23:33 you only get an answer if your problem is something like "I accidentally removed the gnome panel how do i get it back???" 21:23:41 NihilistDandy, yeah, I feel bad for mocking elliott about it. 21:23:42 so it's not like there's too much traffic for people to see my question 21:23:44 whats plover 21:23:45 quintopia: whats it about 21:23:49 elliott: Plover 21:23:56 whats plover 21:24:10 starting on php when i was eight years old is like 21:24:11 Man, CVS is *so freaking bad*... 21:24:13 open-source stenographry software 21:24:15 those documentaries about ELEVEN YEAR OLD CHAIN SMOKERS 21:24:22 thats exactly what its like to grow up on php 21:24:33 you don't know any world outside of your infestation 21:24:43 What a great phrase 21:24:55 I cannot believe there exists any CVS repositories still. 21:25:00 elliott, yeah, there should be a minimum age before you can be exposed to programming. 21:25:02 who would smoke a chain? 21:25:03 pikhq_: People still use CVS? 21:25:08 cvs is great, it's like c++ 21:25:12 just trying to like 21:25:13 understand it 21:25:14 newsham, heavy smokers. 21:25:15 is a fun experience 21:25:16 NihilistDandy: Yes. 21:25:17 if you forget it's serious 21:25:18 replace_this_one_character_in_a_string() <- how you name php functions 21:25:25 Phantom_Hoover: or maybe we should just ban PHP altogether 21:25:35 i disagree completely.. you should be able to program as early as 5yrs old, but you shouldnt be allowed to use a computer until you're 12. 21:25:38 I thought it had gone the way of the dinosaurs and the Dodge Dart 21:25:45 hurray! i got a question answered! 21:25:46 git cvsimport is pretty much the only way to make it usable. 21:25:50 newsham, that's good too. 21:25:50 newsham: reminds me of that eler strip... 21:26:06 * elliott tries to find it 21:26:18 wtf it's fourohfoured 21:26:19 Likewise, git-svn is the only way to make Subversion usable. 21:26:25 newsham: http://geekz.co.uk/lovesraymond/wp-content/images/ep032.jpg 21:26:27 newsham: pretend this loads. 21:26:42 It probably doesn't help that I've only started to understand *any* version control system after figuring out Git. 21:26:55 The various distributed VCSs make sense. 21:26:55 oh, over two years since eler updated 21:27:00 dead dead dead 21:27:04 i tried, i cant. :( 21:27:17 (over four since the last _real_ update) 21:27:17 can you pretend to describe it? 21:27:18 im reading http://esolangs.org/wiki/D1ffe7e45e now 21:27:21 newsham: ok. pretending. 21:27:24 Non-distributed ones *literally make no sense*, and I have no idea how anyone uses them without resorting to pulling it into git. 21:27:24 pikhq_: I like git and hg, mostly 21:27:28 elliott, yeah, but remember the Prophecy? 21:27:31 monqy: should i do a world-famous dramatic reading is it required... 21:27:32 NihilistDandy: I prefer git, but hg's alright. 21:27:33 Phantom_Hoover: which prophec 21:27:34 y 21:27:40 pikhq_: git = hg 21:27:44 same damn thing 21:27:46 Its command set is an expansion of BrainFuck. 21:27:56 elliott: The differences are slight, I agree. 21:27:59 madk... 21:28:00 elliott, the one that it gets updated in December 2012, and the shock brings the net down, 21:28:13 http://importantshock.wordpress.com/2008/08/07/git-vs-mercurial/ 21:28:14 elliott: Making it not like "emacs vs. vim" but more like "emacs vs. xemacs". :P 21:28:42 so uh, I met be getting paid to write php. I'm not sure if the disgust I'll feel every second is worth the money. 21:28:42 pikhq_: and either side you take youre still advocating for a system whose central idea is "lets just store the entire tree on every commit and compress it if it gets too much" 21:28:45 *might 21:28:48 I thought the analogy was gunny, if nothing else 21:28:51 *funny 21:28:52 so like "version control system" more like "tree list system" 21:28:55 Its command set is an expansion of BrainFuck. 21:29:01 Nisstyre: no. homelessness is better. 21:29:05 take it from me. 21:29:08 php. not even once. 21:29:11 I fixed that because it's just too Far. 21:29:22 BrAiNfUcK 21:29:23 elliott: maybe I can write a php code generator in Haskell 21:29:31 everyone loves capitalising brainfuck 21:29:38 elliott: Well, yes, the model is more "Let's implement a filesystem that's amenable to versioning" than "Let's implement a version control system". 21:29:45 Nisstyre: just do ghc core -> php 21:29:48 Nisstyre: it'll be slow as fuck, but, ... 21:29:52 lol 21:30:07 haha lol Phantom_Hoover 21:30:09 failed at the capitalisation 21:30:09 himself 21:30:25 elliott, please shut up about that. 21:30:41 Phantom_Hoover: there is universal agreement on that, the only disagreement is when its the first word in a sentence 21:30:48 There is no evidence beyond a single word in the readme that you're right, and you're being idiotically pedantic about it. 21:30:59 Phantom_Hoover: er, you realise that there has never been any dispute about this? 21:31:05 the only argument i had with ais was about first-sentence positioning. 21:31:06 until now 21:31:14 we agree unanimously that its first-letter uncapsed in the middle of a sentence. 21:31:21 there is absolutely no evidence in the original distribution to suggest otherwise whatsoever. 21:31:29 and a few pieces of evidence in favour. 21:31:40 Equivalent of BrainFuck [-] 21:31:41 missed a spot 21:32:02 Although d1ffe7e45e has all the commands that BrainFuck does, the language may or may not be able to achieve an Arbitrary effect at an arbitrary point so it is difficult to determine whether or not it is Turing-complete. 21:32:06 two spots 21:32:36 elliott, in any case, 'Brainfuck' is well within the bounds of acceptability; 'BrainFuck' is not. 21:32:48 elliott: And, of course, the only really fundamentally important and *so absurdly better* bit about git/hg/etc. is that they're distributed. This is what they get right that everything else does not. 21:32:49 yeah but if youre gonna brick peoples heads in for capitalisation 21:32:52 its pretty ironic to get it wrong yourself 21:33:06 *it's 21:33:12 pikhq_: whats your excuse for not using darcs 21:33:21 elliott: Meh. 21:33:24 Nisstyre: you're not capitalising your statements, you're already outside the bounds of "standard" written english 21:33:28 what's your excuse? :p 21:33:32 elliott: Apathy. 21:33:33 *English 21:33:35 You know what, there's no point in this discussion. 21:33:42 Nisstyre: lol 21:33:45 I am laughing out loud. 21:33:48 elliott: maybe I can write a php code generator in Haskell 21:33:57 PHP 21:33:58 haskell 21:33:59 Elliott, perhaps I can write a generator for PHP code in the Haskell language. 21:34:05 so uh, I met be getting paid to write php. I'm not sure if the disgust I'll feel every second is worth the money. 21:34:12 It is possible that I am going to be paid to write PHP code. [...] 21:34:13 the language defined by which haskell specification 21:34:18 Nisstyre: need i go on 21:34:41 monqy: the Glasgow Haskell Compiler. 21:34:59 whatever revision is the latest 21:35:03 Nisstyre: That's not a spec, that's an implementation of a spec. 21:35:06 I don't really know 21:36:29 hello last night 21:36:39 hi monqy 21:36:44 im last night 21:37:05 its great to be last nite cuz when youre last nite everythings so awesome 21:37:07 ok 21:37:18 * elliott twiddles thumbs 21:37:18 I think the mathematical disproof that I'm thinking might work is a bit as shaky as "Can God make a rock..." except applied to omniscience. Like asking God to make 1+1=3, but knowledge-wise 21:37:20 So, :/ 21:37:43 its easier to disprove things when you throw omnipotence into the mix 21:37:46 coppro: you look weird 21:38:02 Sgeo_: have you ever heard of theological noncognitivism? 21:38:14 theology 21:38:30 no, theological noncognitivism 21:38:35 "Theological noncognitivism is the argument that religious language, and specifically words like "god", are not cognitively meaningful." 21:38:38 haha that's great 21:38:46 elliott: it's more or less true 21:38:49 you instantly win every argument because they use words you don't like 21:38:59 it doesn't really have any primary attributes that you can use to describe it 21:39:08 yeah but its kind of like saying "Russell's set" doesn't mean antyhing 21:39:12 just because it's paradoxical 21:39:23 Nisstyre, I guess to an extent, I agree, since unless you define "God", it's meaningless to have a discussion. Any two people will have two or more different ideas about what God is. 21:39:25 and therefore Russell's paradox isn't real 21:39:25 you can only define it in terms of "God isn't this, or God is like this" 21:39:34 Sgeo_: exactly 21:39:50 you can't debate something where you have a completely different idea of what the subject is 21:40:00 elliott: thanks 21:40:04 coppro: yw 21:40:14 Well, considering that the definition of God seems to be a moving target when the subject of proof or disproof comes up, it seems like a futile effort 21:40:59 Which is why any disproof should contain a description of what sort of God is disproved. 21:41:01 >.> 21:41:24 god cant exist wnhere god=onkey: proof: if evoluations is true then why monkeys?? 21:41:25 All right, let's go from an abstract perspective 21:41:30 qed 21:41:37 What are the minimal axioms a God must satisfy? 21:41:53 there aren't any 21:41:57 it can't literally be anything you want 21:42:09 NihilistDandy, does Zeus count as a god? 21:42:10 "I believe that God is really all of the whales in the ocean" 21:42:17 Sgeo_: Sure, why not? 21:42:30 Nisstyre: thats a rather useless definition 21:42:31 If you can disprove one god, I don't see why you couldn't disprove them all. 21:42:43 useless definitions of god are best definitions of god 21:42:43 Do sufficiently advanced aliens count as gods? Do the Nox count as gods? Does Q count as a god? 21:42:44 in that, you might as well have a word fodijg, which means nothing. 21:42:58 Nisstyre: A category can be anything you want, it still satisfies basic rules. 21:43:21 NihilistDandy: okay, it has to be un-observable 21:43:38 which my definition of whales wouldn't fall under 21:43:38 Are the Goa'uld gods? Are the Ori? (Not too keen on SG-1's ever-changing definition of "god", which in order to exclude the Ori, IMO, requires "good") 21:43:40 miracles??? 21:43:40 Sgeo_: First we have to define first principles, then we can decide what qualifies. :D 21:44:21 Magnets 21:44:28 Rainbows 21:44:54 Nisstyre, the God of Abaham, Isaac, and Jacob is observable when it wants to be observable... 21:45:01 They all have in common the fact we don't know how they work NihilistDandy 21:45:12 *Abraham 21:45:16 Sgeo_: it is? 21:45:16 amaals 21:45:22 Nisstyre: People didn't know how groups worked until they tried. :/ 21:45:27 fucking miracles 21:45:28 honk 21:45:33 re miracles??? 21:45:35 this is intellectual 21:45:54 Benevolence, for instance, is not an axiom of godhood. There are evil (or at least dickish) gods in mythology. 21:45:54 Nisstyre, God speaking to Moses is something that Moses is capable of noticing 21:46:17 LMAO Aλγεβρα <-- no one told them it's arabic, not greek? 21:46:27 oerjan: Aλγεβρα 21:46:30 oerjan: Exactly :/ 21:46:35 the most artistic of sciences 21:46:47 no.1 axiom of gods: theres no axioms of gods 21:46:58 /go wild/ 21:47:07 monqy: Fight Club is not a well-defined mathematical object. 21:47:35 Oh god, theology. 21:47:42 NihilistDandy, yes it is. 21:47:44 hi phantom_hoover 21:47:44 I see what you did there 21:50:35 -!- Nisstyre has quit (Ping timeout: 260 seconds). 21:51:31 -!- Nisstyre has joined. 21:52:13 I go to clean up the shrapnel from a teabag and you're discussing the definition of god out of nowhere. 21:52:50 `addquote I go to clean up the shrapnel from a teabag and you're discussing the definition of god out of nowhere. 21:52:52 477) I go to clean up the shrapnel from a teabag and you're discussing the definition of god out of nowhere. 21:53:13 the word God is polymorphic 21:53:49 The word Polly is godmorphic. 21:55:01 The polymorph is god. 21:55:29 fuck 22:01:56 "So it follows that to proove the existence or necessity of the number one will be to prove the existence of God." 22:01:59 http://www.youtube.com/watch?v=5lD4Ze9KtHI 22:02:53 re you searching for youtube vieos just so you ancomment on them 22:03:04 (Basically, he used the Bible to say "God can be identified with 1", and I think is running with it... despite previously having claimed that this won't require the viewer to trust the Bible as an authority) 22:03:18 elliott, no, not just so I can comment 22:03:18 this music isnt classy enough 22:04:01 play him off keyboard cat started playing in another cat as it started 22:04:03 it was good 22:04:20 @TheDcac i didnt say if you hated him i just said why dont you want him to exist? 22:04:20 this proof is boring 22:04:21 Unknown command, try @list 22:04:21 besides half of what we believe in science is an educated guess anyway 22:04:21 ThePlatoon4 2 days ago 22:04:21 monqy: not enough inheritance? 22:04:33 http://www.walkinginfreedom.blogspot.com/ 22:08:44 im going to look at the d1ffe7e45e interpreter 22:09:08 code.txt "your code goes here" 22:09:46 you invent your own interp 22:09:56 The interpreter uses an unbounded tape size, but due to technical limitations will stop being unbounded if the tap size reaches 2^63 cells. 22:10:39 lol 22:11:08 `quote "The interpreter uses an unbounded tape size, but due to technical limitations will stop being unbounded if the tap size reaches 2^63 cells." --d1ffe7e45e interpreter 22:11:09 No output. 22:11:17 `addquote The interpreter uses an unbounded tape size, but due to technical limitations will stop being unbounded if the tap size reaches 2^63 cells. 22:11:18 478) The interpreter uses an unbounded tape size, but due to technical limitations will stop being unbounded if the tap size reaches 2^63 cells. 22:12:45 the source code still has a bunch of functions left in from the pogo interpreter 22:12:57 like bottles and masculinity 22:13:10 The problem was posed by John McCarthy as follows. We pick two numbers a and b, so that a>=b and both numbers are within the range [2,99]. We give Mr.P the product a*b and give Mr.S the sum a+b. The following dialog takes place: 22:13:10 Mr.P: I don't know the numbers 22:13:10 Mr.S: I knew you didn't know. I don't know either 22:13:11 Mr.P: Now I know the numbers 22:13:11 Mr.S: Now I know them too 22:13:13 zzo and zzo 22:14:27 -!- eitan_ has joined. 22:14:46 -!- eitan_ has changed nick to variable. 22:14:54 good dialogue 22:15:26 oh erm what is this mail i have received 22:16:00 cheap viagra 22:16:07 for less 22:16:11 -!- variable has quit (Remote host closed the connection). 22:16:14 male enhancement 22:16:18 female enhancement 22:16:23 -!- variable has joined. 22:16:49 gmail why are you being slow 22:16:55 im going to slit your throat and eat your blood-- thanks for being fast 22:17:03 oh now youre not loading the mail 22:17:06 ill slit your throat and eat your bl 22:17:08 eat your bl 22:17:08 bl 22:17:09 come on 22:17:10 :( 22:18:04 firefox 5 whatsnew screen has a picture of windows im not using windows. it also asked me if i wanted to make firefox my default browser. how rude 22:18:12 whats an "awesome bar" 22:18:18 I don't seem to have one 22:18:36 everyone has one 22:18:47 if its insufficiently awesome beat your head against a wall until it is 22:18:48 or just use chrome 22:18:49 oh it's just the "location bar" 22:19:58 yeah i usually use chromium 22:20:06 but i also have firefox for reasosn 22:20:28 http://support.mozilla.com/media/img/wiki/morehelp.nurse.png 22:21:21 im scacred 22:22:49 omg gmail load 22:23:12 did it die 22:23:24 my gmail is fast... 22:24:16 its fast now 22:27:56 -!- MigoMipo has quit (Read error: Connection reset by peer). 22:42:08 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 22:52:54 -!- variable has quit (Read error: Operation timed out). 23:00:49 -!- elliott has quit (Ping timeout: 258 seconds). 23:04:13 -!- hagb4rd has quit (Ping timeout: 255 seconds). 23:08:55 Conclusion: MigoMipo = copumpkin = variable = elliott = hagb4rd. 23:10:12 -!- copumpkin has joined. 23:10:13 -!- copumpkin has quit (Changing host). 23:10:13 -!- copumpkin has joined. 23:12:27 Phantom_Hoover: you're just saying that to hide the fact that they are all your sockpuppets 23:12:36 -!- variable has joined. 23:12:51 oerjan, quiet, you. 23:19:46 or to hide the fact that it was your fault no one spoke in this channel for over half an hour 23:19:56 also you ran off five people 23:20:02 Now I invented the second pokemon card puzzle, which is also "win this turn". Maybe the third one will then, instead, be "maximize your chances of winning". 23:22:33 Even more goals can be added in files written in the future. 23:23:26 Or some with special rules during the game (Pokemon Card GB2 has some opponents who play with a special rule) 23:26:49 Well, that's fun. musl now seems to have hit a compile bug. 23:26:53 Compiler, even. 23:33:14 Try to win at these two games: http://zzo38computer.cjb.net/textfile/miscellaneous/pokemon_card/puzzle.1 and http://zzo38computer.cjb.net/textfile/miscellaneous/pokemon_card/puzzle.2 23:33:56 -!- variable has quit (Remote host closed the connection). 23:34:24 zzo38: I THROW THE CARDS ON THE FLOOR AND CALL THE OTHER KID A BITCH 23:34:38 -!- variable has joined. 23:34:49 `quote underpants 23:34:50 No output. 23:34:53 :( 23:35:00 `quote cliff 23:35:02 161) cpressey: I have actually done a waterfall-model project that almost worked That's where you have a flexible kayak that bobs and weaves between the rocks as it plummets off the cliff 23:35:20 NihilistDandy: Calling your opponent a bitch and stuff isn't going to help you to win the game. Especially since your opponent will not even get a turn. 23:35:25 `pastequotes Phantom_Hoover 23:35:26 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.19033 23:35:52 I was sure that was addquoted. Ah, well. 23:36:11 could've been beleeted 23:36:28 Nah, it wasn't in hindsight. 23:38:00 Can you find the proper way to win? 23:39:19 "I think we're about due for an album anyway." 23:39:23 (6 hours ago) 23:39:24 What. 23:39:59 Sgeo_, that AH's twitter or...? 23:40:10 Phantom_Hoover, someone on Reddit 23:40:16 Ah, right. 23:40:22 http://www.reddit.com/r/homestuck/comments/ie7s5/hussie_is_not_working_on_the_eoa_but_hes_making/c231wtz 23:41:16 Yesyesyes. 23:45:04 ...we JUST HAD 2 albums released 23:45:09 what's EOA? 23:45:15 End of Act 23:45:28 End Of Act 5 is coming sometime soon, presumably 23:51:48 -!- nooga has quit (Ping timeout: 258 seconds). 2011-07-02: 00:09:21 Slurkle. 00:09:23 Actually, gaaah undefined behavior. 00:09:30 OK, so who remembers when we tore into http://xkcd.com/881/ a while ago? 00:18:48 -!- copumpkin has quit (Ping timeout: 246 seconds). 00:19:13 Wait, it was just oko and cpressey. Oh well. 00:19:13 -!- copumpkin has joined. 00:19:13 -!- copumpkin has quit (Changing host). 00:19:13 -!- copumpkin has joined. 00:19:52 > fix("ok"++) 00:19:53 "okokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokok... 00:23:38 Ack, reading that log is slightly painful now. A conscience is a terrible burden to bear. 00:28:51 WELL CANCER IS PAINFUL YOU INSENSITIVE CLOD 00:29:05 * oerjan whistles innocently 00:29:41 oerjan, Munroe's girlfriend was diagnosed with breast cancer some time before that comic was made, a fact which he has just disclosed. 00:29:56 well duh. 00:30:03 'duh'? 00:30:08 duh. 00:30:16 what do you _think_ i was referring to... 00:30:17 Damn, I'm behind the times. 00:30:41 (The internet: where a day ago is behind the times.) 00:31:43 I guess I move in the wrong subreddits. Ah, well. 00:31:53 * oerjan actually visits the xkcd blag infrequently, and just accidentally happened to read it this morning. 00:33:11 I only happened across it by chance when I checked the comment history of that guy who made the test post that's currently the most-upvoted Reddit submission. 00:46:59 Can you figure out my game of pokemon cards? 00:48:53 * Phantom_Hoover attempts to unwind the Epic Thread. 00:49:59 Oh holy christ this is impossible. 00:50:12 fizzie! I need your superpowers! 00:50:30 Epic Thread? 00:51:15 coppro: Yes. 00:51:43 Sgeo_, it's a huge thread of replies that blossomed off some post. 00:51:48 It has its own subreddit. 00:52:12 (The first puzzle is the same as it was before; I added something to the HYPNO card that was supposed to be there but I omitted; it does not affect the puzzle) 00:52:26 I've been traversing a single branch for quite a while now. 00:52:28 coppro: Correct, you can only play one energy card per turn. (Regardless of the kind) 00:54:03 It's lasted over two years. 00:54:16 -!- NihilistDandy has quit (Read error: Connection reset by peer). 00:54:24 Phantom_Hoover, the test post? 00:54:29 Nope. 00:54:36 http://www.reddit.com/r/science/comments/6nz1k/got_six_weeks_try_the_hundred_push_ups_training/ 00:54:56 It only has 6000 or so comments, but I suspect they're almost all concentrated into the Epic Thread. 00:57:56 FFS, it must have been half an hour by now, and I haven't even branched. 00:58:41 Thank christ, I'm onto stuff from only a week ago. 00:59:05 http://www.reddit.com/r/science/comments/6nz1k/got_six_weeks_try_the_hundred_push_ups_training/c234inn is the current bottom. 01:00:11 coppro: Yes. Very good. 01:00:34 Eh? Did I accidentally ignore coppro? 01:00:47 No, I have been pming zzo38 and he's been responding publicly 01:00:50 I would like you to try to make a puzzle too 01:00:54 I pmed so as not to give the solution away 01:01:21 coppro: OK, do not give solution away is OK. However I like to post public so that other people can try it too 01:01:45 yes, of course :) 01:02:18 They are not only for you; even though it seems you are the only one who can answer it 01:02:25 Let someone else try please 01:02:29 I'm the only one who's bothered, more like 01:02:54 Of course, anyone else is free to try. Since I haven't given away the solution to the second one, the puzzle remains fun for everyone else. 01:03:02 the first one, regrettably, is in the logs 01:03:37 coppro: Yes it is. It doesn't matter; whoever hasn't read it can try it please 01:05:13 We have a game it costs 1 point to play and you toss a coin until tails. Depending on number of heads: 0 -> 0, 1 -> 0, 2 -> 0, 3 -> 20, 4 -> 40, don't know the rest, 10 or more -> 0. 01:07:35 I should try to make some puzzle with IMAKUNI? card (where you have to maximize your chance of winning) 01:07:48 hahaha 01:08:44 Can you try to make any puzzle at all? 01:09:00 I am busy right now, unfortunately 01:09:13 OK, then maybe someone else 01:10:40 > sum $ zipWith (*) (iterate(/2)(1/2)) [0,0,0,20,40,80,160,320,640,1280] 01:10:41 8.75 01:11:00 How many people in here understand pokemon card? 01:11:18 ais523 does, but he's not here 01:17:02 * Phantom_Hoover → sleep 01:17:04 -!- Phantom_Hoover has quit (Quit: Leaving). 01:17:38 ais523 last seen 17 hours ago (approx). 01:17:55 -!- BeedaWeeda has joined. 01:18:21 I believe someone has posted something about Pokemon in esolang wiki once but I don't know if it means they would necessarily know how to play pokemon card 01:19:14 * Sgeo_ goes to play with yet another 3d world 01:32:06 -!- foocraft has changed nick to _. 01:32:36 -!- _ has changed nick to Guest99701. 01:33:06 -!- Guest99701 has changed nick to foocraft. 01:35:19 meh! why was I highlighted? I wasn't even here :/ 01:36:07 and the one who highlighted me was elliott and he's not even here 01:37:45 -!- wth has joined. 01:38:11 -!- wth has changed nick to Guest55283. 01:42:06 -!- Patashu has joined. 01:44:29 -!- CakeProphet has quit (Ping timeout: 252 seconds). 01:45:07 -!- Guest55283 has left ("Leaving."). 01:58:31 Vittu. 01:58:34 -Inen. 01:58:39 Vittuinen. 01:58:43 Suomasta. 01:59:00 voi vittu 01:59:28 Perkelin sota limsa. 01:59:38 Laskea irti. 02:00:01 saattana perkele, ei saa peittää parasta ennen voi vittu 02:00:30 Sotala satana peittää. 02:00:47 Ei futi. 02:01:32 are you guys finnished? 02:01:53 quintopia: Quite. 02:02:00 Suomi ei laskea irti ketti. 02:02:12 En ih. 02:02:32 hurtti irtti ketti 02:02:45 Kiitti. 02:03:00 kiittii 02:03:02 Hur ir ke. Hurirke. 02:03:03 guess not 02:03:16 En ih. 02:03:26 quintopia: finnished, yes, finished, no. it's just gibberish afaik 02:03:47 Irkkipöistimödi. 02:04:02 Peittää... midä. 02:04:07 pöistimöidi 02:04:22 Oletko? 02:05:05 Etusivu. 02:05:07 ölut! 02:05:13 Mutinan sota oli vuonna 43 eaa. 02:05:37 we should probably try to involve at least one of the finns 02:05:49 e.g. fizzie or oklopol 02:06:10 Anna minulle kylmä olut! 02:06:36 Pitää pää kylmänä. 02:06:52 Kuuma. Anna minulle kuuma olut! 02:07:01 Ei saa peittaa! 02:07:13 Saa saa saa. 02:07:19 Saada. 02:07:50 sorry, *peittää! 02:07:51 Saadada. Dadadada. 02:07:51 miltä meno maistuu 02:08:36 Perkele kuuma vittu oerjan:sta. 02:09:12 I wonder if tswett actually knows finnish or if he's using google translate or something 02:09:19 Se maistuu hyvältä. 02:09:32 hyvvä 02:09:59 Käytän Wikisanakirja ja oma pieni tuntemus Suomen kieli, paitsi tämä lause, joka tuotti Google Translate. 02:10:12 Pieni. 02:10:14 i'm pretty sure tswett was trying to learn finnish earlier... 02:10:27 Pieni ikuisesti. 02:11:19 Moin moin. 02:11:46 tswett : human languages :: Sgeo : programming languages? 02:11:47 finnish would be cool to know, but not so sure about learning 02:11:50 Jagrastin. 02:12:06 Sgeo_: I don't spend *that* much time learning human languages... 02:12:41 English, Spanish, and French are the only languages I can read at all. 02:13:59 Lojban too, I guess. 02:14:05 at one point I might have to learn to read computer-swedish 02:14:24 without having to reverse-translate it from (to) english 02:14:54 computer swedish? 02:14:54 What's computer-Swedish? 02:14:55 but hopefully never 02:15:24 it's the mangled incomprehensible form of swedish produced by people translating software 02:16:20 People-translating software? TIL. 02:16:42 me too 02:16:44 people who are translating software then? 02:17:02 -!- Vorpal has quit (Ping timeout: 250 seconds). 02:17:57 I probably want to create a swenglish locale where all technical terms are kept in english 02:18:56 Du måste reboota din computer. 02:19:25 You must-a reboot-a da computer? 02:19:55 Din browser behöver restartas 02:20:20 Da browser behoove-er restarts. 02:20:29 Downloada filen? 02:20:40 Download a filin'? 02:21:02 "Your browser needs to erect RTAS" thanks google translate 02:21:27 download a filling? 02:21:50 oerjan: du måste reboota datorn, din brower behöver startas om, ladda ner filen (jämfört med t.ex. "Läs in filen") 02:22:01 eller "Läs in igen" 02:22:18 Da browser behoover starts. Om. 02:22:46 tswett: close enough :) 02:23:01 olsner: i am not sure whether your improvements are still considered too swenglish or not :P 02:23:03 * tswett meditates. 02:23:05 -!- wth has joined. 02:23:25 Bork bork bork da browser beborker starts. Bork. 02:23:26 ok i guess the parentheses give a hint 02:23:31 -!- wth has changed nick to Guest63077. 02:23:46 oerjan: they are swenglish, but not swedish enough to be incomprehensible :) 02:24:28 olsner: oh so making more words swedish would be worse? 02:25:16 yep, inventing new swedish terms where 40 years of computing have used swenglish or english doesn't make anything more comprehensible 02:26:01 O KAY 02:26:29 at least not to me, because swedish is not a language I know any computer-related terms in 02:27:23 "Swedish - Deprecated. Use English." 02:27:24 -!- azaq23 has quit (Quit: Leaving.). 02:33:06 haha 02:33:08 Someone told me their computer keeps overheating because it is black. Do you think it would help if it was white? 02:33:29 Black computers lose heat better than white computers. 02:33:34 I think. 02:33:59 Then it wouldn't help, I guess. 02:34:26 unless they are standing in the sun 02:34:26 I suggested using liquid cooling system but they don't know how to find that or install it or anything like that (I also don't know). 02:34:52 * tswett parks his laptop. 02:36:34 -!- Patashu has quit (Ping timeout: 264 seconds). 02:37:15 I haven't been outside since yesterday 02:37:19 I'm getting shaky 02:37:20 -!- Guest63077 has quit (Ping timeout: 240 seconds). 02:38:38 http://pastebin.com/Y75WrP9D 02:38:41 :3 02:39:31 -!- Patashu has joined. 02:47:22 -!- Sgeo has joined. 02:48:19 -!- Sgeo_ has quit (Ping timeout: 255 seconds). 02:54:09 -!- jcp|other has joined. 02:54:43 -!- jcp has quit (Read error: Operation timed out). 02:56:10 -!- javawizard has quit (Ping timeout: 276 seconds). 02:58:44 -!- jcp has joined. 03:06:55 how are ya, Lymee? 03:07:04 Hugs! 03:07:05 :3 03:07:07 * Lymee hugs quintopia <3 03:07:38 * quintopia hugs Lymee 03:07:46 what does that program do? 03:08:19 Somethings. 03:10:46 -!- hiato has quit (Ping timeout: 264 seconds). 03:11:22 -!- hiato has joined. 03:13:31 -!- Sgeo has quit (Ping timeout: 255 seconds). 03:13:42 i am too lazy to compile and run it 03:15:56 -!- Sgeo has joined. 03:16:42 -!- Patashu has quit (Remote host closed the connection). 03:17:57 -!- Sgeo_ has joined. 03:20:43 -!- Sgeo has quit (Ping timeout: 255 seconds). 03:38:11 -!- Sgeo__ has joined. 03:38:18 someone recommend me the best bnc 03:40:58 -!- Sgeo_ has quit (Ping timeout: 255 seconds). 03:47:35 -!- foocraft has quit (Quit: So long, and thanks for all the fish!). 03:50:07 -!- pikhq has joined. 03:52:39 -!- pikhq_ has quit (Ping timeout: 246 seconds). 03:53:08 You can have all the fish 04:01:54 Please read this and tell me of your opinion/question. gopher://zzo38computer.cjb.net:70/0phlog*c_prog.permission-script 04:05:43 my opinion: gopher is dead. 04:06:33 newsham: Not while zzo38 still has life. 04:06:58 And, TBH, I can't say I blame him. Gopher is better designed than HTTP. 04:08:17 Especially in terms of the "No, fuck you, you are not a graphic designer you just suck and your eyes have probably been removed" factor. 04:14:13 man, the list of things better designed than http could fill an internet 04:14:21 True, true. 04:14:43 Though few things are both better-designed and intended for hypertext. 04:14:52 Due to few things being intended for hypertext. :P 04:15:43 -!- calamari has joined. 04:54:48 However, I was asking opinion of what the article is discussing, not about the protocol used to serve it. 04:55:59 zzo38: The underlying message here was "the work required to access that page in 2011 is greater than what we're willing to do to simply read something and give opinions" 04:56:33 Gregor: It is available over HTTP as well, although I have disabled sending comments using HTTP. 04:56:54 http://zzo38computer.cjb.net/phlog/phlog_http.php?m=1&q=_prog.permission-script 04:57:28 And anyways you can access it using netcat without too much difficulty is it not? 05:01:52 -!- WillMac has joined. 05:01:57 http://www.streamvera.com/stream/15997 05:02:44 hi what 05:03:37 listen to the webradio 05:03:46 my 2 songs are about to be played next 05:03:48 im pretty excited 05:05:25 my songs are called 05:05:28 Walk Walk 3 05:05:36 and Maps remix - by donato 05:08:01 Inquiry: why do we care? 05:08:21 because its cool music 05:08:25 im being played now 05:08:26 -!- BeedaWeeda has quit (Ping timeout: 258 seconds). 05:08:27 http://www.streamvera.com/stream/15997 05:08:34 its club/house 05:08:39 if youre into that stuff 05:08:47 nope 05:13:10 Use HTTP if it is necessary. 05:38:46 Man, it's pretty great reading an old Slashdot thread about Linus dropping Bitkeeper. 05:39:19 "Why doesn't Linus just design from scratch a SCM that he likes? Bet it'd take him like 6 months." So very prescient. 05:40:27 am i wrong for liking dissociative hallucinogens? 05:40:41 Not inherently. 05:40:57 i just cant seem to stop doing them 05:41:03 whether it be Ketamine 05:41:09 or dextromethorphan 05:41:18 they seem to fill a hole in my being 05:41:24 that nothing else can 05:41:29 I see little *moral* issue with recreational chemical usage. 05:41:39 i guess i just enjoy losing my ego 05:41:54 i practice eastern religion 05:41:55 Though the practical issues are, frankly, obvious. 05:42:10 and crowleyan magick 05:42:21 and the dissociation really helps out with rituals 05:42:23 and such 05:42:25 (certain ones having negative effects, certain ones having significant legal impediments, etc. etc. etc.) 05:42:45 zzo38: I summon thee. 05:42:55 when i require losing my train of thought 05:43:02 and entering a state of trance 05:43:17 Especially when charging sigils 05:43:34 One of these days, we're going to get someone wandering in here thinking this is a channel for esotericism but also being interested in programming. 05:43:37 Some day. 05:44:03 so this isnt a channel for esotericism? 05:44:09 Nope. 05:44:15 * WillMac feels embarrased 05:44:15 :/ 05:44:25 Channel for esoteric programming languages. 05:44:27 its hard to find places 05:44:41 well im sorry 05:44:44 <3 05:44:46 Yeaaah, if we knew where to refer you, we'd let you know. :P 05:44:47 No big. 05:45:11 i honestly thought this was a channel for esotericism 05:45:29 Yeah, every now and then we do get someone coming in thinking that. 05:45:36 Kinda amusing, really. 05:45:39 lol 05:45:48 Well its hard to find places 05:45:52 that are accepting of it 05:46:05 "GET THE FUCK OUT HIPPY" 05:46:12 "YOURE SCHIZO" 05:46:23 "THERES NO SUCH THING AS THE DIVINE" 05:46:51 i require more drink 05:46:59 to dose this hallucinogen 05:47:04 <3 nice meeting you 05:47:10 and again i appologize 05:47:18 Seriously, no real issue. 05:48:41 <-- dissociated emotional bi-sexual 05:48:41 lol 05:48:45 its okay 05:48:53 pikhq: You summon me for what purpose? 05:49:05 zzo38: Your zzo38ness. 05:49:13 zzo38: I know not what else to describe it as. 05:49:59 OK, I think I understand. However, how can I answer you if there is not a question? 05:50:16 Alas. 06:15:04 -!- yiyus has quit (Ping timeout: 276 seconds). 06:19:36 -!- yiyus has joined. 06:31:48 -!- oerjan has quit (Quit: Good night). 06:38:11 -!- CakeProphet has joined. 06:38:11 -!- CakeProphet has quit (Changing host). 06:38:11 -!- CakeProphet has joined. 06:58:40 -!- CakeProphet has quit (Ping timeout: 240 seconds). 07:10:21 -!- zzo38 has quit (Remote host closed the connection). 07:20:52 -!- monqy has quit (Quit: hello). 08:05:46 -!- calamari has quit (Quit: Leaving). 08:25:48 -!- derrik has joined. 08:26:00 -!- derrik has left. 08:27:50 -!- Phantom_Hoover has joined. 08:33:27 https://bugs.gentoo.org/show_bug.cgi?id=35890 08:33:40 Perhaps the best bug ever? 08:33:57 -!- WillMac has left. 08:35:34 funroll-loops.info 08:39:02 oh hey, it's linked in the bug :D 08:39:09 no wait 08:39:12 wrong tld 08:39:22 http://funroll-loops.info/ is correct 09:33:29 -!- MigoMipo has joined. 09:51:07 -!- nooga has joined. 10:27:16 -!- nooga has quit (Ping timeout: 276 seconds). 10:35:32 -!- Slereah has quit (Ping timeout: 240 seconds). 10:37:51 -!- Slereah has joined. 11:07:38 -!- azaq23 has joined. 11:12:12 -!- Lymee has quit (Read error: Connection reset by peer). 11:13:36 -!- Lymee has joined. 11:32:56 -!- azaq23 has quit (Ping timeout: 258 seconds). 11:37:40 -!- Vorpal has joined. 11:39:07 -!- azaq23 has joined. 11:44:42 -!- azaq23 has quit (Quit: Leaving.). 12:19:08 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 12:25:47 -!- Vorpal has quit (Ping timeout: 264 seconds). 13:09:17 -!- azaq23 has joined. 13:15:18 -!- Vorpal has joined. 13:30:24 -!- s1nn3r has joined. 13:33:22 -!- s1nn3r has quit (Quit: mIRC Power Pack 8.00 (www.mIRCPowerPack.com) by sod/sgt-d (sgt-d@sodpit.com)). 13:45:19 -!- CakeProphet has joined. 14:33:50 -!- thezakman has joined. 14:38:03 -!- thezakman has quit (Ping timeout: 250 seconds). 15:03:05 -!- zzo38 has joined. 15:28:34 is it zzo o'clock? 15:34:59 -!- monqy has joined. 15:35:02 is that like ssz? 15:56:54 I don't know. 16:02:02 -!- monqy has quit (Ping timeout: 276 seconds). 16:03:24 -!- monqy has joined. 16:25:58 -!- pikhq has quit (Ping timeout: 252 seconds). 16:26:07 -!- pikhq has joined. 16:26:59 What musical scale do these numbers represent? 16 18 20 21 24 27 30 32 16:27:33 -!- copumpkin has joined. 16:28:39 -!- monqy has quit (Read error: Connection reset by peer). 16:32:52 -!- monqy has joined. 16:33:14 it's 16:33:16 weird 16:33:27 not a scale i've ever seen 16:34:18 Hint these are not numbers of semitones 16:37:12 are they multiples of a particular frequency? 16:37:36 no that's silly 16:38:45 -!- monqy has quit (Read error: Operation timed out). 16:40:56 Silly? Are you sure? 16:40:57 -!- monqy has joined. 16:41:33 -!- nooga has joined. 17:01:12 -!- monqy has quit (Ping timeout: 246 seconds). 17:02:25 * Phantom_Hoover concludes, after much testing, that Minecraft is not a world amenable to the scientific method. 17:08:12 ....what? 17:09:28 it is amenable to reverse engineering! 17:09:53 And I think ZZT is a world amenable to the scientific method. 17:12:56 Do strange thing, see what happens, make hypothesis, make up an experiment to test hypothesis, test it, see result, remember that ZZT is written in Pascal, think of the program to cause that to happen, look in memory dump, think about more. 17:13:38 I have figured out a lot of stuff about ZZT using this method, however I have not documented any of it. 17:15:32 What worlds aren't amenable to the scientific method? 17:15:39 Minecraft may be ... difficult, but 17:15:56 Hmm, perhaps a one where the rules vary by time and never repeat 17:16:42 Sgeo__: What about meta-rules, then? 17:17:16 Maybe all rules at all levels change by the progress of time, a bit like a nomic 17:17:36 Rules can specify how the rules will change, including how the rules will change 17:18:52 OK. Maybe. 17:20:50 -!- monqy has joined. 17:21:38 it's still predictable in some sense, if you know all the rules, but that definitely defines a complex world 17:22:08 a world not amenable to the scientific method: the real world, as applies to major historical events and social networks 17:22:33 how the hell can you have reproducability if things never play out the same twice? 17:22:56 Predictable if you know all the rules, but is there any way to, from the inside, even approach determining the rules? 17:23:13 Since, yeah, reproducibility 17:42:49 -!- azaq23 has quit (Quit: Leaving.). 18:11:03 -!- Sgeo_ has joined. 18:13:59 -!- Sgeo__ has quit (Ping timeout: 255 seconds). 18:20:10 -!- nooga has quit (Remote host closed the connection). 18:22:52 -!- Sgeo_ has changed nick to Sgeo. 18:28:44 -!- jcp has quit (Ping timeout: 276 seconds). 18:28:56 -!- cranitree has joined. 18:29:36 -!- jcp|other has quit (Ping timeout: 240 seconds). 18:30:55 -!- cranitree has left ("Konversation terminated!"). 19:02:40 OK, so it hit me. 19:02:47 Life is basically the knapsack problem. 19:16:25 -!- Balanced1 has joined. 19:24:47 a painter would say life is paintbrush 19:24:53 i agree 19:24:58 definitely paintbrush 19:29:07 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 19:30:43 -!- Balanced1 has quit (Quit: http://irc2go.com/). 19:34:07 -!- cheater_ has joined. 19:34:09 hello 19:34:15 anyone know what glyph this is? ❡ 19:34:35 http://www.fileformat.info/info/unicode/char/2761/index.htm 19:35:24 Hay you stop cheating please. 19:36:34 http://en.wikipedia.org/wiki/Theobromine 19:36:47 I like the way it doesn't have bromine in it. 19:41:56 cheater_: it appears to be U+2761 CURVED STEM PARAGRAPH SIGN ORNAMENT (❡). 19:56:04 -!- oerjan has joined. 19:56:21 a painter would say life is paintbrush 19:56:29 quintopia, no it is the paint stripper 19:56:33 (well IMO) 19:56:45 Nonononononononono 19:56:51 Its the knapsack problem. 19:57:06 Phantom_Hoover, how so? 19:57:14 Vorpal, you have things you can do. 19:57:26 yes 19:57:27 They all take a certain amount of time and effort. 19:57:33 yep 19:57:35 And they all yield a certain reward 19:57:40 So basically. 19:57:42 possibly 19:57:45 Life is the knapsack problem. 19:58:05 Phantom_Hoover, there is a bit of randomness in there too, you might not get that job you wanted 19:58:06 and so on 19:58:25 interesting analogy however 19:58:43 16 18 20 21 24 27 30 32 19:58:45 er 20:00:00 > map (logBase 2/12*) [16,18,20,21,24,27,30,32] 20:00:01 Overlapping instances for GHC.Show.Show (t -> t) 20:00:01 arising from a use of `... 20:00:10 wtf 20:00:43 randomized napsack problem? 20:00:53 > map ((/12).logBase 2) [16,18,20,21,24,27,30,32] 20:00:55 [0.3333333333333333,0.3474937501201927,0.3601606745739469,0.366026451898230... 20:00:59 bah 20:01:08 no, zzo38's scale 20:01:59 > join(zipWith(-)) $ map ((/12).logBase 2) [16,18,20,21,24,27,30,32] :: [Float] 20:02:01 [0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0] 20:02:05 er 20:02:12 > join(zipWith(-).tail) $ map ((/12).logBase 2) [16,18,20,21,24,27,30,32] :: [Float] 20:02:13 [1.41604245e-2,1.2666911e-2,5.8658123e-3,1.6053706e-2,1.41604245e-2,1.26669... 20:04:02 lambdabot's short lines make floating point lists awkward :( 20:05:26 hm i wonder if lambdabot has channel-based option lists (it does give longer lines in private messages) 20:08:10 -!- elliott has joined. 20:09:23 > map(printf "%.3f").join(zipWith(-).tail) $ map ((/12).logBase 2) [16,18,20,21,24,27,30,32] :: [String] 20:09:25 ["0.014","0.013","0.006","0.016","0.014","0.013","0.008"] 20:09:34 > map(2^)[4, 4+1/7 .. 5] 20:09:35 Ambiguous type variable `a' in the constraints: 20:09:35 `GHC.Real.Fractional a' 20:09:35 ... 20:09:38 gah 20:09:47 > map(2**)[4, 4+1/7 .. 5] 20:09:48 [16.0,17.665432218781003,19.504218467271617,21.534403082117716,23.775908626... 20:10:16 > map(printf "%.3f".(2**))[4, 4+1/7 .. 5] 20:10:17 Ambiguous type variable `b' in the constraints: 20:10:17 `Text.Printf.PrintfType ... 20:10:22 > map(printf "%.3f".(2**))[4, 4+1/7 .. 5]::[String] 20:10:23 ["16.000","17.665","19.504","21.534","23.776","26.251","28.983","32.000"] 20:11:13 hm it is _not_ simply rounding of an ordinary scale 20:11:24 sup 20:11:43 elliott: zzo38 has presented a scale conundrum 20:14:21 oerjan: he already said they weren't semitones :P 20:14:53 i tend to read more than what he says into everything he says though 20:15:00 quintopia: um i took that to mean that 16 and 18 weren't separated by 3 semitones, etc. 20:15:13 oh wait duh 20:18:31 > map(printf "%.3f".(2**).(4+).(1/12*))[0,2,4,5,7,9,11,12] 20:18:31 Ambiguous type variable `b' in the constraints: 20:18:32 `Text.Printf.PrintfType ... 20:18:40 > map(printf "%.3f".(2**).(4+).(1/12*))[0,2,4,5,7,9,11,12]::[String] 20:18:42 ["16.000","17.959","20.159","21.357","23.973","26.909","30.204","32.000"] 20:19:21 zzo38: ok rounding _that_ fits your numbers 20:19:23 That is an ordinary equal temperament scale now. What you had before obviously isn't, I think 20:19:43 oerjan: Yes it does fit. 20:19:52 zzo38: i somehow divided it in 7 while completely forgetting about semitones :P 20:19:56 *into 20:20:52 so it's a rounded major scale? 20:21:32 Or you could say it is a 16-to-32 linear temperament based major scale. 20:21:46 sure 20:21:57 bet it sounds pretty funky 20:22:28 Just now I programmed my computer to play a seven-tone equal temperament scale so I can know its sound. 20:23:04 > Just Tone 20:23:04 Not in scope: data constructor `Tone' 20:23:35 What worlds aren't amenable to the scientific method? <-- worlds that explicitly consider sentient beings and try to fool them 20:23:40 > Just Interval 20:23:41 Not in scope: data constructor `Interval' 20:24:00 zzo38: do you know the song Tombeau de Messiaen? 20:24:01 oerjan: is this your objection to the scientific method? :D 20:24:03 oerjan: like jeebuz does. 20:24:08 quintopia: No. I don't know that. 20:24:45 zzo38: it is a piece for piano and tape. the piano is equal-tempered, and the tape is the same key but in just intonation 20:25:01 elliott: it's a possible objection to any presumed infallibility of it 20:25:15 So does it play equal-temperament and just-intonation simultaneously? 20:25:28 yes 20:26:05 GOOD THINGS TO SAY ON PUBLICLY-LOGGED IRC CHANNELS AND, ALSO, TO THINK IN THE FIRST PLACE: hmm, we need to start giving randall's relatives cancer so he starts making good strips again like those five-minute ones 20:26:32 elliott: hey, great artists need to suffer! 20:26:39 those were good 20:26:45 he has made a couple good ones since then 20:26:46 (remind me never to become a great artist) 20:26:49 will we get more cancer strips too 20:26:57 where we means people who read xkcd 20:27:07 im not we 20:27:23 GOOD THINGS TO SAY ON PUBLICLY-LOGGED IRC CHANNELS AND, ALSO, TO THINK IN THE FIRST PLACE: hmm, we need to start giving randall's relatives cancer so he starts making good strips again like those five-minute ones 20:27:44 The 5-minute ones were made some unspecified time before they were released. 20:28:02 Cancer: Not a miracle cure? 20:28:18 It appears not. 20:28:38 (This still doesn't explain the xkcdecay, though.) 20:29:08 there ain't no cure, there ain't no cure, there ain't no cure for running out of ideas 20:29:25 whats the half life of xkcd? 20:30:13 3 years or so? 20:31:26 "This is mostly because I'm hardware/semiconductor guy intimately familiar with current microprocessor and processing technology plus what's in the pipeline for the next 10-20 years - there are fundamental physics reasons why it probably can't." 20:31:30 Orthogonal persistence: PHYSICALLY IMPOSSIBLE 20:31:55 I cannot imagine what confusion of ideas would provoke such a statement. 20:32:15 now hardware orthogonal persistence would be something 20:32:29 (They weren't actually saying that.) 20:32:33 oerjan: that's just having non-volatile RAM 20:33:23 elliott: I think you need to provide context. His statement is perfectly reasonable of by "it probably can't", he means "microprocessors probably can't solve the halting problem". 20:33:30 -!- zzo38 has left. 20:33:58 tswett: I provided "context" with the next line, but that's actually not really what he was saying at all, it's just funny to read it that way :P 20:34:04 (The subject was single-address-space systems.) 20:34:06 I see. 20:36:25 tswett, thank you 20:36:41 Deewiant, you too 20:36:49 Phantom_Hoover: thank you 20:36:50 oerjan: you too 20:36:51 tswett, aren't you, on some level, fundamentally, platonically, Australian? 20:36:57 Phantom_Hoover: yep. 20:39:57 Phantom_Hoover: also filled with hope 21:05:36 oerjan: what precedence does (::) have? 21:06:06 it's not an operator, so somewhere <= -1 :P 21:06:43 oerjan: I'm just wondering how to write my Show instance :) 21:06:59 hmm 21:07:08 I guess unconditional showParen 21:07:12 but I don't want any parens shown at the top level 21:07:19 What's the showParen precedence given for a top level show? 21:07:22 ah, 0 21:07:39 @src show 21:07:40 show x = shows x "" 21:07:45 @src shows 21:07:46 Source not found. stty: unknown mode: doofus 21:07:46 showsPrec d x = showParen (d > 0) $ showString "renat :: " . showType x 21:07:48 I guess that should work 21:08:12 oerjan: 21:08:12 -- | equivalent to 'showsPrec' with a precedence of 0. 21:08:12 shows :: (Show a) => a -> ShowS 21:08:12 shows = showsPrec zeroInt 21:08:13 elliott: except that theoretically that would break for $ 21:08:18 oerjan: yes, indeed 21:08:23 can't have it every way :P 21:09:28 which actually means showsPrec is flawed even for just 0-9, hm 21:10:10 howso? 21:10:10 because if you mix infixr with infixl or infix of the same level, it cannot distinguish that they are not allowed 21:10:15 ah 21:21:17 grr, zzo 21:21:19 we have a template for that 21:21:32 elliott: wat 21:21:35 broken lists 21:21:36 links 21:21:42 he's just ing them 21:21:47 which is plain confusing to read, to boot 21:22:09 ah yes. and harder to search for, obviously. 21:22:13 indeed 21:22:24 http://esoteric.voxelperfect.net/wiki/Special:Whatlinkshere/Template:Deadlink 21:22:26 happily small numebr 21:22:33 although obviously very incomplete 21:23:34 who's 69.72.75.139? 21:23:56 oerjan: http://esoteric.voxelperfect.net/wiki/Computational_class#Isomorphism 21:23:58 madk i think 21:23:58 oerjan: Shall I rename? :-) 21:24:39 either that or someone obsessed with madk and his languages 21:25:08 http://esoteric.voxelperfect.net/wiki/Computational_class#Reduction 21:25:15 renamed (and added a note) 21:32:40 yay 21:33:43 oh WillMac looks like an idiot 21:33:53 too bad he's offline, i'd antagonise him 21:34:41 05:40:27: am i wrong for liking dissociative hallucinogens? 21:34:42 YES YOU ARE A TERRIBLE PERSON 21:34:45 Man what is this guy even doing 21:34:51 05:41:39: i guess i just enjoy losing my ego 21:34:51 05:41:54: i practice eastern religion 21:34:55 oh man this is g 21:34:55 05:42:10: and crowleyan magick 21:34:58 THIS IS PERFECT 21:35:00 this is the best thing ever 21:35:02 i love you willmac 21:35:06 oerjan: he is the perfect stumbler 21:35:08 perfect 21:35:13 what about the guy who thought this was a hiphop channel 21:35:19 also the perfect stumbler 21:35:21 he was also perfect 21:35:28 05:01:52: -!- WillMac has joined #esoteric. 21:35:29 [...]05:44:03: so this isnt a channel for esotericism? 21:35:33 almost a whole fucking hour 21:35:34 amazin 21:35:35 g 21:35:58 monqy: how long did hiphop guy take 21:36:03 I forget 21:36:10 05:45:48: Well its hard to find places 21:36:10 05:45:52: that are accepting of it 21:36:10 05:46:05: "GET THE FUCK OUT HIPPY" 21:36:10 05:46:12: "YOURE SCHIZO" 21:36:10 05:46:23: "THERES NO SUCH THING AS THE DIVINE" 21:36:12 I wasn't around for it I only read the logs too :( 21:36:16 but the logs were pretty long 21:36:21 i reject options one and two and pick option three 21:36:51 05:48:41: <-- dissociated emotional bi-sexual 21:36:51 wait does this mean that the <3s he was handing out represented true love 21:36:52 im missing out 21:37:31 08:33:27: https://bugs.gentoo.org/show_bug.cgi?id=35890 21:37:31 08:33:40: Perhaps the best bug ever? 21:37:31 long-time fan of this one 21:37:32 -!- KingOfKarlsruhe has joined. 21:38:01 almost a whole fucking hour <-- well there weren't a lot of other people talking then 21:38:02 https://bugs.gentoo.org/attachment.cgi?id=68484 <-- this is definitely the best bit, I'd have loved to see gentoo remove gaim 21:38:09 iirc 21:38:16 "this is too funny, you've taken the crown of being the biggest jack ass I've 21:38:16 seen this year. well done, I think." --a gentoo developer 21:38:26 Gentoo developers calling people jackasses: great 21:38:26 it was a slow almost a fucking hour 21:38:34 I mean 21:38:37 it was a slow almost a whole fucking hour 21:38:38 sorry 21:38:41 "This has to be worst initial contact I think anybody could have made. 21:38:41 Not sure I expect much more out of somebody that codes for AOL software." 21:38:46 gaim is a tool of the aols 21:38:53 ""Lindows.com, a proud gaim supporter!" <- this could explain" 21:38:56 hahahahahaha oh wow 21:39:00 i forgot how amazing this is 21:39:24 "This is blasphemy, and just proves there are people with way to much time on 21:39:25 their hands. If you got a problem, don't bitch on bugzilla, we have better 21:39:25 things to do then listen to your incessant whining." 21:39:27 i reject options one and two and pick option three <-- darn, i was hoping you'd get slightly bad conscience 21:39:31 that was before the sparta meme 21:39:36 this guy is actually calling it blasphemy 21:40:15 oerjan: I'm all for people who actually believe in that stuff to have somewhere to discuss said nonsense, and I don't think they're idiots, bad people, or insane, but there is no such thing as the divine :P 21:40:55 I also don't think that #esoteric has any responsibility to support discussion of such things, since most of us don't care 21:41:06 I wouldn't fault someone who believed in esoterica discussing esolangs and general crap in here 21:41:21 but I doubt anyone who comes in discussing esoterica would actually be an expert #esoteric 21:41:59 Phantom_Hoover: https://bugs.gentoo.org/show_bug.cgi?id=124595 this is a slightly less best bug report, but one that shows how shitty gentoo devs are 21:42:03 "> The package is still useless. The ebuilds in the other 21:42:03 > bug are still broken. 21:42:03 Why not submit a fixed one?" 21:42:04 : parse error (possibly incorrect indentation) 21:42:14 i thought bugzilla existed to stop people responding to every request with PATCHES 21:42:50 17:02:25: * Phantom_Hoover concludes, after much testing, that Minecraft is not a world amenable to the scientific method. 21:42:50 Howso 21:43:47 elliott, experimental replication doesn't work. 21:43:55 Howso? 21:44:40 I built *exactly the same* device in three different places. 21:44:54 Only one of them worked the way I wanted it to. 21:46:40 X-D 21:46:42 Which device? 21:47:44 Piston door. 21:49:20 -!- Lymee has quit (Ping timeout: 244 seconds). 21:54:56 -!- Behold has joined. 21:55:32 -!- BeholdMyGlory has quit (Ping timeout: 260 seconds). 21:57:15 Phantom_Hoover: hey that's just lack of position symmetry, nothing unscientific about that >:) 21:57:47 Kind of makes peer review difficult. 21:59:28 showSpace :: ShowS 21:59:28 showSpace = {-showChar ' '-} \ xs -> ' ' : xs 21:59:30 good optimisation 22:05:24 i wonder if (guess that?) ghc will inline showChar ' ' completely so it doesn't actually make a difference... 22:05:53 :t showChar 22:05:54 Char -> String -> String 22:06:36 -!- Lymee has joined. 22:08:32 -!- KingOfKarlsruhe has quit (Quit: ChatZilla 0.9.87 [Firefox 5.0/20110615151330]). 22:23:47 -!- Phantom_Hoover has quit (Remote host closed the connection). 22:26:15 -!- Phantom_Hoover has joined. 22:37:50 -!- zzo38 has joined. 22:41:28 -!- MigoMipo_ has joined. 22:41:52 I have no idea what a bijective functor is, unless it is a band name or something. – Stephen Cagle yesterday 22:42:05 Phantom_Hoover: I'm forming a band do you want to join. 22:42:35 Curry Howard and the bijective functors 22:43:05 -!- MigoMipo_ has quit (Read error: Connection reset by peer). 22:44:10 -!- MigoMipo has quit (Ping timeout: 240 seconds). 22:44:17 Under what conditions might a turing-complete language not have a quine? 22:44:31 Sgeo: No output. 22:44:43 If it doesn't have IO? 22:44:45 Ok, true 22:45:00 But I think it's more broad then that, I'm curious as to the exact limit 22:45:01 limits 22:45:12 If its IO is incompatible with the format it's encoded in? 22:45:32 Phantom_Hoover: You would then make up a new kind of quine if that is the case, I think. 22:45:42 -!- augur has quit (Remote host closed the connection). 22:45:43 However, you are correct anyways. 22:45:55 What's that language that if it doesn't start with ', is some IO-less language, and if it starts with ', just prints stuff after '? 22:46:28 Sgeo: Yes, then it is turing-complete and I/O, but it doesn't have turing-complete I/O. 22:46:29 Sgeo: It's the output equivalent of arbitrary effect at an arbitrary point 22:46:33 There's a formal definition for quines, but I've forgotten 22:47:01 hmm 22:47:03 Now you have to invent the term "Turing-complete I/O". 22:47:09 Sgeo: see our old discussion at http://esolangs.org/wiki/User_talk:Smjg 22:47:12 "Any programming language which is Turing complete, and which is able to output any string (by a computable function of the string as program — this is a technical condition that is satisfied in every programming language in existence) has a quine program (and, in fact, infinitely many quine programs, and many similar curiosities) as follows by the fixed-point theorem." ;; meh, David Madore gets it wrong 22:47:18 Or, well, he uses "output any string" for "IO-complete" 22:47:31 I don't even know if anyone has a complete formal definition of that 22:47:39 "every programming language in existence" 22:47:39 Maybe it's one of CS' Great Unknown Unsolved Problems :) 22:48:00 Like the wire-crossing problem? 22:48:11 Yes. 22:48:11 And then also the other term "Compatible I/O", which means it can input/output a program in the same programming language. 22:48:20 i.e. half the solution is defining what the problem actually was? 22:50:32 Phantom_Hoover: Most likely. 22:51:55 If the programming language has all three features "Turing-complete", "Turing-complete I/O", "Compatible I/O", then figure out the conditions for making quine, narcissism, self-interpreter, etc 22:54:03 we have already had this discussion here elliott 22:54:26 -!- Sgeo has quit (Ping timeout: 244 seconds). 22:54:57 quintopia: We've had every discussion here. 22:55:01 But until they're resolved... 22:55:18 zzo38: I still want the esoteric wiki to have a project to formally define a bunch of stuff that nobody's actually pinned down yet :) 22:55:22 Including Turing-completeness itself. 22:55:26 i mean we resolved it 22:55:42 -!- Sgeo has joined. 22:56:32 elliott, erm, TCness isn't well-defined? 22:56:40 elliott: Yes I would also want the wiki to have that stuff 22:57:08 isn't turing-completeness pretty much defined as "capable of representing any computable number"? 22:57:24 Phantom_Hoover: See 2,3 Turing machine, http://esolangs.org/wiki/Talk:Befunge/index.php 22:57:34 quintopia too. 22:57:45 Also: 22:57:47 oh 22:57:52 yeah that crap 22:58:02 i don't think the field's ever gonna agree 22:58:03 Grr, where is it. 22:58:09 elliott, that's on a different level of definition, I think. 22:58:19 Phantom_Hoover: http://esolangs.org/wiki/%E2%84%92 22:58:22 quintopia too. 22:58:22 well-defined: the 2,3 turing machine plus the initializing program is a turing-complete system 22:58:39 Phantom_Hoover: That's just a way of ignoring that there's no clear definition. 22:58:44 See http://esolangs.org/wiki/%E2%84%92 too. 22:59:51 elliott, well, OK, but the problem isn't really that it's *ill* defined, just that there are two definitions in common use that happen to coincide most of the time. 23:00:17 Phantom_Hoover: Yes, but those definitions themselves aren't clear; see 2,3. 23:00:49 elliott, remind me what its deal is? 23:01:05 elliott: i think it's agreed as to what it means for a computational system, from the atomic level upward, to be TC. on the other hand, it may be meaningless to say that a particular /language/ is TC in that same sense. the latter is the one missing a definition. 23:01:23 TCness is afaict perfectly well defined for the subset of systems where input and output have a reasonable finite encoding (e.g. as strings of symbols over a finite alphabet) 23:01:26 Phantom_Hoover: It requires a sub-Turing machine to produce its initial input. 23:01:31 Phantom_Hoover: Which is infinite, and non-repeating. 23:01:36 (The proof, that is.) 23:01:47 elliott, ah. 23:02:08 There are ways to construct a system whereby two Turing-incomplete machines can be plugged into one another and produce a Turing-complete system, so it's not clear that the 2,3 machine itself has been proved TC. 23:02:20 At the same time, the system that generates the initial input can be /really/ low-powered. 23:02:27 The 2,3 machine does basically all the "work". 23:05:54 we know what set of problems a TC machine can solve. that is well-defined. and so, "the set of systems capable of solving those problems" is also well-defined 23:06:10 we just don't know how to determine the members of that class 23:06:30 quintopia: actually i'd say the word "system" is the major vague one there 23:06:41 sure 23:07:00 because we are talking about inventions limited only by creativity 23:07:04 if we had a definition of that, we'd surely be able to say "this is in the class, and that isn't" 23:07:30 we know what they have to be able to do. we just don't know what they are. 23:07:38 the 2,3-machine being one way to escape the simple case of languages over strings (for which everything is completely well-defined) 23:07:43 it's like reverse-engineering 23:08:09 itos :: Int# -> String -> String 23:08:09 itos n# cs 23:08:09 | n# <# 0# = 23:08:09 let !(I# minInt#) = minInt in 23:08:09 if n# ==# minInt# 23:08:10 *of strings 23:08:10 -- negateInt# minInt overflows, so we can't do that: 23:08:12 then '-' : itos' (negateInt# (n# `quotInt#` 10#)) 23:08:14 (itos' (negateInt# (n# `remInt#` 10#)) cs) 23:08:16 else '-' : itos' (negateInt# n#) cs 23:08:18 | otherwise = itos' n# cs 23:08:20 where 23:08:22 itos' :: Int# -> String -> String 23:08:24 itos' x# cs' 23:08:26 | x# <# 10# = C# (chr# (ord# '0'# +# x#)) : cs' 23:08:30 | otherwise = case chr# (ord# '0'# +# (x# `remInt#` 10#)) of { c# -> 23:08:30 Yes, these are one kind of category of esolang, which is, ones dealing with computational classes in some new way 23:08:32 itos' (x# `quotInt#` 10#) (C# c# : cs') } 23:10:04 I have also discussed in here before, what might be the computational class and other stuff about BlooP+REDPROGRAM or FlooP+REDPROGRAM (what BlooP, FlooP, GlooP, REDPROGRAM, means, is described in Hofstadter's book) 23:10:20 elliott: that's some special case on minint :P 23:11:18 Also see [[Oozlybub and Murphy]]. 23:11:39 zzo38: banana scheme and brainhype too 23:11:56 oerjan: Yes, those too. 23:12:35 *Main> re :: Re (Z :- S Z :- S (S Z) :- Nil) 23:12:35 ReZ ::- (ReS ReZ ::- (ReS (ReS ReZ) ::- ReNil)) 23:12:35 *Main> re :: Re (Z :- S Z :- S (S Z) :- True :- Nil) 23:12:35 :1:1: 23:12:35 Couldn't match type `TBool' with `TNat' 23:12:38 me am play gods 23:12:43 * oerjan realizes itos prime would be a nice scifi name 23:12:56 Itos Prime and the Curry Howardly Bijective Functors 23:13:09 cowardly hurried 23:13:39 Clearly it's a character from SuperTuring. 23:14:05 *Main> :t typeOf (re :: Re Nil) 23:14:05 typeOf (re :: Re Nil) :: Nope (TList a) 23:14:05 *Main> :t typeOf (re :: Re (True :- Nil)) 23:14:05 typeOf (re :: Re (True :- Nil)) :: Nope (TList TBool) 23:14:26 Phantom_Hoover: or possibly a planet. wait, a sentient planet. 23:14:45 oerjan, OF COURSE 23:15:49 oerjan: one camp is always going to say "if you take away this part, then what's left can't do the things a TC system should, therefore, what's left is not TC." other people are always gonna say "But what's left is the part doing all the real work!" It's same thing with the two register minsky machine. it's only TC if you are willing to allow unusual encoding of input. 23:16:44 * Sgeo manages to only embarrass himself in two non-here channels 23:16:54 quintopia: um as i said, the TCness of languages of strings is the baseline. and that includes minsky machines by simple encoding. 23:17:42 quintopia: Which says not only unclearness of TC, but also that TC is not necessarily sufficient. 23:18:18 oerjan: it's only a metaphor. the fact that you need a separate system to encode your input to the minsky tarpit, and would not be able to make a UTM in it without that 23:18:44 Sgeo, so that's three out of...? 23:18:55 quintopia: the separation of input from program is an unnecessary complication >:) 23:18:57 Phantom_Hoover, what? 23:19:10 Phantom_Hoover, I'm talking about a single event, where I didn't ask my stupid question in here 23:19:15 Ah. 23:19:18 quintopia: the separation of input from program is an unnecessary complication >:) 23:19:22 tempted to paste this to my non-programmer friend 23:19:27 "Here's your OS IT ONLY DOES ONE THING." 23:21:42 -!- copumpkin has joined. 23:21:42 -!- copumpkin has quit (Changing host). 23:21:42 -!- copumpkin has joined. 23:22:11 The SQLite C interface includes three-star pointers for some functions. 23:22:12 MWAHAHAHA WE KNOW HIS REAL HOST 23:22:48 oerjan: Does it matter? 23:23:07 yes. now we can kill him. 23:23:30 zzo38: not really, but it makes cloaks seem relatively useless when people do that mistake all the time 23:24:07 of course maybe he's just having a cloak for esthetic reasons. 23:24:29 oerjan: Then why do people do that mistake all the time? I don't have a cloak but still have never made such a mistake. 23:24:49 Can't you learn better? 23:25:41 zzo38: well the mistake only happens because of the cloak, so obviously you won't have done it 23:27:03 Still, I can see when the login is recognized. Is that what causes it? 23:27:17 yes afaiu 23:27:59 that's when the cloak will be added 23:28:16 Then probably it is synchronizing problem? 23:28:19 yeah 23:29:38 Tell them, that, if you want cloak you should check if the login is recognized before sending the JOIN command. 23:30:28 (I have actually asked for a cloak, but the one I asked for is not one their software supports, I think. Or something like that.) 23:33:42 (What I asked is that if the computer I am connecting from is named "zzo38computer.cjb.net", that the cloak is also set to that name. They were unable to do that.) 23:35:05 huh. 23:41:10 -!- augur has joined. 23:57:12 -!- augur has quit (Remote host closed the connection). 2011-07-03: 00:11:36 -!- Sgeo_ has joined. 00:11:43 -!- Sgeo_ has quit (Client Quit). 00:12:03 @hoogle [a] -> [a] 00:12:04 Prelude cycle :: [a] -> [a] 00:12:04 Prelude init :: [a] -> [a] 00:12:04 Prelude reverse :: [a] -> [a] 00:12:34 -!- hagb4rd has joined. 00:13:16 If there are no Oracle machines capable of dealing with itself as part of the system it ... oracles, how can an omniscient entity exist? 00:14:19 by not knowing about itself 00:14:21 it cannot. 00:14:27 one that keeps separate from the system 00:14:28 darn :P 00:14:48 :P 00:14:53 Hmm. So, would Christians be ok with that sort of response? 00:15:04 let me ask the consortium of defining what a christian can be 00:15:09 they say it's half past you're a moron 00:15:09 hmm. do an of us care? 00:15:28 elliott: dammit you almost owed me a keyboard there :P 00:16:08 oerjan: :D 00:16:43 Sgeo: God can make a rock so big he can't lift it, and still lift it! Moreover, God can know everything about everything and completely ignore any logical contradictions that happen as a result of this. God is beyond logic! 00:17:15 god is beyond logic, and if you say anything else he'll smack you 00:17:47 with lightning 00:17:48 sgeo: incompleteness is about logic systems 00:17:50 christianity is not 00:17:59 (if you didn't notice any smacking that's because god is beyond logic) 00:18:16 can god make yo mama so fat that even he cant lift her? 00:18:21 The Torah actually says somewhere that God'll kill you if you work on Yom Kippur 00:18:23 he can not smack you, and still have fulfilled the prophecy that he would smack you 00:18:37 sgeo: ... eventually. 00:18:40 newsham: smbc ripoff much? 00:18:42 Sgeo: presumably it doesn't say ho... right 00:18:55 quintopia: quite. 00:19:16 god kills everyone eventually 00:19:27 except me 00:19:28 bwahahaha 00:19:45 i shall kill myself at a ripe old age of 2099 00:19:49 i've sometimes been wondering, since one of the essential pieces of diagonalization is the negation, whether you could have a self-consistent self-referential system if you threw out negation. 00:20:25 possibly. you can have consistent self-referential systems by throwing out any number of things. 00:20:27 newsham, except Enoch! 00:20:32 (i.e. lambda calculus has fixpoints, but (thus) no negation that can work on all functions) 00:20:36 And Mary, if you believe anything the Pope says. 00:21:02 quintopia: well hopefully it would still be an interesting one somehow :P 00:21:25 The Gospels do say Jesus had brothers... 00:21:26 -!- TeruFSX has joined. 00:21:32 so umm.. whats the big deal w/ mary? jesus had brothers, i'm pretty sure she's not a virgin anymore. 00:22:08 newsham: she was so awesome she stayed a virgin anyway? 00:22:23 i've never been on ianbells hp till now.. it's so,..oldskool :) lotta things to get there for grownup spacerowdies 00:22:36 she didn't have to be a virgin to be what's the word... 00:22:43 hagb4rd: wat? 00:22:52 http://www.iancgbell.clara.net/ 00:22:54 well the pope is always going on about her being a virgin.. is all... 00:23:12 theres also a little bit of sourcecode 00:23:25 hagb4rd: wow, did someone build a time machine? 00:23:30 http://www.catholic.com/library/Mary_Ever_Virgin.asp oh here's the answer 00:23:43 that web page is one tag away from 1992 00:23:45 "you can believe whatever you like. she's still a virgin dammit" 00:24:01 Why are we talking about Ian Bell all of a sudden? 00:24:14 (It makes my eyes bleed.) 00:24:17 somebody has to kick off a sequel newsham 00:24:30 newsham: wait you mean blink tags are time machines? maybe they shouldn't have been stamped out... 00:24:55 newsham, TbH, Ian Bell gets off with it by virtue of being Ian Bell. 00:24:58 what of james the brother of jesus? 00:25:43 http://bible.cc/galatians/1-19.htm 00:26:30 -!- Lymee has quit (Ping timeout: 258 seconds). 00:26:49 newsham: that page says that he could be at most a stepbrother 00:26:49 *shrug* mary mary, quite contrary... 00:27:04 quintopia: because God wasn't his dad? 00:27:24 newsham: if mary had been his mother, he'd be a half-brother 00:27:29 oh, this is the guy who wrote Elite.. neat. 00:27:54 instead, he was just the son of Joseph 00:27:57 hm did jews practice polygamy at that time? 00:28:14 who was a widower when mary was entrusted to him 00:28:21 anyway 00:28:25 that's what that page says 00:28:32 supper time... 00:28:58 super soup supper 00:29:22 this page is not readable without highlighting text 00:29:23 http://www.iancgbell.clara.net/elite/nes/index.htm 00:29:26 very retro 1992 00:30:01 82Kbytes.. huge game 00:30:27 I approve of this Elite talk. 00:32:20 i wonder how many 8-bit game devs worked in crossdev environments vs. native environments 00:36:38 and if you haven't seen it yet, ..no even you hate ..be sure to watch southpark episode 13.3 .. it's analogies to good ol joshuas story are just delicious --> http://de.southparkstudios.com/alleEpisoden/1303/?lang=en 00:37:27 if you're not in a hurry ;) 00:37:51 newsham, I'm amazed they ported it that much, TbH. 00:38:33 It was written in straight assembly; porting was just writing it again with an entirely new set of optimisations. 00:39:12 -!- Lymee has joined. 00:40:32 -!- Sgeo has quit (Ping timeout: 255 seconds). 00:45:31 got Elite in NES emulator. 00:46:00 phantom: they did have many ports for same cpu, too, ie. all the 6502 ports, two 68k ports 00:46:16 newsham, FWIW, there's a modern remake at http://oolite.org 00:46:22 also game design done once, programming done several times, profit. 00:46:29 who wants a modern remake? :) 00:46:45 thats like installing SCUMMVM and then running some new community-made game 00:46:50 Well, you can turn on the wireframe and put it into strict mode and it's basically the same. 00:47:16 they have the BBC elite code online.. thats kinda neat 00:47:24 wish they had some 6502 code.. i'd rather look at that 00:47:56 newsham: Elite is boring though, Oolite is less boring :P 00:48:03 also wish this site had more story to it 00:48:15 elliott: honeslty i dont plan to really play either 00:48:41 but thakns for pointing it out.. looks neat 00:55:32 -!- Sgeo has joined. 00:56:44 i would love to resign on the story gaining its sandbox abilities.. a real world made up by its citizens 00:57:08 the star-dreamer problem is problem in mp 00:57:32 i cant tell if you're talking or just generating random trigrams 00:58:30 i guess it's more random and definitly not worth your time 00:59:23 we were youg, and we had the time and the money *g 00:59:31 newsham: latter 00:59:43 * hagb4rd .Dispose() 01:00:23 "We had access to too much money, too much equipment, and little by little we went insane" 01:00:27 -!- Sgeo has quit (Ping timeout: 260 seconds). 01:01:01 oolite is in objc. heh 01:01:17 portable objc! 01:09:20 -!- Lymee has quit (Ping timeout: 276 seconds). 01:11:59 agum library and program: Unification and Matching in an Abelian Group 01:11:59 cmu library and program: Unification in a Commutative Monoid 01:12:03 oerjan: IS THERE ANYWHERE SAFE FROM UNIFICATION 01:12:29 elliott: koreas? taiwan? 01:12:41 (I guess we can rule out germany) 01:12:51 hyuk 01:13:59 cyprus? 01:14:16 gondwana? 01:14:44 -!- cheater_ has quit (Ping timeout: 255 seconds). 01:17:21 it's still expanding as far as i know.. my discordian friends ..the unification will implode if we don't find a new name for the princess ;) 01:20:06 plagiata 01:20:39 -!- Sgeo has joined. 01:21:32 hey it's not taken, it just grows and breeds tiny new creatures 01:22:20 What? 01:22:32 Sorry, looking at logs right now will put me in a world of pain 01:24:15 !bf . 01:24:21 ... 01:26:20 Ok, can afford to look at logs now 01:27:29 WOAH 01:28:06 http://calormen.com/l33t/jselite.htm 01:28:08 -!- cheater_ has joined. 01:30:55 -!- Vorpal has quit (Ping timeout: 258 seconds). 01:32:21 -!- Lymee has joined. 01:32:28 i'm a tard, the bbc was 6502? 01:38:51 i need to write some 6502 code 01:44:54 <3 Text Elite. 01:48:48 Phantom_Hoover, I assume these are not in any particular order? 01:49:11 http://calormen.com/l33t/jselite.htm 01:49:55 OK I think it's starting to get light outside argh. 01:49:55 -!- Phantom_Hoover has left ("Leaving"). 01:49:57 -!- Phantom_Hoover has quit (Quit: Leaving). 01:50:12 no it isnt 01:50:40 it takes another hour for that] 01:50:53 hehe 01:50:54 I think NES/Famicom is like 6502 except that the decimal mode has no function 01:51:52 the bcd instructions were useless anyway :) 01:52:39 "The Ricoh 2A03 was a 6502 variant lacking the BCD Mode, used in the Nintendo Entertainment System." 02:02:53 "We also experiment with photograpy of nudes painted with flourescent cosmetics under "black" (UV) light. " -Ian Bell, as we love him 02:04:17 a 02:17:06 I think the decimal mode flag still exists except that it doesn't do anything except storing one flag bit (now you can use it for your own purpose, I think). 02:27:38 -!- TeruFSX has quit (Ping timeout: 255 seconds). 02:40:39 :t interleave 02:40:40 forall (m :: * -> *) a. (MonadLogic m) => m a -> m a -> m a 02:41:53 CALESKELL 02:41:59 CakeProphet: s/m/[]/ 02:44:45 wtf O_O 02:44:52 what about Logic, LogicT, all of the other bizarre MonadLogic instances 02:44:57 like isn't there a ST instance 02:45:00 :t intersperse 'o' (repeat 'l') 02:45:01 [Char] 02:45:05 > intersperse 'o' (repeat 'l') 02:45:05 "lololololololololololololololololololololololololololololololololololololo... 02:45:24 > fix ("no" ++) 02:45:26 "nonononononononononononononononononononononononononononononononononononono... 02:45:26 oops 02:45:28 yes 02:46:14 > interleave "what" "now?" 02:46:15 "wnhoawt?" 02:46:47 what about Logic, LogicT, all of the other bizarre MonadLogic instances 02:46:48 those aren't standard 02:46:52 intersperse is caleskell 02:47:04 as in 02:47:05 oh 02:47:08 real intersperse is lists only 02:47:20 :t intercalate 02:47:21 forall a. [a] -> [[a]] -> [a] 02:47:27 elliott: um that's interleave, not intersperse 02:47:31 -!- Behold has quit (Remote host closed the connection). 02:47:34 :t intersperse 02:47:35 forall a. a -> [a] -> [a] 02:47:38 yeah yeah 02:47:39 same thing 02:47:45 ?src Int (/) 02:47:45 Source not found. Do you think like you type? 02:47:46 ?src div 02:47:46 Source not found. Your mind just hasn't been the same since the electro-shock, has it? 02:47:53 ?hoogle div 02:47:53 Prelude div :: Integral a => a -> a -> a 02:47:53 Data.Fixed div' :: (Real a, Integral b) => a -> a -> b 02:47:53 Control.Exception DivideByZero :: ArithException 02:47:57 um no caleskell in intersperse 02:48:04 :t interleave 02:48:05 forall (m :: * -> *) a. (MonadLogic m) => m a -> m a -> m a 02:48:10 you know what i mean 02:48:17 :t intercalate 02:48:17 forall a. [a] -> [[a]] -> [a] 02:48:24 surely that could be generalised :) 02:48:36 elliott: um afaik interleave does not exist in Data.List at all 02:48:41 ?hoogle interleave 02:48:42 System.IO.Unsafe unsafeInterleaveIO :: IO a -> IO a 02:48:42 Control.Monad.ST unsafeInterleaveST :: ST s a -> ST s a 02:48:42 Control.Monad.ST.Lazy unsafeInterleaveST :: ST s a -> ST s a 02:48:43 oh 02:48:47 fair enough then 02:48:55 it's entirely caleskell, then 02:49:02 although it might have been useful 02:49:38 quotRemInt :: Int -> Int -> (Int, Int) 02:49:38 quotRemInt a@(I# _) b@(I# _) = (a `quotInt` b, a `remInt` b) 02:49:38 -- OK, so I made it a little stricter. Shoot me. (WDP 94/10) 02:49:38 divModInt :: Int -> Int -> (Int, Int) 02:49:38 divModInt x@(I# _) y@(I# _) = (x `divInt` y, x `modInt` y) 02:49:45 it's ok WDP, we forgive you 02:49:48 > interleave "abc" (repeat ' ') 02:49:49 "a b c ... 02:50:01 > "hello" >>- return 02:50:02 div x@(I8# x#) y@(I8# y#) 02:50:02 | y == 0 = divZeroError 02:50:02 | x == minBound && y == (-1) = overflowError 02:50:02 | otherwise = I8# (narrow8Int# (x# `divInt#` y#)) 02:50:02 "hello" 02:50:03 boring 02:50:14 wait shouldn't that have a hash after the 0 in the y comparison 02:50:16 elliott: not quite the same as intersperse even that way 02:50:23 :t (>>-) 02:50:24 forall (m :: * -> *) a b. (MonadLogic m) => m a -> (a -> m b) -> m b 02:51:06 you know what i wish? 02:51:20 i wish the fail method wasn't in the Monad class. 02:51:29 i wish that too 02:51:33 (and replaced with class MonadFail e m where fail :: e -> m a) 02:51:39 (instance MonadFail e (Either e) where fail = Left) 02:51:46 (instance MonadFail e Maybe where fail = const Nothing) 02:51:58 instance (Show e, Typeable e) => MonadFail e IO where fail = throw . SomeWrapper) 02:52:03 i also wish there weren't so many ridiculous equivalent typeclasses 02:52:07 that would be Nice. 02:52:28 myFailingThing :: (MonadFail String m) => Int -> m BlahBlah 02:52:34 monqy: like what? 02:52:50 elliott: off the top of my head, monadplus, alternative, and friends 02:52:58 ah, right 02:53:00 ?src MonadPlus 02:53:00 Source not found. Are you on drugs? 02:53:03 isn't MonadPlus just Monoid 02:53:09 that too 02:53:12 monqy: i also wish applicative was a superclass of monad. 02:53:18 mmmm 02:53:24 monqy: and also, that subclasses could define default methods for _superclasses_ 02:53:29 that use the methods in itself 02:53:31 yes yes 02:53:32 so that you would have 02:53:34 class Monad m where 02:53:35 ... 02:53:37 fmap = liftM 02:53:43 pure = return 02:53:43 etc. 02:53:50 then you could just define one Monad instance, and get Functor and Applicative for free. 02:53:54 why doesn't this already work. 02:53:59 > "hello" >>- repeat 02:53:59 "hehlhehlhehlhehohehlhehlhehlhehohehlhehlhehlhehohehlhehlhehlhehohehlhehlhe... 02:54:02 it would retain total backwards compatibility 02:54:03 woohoo 02:54:07 monqy: lol 02:54:33 who do you think I need to pay to get those subclass defaults in GHC 02:54:40 oh, it would also let you clean up the numeric prelude 02:54:41 by, like 02:54:44 just defining a Field instance 02:54:52 and getting all the weird algebraic superclasses filled in for you 02:55:12 > once "hello" 02:55:13 "h" 02:55:16 :t (>>-) 02:55:17 forall (m :: * -> *) a b. (MonadLogic m) => m a -> (a -> m b) -> m b 02:55:41 i would make haskell just that little bit nicer than it is if i was dictator :( 02:55:43 oh just the >>= for MonadLogic? 02:55:48 or something else 02:55:48 yeah 02:55:50 fair >>= 02:55:58 oh 02:56:03 monqy knows too much about MonadLogic 02:56:08 i am staring suspiciously at him 02:56:18 i have the docs open _right now_ 02:56:52 > runLogic "fucks" (flip const) 0 02:56:52 Couldn't match expected type `Control.Monad.Logic.Logic a' 02:56:53 against ... 02:57:08 ur a fagot 02:57:09 :( 02:57:11 hmm 02:57:20 :t runLogic 02:57:21 forall a r. Logic a -> (a -> r -> r) -> r -> r 02:57:21 *ovations* 02:57:21 logict is cool 02:57:25 its oleg 02:57:29 olegs cool 02:57:36 deep thoughts w/ ehird 02:57:50 i have the paper but its in my reading pile 02:57:53 not my brain 02:58:07 monqy: the entirety of okmij.org should be in your reading pile and/or brain 02:58:09 even the C++ bits 02:58:12 even the Perl bits 02:58:20 @src MonadLogic 02:58:20 Source not found. Are you on drugs? 02:58:21 putting in reading pile 02:58:40 monqy: you do know of oleg though right 02:58:40 rofl 02:58:46 nice updates 02:58:47 like in the "minor deity" sense of knowing 02:58:48 i've heard the name 02:58:59 > "ab" >>- repeat 02:58:59 the name;s everywhere 02:58:59 "ababababababababababababababababababababababababababababababababababababab... 02:59:04 > "abc" >>- repeat 02:59:05 "abacabacabacabacabacabacabacabacabacabacabacabacabacabacabacabacabacabacab... 02:59:29 that doesn't look very fair, every second is an a :P 02:59:32 monqy: he's basically a genius. he has done practically everything that is possible to do in the lambda calculus, in haskell, in scheme, in haskell's type system, in scheme hygienic macros. 02:59:37 and he even does practical stuff, too :D 02:59:39 e.g. iteratees are his fault. 02:59:55 hmm, did Oleg popularise the zipper? 02:59:59 I think he might have 03:00:04 oerjan: hard to be fair when you have an odd number :P 03:00:24 > ifte "hello" fail "nope" 03:00:24 Couldn't match expected type `GHC.Types.Char' 03:00:24 against inferred type... 03:00:31 uhh 03:00:33 elliott: um why can't it be the same as cycle "abc"? 03:00:34 oh right 03:00:35 you need Logic a 03:00:40 oerjan: presumably that's not how it works 03:00:42 > ifte "hello" (const fail) "nope" 03:00:42 Couldn't match expected type `[b]' 03:00:43 against inferred type `GHC.Base.... 03:00:46 oh wait 03:00:49 as in 03:00:51 not the same operation 03:00:54 > ifte "hello" (fail . return) "nope" 03:00:55 "" 03:00:59 > "abcd" >>- repeat 03:01:00 "abacabadabacabadabacabadabacabadabacabadabacabadabacabadabacabadabacabadab... 03:01:06 not knowing how to use ifte is the worst 03:01:12 elliott: that's even ;P 03:01:14 monqy: btw i was not serious about reading all of okmij.org. that would take a _long_ time 03:01:22 too late 03:01:26 i will only read part of it 03:02:06 > ifte "hello" repeat "nope" 03:02:07 "hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh... 03:02:21 just read the haskell, scheme, prolog, ML, typed DSL, other, continuations, OS, computation, essays, probabilistic programming, numerical math, and meta-theory sections. plus everything linked from the algorithms and data structures, computing and computation, operating systems and networking pages. 03:02:32 that skips out the C/C++, Perl and XML sections 03:02:48 i dislike xml xml is boring and ugly 03:02:55 is there anything interesting at all in xml 03:02:57 oleg makes it cool 03:03:03 now im curious 03:03:14 he invented SXML, which embeds the entirety of XML into nice clean s-expressions 03:03:23 thus making it not horrid to process and generate from Scheme code 03:03:40 then went and built an entire practical library on top of it as he is infuriatingly wont to do. 03:03:44 you can only be good at one thing, oleg :( 03:03:56 also sxpath, which is basically s-expression xpath for sxmls. 03:04:01 and then 03:04:02 HSXML: Typed SXML 03:04:02 This message reports on several experiments in Haskell to ascertain plausibility, benefits and drawbacks of typed SXML in a mainstream functional language. It turns out that Haskell as it is can represent semi-structured data in SXML-conforming syntax, with the extensible set of `tags' and statically enforced content model restrictions. Querying, transforming and advanced rendering into HTML and XML are possible. The experience of writing (modera 03:04:02 tely complex, so far) web pages in HSXML shows that the typed SXML can be used in practice. 03:04:28 what, he wrote an sxml->latex translator 03:04:35 Joint processing of two immutable SXML documents with update cursors 03:04:35 We give an example of traversing two SXML documents ``side-by-side'' and making pure functional updates to arbitrary encountered nodes. The example illustrates the benefits of zipper -- an update cursor into an immutable data structure. 03:04:45 SXML as a normalized database 03:04:45 S-expression-based files are handy not only for authoring Web pages. They can be used to build XML documents. The following article shows a real-life and less-trivial example of that. It is straightforward to convert data into (tag "data") and vice versa. The SSAX parser and the SXML manipulation tools can do that easily. However, exporting relational sources into XML often runs into an impedance mismatch: XML by its nature is a hierar 03:04:45 chical database. We will show an example of generating XML from s-expressions that involves denormalizations, "table joins" and third-order tags. The s-expression format turns out not only more understandable and insightful, but more concise as well, by a factor of four. 03:04:51 dammit oleg 03:04:56 you're making me interested in xml :( 03:06:50 > cycle "01" >>- repeat 03:06:51 "01000101010001000100010101000101010001010100010001000101010001000100010101... 03:08:38 ?type (>>-) 03:08:39 forall (m :: * -> *) a b. (MonadLogic m) => m a -> (a -> m b) -> m b 03:09:13 ?src (>>-) 03:09:13 Source not found. 03:09:18 what is that? 03:09:26 fair >>= for monadlogic 03:09:45 i dont know monadlogic.. i need to look it up 03:09:52 m >>- f = do { Just (a, m') <- msplit m; interleave (f a) (m' >>- f) } 03:09:57 thats the default definition 03:10:38 aha 03:11:12 > msplit "abcd" 03:11:13 [Just ('a',"bcd")] 03:11:32 so i thought people used maybe/[] for backtracking.. whats this got over them? 03:11:50 cool backtracking for cool people 03:12:23 oh man is this actually a monad 03:12:28 newsham: oleg 03:12:41 newsham: tl;dr its about five hundred times more efficient. 03:12:46 and has a cleaner model IIRC 03:13:20 newsham: it looks like >>- unlike >>= backtracks on the first argument even if the second one returns an infinite list 03:14:11 instance Monad ((:>:) a) where 03:14:11 return a = Tele (\f x -> (a,x)) 03:14:11 t >>= f = Tele (\ff x -> unTele (f (get t x)) ff x) 03:14:12 maybe it is 03:14:43 what are the monad laws again 03:15:11 with that >>- i'm particularly worried about the third one 03:16:14 return x >>= f = f x, x >>= return = x, (x >>= f) >>= g = x >>= \t -> f t >>= g 03:16:14 -!- Sgeo has quit (Ping timeout: 255 seconds). 03:16:48 thou shalt not take the name of wadler in vain, thou shalt not covet your neighbors impure scripting language, bind unto others as you would have them bind unto you 03:16:51 or something like that 03:16:58 whats (:>:) 03:17:19 -!- Sgeo has joined. 03:17:37 monqy: newtype a :>: b = Tele { unTele :: (b -> b) -> a -> (b, a) } 03:17:37 How likely is it that Symantec is the reason my computer runs like crap? 03:17:42 my reinvention of lenses and fclabels 03:17:45 except this has efficient update 03:17:49 Sgeo: haahahahaha why do you use symtantec 03:17:55 is it because your father demands it 03:17:56 is it a good reinvention 03:18:01 elliott, even my dad hates it. 03:18:03 monqy: it has efficient update, so maybe? 03:18:06 The school requires it. 03:18:06 Sgeo: then why the fuck do you use it 03:18:09 hahahaha 03:18:10 who gives a shit 03:18:12 do they check 03:18:13 what sort of school 03:18:14 would do that 03:18:19 To use wifi 03:18:21 monqy: my baby's first college 03:18:22 Sgeo: do they check 03:18:23 At school, I mean 03:18:25 Sgeo: do they check 03:18:29 > ("ab" >>- \x -> [[x,'c'],[x,'d']]) >>= \y -> ['e':y,'f':y] 03:18:30 ["eac","fac","ebc","fbc","ead","fad","ebd","fbd"] 03:18:41 elliott, yes. Not sure how, probably can be worked around 03:18:48 Sgeo: uninstall it immediately and figure out how to work around it 03:18:58 er wait 03:19:04 > "ab" >>- \x -> [[x,'c'],[x,'d']] >>- \y -> ['e':y,'f':y] 03:19:04 sgeo: turn it off and find out. 03:19:05 ["eac","ebc","ead","ebd","fac","fbc","fad","fbd"] 03:19:16 sgeo: do you really want a useless piece of software slwoing down every single file access? 03:19:25 > ("ab" >>- \x -> [[x,'c'],[x,'d']]) >>- \y -> ['e':y,'f':y] 03:19:25 ["eac","ebc","fac","ead","fbc","ebd","fad","fbd"] 03:19:46 elliott: ok >>- is not a monad >>= 03:19:53 oerjan: no shit 03:19:56 its not meant to be 03:20:01 maybe you should read the docs :P 03:20:05 um 03:20:11 > (0$0 >>-) 03:20:12 The operator `Control.Monad.Logic.Class.>>-' [infixl 9] of a section 03:20:12 m... 03:20:29 elliott: that's a criminal lack of fixity consideration 03:20:36 also, what do you mean _read_? 03:20:45 study 03:20:57 as the brits say, revise 03:21:04 worship??? 03:21:30 (b :>: c) -> (a :>: b) -> (a :>: c) 03:21:31 ugh how 03:22:37 :t ?x 03:22:38 forall t. (?x::t) => t 03:22:45 why does nobody use implicit parameters 03:23:26 implicit parameters are scary 03:24:04 i wish i had a big project like ghc to hug 03:24:12 elliott: first oleg needs to show how they can be used to make lightweight delimited continuations that also make coffee 03:24:16 like i feel like i'm getting really good at modelling large programs with haskell 03:24:19 but to test that 03:24:23 i need to write a large program 03:24:27 and i have no large programs to _write_ 03:24:30 oerjan: :D 03:24:38 "lightweight delimited continuations" is _so_ oleg 03:27:57 http://www.symantec.com/business/support/index?page=content&id=TECH102286&locale=en_US oh what the fuck why do they make it annoying? 03:28:06 They don't just provide an uninstaller, afaict 03:28:13 ok, so fair disjunction is mplus that lets some answers from both sides in 03:28:17 ? 03:28:26 n/m they do 03:28:27 and thats "interleave"? 03:29:01 > interleave "hello" "world" 03:29:01 "hweolrllod" 03:29:25 >interleave [1..] [-1,-2..] 03:29:29 >interleave [1..] [-1,-2..] 03:29:32 > interleave [1..] [-1,-2..] 03:29:33 [1,-1,2,-2,3,-3,4,-4,5,-5,6,-6,7,-7,8,-8,9,-9,10,-10,11,-11,12,-12,13,-13,1... 03:29:41 > sum $ interleave [1..] [-1,-2..] 03:29:45 mueval-core: Time limit exceeded 03:29:51 Blasphemy. 03:30:18 so you basically use "interleave" and ">>-" where you would have used "mplus" and ">>=" in the past? 03:30:23 carpen dioxide 03:31:38 once for pruning, ifte for soft-cut 03:31:42 msplit for msplit 03:31:52 > fix ((0:).(interleave<=<(1-))) 03:31:53 Couldn't match expected type `[t]' 03:31:53 against inferred type `m a -> m a' 03:31:55 bah 03:32:13 Deewiant: Did you ever benchmark list-tries against Data.Map? 03:32:36 monqy: side-msplitting 03:33:44 it's like you have one element of a side and then the rest of the side except when there is no side in which case you have nothing???? 03:34:20 well a wrapped just elementofside,restofside or a wrapped nothing 03:34:43 i am bad at wording things what will i do in life 03:34:59 :t (<**>) 03:35:00 forall (f :: * -> *) a b. (Applicative f) => f a -> f (a -> b) -> f b 03:35:30 I still don't quite understand why (<**>) exists 03:36:13 ?hoogle address 03:36:13 Text.Html address :: Html -> Html 03:36:13 Text.XHtml.Frameset address :: Html -> Html 03:36:13 Text.XHtml.Strict address :: Html -> Html 03:36:16 ?hoogle address with some hashes after it 03:36:17 No results found 03:36:17 monqy: to get the actions done in the reverse order of the application 03:36:20 ?hoogle so unsafe baby 03:36:20 No results found 03:36:24 ?hoogle be unsafe w/ me 03:36:24 Parse error: 03:36:24 --count=20 "be unsafe w/ me" 03:36:25 ^ 03:36:29 ?hoogle ass 03:36:29 Control.Exception assert :: Bool -> a -> a 03:36:29 Control.OldException assert :: Bool -> a -> a 03:36:29 Control.Exception.Base assert :: Bool -> a -> a 03:36:30 oerjan: but is it ever stylish to do that 03:37:01 monqy: istr we found a perfect use for it in one of elliott's programs 03:37:11 :D 03:37:14 my best programs 03:38:08 monqy: it was in Parsec, for a language syntax where the "minus sign" comes after the number 03:38:49 so it was essentially parseNumber <**> (parseSign *> negate <|> id) 03:39:03 -!- TeruFSX has joined. 03:39:05 well at one point any way 03:39:17 very stylish 03:39:39 that is actually stylish, dunno if you're being sarcastic 03:39:50 sometimes im not sarcastic 03:40:03 what's the definition of (<**>) btw? 03:40:06 monqy: sometimes 03:40:13 @src (<**>) 03:40:13 monqy: like whenever you're not talking to me ;D 03:40:14 (<**>) = liftA2 (flip ($)) 03:40:15 sometimes im both sarcastic and not sarcastic in the same sentence i am a bad person 03:40:36 i can never tell whether monqy is mocking me or agreeing with me, maybe he is always mocking me, maybe he is always both 03:41:14 > fix ((0:).(interleave<*>map(1-))) 03:41:15 [0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,... 03:41:25 -!- azaq23 has joined. 03:41:28 hm that's not quite it 03:42:16 -!- Sgeo has quit (Read error: Connection reset by peer). 03:42:38 wtf not 03:43:00 > interleave "0110" "1001" 03:43:01 "01101001" 03:43:34 oh wait 03:44:21 > interleave "abcd" "ABCD" 03:44:21 "aAbBcCdD" 03:44:49 oh hm 03:45:13 > fix ((0:).(interleave=< [0,1,0,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,... 03:45:21 still not 03:45:27 What are you trying to get it to do? 03:46:12 > interleave "1001" "0110" 03:46:17 > interleave "1001" "0110" 03:46:18 "10010110" 03:46:22 > fix (((0:).tail).(interleave<*>map(1-))) 03:46:24 Terminated 03:46:31 wat 03:46:40 is there any other pair of four digit binary strings that has that property oerjan? 03:46:52 certainly :P 03:47:12 > interleave "1010" "0101" 03:47:13 "10011001" 03:47:50 hm i guess only trivial ones 03:47:58 > interleave "0000" "0000" 03:47:59 "00000000" 03:48:24 > fix (((0:).tail).(interleave<*>map(1-))) 03:48:26 [0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,... 03:48:26 hmm 03:48:41 that works, but i'd hoped for something prettier :( 03:48:42 -!- Lymia has joined. 03:48:57 hm... 03:49:04 why is reallyUnsafePtrEquality# not reliable :( 03:49:21 I think it is the Thue-Morse sequence, isn't it? 03:49:23 reallyUnsafe good prefix 03:49:31 monqy: it is 03:49:40 zzo38: yep 03:49:43 it's not nearly as unsafe as unsafeCoerce so i dunno why it's called that :) 03:49:56 reallyReallyUnsafeCoerce 03:51:12 justFuckingDon'tDoItNotEvenOnceCoerce :: a -> no bad why no b 03:51:54 elliott: i'm sorry that won't type :P 03:52:11 -!- Lymee has quit (Ping timeout: 264 seconds). 03:52:23 :t const undefined 03:52:24 forall a b. b -> a 03:52:26 intern :: (Hashable a, Ord a) => InternStore a -> a -> Interned a 03:52:26 intern (InternStore var) a = unsafePerformIO $ modifyMVar var $ \m -> do 03:52:27 case Map.lookup a m of 03:52:27 Nothing -> 03:52:27 let interned = Interned a 03:52:29 m' = Map.insert a interned m 03:52:31 in interned `seq` m' `seq` return (m', interned) 03:52:33 (it has a recursive _kind_) 03:52:33 Just interned -> interned `seq` return (m, interned) 03:52:37 I can only assume that HashMap is being evil and copying the value 03:52:44 because this should _not_ copy interned, ever 03:52:55 (I use reallyUnsafePtrEquality# to compare Interneds (this is the only way to construct them)) 03:53:30 > [1..] >>- id 03:53:31 No instances for (GHC.Num.Num [b], GHC.Enum.Enum [b]) 03:53:31 arising from a use... 03:53:34 oerjan: halp 03:53:35 erm 03:53:39 > [1..] >>- return 03:53:39 [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28... 03:53:44 oops 03:54:22 -!- Lymia has changed nick to Lymee. 03:54:30 no but srs 03:54:35 why is copy :( 03:54:39 maybe i'll write my own map as a test 03:55:32 _can_ HashMap copy the value? 03:56:13 oerjan: I don't know, but GHC certainly can in HashMap's implementation if it wants to 03:56:38 oerjan: all I know is, the second time round it _does_ fetch it from the hash table rather than constructing a new one 03:56:43 so by all rights it should be the exact same object as I put in 03:57:21 elliott: are you calling intern with the same parameters anywhere? 03:58:36 dammit, it's false with IntMap too 03:58:37 oerjan: yes 03:58:40 store <- emptyInternStore -- :: IO (InternStore Int) 03:58:40 let foo = intern store 9 03:58:40 print foo 03:58:40 let bar = intern store 9 03:58:40 print bar 03:58:44 [1..] >>- show 03:58:46 er 03:58:48 > [1..] >>- show 03:58:49 "12345678911011121314151617182920212223242526272839303132333435363738494041... 03:58:51 and when bar is evaluated, it _does_ take the "already in the map" branch 03:58:55 but then the two objects aren't pointer-equal 03:58:58 so it's being copied /somewhere/ 03:59:03 elliott: in that case ghc is perfectly allowed to let bar be just foo 03:59:14 -!- Sgeo has joined. 03:59:28 and do no reevaluation 03:59:32 oerjan: um yes, and then reallyUnsafePtrEquality# would be true 03:59:35 oerjan: but i've traced the evaluation 03:59:37 hm... 03:59:38 with Debug.Trace 03:59:42 and it _does_ evaluate both separately 03:59:48 with bar taking the other branch 03:59:53 IIRC automatic CSE has space leak problems in haskell 03:59:56 so ghc tends not to do it 04:00:03 but yeah, there is some copying going on here 04:00:04 right 04:00:20 http://www.haskell.org/ghc/docs/7.0.3/html/libraries/ghc-prim-0.2.0.0/GHC-Prim.html#g:19 I love how it isn't even documented 04:00:24 they _really_ don't want you to use this 04:02:00 * Sgeo goes to install MSE 04:02:22 oerjan: I think if you unpack (Just a) and then construct (Just a), say, a might be copied 04:02:31 oerjan: perhaps especially if a is an Int, since unboxing/reboxing is really cheap... 04:02:49 * elliott reads lists 04:02:52 Prelude GHC.Exts GHC.Prim> let q = Just 3 04:02:52 Prelude GHC.Exts GHC.Prim> let f j@(Just a) = j; r = f q 04:02:52 Prelude GHC.Exts GHC.Prim> I# (reallyUnsafePtrEquality# q r) 04:02:52 0 04:02:52 Prelude GHC.Exts GHC.Prim> r 04:02:59 1 04:03:01 Prelude GHC.Exts GHC.Prim> 04:03:03 Prelude GHC.Exts GHC.Prim> let q = Just 3 04:03:05 Prelude GHC.Exts GHC.Prim> let f j@(Just a) = j; r = f q 04:03:07 Prelude GHC.Exts GHC.Prim> I# (r `seq` reallyUnsafePtrEquality# q r) 04:03:09 0 04:03:11 Prelude GHC.Exts GHC.Prim> I# (r `seq` reallyUnsafePtrEquality# q r) 04:03:13 1 04:03:15 ah, what a wonderful function 04:03:23 oerjan: do you think if i went into #ghc and asked for help debugging my reallyUnsafePtrEquality# use they'd laugh at me... 04:04:12 > interleave "1110" "1000" 04:04:13 "11101000" 04:05:21 oerjan: that one works, but not commutatively 04:05:42 > interleave "0001" "0111" 04:05:43 "00010111" 04:06:02 the condition is that one should be the negation of the other reversed 04:06:58 > interleave "abcd" "efgh" 04:06:59 "aebfcgdh" 04:07:36 -!- myndzi\ has joined. 04:07:48 elliott: hm i guess some unboxing might be bad. what happens if you use a definitely not unboxable value? 04:08:02 -!- Sgeo has quit (Read error: Connection reset by peer). 04:08:04 oerjan: do you have such a type? :P 04:08:40 elliott: well try something better than Int, anyway :P 04:08:49 oerjan: with Data.Map 04:08:49 ? 04:08:53 yeah 04:08:56 -!- derrik has joined. 04:09:06 data V = V String String 04:09:08 good data type dot jpg 04:09:32 There are many ways to generate the Thue-Morse sequence and I think I have also read there are many ways in which it can be used. 04:09:39 String alone might also work, not? 04:10:11 oerjan: still false, unfortunately 04:10:21 i wonder whether it's lack of strictness 04:10:25 because evaluation _will_ change the pointer 04:10:30 but i evaluate a before everything else, so... 04:11:07 quintopia: b=c=e,d=f=g 04:11:08 -!- myndzi has quit (Ping timeout: 255 seconds). 04:11:33 > interleave "0001" 0110" 04:11:34 : 04:11:34 lexical error in string/character literal at end o... 04:11:40 > interleave "0001" "0110" 04:11:41 "00010110" 04:12:40 data V = V String V -- use this 04:12:42 also use deepseq 04:12:45 monqy: lol 04:12:49 well at least it wouldn't return false 04:13:09 oerjan: interestingly, I think the interface I'm exposing is actually pure 04:13:22 > let x = if x then False else x in x 04:13:25 since you could easily implement an analogue that just returns (Interned a) all the time, and has a slow (==) 04:13:26 mueval-core: Time limit exceeded 04:13:35 so ideally, this will just be a really big optimisation :P 04:13:51 hash consing 04:14:18 oerjan: what of it? 04:14:27 it has similarities to what i'm doing, yes 04:14:49 i thought that was about what you were doing 04:15:16 "Do glasses not exist in the afterlife?" 04:15:26 do pants exist in the afterlife 04:15:38 "Oh. I never noticed for some reason. I guess you don't need corrective lenses when you're dead anyway." 04:15:57 do hoohas/dingdongs exist in the afterlife 04:16:17 afterlife is confusing 04:16:25 the dingdongs ate all the hoohas 04:16:32 isn't that a bit backwards 04:16:46 the other way sounded a bit rude 04:17:03 oerjan: I really wonder how this is being copied.. 04:17:06 [asterisk]... 04:17:09 maybe I should use StableName 04:17:16 but that would be like, slow :( 04:17:21 Would questions about debugging a usage of reallyUnsafePtrEquality# be appropriate here? Would they be appropriate _anywhere_? 04:17:22 [chirps] 04:17:37 is that #ghc 04:17:44 heheheheheehe 04:18:09 yep 04:20:51 oerjan: maybe i should use some structure other than a map just to test 04:21:25 ye olde list 04:21:46 sigh 04:21:48 made it a list 04:21:50 still gets copied 04:22:18 ok made it Maybe, /still/ gets copied 04:22:23 this now officially makes no sense at all 04:23:24 Identity? 04:23:43 monqy: that wouldn't work, I need an empty state 04:23:45 -!- Sgeo has joined. 04:23:49 oh 04:25:32 elliott: what happens if you _drop_ the seq's for interned? 04:26:00 well in the Nothing case 04:26:17 same results 04:26:39 huh 04:27:11 someone in ghc seems to have taken the bait 04:27:17 i am carefully watch............ 04:27:20 yay 04:27:30 good taken or bad taken 04:28:10 i don't know 04:30:44 I think I scared them off with code 04:30:52 oerjan: here it is, btw http://hpaste.org/48651 04:30:58 no refunds if it kills you 04:31:23 that's ok, i won't need a refund if i'm dead 04:31:36 or will you 04:31:59 well i guess if the ancient greeks were right, i might need a couple of coins 04:32:27 i cant stop seeing the hlinted stuff it is haunting me 04:33:07 im sorry 04:33:13 do you want me to fix it 04:33:21 i cant fix the second one though because like 04:33:30 that might ruin some sequencing i'm going for 04:33:41 thats spooky 04:33:44 im spooked 04:34:05 Dammit I can't find the page on the cable modem to change the password 04:34:08 elliott: um r <- return ... should be entirely equivalent to let r = ... no ? 04:34:16 oerjan: look I trust _nothing_ right now :D 04:34:21 GHC might do some FUNNY OPTIMISATIONS 04:34:52 Sgeo: well you need the password for getting to the page, obviously 04:35:00 oerjan, I have that 04:35:11 I just want to change it so my dad can't mess with anything 04:35:11 no no, the _secret_ password 04:35:22 ah, a noble cause 04:35:26 But... I don't think there's anything in here that's even touchable in any case 04:36:21 elliott: oh, what happens if you replace that with return $! ( ... ) ? 04:37:01 all of them? 04:37:09 hm perhaps 04:37:19 well the prints are trying to make it strict, but ok 04:37:24 wow 04:37:25 now its true 04:37:27 can i hug you 04:37:29 XD 04:37:39 ...but that's not really good enough, it has to work when used _normally_ 04:38:23 elliott: hm i guess return x >>= f might actually get optimized into f x even in IO 04:38:25 how to secretly strictify it 04:39:21 test :: IO Bool 04:39:21 test = do 04:39:21 store <- emptyInternStore 04:39:21 let foo = intern store (V "a" "b") 04:39:22 bar = intern store (V "a" "b") 04:39:24 in case reallyUnsafePtrEquality# foo bar of 04:39:26 0# -> return False 04:39:30 1# -> return True 04:39:32 this has to work 04:40:20 elliott: what if you replace reallyUnsafePtrEquality# with a function which applies seq to its arguments first, just in case? 04:40:51 aha 04:40:52 in case foo `seq` bar `seq` reallyUnsafePtrEquality# foo bar of 04:40:53 makes it work 04:41:25 and with Int, too 04:41:29 ok now to try and bring back in Map 04:42:03 yay, it's working 04:43:19 elliott: it occurs to me you might theoretically need those unsafePerformIO's to be reentrant 04:43:31 oerjan: well that's why I used an MVar... but what do you mean? 04:44:12 if something causes an intern to be evaluated while you are already evaluating one 04:44:33 oerjan: well isn't the point of MVar that in that case, one thread will wait until the other is done modifying... 04:44:43 because as soon as one thread takes from the mvar, it becomes empty 04:44:46 um i mean inside the same thread 04:44:50 and other takings hang until it gets filled by the modification 04:44:52 oerjan: oh, like... 04:45:00 intern store (internedValue (intern store 9))? 04:45:05 yeah 04:45:13 oerjan: that's not a problem, I seq a first 04:45:15 or do you mean like 04:45:21 intern store (Embed (Blah (internedValue (intern store 9)))) 04:45:26 so it only comes up when the map structures start Ording? 04:45:32 yeah 04:45:44 oerjan: hm so I either need re-entrancy or deepseq... 04:46:06 oerjan: Or I could cheat, and just seq an Ord and Eq operation on the value beforehand >:) 04:46:15 which is all Map can do, due to parametricity 04:47:05 heh 04:47:22 oerjan: although I want this to be typeclassed on the type of map, I think 04:47:24 yeah compare x x should normally get to the bottom of it 04:47:32 because e.g. HashMap or IntMap could improve performance a lot in some cases 04:47:41 so I guess the typeclass will just have some sort of force operation implemented in that way 04:48:02 oerjan: I'm not sure how I could do re-entrancy, really... before calling the map I could re-fill the MVar 04:48:05 and then un-fill it afterwards 04:48:09 but that would fuck up using multiple threads 04:48:36 yikes 04:48:49 so yeah, forcing is preferable 04:48:54 oerjan: otoh compare might be _slow_... 04:49:02 oerjan: e.g. String 04:49:08 -!- Lymia has joined. 04:49:13 and since the result won't be cached, it'll end up doing useless computation 04:49:24 so arguably, deepseq is less ugly 04:49:45 although deepseq might very well be unnecessarily slow, too 04:52:03 mhm 04:52:17 -!- Lymee has quit (Ping timeout: 276 seconds). 04:52:57 oerjan: I'm tempted to say that just using them in that way is undefined behaviour, but then my interface isn't really "pure" any more :( 04:57:06 class InternStoreC store a r get put | store -> a get put where 04:57:06 internStoreGet :: store -> a -> (Interned a -> r) -> r -> get 04:57:06 internStorePut :: store -> a -> Interned a -> (store -> r) -> put 04:57:07 oerjan: behold my monster 04:57:19 I'm trying to allow those hashmaps that work in IO :D 04:59:41 instance InternStoreC (Map a (Interned a)) a r r r where 04:59:42 arrrrrrr 05:05:15 WARNING! THERE IS A MONSTER IN THE TYPE SYSTEM! 05:08:49 -!- azaq23 has quit (Quit: Leaving.). 05:13:41 -!- derrik has left. 05:23:01 whenever I see elliott using Haskell, I also see typeclasses with huge numbers of parameters 05:23:16 I think they are correlated in some way. 05:24:08 shut up, it happens when i generalise things. 05:24:17 in fairness, that is now the far more reasonable 05:24:19 class InternStoreMap store a where 05:24:19 internStoreEmpty :: IO store 05:24:19 internStoreGet :: store -> a -> IO (Maybe (Interned a)) 05:24:19 internStorePut :: store -> a -> Interned a -> IO store 05:24:50 but... elliott 05:25:04 it ONLY works with IO, and ONLY with Maybe, and Only with Interned 05:25:07 that's not general enough! 05:25:12 what 05:26:04 you need more typeclasses! 05:26:05 the IO is unsafePerformIO'd away 05:26:10 use MonadIO instead! 05:26:11 and Interned is the whole point :P 05:26:18 no, these functions are not externally used 05:26:24 it is just for 05:26:26 intern :: (InternStoreMap store a) => InternStore store -> a -> Interned a 05:26:26 intern (InternStore var) a = a `seq` unsafePerformIO $! modifyMVar var $! \m -> do 05:26:26 r <- internStoreGet m a 05:26:26 case r of 05:26:26 Nothing -> do 05:26:29 let interned = Interned a 05:26:31 m' <- interned `seq` internStorePut m a interned 05:26:33 return $! (m', interned) 05:26:35 Just interned -> interned `seq` return $! (m, interned) 05:26:37 so i can do 05:26:39 instance (Eq a) => Eq (Interned a) where 05:26:41 a == b = 05:26:43 case a `seq` b `seq` reallyUnsafePtrEquality# a b of 05:26:45 0# -> False 05:26:47 1# -> True 05:27:05 forcing reallyUnsafePtrEquality# usage is cool 05:27:16 you should probably name this function something like reallyReallyUnsafeIntern 05:27:22 CakeProphet: it's perfectly safe 05:27:24 externally 05:27:32 the outside interface is implementable by simple pure functions 05:27:39 this is just a lot faster (and the whole point for the module) 05:27:41 like reallyUnsafePtrEquality# 05:27:44 i do this shit so you don't have to 05:27:47 monqy: oh shaddap :P 05:28:28 that 0# -> False part isn't supposed to be safe, is it... 05:29:53 oerjan: it is safe, because the only way to construct an Interned is through intern 05:29:59 and I don't /think/ there is any way to cause it to be copied externally 05:30:37 -!- augur has joined. 05:30:57 I GUESS YOU WILL FIND OUT 05:31:38 indeed, when i publish it to hackage and people say ARE YOU FUCKING SERIOUS I WILL SHIT IN YOUR FUCKING HAT 05:31:46 SHIT SHIT SHIT SHIT SHIT SHIT SHIT 05:31:48 HAT 05:31:50 FUCK 05:32:21 OH MY GOD GHC 05:32:22 THE VARIABLE 05:32:22 IS NOT 05:32:23 FUCKING 05:32:24 AMBIGUOUS 05:32:42 is that you or them 05:32:44 i don't know, it looks a bit shifty to me 05:33:00 that was me 05:33:02 just the last bit 05:33:06 emptyInternStore :: (InternStoreMap store a) => IO (InternStore store) 05:33:06 emptyInternStore = do 05:33:06 mt <- internStoreEmpty :: IO store 05:33:06 v <- newMVar mt 05:33:06 return (InternStore v) 05:33:10 A0 IS NOT AMBIGUOUS OMG 05:34:53 missing functional dep? 05:36:06 (store -> a) 05:36:10 hmm, right 05:36:16 nope 05:36:18 i do need that fundep 05:36:21 but that doesn't fix this :( 05:36:25 huh 05:36:43 bleh but if i make it like 05:36:48 emptyInternStore :: (InternStoreMap store a) => IO (InternStore store a) 05:36:49 then it works 05:36:51 that's redundant, dammit 05:37:06 um what's the class definition? 05:37:50 ah, 05:37:51 data InternStore store = forall a. (InternStoreMap store a) => InternStore (MVar store) 05:37:52 works 05:38:00 but why can't a newtype have an existential blah :/ 05:38:00 hmm 05:38:09 I guess it's technically unnecessary here 05:38:13 i.e. i don't need the forall 05:38:16 oerjan: hey i... have an idea 05:38:19 oerjan: what if... i used... unsafeCoerce 05:38:30 what about a type family? 05:38:42 wait what, it fixed itself magically somehow 05:39:37 store <- emptyInternStore :: IO (InternStore (Cu.HashTable RealWorld a (Interned a))) 05:39:39 good lines of code 05:40:06 oerjan: you're right, it should probably be a type family 05:40:14 IO (InternStore Cu.HashTable) would be much preferable 05:40:16 well 05:40:18 IO (InternStore Cu.HashTable Int) would be much preferable 05:40:58 -!- elliott has left ("Leaving"). 05:41:02 -!- elliott has joined. 05:41:07 hi 05:42:27 hi 05:47:52 hmmm, I could use a type family for signal types I think. 05:48:10 you don't have to use every extension :P 05:48:13 though it may be unecessary. 05:48:40 I could simply have multiple constructors for one type. 05:49:45 elliott: rubbish! he needs an implicit rank-5 flexible GADT family operator! 05:50:04 @pl lookup k (GMapInt m) = Data.IntMap.lookup k m 05:50:04 (line 1, column 24): 05:50:04 unexpected "=" 05:50:04 expecting variable, "(", operator or end of input 05:50:16 *Data.Intern> test 05:50:16 Just "no" 05:50:17 yesss 05:50:45 CakeProphet: most pattern matching cannot be @pl'ed 05:50:55 ah, that makes sense. 05:51:04 and GADT/type family pattern matching cannot be ?pl'd at all really 05:51:12 because of the unification stuff 05:51:44 hm... 05:52:11 i.e. you always need all your stuff on the right-hand side of some matching 05:52:15 you can't reduce things to compositions 05:52:17 @pl let f (Just (Left (x,y))) = x ++ " does this work?" in f 05:52:17 (line 1, column 13): 05:52:17 unexpected "(" 05:52:17 expecting operator or ")" 05:52:25 but if I don't use type families I'll at least have a Signal typeclass with a toDiscreteSignal function. 05:52:27 sadly no :( 05:52:39 http://learncodethehardway.org/ ;; let's all read "how full of shit could zed shaw possibly be": the book 05:52:43 @pl let f (Just (x,y)) = x ++ " does this work?" in f 05:52:43 (line 1, column 13): 05:52:43 unexpected "(" 05:52:44 expecting operator or ")" 05:52:50 @pl let f (x,y) = x ++ " does this work?" in f 05:52:50 (++ " does this work?") . fst 05:52:56 If there ever were a quote that described programming with C, it would be this. To many programmers, this makes C scary and evil. It is the Devil, Satan, the trickster Loki come to destroy your productivity with his seductive talk of pointers and direct access to the machine. Then, once this computational Lucifer has you hooked, he destroys your world with the evil ”segfault” and laughs as he reveals the trickery in your bargain with him. 05:52:57 But, C is not to blame for this state of affairs. No my friends, your computer and the Operating System controlling it are the real tricksters. They conspire to hide their true inner workings from you so that you can never really know what is going on. The C programming language’s only failing is giving you access to what is really there, and telling you the cold hard raw truth. C gives you the red pill. C pulls the curtain back to show you the 05:52:59 wizard. C is truth. 05:53:01 oh my god 05:53:03 choke on vomit 05:53:05 "Why use C then if it’s so dangerous? Because C gives you power over the false reality of abstraction and liberates you from stupidity. 05:53:08 " 05:53:10 im reading your book 05:53:12 while this is still true, 05:53:14 nothing can liberate me from stupidity 05:53:16 apart from cold-blooded murder 05:53:20 "Exercise 2: Make Is Your Python Now 05:53:20 " 05:53:22 oh my god 05:53:24 stop 05:53:26 talking 05:53:30 monqy: lets share this experience together it will be unique... 05:53:35 "The difference is, I’m going to show you smarter Makefile wizardry, where you don’t have to specify every stupid little thing about your C program to get it to build. I won’t do that in this exercise, but after you’ve been using ”baby make” for a while, I’ll show you ”master make”. 05:53:37 im too busy dying 05:53:38 " 05:53:40 OH MY GOD LITERALLY DIE 05:53:42 from this unique experience 05:53:49 thank god it ends here 05:53:55 dont worry monqy its just five chapters (sentences) 05:53:56 elliott: lol, the false reality of abstraction. 05:54:45 After you read this book you should... 05:54:57 why would you even learn C anyway 05:55:03 chapters 55 and 56 are good chapters 05:55:06 -!- Sgeo has quit (Ping timeout: 255 seconds). 05:55:27 elliott: I learned C because a MUD codebase I was maintaining was written in it. 05:55:36 overall it was a good learning experience. 05:55:37 I wonder if there's a way to get the numeric address of something from GHC. 05:55:45 CakeProphet: no it wasn't, C is a terrible thing to know, it clouds your thinking 05:55:51 I think C is good programming language 05:56:03 int2Addr# :: Int# -> Addr#Source 05:56:03 Coerce directly from int to address. Strongly deprecated. 05:56:05 YOU'RE STRONGLY DEPRECATED 05:56:06 switching from Python, my first language, to C, helped me understand how most computers work at a low level. 05:56:35 C doesn't represent low-level computer working, sorry kid 05:56:36 see microcode 05:56:41 It is not a terrible thing to know, unless you dislike computer programming anyways 05:56:49 elliott: I didn't say it represented it. 05:57:01 well, i don't believe that learning C taught you anything about microcode... 05:57:05 elliott: You are correct about that; the reason that C is used instead is so that it work on other computers too. 05:57:26 oerjan: hey oerjan... if i write the thing into an array...then read it... 05:57:28 i will get the address 05:57:28 no it didn't. But it taught me about memory addressing and pointers. 05:57:29 i think 05:57:38 CakeProphet: yep, which isn't how your computer works at a low-level 05:57:46 hmm, ok so if i use newarray... 05:57:46 ...fine. whatever. 05:58:12 C is useless I shouldn't waste my time using a low level language if it's not microcode. 05:58:23 yes, these are definitely things i have said. 05:58:47 why would you learn C -> C is useless 05:58:51 IO $ \s -> 05:58:51 case newAlignedPinnedByteArray# size align s of { (# s', mbarr# #) -> 05:58:51 (# s', ForeignPtr (byteArrayContents# (unsafeCoerce# mbarr#)) 05:58:51 (MallocPtr mbarr# r) #) 05:58:51 } 05:58:53 i have to know c for practical purposes 05:58:59 oh wow GHC, your privates are showing :( 05:59:09 wow how does that even work 05:59:36 IO constructor nice 05:59:43 The reason you should use a low level language if it isn't microcode is so that you can write a program that works not only in one computer. 06:00:14 right, what I'm saying is that C is a good learning experience if all you have ever touched in high level languages. 06:00:19 *is 06:01:01 even if it does not correspond directly to your architectures instruction set, it still interacts with memory at a very low level. 06:01:08 nope 06:01:11 And even if you are writing a program for only one computer, using C allows you to use codes of other computers too, although in some cases modification will be required (not always). 06:01:47 But in some cases, using assembly language or machine codes is better way for programming that is only for one computer. 06:03:16 -!- derrik has joined. 06:03:55 hmm, I have magichash on, why is this not working 06:04:01 -!- derrik has left. 06:04:24 too magical 06:04:32 too high. 06:06:50 LLVM also can be programmed for many computers, and has some commands accessing things more commonly directly in the computer's instruction set, but also includes commands that no computer has (such as the "phi" command), and other somewhat unusual things which are used for analysis/optimization and for other stuff too. 06:07:07 you guys have a shattered my view of how computers work. Here I thought most CPU instruction sets had some kind of memory addressing scheme. 06:07:38 But LLVM does have a few similarities to C. 06:07:38 -!- Sgeo has joined. 06:08:25 C-- is pretty cool if i recall correctly 06:08:52 I have read about C-- 06:09:57 ?hoogle sizeOf 06:09:58 Foreign.Storable sizeOf :: Storable a => a -> Int 06:09:58 Network.Socket.Internal sizeOfSockAddr :: SockAddr -> Int 06:09:58 Network.Socket.Internal sizeOfSockAddrByFamily :: Family -> Int 06:10:13 why would you need sizeOf aaaaa 06:10:18 monqy: evil 06:10:29 wow = IO $ \s -> 06:10:29 case newAlignedPinnedByteArray# size align s of 06:10:29 (# s', mbarr# #) -> (# s', indexAddrArray# (byteArrayContents# (unsafeCoerce# mbarr#)) 0# #) 06:10:29 where !(I# size) = sizeOf (undefined::String) 06:10:29 !(I# align) = alignment (undefined::String) 06:10:34 monqy: im getting the address of an arbitrary value 06:11:13 wow 06:12:24 ghc: panic! (the 'impossible' happened) 06:12:24 (GHC version 7.0.4 for x86_64-unknown-linux): 06:12:24 Error in deriving: 06:12:24 Can't derive Show for primitive type ghc-prim:GHC.Prim.Addr#{(w) tc 33} 06:12:24 Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug 06:13:33 *Data.Intern> wow 06:13:33 0x00007fc06e2541f8 06:13:48 is this for real 06:14:21 Do you know about LLVM? 06:14:35 it's in my reading pile 06:15:17 Why is inability to derive Show for a primitive type a big deal? 06:15:44 wow :: a -> IO (Ptr a) 06:15:44 wow x = IO $ \s -> 06:15:44 case newAlignedPinnedByteArray# size align s of 06:15:44 (# s', mbarr# #) -> 06:15:44 case writeArray# (unsafeCoerce# mbarr#) 0# x s of 06:15:48 Or is it just a faulty error message caused by your tampering, and there's really a different error? 06:15:51 !(I# align) = 8 -- alignment (undefined::Addr#) 06:15:53 monqy: this is for real 06:15:59 *Data.Intern> wow 9 06:15:59 0x00007fc06f50be58 06:16:01 *Data.Intern> wow () 06:16:03 0x00007fc06f4ca228 06:16:05 *Data.Intern> wow "x" 06:16:07 0x00007fc06f50a278 06:16:09 *Data.Intern> wow "hexagons" 06:16:11 0x00007fc06eed61e0 06:16:13 *Data.Intern> wow "hexagons" 06:16:15 0x00007fc06ee83230 06:16:17 this is the most beautiful thing ive ever seen 06:16:27 There's an IO function? 06:16:31 constructor 06:16:58 yeah, constructor 06:17:07 Will you include a strange variation of the PHI command in the next version of INTERCAL? 06:17:19 ...there's an IO constructor? 06:17:49 of course. 06:17:53 how do you think values get in? 06:18:10 no such thing as opaque data types in Haskell. 06:18:17 * CakeProphet whistles innocently. 06:18:36 newtype IO a = IO (State# RealWorld -> (# State# RealWorld, a #)) 06:18:42 Sgeo: --libraries/ghc-prim/GHC/Types.hs 06:19:06 *Data.Intern> wow wow 06:19:06 0x00007fc06f71cca0 06:19:06 *Data.Intern> wow wow 06:19:06 0x00007fc06f71c1a8 06:19:06 *Data.Intern> wow wow 06:19:13 monqy: ok something seems wrong 06:19:18 oh wait hm 06:19:19 try sharing on it 06:20:24 probably too much unsafe stuff. 06:20:25 *Data.Intern> wow wow 06:20:25 0x00007fc06ee6d572 06:20:26 *Data.Intern> wow wow 06:20:26 0x2e302e312e706d67 06:20:26 *Data.Intern> wow wow 06:20:32 0x00000039312e312d 06:20:34 gah 06:20:48 no referential transparency? shameful. 06:21:04 CakeProphet: elliott is _raping_ referential transparency 06:21:06 it should be referentially transparent in the end. up to evaluation. and GC. 06:22:05 oh i forgot about gc. 06:22:06 :( 06:22:16 i should just use stablenames 06:23:17 I think elliott is secretly the enemy of Haskell. 06:23:26 that Haskell valiantly fights in epic battles. 06:23:47 night 06:23:50 and elliott wants to break Haskell into some sick monster in a plot to rule the world. 06:24:08 elliotskell??? 06:24:16 maybe with another t 06:24:23 haskelliott 06:25:02 *Data.Intern> testc 06:25:02 21 06:25:02 21 06:25:02 *Data.Intern> testc 06:25:02 23 06:25:09 21 06:25:15 oh well, it's in IO, it can do that. 06:25:47 so does it work 06:27:18 yes 06:27:25 woohoo 06:27:37 i think i forget what its for 06:27:44 why anyone would ever need it 06:28:04 it's for making skynet duh 06:28:38 it's for the sheer enjoyment of programming in a C-like language. 06:29:11 monqy: if you implement scheme 06:29:16 then you want to use this to represent symbols. 06:29:44 speaking of scheme, what happened to zepto 06:29:54 its eternal 06:31:25 elliott: or Ruby 06:31:28 which scheme is this r5rs 06:31:35 that would also be useful for Ruby symbols. 06:32:43 monqy: yeah 06:34:21 I think it would also be useful for creating efficient hashes/maps instead of using string keys? 06:35:23 well thats what hashmap/hashtable are for, but yeah, hopefully 06:35:27 see also 06:35:28 instance (Hashable a) => Hashable (Interned a) where 06:35:28 hash a = a `seq` hashStableName (unsafePerformIO (makeStableName a)) 06:51:03 http://hpaste.org/steps/48629?expr=a+1+2&submit=Submit cool 06:51:22 warning: use guards 06:51:28 thanks hlint 06:53:25 wow, everyone works at standard chartered 06:58:03 do you want to be afraid monqy 06:58:27 i had to look it up 06:58:59 http://hackage.haskell.org/packages/archive/uu-parsinglib/2.7.1.1/doc/html/src/Text-ParserCombinators-UU-Core.html 06:59:00 monqy: enjoy afraid 06:59:05 utrecht is so scaary :( 06:59:08 data T st a = T (forall r . (a -> st -> Steps r) -> st -> Steps r ) -- history parser 06:59:08 (forall r . ( st -> Steps r) -> st -> Steps (a, r) ) -- future parser 06:59:08 (forall r . ( st -> Steps r) -> st -> Steps r ) -- recogniser 06:59:08 instance Functor (T st) where 06:59:08 fmap f (T ph pf pr) = T ( \ k -> ph ( k .f )) 06:59:15 ( \ k st -> push f ( pr k st)) 06:59:17 pr 06:59:18 I have successfully managed to win with the prophecy defense. 06:59:36 Another time, I managed to win because opponent ran out of cards before they had a chance to pick up the last side card. 07:00:22 there is a class for eof 07:00:46 ok what is with this T thing 07:01:32 -!- Nisstyre has quit (Remote host closed the connection). 07:01:48 monqy: its utrecht convention IIRC 07:01:51 monqy: you call your main type T 07:02:16 -!- Nisstyre has joined. 07:02:33 i guess maybe henning is a utrecht guy since data-accessor is completely full of T r a -> ... and (C ...) => 07:02:44 -!- Nisstyre has quit (Remote host closed the connection). 07:03:10 das kann nicht recht sein 07:03:37 Unqualified T data types floating around. (As Brent Yorgey tells me, this is a Henning-ism in which he will define a type T or typeclass C intended to be used only with a qualified import, but Haddock throws away this information. You can use :t in GHC to get back this information if you're not sure.) 07:03:39 yuck 07:04:11 -!- Nisstyre has joined. 07:04:26 Even if the standard library of a programming language does not support string interning, it is possible to implement an intern pool in user code. 07:04:29 oh wow, thanks Wikipedia. 07:04:36 I didn't think that was possible. 07:06:09 this uu parsing library thing is scary 07:06:36 monqy: its utrecht 07:06:38 run and fear :< 07:07:24 :t max 07:07:25 forall a. (Ord a) => a -> a -> a 07:07:33 ah, excellent. Completely abusable for signal processing. 07:07:39 well, since the type allows it, I guess it's not really abuse. 07:09:11 max s1 s2 = (\t -> max (s1 t) (s2 t)) 07:09:38 i already wrote all those instances dude 07:10:10 well yeah, but I think you did something weird with eq right? 07:10:20 no, i just made it error 07:10:25 which is the only possible sane implementation 07:10:31 copumpkin: did those new fclabels or was it lenses that had efficient update ever come out? 07:10:37 well, there's a different kind of equality you could do that isn't the same type. 07:10:46 CakeProphet: (==) :: a -> a -> Bool 07:10:47 good luck with that 07:10:59 basically the signal is 0 if the input signals are unequal and 1 if they are. 07:11:04 CakeProphet: (==) :: a -> a -> Bool 07:11:05 good luck with that 07:11:15 ...yes, as you can see, I mentioned it was a different type 07:11:19 so? 07:11:19 which sort of implies that it will look different. 07:11:22 and not be the same function. 07:11:22 my Eq instance was correct. 07:11:28 if you want equality on lenses, that's fucking trivial: 07:11:45 liftS2 :: (a -> b -> c) -> Signal a -> Signal b -> Signal c 07:11:50 then liftS2 (==) 07:12:05 basically we are talking about two completely different things right now. I have to go now, so good bye. 07:12:16 you're faulting my implementation because it does something it has to 07:12:21 and lacks the two lines of code for what youw ant 07:12:22 so...? 07:13:03 there was no causality between the first thing I said about your Eq instance, and what I said afterwards. 07:13:23 ok. but... well yeah, but I think you did something weird with eq right? 07:13:26 what weird thing did i do 07:13:26 ? 07:13:36 I wasn't sure, it was a question. 07:13:38 -!- zzo38 has quit (Quit: Don't care. Care.). 07:13:44 ok, then the answer is i did not :) 07:14:15 yes, what you did was reasonable. I'm sorry I didn't specify such when I started talking about a completely different kind of equality operation. 07:14:20 ok 07:16:00 ?pl \f x -> m' (\y -> m f y) x 07:16:00 m' . m 07:16:55 -!- Nisstyre has quit (Remote host closed the connection). 07:17:08 Lens x a -> (a -> Lens x b) -> Lens x b 07:17:50 ?pl \x -> get (f (g x)) x 07:17:51 get =<< f . g 07:18:02 -!- Nisstyre has joined. 07:18:28 what is it with ?pl and =<< 07:18:35 monad instance for functions 07:18:38 but it keeps it in the order of application 07:18:54 ?pl \tt x -> modify (f (g x)) tt x 07:18:54 join . flip (modify . f . g) 07:19:14 one time i tried looking up the monad instance for functions and couln't find it 07:19:28 next time i will look harder 07:19:43 ?hoogle join 07:19:43 Control.Monad join :: Monad m => m (m a) -> m a 07:19:43 System.FilePath.Posix joinDrive :: FilePath -> FilePath -> FilePath 07:19:43 System.FilePath.Windows joinDrive :: FilePath -> FilePath -> FilePath 07:20:52 oh there it is in Control.Monad.Instances 07:21:03 what a peculiar module 07:21:14 yeah that module should really be called Control.Monad 07:21:36 (a -> b) -> Lens x a -> Lens x b 07:21:36 hmm 07:21:36 ok 07:22:04 @src -> >>= 07:22:05 Source not found. Just try something else. 07:22:10 wait 07:22:11 @src (->) (>>=) 07:22:12 f >>= k = \ r -> k (f r) r 07:22:14 you can't do that fmap 07:22:15 can you? 07:22:19 monqy: ^ 07:22:22 oerjan 07:22:23 i need help 07:22:25 (a -> b) -> Lens x a -> Lens x b 07:22:28 where 07:22:29 data Lens a b = Lens { get :: a -> b, modify :: (b -> b) -> a -> a } 07:22:31 you can do it for get 07:22:36 but its impossible to write modify ther 07:22:36 e 07:22:37 right? 07:22:42 or is it 07:23:37 well 07:23:40 i have a monad instance... 07:23:41 ?src liftM 07:23:42 liftM f m1 = do { x1 <- m1; return (f x1) } 07:23:55 ?undo do {x1 <- m1; return (f x1) } 07:23:55 m1 >>= \ x1 -> return (f x1) 07:23:57 also I've been wondering for ages what does it mean when there's an instance e.g. "Monad [::]" (on the haddock instances list) 07:23:58 i don't think so 07:24:03 monqy: parallel lists 07:24:19 liftM f m1 = m1 >>= \ x1 -> return (f x1) 07:24:19 so 07:24:22 it's not covariant 07:24:37 liftM f (Lens g m) = Lens g m >>= \ x1 -> return (f x1) 07:24:38 so let me unpack 07:24:51 elliott: Never properly, only some informal comparisons 07:25:02 liftM f (Lens g m) = Lens (get =<< (\x1 -> return (f x1)) . g) (join . flip (modify . (\x1 -> return (f x1)) . g)) 07:25:07 ?unpl get =<< f . g 07:25:07 (\ c -> (f >>= get) (g c)) 07:25:09 ugh 07:25:13 ?unpl Lens (get =<< (\x1 -> return (f x1)) . g) (join . flip (modify . (\x1 -> return (f x1)) . g)) 07:25:13 Lens (\ h -> ((\ x1 -> return (f x1)) >>= get) (g h)) (\ k -> (\ c -> modify (return (f (g c))) k) >>= \ l -> l) 07:25:20 liftM f (Lens g m) = Lens (\ h -> ((\ x1 -> return (f x1)) >>= get) (g h)) (\ k -> (\ c -> modify (return (f (g c))) k) >>= \ l -> l) 07:25:23 holy shit 07:25:33 oerjan: ok either my monad instance is invalid or this _does_ work 07:25:35 I'm not sure which 07:26:10 *Main> modify (liftM fst id) succ (0,9) 07:26:10 (0,9) 07:26:11 what's your >>= 07:26:12 yep, it's broken 07:26:15 Lens g m >>= f = Lens (get =<< f . g) (join . flip (modify . f . g)) 07:26:33 so basically I have fmap... for lenses :) 07:26:44 Lens a b -> Lens c a -> Lens c b 07:26:53 ?hoogle c a b -> c x a -> c x b 07:26:54 Control.Category (.) :: Category cat => cat b c -> cat a b -> cat a c 07:26:54 Control.Arrow (<<<) :: Category cat => cat b c -> cat a b -> cat a c 07:26:54 Control.Category (<<<) :: Category cat => cat b c -> cat a b -> cat a c 07:27:05 yep, what I have is (.), aka generalised fmap :D 07:27:07 oh well 07:27:18 elliott: heh you are not using m in your >>= 07:27:23 oerjan: nice :D 07:28:03 -- Laws: 07:28:03 -- modify l id x = x 07:28:03 -- get l (modify l f x) = f (get l x) 07:28:06 hm do I need any other laws 07:29:19 (\ c -> (f >>= get) (g c)) <-- wtf i think something isn't keeping track of fixity 07:30:44 :t get 07:30:45 forall (m :: * -> *) s. (MonadState s m) => m s 07:31:04 that doesn't quite fit into your law above 07:31:44 oerjan: you shadow that, obviously 07:32:03 oh hm 07:32:21 data Lens a b = Lens { get :: a -> b, modify :: (b -> b) -> a -> a } 07:34:12 why is everyone talking about lenses 07:34:34 we're trying to focus here 07:35:45 -!- Nisstyre has quit (Remote host closed the connection). 07:36:08 hm i think you could build a monad transformer from a lens, which would modify state 07:36:34 -!- Nisstyre has joined. 07:38:12 maybeNthL :: Int -> Lens [a] (Maybe a) 07:38:12 maybeNthL n = Lens (getnth n) (modnth n) 07:38:13 where getnth 0 (x:_) = Just x 07:38:13 getnth n (_:xs) = getnth (n-1) xs 07:38:13 getnth _ _ = Nothing 07:38:19 what a weird lens 07:38:49 *Data.Lens.Prelude> get (maybeNthL 9) (modify (maybeNthL 9) (const (Just 9)) [0,9,9]) 07:38:49 Nothing 07:38:52 what a weird, invalid lens :) 07:40:17 you didn't give modnth 07:40:43 Always so nice catching that late-night baroque music program when coming back from D&D. 07:40:51 Aaaaah. 07:40:58 elliott: it would have to pad with undefineds, no? 07:42:10 to fulfil those laws 07:42:28 oh and that would break the first one 07:43:30 oerjan: yeah :) 07:43:37 -!- monqy has quit (Quit: hello). 07:43:38 you didn't give modnth 07:43:40 is this a pun 07:44:17 no, you just did not 07:44:55 maybe your client cut it off? 07:45:46 modnth 0 f (x:xs) = case f (Just x) of Nothing -> xs; Just a -> a:xs 07:45:46 modnth n f (x:xs) = x : modnth (n-1) f xs 07:45:46 modnth _ f _ = case f Nothing of Nothing -> []; Just a -> [a] 07:45:48 it will have been freenode 07:45:59 todo: handle data/newtype instances in makeLenses 07:48:19 you need to use the hypertext transport protocol for things that are so many lines. 07:48:51 fmap concat (sequence (concatMap (\(n,_,_) -> [ [d| foo = 9 |] ]) oks)) 07:48:51 good coding with elliott 07:49:13 :t mapM 07:49:14 forall a (m :: * -> *) b. (Monad m) => (a -> m b) -> [a] -> m [b] 07:49:18 oh right 07:49:58 -!- derrik has joined. 07:50:21 [d| foo = 9 |] ? 07:50:56 oerjan: yep 07:51:06 and n isn't used... 07:51:22 of course 07:51:24 this is just an initial test :P 07:51:32 -!- derrik has left. 07:51:37 MADNESS 07:51:58 -!- Lymia has quit (Ping timeout: 240 seconds). 07:58:49 -!- Sgeo_ has joined. 08:00:55 -!- Sgeo has quit (Ping timeout: 240 seconds). 08:02:36 -!- Lymia has joined. 08:02:55 oerjan: hm since I can't write Lens x a -> (a -> Lens x b) -> Lens x b 08:02:57 maybe I could write 08:03:01 erm 08:03:02 oerjan: hm since I can't write Lens x a -> (a -> Lens x b) -> Lens x b 08:03:12 and i can't write (a -> b) -> Lens c a -> Lens c b 08:03:16 but I CAN write Lens a b -> Lens c a -> Lens c b 08:03:23 maybe I can write Lens x a -> Lens a (Lens x b) -> Lens x b 08:03:24 ?? 08:03:28 -!- Lymia has changed nick to Lymee. 08:06:43 dunno 08:10:00 tempted to djinn it :D 08:10:33 ?djinn (x -> a, (a -> a) -> x -> x) -> (a -> (Lens x b), (Lens x b -> Lens x b) -> a -> a) -> Lens x b 08:10:34 Error: Undefined type Lens 08:10:36 ok now to expand again 08:10:44 Lens x b = (x -> b, (b -> b) -> x -> x) 08:11:01 ?djinn (x -> a, (a -> a) -> x -> x) -> (a -> (x -> b, (b -> b) -> x -> x), ((x -> b, (b -> b) -> x -> x) -> (x -> b, (b -> b) -> x -> x)) -> a -> a) -> (x -> b, (b -> b) -> x -> x) 08:11:01 f (a, b) (c, d) = 08:11:02 (\ e -> 08:11:02 case c (a e) of 08:11:02 (f, _) -> f e, 08:11:02 \ _ g -> b (\ _ -> d (\ h -> h) (a g)) g) 08:11:06 oerjan: yes, yes i can. 08:11:18 well maybe. those ignored variables are a bit worrying. 08:11:27 you don't say. 08:11:37 oerjan: well one of them isn't, it looks like it is just ignoring get 08:11:39 but the other moreso :P 08:15:52 makeLenses :: Name -> Q [Dec] 08:15:52 makeLenses t = do 08:15:52 TyConI dec <- reify t 08:15:52 let (ctx,name,binders,cons,names) = case dec of DataD a b c d e -> (a,b,c,d,e); NewtypeD a b c d e -> (a,b,c,[d],e) 08:15:52 let [RecC _ oks] = cons 08:15:54 _f <- newName "f" 08:15:56 _x <- newName "x" 08:16:00 mapM (\(n,_,_) -> funD (transform n) [clause [] (normalB ([|Data.Lens.Lens|] `appE` varE n `appE` lamE [varP _f, varP _x] (recUpdE (varE _x) [(\x->(n,x)) `fmap` [|$(varE _f) ($(varE n) $(varE _x))|]]))) []]) oks 08:16:03 where transform n = mkName (tail (nameBase n)) 08:16:05 oerjan: IT WOOOORKS 08:16:07 oh my fucking god. 08:17:27 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 08:17:54 ?hoogle a -> b -> [(a,b)] -> [(a,b)] 08:17:55 Data.Graph.Inductive.NodeMap delMapNode :: (Ord a, DynGraph g) => NodeMap a -> a -> g a b -> g a b 08:17:55 Data.Graph.Inductive.NodeMap insMapNode_ :: (Ord a, DynGraph g) => NodeMap a -> a -> g a b -> g a b 08:17:55 Data.Graph.Inductive.NodeMap delMapNodes :: (Ord a, DynGraph g) => NodeMap a -> [a] -> g a b -> g a b 08:17:57 hmm 08:18:01 there's no inverse of lookup? 08:21:06 *Data.Lens.Prelude> get (keyL "x") Map.empty 08:21:06 *** Exception: Map.find: element not in the map 08:21:06 *Data.Lens.Prelude> modify (keyL "x") (+9) Map.empty 08:21:06 fromList *** Exception: keyL: element not in the map 08:21:07 oh, good 08:21:14 although, hmm 08:21:16 that actually violates the 08:21:20 modify l id x = x 08:21:21 law 08:21:25 maybe I should loosen that? 08:21:33 i.e. /if/ modify l id x has a value, then the value must be x 08:21:48 but then it seems tempting to have (modify l id) _always_ be an identity transform... 08:22:01 at the same time, silent erroneous modifications being dropped sounds sucky 08:29:07 -!- oerjan has quit (Quit: Good night). 08:35:31 mapM (\(n,_,_) -> funD (transform n) [clause [] (normalB ([|Data.Lens.Lens|] `appE` varE n `appE` lamE [varP _f, (asP _x (recP nn [return (n,VarP _y)]))] (recUpdE (varE _x) [(\x->(n,x)) `fmap` [|$(varE _f) $(varE _y)|]]))) []]) oks 08:42:03 -!- cheater_ has quit (Ping timeout: 255 seconds). 08:42:55 -!- cheater_ has joined. 08:54:44 -!- Lymia has joined. 08:56:07 -!- Lymee has quit (Disconnected by services). 08:56:07 -!- Lymia has changed nick to Lymee. 08:57:40 WHAT ARE MONADS/ HOW DO I MAKE MONADS OUT OF STYROFOAM AND HEAP/ COULD I BE AFFECTED BY MONADS? 08:57:46 answers to all these and more at monad.com.com 08:57:50 .com 08:58:56 The are called "monads" rather than the easier to grasp name of "type operators" for several reasons: 08:58:56 Monads have restrictions on what they can do (see the definiton for details). 08:58:56 Those restrictions, along with the fact that there are 3 operations involved, conform to the structure of something called a monad in Category Theory, which is an obscure branch of mathematics. 08:58:56 They were designed by proponents of "pure" functional languages 08:58:56 Proponents of pure functional languages like obscure branches of mathematics 08:58:59 Because the math is obscure, and monads are associated with particular styles of programming, people tend to use the word monad as a sort of secret handshake. Because of this no one has bothered to invest in a better name. 09:08:21 -!- Phantom_Hoover has joined. 09:14:49 -!- cheater__ has joined. 09:14:54 -!- cheater_ has quit (Ping timeout: 255 seconds). 09:21:32 -!- MigoMipo has joined. 09:21:44 -!- Vorpal has joined. 09:30:49 ?pl \f x -> s (f (g x)) x 09:30:50 join . (s .) . (. g) 09:30:54 ?pl \x -> s (f (g x)) x 09:30:54 s =<< f . g 09:32:03 ?hoogle \f x -> b (f (g x))) 09:32:03 Parse error: 09:32:04 --count=20 "\f x -> b (f (g x)))" 09:32:04 ^ 09:32:05 ?hoogle \f x -> b (f (g x)) 09:32:05 Parse error: 09:32:05 --count=20 "\f x -> b (f (g x))" 09:32:05 ^ 09:32:11 ?pl \f x -> b (f (g x)) 09:32:11 (b .) . (. g) 09:32:14 ?pl \x -> b (f (g x)) 09:32:15 b . f . g 09:33:17 ?pl \b f g -> b . f . g 09:33:18 (. (.)) . (.) . (.) 09:36:43 -!- shachaf has quit (Ping timeout: 260 seconds). 09:47:56 -!- Lymee has quit (Read error: Connection reset by peer). 09:48:50 -!- Lymee has joined. 10:07:20 -!- sebbu2 has joined. 10:09:19 -!- sebbu has quit (Ping timeout: 252 seconds). 10:59:50 see.. composing composition is when I start to get confused. 11:03:44 -!- sebbu2 has changed nick to sebbu. 11:04:01 CakeProphet: you can think of it as fmap (fmap (flip fmap fmap) fmap) fmap, if composition is confusing :) 11:12:30 .. -_- 11:13:15 shenanigans 11:13:35 also, (.).(.) = the boobies combinator = fmap fmap fmap 11:16:18 but... fmap = (.) for functions right? 11:16:24 THIS DOES NOT HELP. 11:16:50 CakeProphet, wha? 11:16:50 Phantom_Hoover: You have 3 new messages. '/msg lambdabot @messages' to read them. 11:17:41 yes, one functor instance has fmap = (.), and to make matters better lambdabot has (.) defined as fmap 11:20:10 > (\x -> x+1) . [1..] 11:20:12 [2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,2... 11:20:19 > (\x -> x+1) <$> [1..] 11:20:20 [2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,2... 11:20:26 I don't really see how that makes anything better. 11:20:50 I guess it's just something that Prelude could do that could make <$> no longer necessary. 11:21:06 if Control.Monad were in Prelude... 11:21:41 or, wherever Functor ((->) a) is 11:23:49 it would be interested to run a search over every module in Hackage to see how many import Control.Monad. 11:24:14 yes, one functor instance has fmap = (.), and to make matters better lambdabot has (.) defined as fmap 11:24:21 You mean the function functor? 11:25:44 yeah, or the Reader functor 11:33:41 :t fmap 11:33:42 forall a b (f :: * -> *). (Functor f) => (a -> b) -> f a -> f b 11:34:11 I can't think of a * -> * type that could not possibly have a Functor instance.. 11:34:11 olsner, we both know they're the same thing. 11:40:31 :t runReader (Reader Reader) 11:40:32 Not in scope: data constructor `Reader' 11:40:32 Not in scope: data constructor `Reader' 11:41:34 > return 4 3 11:41:35 4 11:42:05 > (return 4 :: Reader Int Int) 3 11:42:06 Couldn't match expected type `t1 -> t' 11:42:06 against inferred type `Contr... 11:45:19 `quote 11:45:23 188) "Europe is the national anthem of the Republic of Kosovo." alise: I I was going to say something then your last line floored me 11:46:11 But that *is* their anthem. 11:48:44 -!- Lymia has joined. 11:49:52 -!- Lymee has quit (Disconnected by services). 11:49:56 -!- Lymia has changed nick to Lymee. 11:57:39 @pl (\x -> fix (fix x)) 11:57:39 fix . fix 11:57:47 wow, pl is so smart. 11:57:57 @pl (\x -> x) 11:57:57 id 11:58:02 woah. 11:58:14 Come on, that's peanuts. 11:58:25 how does IT KNOW!!!! 11:58:28 The reduction rules for that are trivial. 11:58:38 @pl (\f x y -> f y x) 11:58:38 flip 11:59:19 @pl (\f x y -> f x y) 11:59:20 id 11:59:59 for some reason I was expecting ($) or something 12:01:20 @pl (\a b c d e f g h i j k l m -> m l k a b c j i h d e f h g) 12:01:22 ($) *is* id :) 12:01:23 (((((flip .) .) .) .) .) . ((((((flip .) .) .) .) .) .) . (((((((flip .) .) .) .) .) .) .) . ((((((((flip .) .) .) .) .) .) .) .) . (((((((((flip .) .) .) .) .) .) .) .) .) . ((((((((((flip .) .) .) 12:01:24 .) .) .) .) .) .) .) . flip flip id . (flip .) . ((flip .) .) . (((flip .) .) .) . ((((flip .) .) .) .) . (((((ap .) .) .) .) .) . ((((((flip .) .) .) .) .) .) . (((((((flip .) .) .) .) .) .) .) . (( 12:01:24 ((((((flip .) .) .) .) .) .) .) .) . (((((((((flip .) .) .) .) .) .) .) .) .) . ((((((((((flip .) .) .) .) .) .) .) .) .) .) . ((((flip .) .) .) .) . (((((flip .) .) .) .) .) . ((((((flip .) .) .) .) 12:01:24 .) .) . (((((((flip .) .) .) .) .) .) .) . ((((((((flip .) .) .) .) .) .) .) .) . (((((((((flip .) .) .) .) .) .) .) .) .) . (((flip .) .) .) . ((((flip .) .) .) .) . (((((flip .) .) .) .) .) . (((( 12:01:24 ((flip .) .) .) .) .) .) . (((((((flip .) .) .) .) .) .) .) . ((((((((flip .) .) .) .) .) .) .) .) . ((flip .) .) . (((flip .) .) .) . ((((flip .) .) .) .) . (((((flip .) .) .) .) .) . ((((((flip .) 12:01:25 [3 @more lines] 12:01:27 optimization suspended, use @pl-resume to continue. 12:02:22 so clear and concise. 12:02:28 I wonder why they ever invented variables. 12:03:33 pl is like cheating for obfuscation contests. 12:05:25 So 12:05:32 Can we rename @pl to @obfuscate 12:08:14 @pl \l 1 -> l + 1 12:08:15 (+) 12:12:40 @l (\a b c d e f g h i j k l m n o p q r s t u v w x y z -> q w e r t y u i o p a s d f g h j k l z x c v b n m) 12:12:41 Maybe you meant: learn leave let list listall listchans listmodules listservers localtime localtime-reply lojban . ? @ pl v 12:12:45 @pl (\a b c d e f g h i j k l m n o p q r s t u v w x y z -> q w e r t y u i o p a s d f g h j k l z x c v b n m) 12:12:48 (((((((((((flip .) .) .) .) .) .) .) .) .) .) .) . ((((((((((((flip .) .) .) .) .) .) .) .) .) .) .) .) . (((((((((((((flip .) .) .) .) .) .) .) .) .) .) .) .) .) . ((((((((((((((flip .) .) .) .) .) 12:12:48 .) .) .) .) .) .) .) .) .) . (((((((((((((((flip .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) . ((((((((((((((((flip .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) . (((((((((((((((((flip .) .) .) . 12:12:48 ) .) .) .) .) .) .) .) .) .) .) .) .) .) . ((((((((((((((((((flip .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) . (((((((((((((((((((flip .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) 12:12:48 .) . ((((((((((((((((((((flip .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) . (((((((((((((((((((((flip .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) . ((((((((((((((( 12:12:48 (((((((flip .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) . (((((((((((((((((((((((flip .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) . (((((((((((flip .) . 12:12:50 [35 @more lines] 12:12:52 optimization suspended, use @pl-resume to continue. 12:12:53 * Lymee runs 12:14:11 @. unpl pl (\a b c d e f g h i j k l m -> m l k a b c j i h d e f h g) 12:14:15 Parse error at end of input 12:14:33 @. unpl pl (\a b c d i j k l m -> m l k a b c j i h d) 12:14:36 Parse error at end of input 12:23:31 -!- Lymia has joined. 12:23:53 -!- Lymee has quit (Disconnected by services). 12:23:55 -!- Lymia has changed nick to Lymee. 12:35:34 -!- shachaf has joined. 13:02:16 -!- BeholdMyGlory has joined. 13:02:33 -!- derrik has joined. 13:03:03 -!- hagb4rd has quit (Ping timeout: 255 seconds). 13:08:12 @pl (\a b c d e f g h i j k l m n o p q r s t u v w x y z -> q) 13:08:12 const (const (const (const (const (const (const (const (const (const (const (const (const (const (const (const (const . const . const . const . const . const . const . const . const)))))))))))))))) 13:08:25 @pl (\a b c d e f g h i j k l m n o p q r s t u v w x y z -> q a z w s x) 13:08:28 const . const . const . const . const . const . const . const . const . const . const . const . const . const . const . ((const . ((const . const . const . (((const .) . flip) .)) .) . flip . (flip . 13:08:28 ) . flip) .) . flip id 13:08:36 @pl (\a b c d e f g h i j k l m n o p q r s t u v w x y z -> q a z w s x a) 13:08:39 const . const . const . const . const . const . const . const . const . const . const . const . const . const . const . ((const . ((const . const . const . ((const .) .)) .)) .) . join (flip . (( 13:08:39 flip . ((flip . (flip .)) .) . (((flip .) .) .)) .) . (((flip .) .) .) . (flip .) . ((flip .) .) . (flip .) . flip id) 13:08:39 optimization suspended, use @pl-resume to continue. 13:09:24 @pl (\a b c d e f g h i j k l m n o p q r s t u v w x y z -> (t o) (b e) (o r) (n o t) (t o) (b e) . (t h a t) (i s) (t h e) (q u e s t i o n)) 13:09:28 (const .) . (const .) . ((const .) .) . ((const .) .) . ((((const .) .) .) .) . ((((const .) .) .) .) . ((((const .) .) .) .) . ((((const .) .) .) .) . ((((((const .) .) .) .) .) .) . ((((((((((( 13:09:28 const .) .) .) .) .) .) .) .) .) .) .) . (((((((((((const .) .) .) .) .) .) .) .) .) .) .) . (((((((((((const .) .) .) .) .) .) .) .) .) .) .) . (((((((((((const .) .) .) .) .) .) .) .) .) .) .) . (( 13:09:28 (((((((((const .) .) .) .) .) .) .) .) .) .) .) . flip (ap . ((.) .) . ((.) .) . (ap .) . ((ap .) .) . ((((.) .) .) .) . (((flip .) .) .) . (((((.) .) .) .) .) . ((((ap .) .) .) .) . ((((((.) .) .) . 13:09:28 ) .) .) . ((((((.) .) .) .) .) .) . ap (ap . (flip .) . ((flip .) .) . (((flip .) .) .) . ((((flip .) .) .) .) . flip flip (flip id) . (flip .) . ((ap .) .) . (((flip .) .) .) . ((((ap .) .) .) .) . 13:09:28 (ap .) . ((flip .) .) . (((ap .) .) .) . flip flip id . (ap .) . (((.) .) .) . ((flip .) .) . (flip (flip . flip id) .)) id) . flip (ap . (flip .) . ((ap .) .) . ((((.) .) .) .) . ((((.) .) .) .) . ( 13:09:30 [3 @more lines] 13:09:32 optimization suspended, use @pl-resume to continue. 13:10:07 -!- derrik has left. 13:11:28 Lymee, please, do it in a /query. 13:40:56 -!- derrik has joined. 13:46:33 -!- ralc has joined. 14:04:52 -!- ralc has quit (Read error: Operation timed out). 14:23:00 -!- ralc has joined. 14:24:53 -!- Sgeo_ has quit (Ping timeout: 252 seconds). 14:57:39 -!- Sgeo has joined. 15:10:06 -!- derrik has quit (Ping timeout: 258 seconds). 15:28:48 -!- Wamanuz4 has quit (Remote host closed the connection). 15:29:16 -!- Wamanuz4 has joined. 15:39:00 -!- olsner has quit (Quit: Leaving). 15:39:25 -!- olsner has joined. 15:41:38 -!- monqy has joined. 15:46:33 -!- Lymee has quit (Ping timeout: 260 seconds). 15:58:57 -!- Lymee has joined. 16:19:23 -!- Vorpal has quit (Ping timeout: 260 seconds). 16:23:14 -!- Vorpal has joined. 16:53:05 -!- Lymia has joined. 16:56:51 -!- Lymee has quit (Ping timeout: 276 seconds). 17:01:48 `quote 17:01:49 180) You people. You people are so stupid. I'm making a SOCIOLOGICAL statement here. 17:02:25 `quote stupid 17:02:26 180) You people. You people are so stupid. I'm making a SOCIOLOGICAL statement here. \ 274) ah yes, indeed, alan turing was gay and stupid \ 321) zzo38: you missed the point. the point was way stupider than that. \ 342) quintopia: no i'm not laughing at you, i'm laughing because *you're 17:04:26 Seeing a high correlation with oko here. 17:04:33 `pastequotes stupid 17:04:34 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.31077 17:05:34 -!- Nisstyre has quit (Remote host closed the connection). 17:07:15 -!- Nisstyre has joined. 17:56:08 -!- azaq23 has joined. 18:02:31 where is oerjan 18:02:42 Norway. 18:02:51 okay 18:04:05 i believe you that the person controlling the oerjan persona's physical presence lies in norway 18:04:14 but i do not see that online persona here 18:04:17 maybe later... 18:04:35 -!- derrik has joined. 18:06:05 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 18:25:48 -!- ralc has quit (Ping timeout: 260 seconds). 18:30:33 -!- hagb4rd has joined. 18:34:43 -!- derrik has left. 18:38:52 -!- ralc has joined. 18:50:28 http://www.reddit.com/r/askscience/comments/ifodq/what_is_the_simplest_self_replicating_system_we/ 18:50:30 *sigh* 18:50:58 Not one of the answers addresses the fact that the question is terrible. 18:51:33 * Phantom_Hoover downvotes across the board. 19:28:15 -!- oerjan has joined. 19:28:23 I can't think of a * -> * type that could not possibly have a Functor instance.. 19:28:30 non-covariant ones. 19:29:08 newtype HasNoFunctor a = HasNoFunctor (a -> Int) 19:32:13 Phantom_Hoover! 19:42:34 -!- augur has quit (Remote host closed the connection). 19:44:12 -!- augur has joined. 20:21:15 -!- Nisstyre has quit (Quit: Leaving). 20:22:19 -!- Nisstyre has joined. 20:24:46 -!- ais523 has joined. 20:33:51 http://www.dailymail.co.uk/news/article-2010193/Teachers-strike-Sophie-Howard-13-killed-falling-branch-school-closed.html#ixzz1QrGB4Zb0 20:34:04 The logic in this article is possibly the most beautiful I have ever seen. 20:34:36 The comment ratings, however, give me faith in humanity. 20:35:43 I get "comments are currently unavailable" 20:36:01 also, I don't think the article itself has spurious logic, it's just stating a bunch of unrelated facts and leading its readers to try to draw a connection 20:37:13 Yes ais523 that is completely correct and also entirely irrelevant. 20:37:43 it's a good journalism technique, in that it sells papers without actually lying 20:38:37 "I hope every striking teacher is hanging their head in shame right now." 20:38:45 Rating: -2690. 20:38:56 I suspect this has been posted on Reddit or something. 20:54:46 oerjan: is there an n for which there exists no n-digit base n number which, for all k, the first k digits form a number divisible by k? study this and report back. 20:55:04 (even n only) 20:55:06 erm 20:56:18 hm i guess the base 10 case is an old chestnut i've heard... 20:56:47 i've got them for 2,4,6,8,10 and maybe 12 but i don't remember 20:57:04 hm so no odd ones? 20:57:20 i proved that there aren't any odd ones greater than 1 20:57:40 oh i somehow missed your "even" 20:57:42 (well, base 1 isn't really meaningful...) 20:58:06 erm 20:58:07 sorry 20:58:13 all 1 <= k <= n, i assume you mean 20:58:20 of course 20:58:53 10, 1230 20:58:59 those are unique i think 20:59:14 last digit 0, obviously 20:59:19 yeah 20:59:27 you can drop the zero and jsut do n-1 digits if you like 20:59:33 oh wait 20:59:39 what about 3210 20:59:55 some of the numbers have multiple solutions 21:00:00 ah 21:00:36 > map (readInt 4 digitToInt) ["123", "321"] 21:00:37 Couldn't match expected type `GHC.Bool.Bool' 21:00:37 against inferred type ... 21:00:41 argh 21:00:43 :t readInt 21:00:44 forall a. (Num a) => a -> (Char -> Bool) -> (Char -> Int) -> String -> [(a, String)] 21:00:58 > map (readInt 4 (const True) digitToInt) ["123", "321"] 21:00:59 [[(27,"")],[(57,"")]] 21:02:46 ok even and odd digits must alternate 21:03:31 how does the odd non-existence proof go? 21:04:46 to be divisible by n-1, an analogue of the digital root rule holds 21:06:05 1+2 is odd. so that is ruled out for base 3. 21:06:27 1+2+3+4 is 10, not divisible by 4 21:07:07 1+2+3 is 6, divisible by 3 so _that_ works 21:07:15 1+2+3+4+5 is divisible by 5 21:07:20 ok hm 21:07:52 n(n+1)/2 divisible by n iff n+1 is even. right, that proves it cannot work for odd ones 21:08:43 while the n-1'st step automatically works for even ones 21:08:58 quintopia: was that your proof? 21:09:28 yep 21:11:38 n*i + j == 2*i + j (mod (n-2)) 21:12:51 if n has many prime factors, then that fixes factors of many of the digits 21:13:07 say for 6, the 3rd digit must be divisible by 3 21:13:19 which means it is 3 21:13:40 indeed. the middle digit is always n/2 iirc 21:13:45 .[24]3[24].0 21:13:46 at least for the ones i found 21:13:51 yeah 21:14:06 because that and 0 are the only digits divisible by n/2 21:14:57 hm it doesn't matter where you put 1 or 5 for base 6 21:15:02 (in those two spots) 21:15:05 nonetheless, several numbers have multiple solutions (usually consisting of two digits you can swap) 21:15:13 right 21:15:51 but then sometimes, there's only one, which led me to wonder if it would ever become an overconstrained problem 21:16:53 hm there's only one for 10 i guess (iirc the chestnut) 21:17:01 mmhmm 21:17:06 is that related to it being twice a prime? 21:17:15 good question 21:17:22 i can go solve 14 real quick if you like :P 21:17:30 (by quick i mean like 30 minutes...) 21:17:44 _maybe_ it would be an idea to write a program :P 21:17:49 hehe 21:18:08 someone i know already has some generalized CSP tools 21:18:18 left over from doing the sudoku PE puzzle 21:18:34 afk 21:18:40 k 21:24:10 -!- zzo38 has joined. 21:33:49 -!- Vorpal has quit (Ping timeout: 260 seconds). 21:35:21 lessee 21:36:11 i believe the restriction on digit positions can be generalized to gcd pos digit == gcd pos base 21:36:55 -!- MigoMipo has quit (Read error: Connection reset by peer). 21:38:37 because at each position divisible by d where d divides the base, then the digit there must be divisible by d. and the number of positions with a given gcd is exactly equal to the number of digits with the same gcd, so they must be matched 21:38:55 oh hm wait 21:39:45 * gcd (gcd pos digit) base == gcd pos base 21:40:34 (no use for factors not in the base) 21:41:38 hm that's the same as gcd digit (gcd pos base) == gcd pos base 21:50:09 > let nsearch _ _ _ [] = []; nsearch b pos n remdigs = [d:ds | d <- remdigs, let g=gcd pos base; n' = n*b+d, gcd d g == g, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 4 1 0 [1..3] 21:50:09 Not in scope: `base' 21:50:21 > let nsearch _ _ _ [] = []; nsearch b pos n remdigs = [d:ds | d <- remdigs, let g=gcd pos b; n' = n*b+d, gcd d g == g, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 4 1 0 [1..3] 21:50:22 [] 21:50:25 wat 21:51:20 how can it not work when it compiled :D 21:51:32 hm 21:51:40 :t delete 21:51:40 forall a. (Eq a) => a -> [a] -> [a] 21:52:43 > let nsearch _ _ _ [] = []; nsearch b pos n remdigs = [d:ds | d <- remdigs, let n' = n*b+d, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 4 1 0 [1..3] 21:52:44 [] 21:53:15 -!- Lymia__ has joined. 21:53:58 oh duh 21:54:12 > let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let g=gcd pos b; n' = n*b+d, gcd d g == g, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 4 1 0 [1..3] 21:54:12 [[1,2,3],[3,2,1]] 21:54:32 > let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let g=gcd pos b; n' = n*b+d, gcd d g == g, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 6 1 0 [1..5] 21:54:33 [[1,4,3,2,5],[5,4,3,2,1]] 21:54:55 > let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let g=gcd pos b; n' = n*b+d, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 6 1 0 [1..5] 21:54:56 [[1,4,3,2,5],[5,4,3,2,1]] 21:55:11 > let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let g=gcd pos b; n' = n*b+d, gcd d g == g, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 8 1 0 [1..7] 21:55:12 [[3,2,5,4,1,6,7],[5,2,3,4,7,6,1],[5,6,7,4,3,2,1]] 21:55:23 quintopia: do those solutions look familiar? 21:55:51 -!- Lymia has quit (Ping timeout: 240 seconds). 21:56:20 > let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let g=gcd pos b; n' = n*b+d, gcd d g == g, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 10 1 0 [1..9] 21:56:21 [[3,8,1,6,5,4,7,2,9]] 21:56:57 > let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let g=gcd pos b; n' = n*b+d, gcd d g == g, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 12 1 0 [1..11] 21:56:58 [] 21:57:01 wat 21:57:12 quintopia: um it claims there are no solutions for 12 :P 21:57:30 > let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let n' = n*b+d, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 12 1 0 [1..11] 21:57:30 [] 21:57:52 > let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let g=gcd pos b; n' = n*b+d, gcd d g == g, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 14 1 0 [1..13] 21:57:53 [[9,12,3,10,5,4,7,6,11,8,1,2,13]] 21:58:21 > let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let g=gcd pos b; n' = n*b+d, gcd d g == g, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 16 1 0 [1..15] 21:58:22 [] 21:58:33 > let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let g=gcd pos b; n' = n*b+d, gcd d g == g, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 18 1 0 [1..17] 21:58:34 [] 21:58:42 > let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let g=gcd pos b; n' = n*b+d, gcd d g == g, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 20 1 0 [1..19] 21:58:45 [] 21:59:02 quintopia: there appear to be no solutions for 12, 16, 18 or 20 22:00:35 that is a good program there sir 22:00:46 why thank you 22:01:49 the gcd stuff seems not to be very important, it was fast enough without too 22:02:15 well i guess it might time out for larger ones 22:02:27 and of course... now i can't help but wonder if there is a maximum n...but that question might be as hard as collatz 22:02:33 > let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let n' = n*b+d, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 20 1 0 [1..19] 22:02:36 [] 22:02:49 quintopia: perhaps :P 22:03:08 hm now... 22:03:27 > let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let g=gcd pos b; n' = n*b+d, gcd d g == g, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 22 1 0 [1..21] 22:03:31 mueval-core: Time limit exceeded 22:03:34 darn 22:03:50 > let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let n' = n*b+d, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 22 1 0 [1..21] 22:03:54 mueval-core: Time limit exceeded 22:04:05 we may never know :P 22:05:24 oerjan: what is the maximum n which, for all k i wonder how many mathematicians are working on the Tootsie Roll Pop Conjecture... 22:07:13 my old laptop seems to have trouble with this :( 22:08:03 actually 22 _should_ be hard because the gcd stuff adds very little when the base is twice a prime 22:09:15 but also, twice primes are interesting because 14 _did_ have an example so maybe they all do... 22:10:38 hm... 22:10:54 > let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let n' = n*b+d, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 24 1 0 [1..23] 22:10:57 mueval-core: Time limit exceeded 22:11:03 bah 22:11:09 oh wait 22:11:50 > let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let g=gcd pos b; n' = n*b+d, gcd d g == g, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 24 1 0 [1..23] 22:11:54 mueval-core: Time limit exceeded 22:11:59 nah didn't help 22:17:09 omg 22:17:15 i'm getting my first month of prgmr free :D 22:17:17 Gregor: NEE NAW NEE NAW 22:18:07 elliott, what, has he had a heart attack or something? 22:18:27 A HEART ATTACK OF JEALOUSY 22:18:47 quintopia: ah, there is no solution for 22 either 22:19:01 so twice prime conjecture disprover :P 22:19:03 *d 22:19:58 oerjan: run 26 if your compy can handle it :P 22:21:06 seems to take a while 22:21:28 (22 got reasonably fast once i actually compiled it properly) 22:21:46 -!- elliott_ has joined. 22:21:53 and then run 62 mwahahaha (in case it is twice mersenne primes) 22:22:03 -!- elliott has quit (Read error: Connection reset by peer). 22:22:07 sorry, i don't think that is going to work :P 22:22:15 it hasn't finished 26 yet 22:22:22 so it's obviously exponential 22:22:40 ha 22:22:42 -!- Lymia has joined. 22:22:45 i figured 22:22:49 ah there. no solution. 22:22:52 One idea for pokemon cards: Attach this card to one of your bench or active pokemon. Power, weak, resist, of the card this is attached to is suppressed. If you receive damage that would be affected by the weakness, discard this card (after damage is calculated). 22:26:32 no solution for 24 either. i don't think i'm going to try anything larger on this computer :P 22:26:37 -!- Lymia__ has quit (Ping timeout: 276 seconds). 22:27:18 EXCUSE ME I HAVE THE PERFECT COMPUTER GIVE IT TO ME 22:27:50 quintopia: my guess is there is no real connection between all the constraints so they just statistically block everything from some size on 22:28:10 elliott_: see nsearch above 22:28:14 what is this about, btw? 22:28:54 elliott_: in what bases b do there exist b-digit numbers such that the first k digits form a number divisible by k, 1 <= k <= b 22:29:08 9 22:29:09 yw 22:29:23 elliott_: sorry, odd bases have been excluded 22:29:26 there are 9 such bases, their identity is left as an exercise to the reader 22:29:37 hm... 22:30:07 1, 2, 4, 6, 8, 10, 14 are the ones we have found so far :P 22:30:31 -!- cheater__ has quit (Ping timeout: 255 seconds). 22:30:32 and a search up to 26 seems to bring little hope of more 22:31:23 elliott_: but you are welcome to test 28, 30 and so on as far as you wish 22:31:34 oerjan: no i am god i test nothing 22:31:37 i merely... know 22:31:45 oerjan: ok so it is just 22:31:47 > let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let g=gcd pos b; n' = n*b+d, gcd d g == g, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 24 1 0 [1..23] 22:31:49 what numbers should i use 22:31:50 in the nsearch call 22:31:50 mueval-core: Time limit exceeded 22:31:53 SOME PERFECT COMPUTER 22:32:10 elliott_: nsearch b 1 0 [1..b-1] 22:32:12 also, could any strictness help here? 22:32:22 oerjan: erm that is to test 28? 22:32:26 oh, b 22:32:29 no to test any b 22:32:48 but yeah, if you want to strictness annotate any of that... do it now 22:33:02 elliott_: just put !'s on everything :P 22:33:14 even remdigs? 22:33:27 well all the numbers :P 22:33:39 it's not an algorithm that needs laziness 22:34:04 nsearch.hs:1:177: Not in scope: `delete' 22:34:04 grr 22:34:05 ?hoogle delete 22:34:06 Data.HashTable delete :: HashTable key val -> key -> IO () 22:34:06 Data.IntMap delete :: Key -> IntMap a -> IntMap a 22:34:06 Data.IntSet delete :: Int -> IntSet -> IntSet 22:34:06 however n can be large, so you definitely need Integers 22:34:11 what delete is it? 22:34:11 elliott_: oh, in Data.List 22:34:22 what is nsearch's return type? 22:34:24 [[Integer]]? 22:34:27 yeah 22:34:35 how long did twenty-six take, exactly? :D 22:34:46 a few minutes 22:34:52 hmm, so this will take hours :D 22:35:05 elliott_: note that my laptop is 5 years old :P 22:35:16 oerjan: could it be parallelised? 22:35:24 elliott_: hm why not 22:35:38 you get on that :P 22:35:41 no. 22:35:47 elliott@katia:~$ ./nsearch 22:35:47 [] 22:35:47 yw 22:36:02 that's for 28? 22:36:04 yep 22:36:47 oerjan: what next :P 22:37:07 i'm gonna agree with oerjan's conjecture that there are no more after 14 22:37:09 elliott_: 30, 32, etc. we have no proof for specific even numbers 22:37:24 elliott_: we don't actually expect any more hits 22:37:27 based on NO EVIDENCE 22:37:56 hm... 22:38:07 let me just check OEIS for this 22:38:17 oerjan: what did mathematicians do before OEIS 22:38:50 i searched for it on oeis before and never found it 22:38:57 "Toothpick sequence starting at the vertex of an infinite 90-degree wedge." 22:39:07 oerjan: i'm glad this program has constant memory usage 22:39:09 wat 22:39:12 oerjan: BUT OF COURSE 22:39:17 what's the next predicted base? 22:39:19 quintopia: i'm joking :P 22:39:22 oh 22:39:22 :D 22:39:27 FUCK YOU :D 22:39:31 oerjan: erm wait that's a real sequence? 22:39:36 http://oeis.org/A160406 22:39:39 and it fits so far 22:39:54 so depending on the outcome of 30... :D 22:39:55 18 fails 22:39:56 yes but next is 18, which is not in the one we investigate 22:39:58 oh, damn 22:40:08 oerjan: how big will the output be if it is a match? 22:40:20 $ time ./nsearch 22:40:20 [] 22:40:20 real2m9.258s 22:40:22 ok thirty isn't it 22:40:28 oerjan: i searched for the sequence 1,2,2,2,1,0... 22:40:40 or w/e 22:41:08 oerjan: trying thirtytwo now 22:41:14 elliott_: who knows? some bases have 3 examples 22:41:34 but in _theory_ there could be an exponential amount 22:42:32 quintopia: i guess OEIS does not contain finite sequences much, anyhow 22:43:27 more like finite jewquences 22:44:05 OR THAT 22:44:23 yes. it does contain a handful. it contains the fermat primes iirc 22:44:53 hm 22:45:36 > let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let g=gcd pos b; n' = n*b+d, gcd d g == g, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 8 1 0 [1..7] 22:45:37 [[3,2,5,4,1,6,7],[5,2,3,4,7,6,1],[5,6,7,4,3,2,1]] 22:45:41 -!- cheater_ has joined. 22:46:42 hmph those don't google well 22:46:50 > let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let g=gcd pos b; n' = n*b+d, gcd d g == g, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 10 1 0 [1..9] 22:46:51 [[3,8,1,6,5,4,7,2,9]] 22:47:50 that one has good hits, at least :P 22:47:59 ah 22:48:11 (in google) 22:48:18 hmm, this fringe episode has "polish military-grade transistors" 22:48:18 oerjan: still running thirtytwo 22:48:23 so it's 1,2,2,3,1,0,1,0,0,0,0,0,0,0,0,0... 22:49:00 olsner: orite. those are the huge ones that can switch/amplify 4000 V wires :P 22:49:25 quintopia: no, it's just a normal small one with polish text on it 22:49:25 -!- azaq23 has quit (Ping timeout: 255 seconds). 22:50:46 olsner: doesn't sound military grade to me 22:51:00 > let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let n' = n*b+d, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 8 1 0 [1..7] 22:51:00 [[3,2,5,4,1,6,7],[5,2,3,4,7,6,1],[5,6,7,4,3,2,1]] 22:51:19 no indication that the gcd rule is wrong, at least 22:51:51 oerjan has mastered the ancient mathematical art of proving statements on infinite sets by testing a finite number of examples 22:51:58 it makes me a bit nervous, but it should cut down a lot of branches 22:52:15 can always binary-search back to those 22:52:34 elliott_: huh? 22:52:41 I mean, you can just try ones that fit the gcd rule 22:52:44 then go back to non-gcd ones later 22:53:24 if your computer can handle them :P 22:53:52 for example, it's the gcd rule which ensures odd positions only get odd digits 22:54:37 so without it, all of those might get twice as many candidates at each step 22:54:42 oerjan: psst, can you reofrmulate nsearch with combinators instead of a comprehension? 22:54:48 I'm trying to port it to data-parallel Haskell 22:55:02 i have no idea how data parallel haskell works :P 22:55:20 (well, almost none) 22:55:26 * elliott_ tries to find the module for you; it's basically just Data.List 22:55:28 but with P on the end 22:55:30 but I just want a list version 22:55:32 that uses combinators 22:55:35 I can port it to dph myself 22:55:54 oh, darn 22:55:59 there's no dph for GHC 7.0 22:56:01 I'll port it to repa instead 22:56:36 elliott_: well i guess you want to choose the digit first, and if there are two, you can branch 22:56:42 hm should the result be (ArrayTypeyThing [Integer]) or [ArrayTypeyThing Integer] 22:56:45 of nsearch, I mean 22:56:46 *two or more possibilities 22:56:53 assuming remdigs is ArrayTypeyThing Integer 22:57:31 elliott_: hm you could actually do it with Integer instead if you want 22:57:35 oerjan: eh? 22:57:53 I just mean 22:57:57 nsearch 22:57:57 :: Integer 22:57:57 -> Integer 22:57:57 -> Integer 22:57:57 -> R.Array R.DIM1 Integer 22:57:58 -> R.Array R.DIM1 [Integer] 22:58:02 is the last component right, 22:58:05 or should it be [R.Array R.DIM1 Integer]? 22:58:10 elliott_: the final result is really just n. oh but it will be in decimal if you do that. 22:58:20 you're not really making any sense :D 22:58:25 oerjan: do you mean that the inner [Integer] 22:58:27 is just a list of digits? 22:58:31 yeah 22:58:37 so i could do 22:58:38 type Number = [Int] 22:58:46 well yes. 22:58:46 (assuming the bases won't go above Int range...) 22:59:03 n still needs to be Integer though. 22:59:20 urgh, what, no Elt instance for Integer? 23:00:20 oerjan: I might just use Data.Vector instead 23:00:28 oh wait, repa is what does the automatic parallelisation 23:00:29 hmm 23:00:58 oerjan: hmm, will remdigs ever contain a really large number? 23:01:13 and will the result numbers in nsearch ever be really large? I mean, feasibly 23:01:16 elliott_: remdigs is always a subset of [1..b-1] 23:01:16 i.e. not fit into Int 23:01:43 elliott_: the number has b-1 digits where b is the base :P 23:01:56 hmm, so it might very well overflow, then 23:02:01 yep 23:02:17 $ time ./nsearch 23:02:17 ^Y[] 23:02:17 real19m28.434s 23:02:18 for thirty-two 23:02:33 oerjan: ok well is nsearch expressable as a map of any kind, I'm just looking for parallelisation options here 23:03:39 elliott_: the recursive nsearch depends on the digit chosen. i guess you can check if there is more than one possible digit and branch only if so 23:04:01 Some people have asked questions about chess rules such as this: "can a king switch places with a pawn when in check?" "if a king reaches the other end of the board then can u get your queen back?" "He moved his king to the other side and said its a draw. Is it correct?" "can the king take another piece" 23:04:08 hmm, when would there ever be only one possible digit? 23:04:27 elliott_: easily. for example the b/2 digit must always be b/2 23:04:40 erm wouldn't that only save, like, one recursion though 23:05:07 elliott_: but there is also the requirement that the number so far must be divisible by the current position 23:05:23 ?pl [ d : ds | !d <- remdigs , let g = gcd pos b , let n' = n*b+d , gcd d g == g , mod n' pos == 0 , !ds <- nsearch b (pos+1) n' (delete d remdigs) ] 23:05:23 (line 1, column 1): 23:05:23 unexpected "[" 23:05:23 expecting white space, "()", natural, identifier, lambda abstraction or expression 23:05:23 i would think that tends to cut down most 23:05:25 grr 23:05:30 i was hoping for a combinator version 23:05:35 concatMap, etc. 23:05:43 oerjan: i think it is possible to write a much more efficient logical search than this rather brute forcey thing you've got. like the logical sudoku solver? 23:06:01 "if the opponents queen is placed next to the king putting him in check mate can the king take the queen" "is it true that the king cna move two spaces on its first move?" "If you get your king across and back do you get a piece back." "I have alot of friends at school that say that chess is for nerds and geaks do any of you have this proble please replay after reading this message" 23:06:13 quintopia: i don't know. i feel like the gcd rule takes care of most easy restrictions... 23:06:23 how do you translate a list comprehension again... 23:06:27 filter (\d -> ) remdigs 23:06:37 filter (\d -> let g = gcd pos b; n' = n*b+d) remdigs 23:06:41 @undo [x | y <- l, x <- y] 23:06:41 concatMap (\ y -> concatMap (\ x -> [x]) y) l 23:06:46 oh 23:06:50 ?undo [ d : ds | !d <- remdigs , let g = gcd pos b , let n' = n*b+d , gcd d g == g , mod n' pos == 0 , !ds <- nsearch b (pos+1) n' (delete d remdigs) ] 23:06:50 Parse error at "!d" (column 14) 23:06:58 ?undo [ d : ds | d <- remdigs , let g = gcd pos b , let n' = n*b+d , gcd d g == g , mod n' pos == 0 , ds <- nsearch b (pos+1) n' (delete d remdigs) ] 23:06:58 concatMap (\ d -> let { g = gcd pos b} in let { n' = n * b + d} in if gcd d g == g then if mod n' pos == 0 then concatMap (\ ds -> [d : ds]) nsearch b (pos + 1) n' (delete d remdigs) else [] else []) 23:06:58 remdigs 23:07:01 yay 23:07:22 just means that I can, e.g. try a parallel map 23:07:31 assuming numdigs isn't too big, that should pay off 23:08:40 concatMap (\ ds -> [d : ds]) nsearch b (pos + 1) n' (delete d remdigs) 23:08:43 oerjan: hm that can't be right 23:08:44 missing parens 23:09:23 elliott_: in fact the number of branches will almost certainly be largest for the first few digits, where the restriction of modulus is small 23:09:44 while for the later ones you will probably only get one digit possibility 23:10:09 (e.g. the first digit can be any number relatively prime to the base) 23:10:46 nsearch !b !pos !n !remdigs = concat (parMap rdeepseq f remdigs) 23:10:48 I think this is right 23:11:33 "do you guys know about the ozone layer" (That has nothing to do with chess!) "Whap happens when a player says a false checkmate? Do i win?" "can a player leave the table while his oponent has to move if a clock doesnt exist?" "When your king reaches the other side if the board what happenends?" "when a pawn reachs the end can it turn into a queen. If i already have one ." 23:11:42 * elliott_ tries thirty again 23:11:43 real2m9.258s 23:11:43 to beat 23:12:43 an improvement 23:13:35 3291 elliott 20 0 48740 3700 1256 R 179 0.1 0:13.84 nsearch.optim 23:13:36 promising 23:13:41 "i have played a computer program that says that moving the king into a square without having that square accessible by a piece of yours is illegal. is this true?" "is it allowed for a king to be checkmated without going through check first?" "can a pawn turn into a queen and put you into check mate to end the game or must it be done differently" "lets say there was just a kink left and the very last move of the game put it in checkmate,would t 23:13:49 rdeepseq may be excessive, min dyou 23:13:49 mind you 23:14:30 wtf sort of questions are these 23:14:33 who would ask them 23:14:36 ever 23:15:06 oerjan: hm this may have been a pessimisation... 23:15:09 unless it wasn't thirty I tested 23:15:12 Probably people who are very confused about chess might ask these kind of questions 23:15:25 nope, it was thirty 23:15:43 elliott_: i think maybe one should split the digit selection from the recursion somehow... 23:15:45 Some are common questions but others are strange 23:15:54 oerjan: yeah, i don't have the smarts for that, you have to handle that thinking stuff 23:16:14 > let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let n' = n*b+d, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 8 1 0 [1..7] 23:16:15 [[3,2,5,4,1,6,7],[5,2,3,4,7,6,1],[5,6,7,4,3,2,1]] 23:16:51 $ time ./nsearch.optim +RTS -N 23:16:52 [] 23:16:52 real2m47.566s 23:16:56 so it's a pessim for that 23:16:59 * elliott_ changes it a bit 23:17:06 oerjan: erm that is the same program :D 23:17:17 i just copied it 23:17:58 > let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | (d,n') <- ndigs b pos n remdigs , ds <- nsearch b (pos+1) n' (delete d remdigs)]; ndigs b pos n remdigs = [(d, n') | d <- remdigs, let n' = n*b+d, mod n' pos == 0]; in nsearch 8 1 0 [1..7] 23:17:59 [[3,2,5,4,1,6,7],[5,2,3,4,7,6,1],[5,6,7,4,3,2,1]] 23:19:19 not sure if that actually helps though :P 23:19:52 oh wait 23:20:00 i copied a version without the gcds :( 23:20:54 > let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | (d,n') <- ndigs b pos n remdigs , ds <- nsearch b (pos+1) n' (delete d remdigs)]; ndigs b pos n remdigs = [(d, n') | d <- remdigs, let g=gcd pos b; n' = n*b+d, gcd d g == g, mod n' pos == 0]; in nsearch 8 1 0 [1..7] 23:20:54 [[3,2,5,4,1,6,7],[5,2,3,4,7,6,1],[5,6,7,4,3,2,1]] 23:22:04 elliott_: i think the first list comprehension there is a good spot to parallelize. of course i don't actually know this stuff :P 23:22:14 meh, parallelisation just slows this down it seems... 23:22:16 oerjan: hm I'll give it a try 23:22:21 ?undo [d:ds | (d,n') <- ndigs b pos n remdigs , ds <- nsearch b (pos+1) n' (delete d remdigs)]; ndigs b pos n remdigs = [(d, n') | d <- remdigs, let g=gcd pos b; n' = n*b+d, gcd d g == g, mod n' pos == 0] 23:22:22 Parse error at ";" (column 89) 23:22:24 asghj 23:22:45 i hope that tuple doesn't hurt too much 23:23:49 oh wait, thats two clause 23:23:50 s 23:24:12 hence why i said the _first_ list comprehension :P 23:25:27 oerjan: ndigs is a separate function, right? 23:25:38 yeah 23:26:17 the idea is that you probably don't want to paralellize it, but if its result has more than two elements you want to paralellize on the rest 23:26:40 oerjan: this has the same performance characteristics as the original version when not paralellised, right? 23:27:00 probably 23:27:07 ?undo [d:ds | (!d,!n') <- ndigs b pos n remdigs, !ds <- nsearch b (pos+1) n' (delete d remdigs)] 23:27:07 Parse error at ",!n')" (column 12) 23:27:13 ?undo [d:ds | (d,n') <- ndigs b pos n remdigs, ds <- nsearch b (pos+1) n' (delete d remdigs)] 23:27:13 concatMap (\ (d, n') -> concatMap (\ ds -> [d : ds]) nsearch b (pos + 1) n' (delete d remdigs)) ndigs b pos n remdigs 23:27:17 stupid \bot 23:27:31 oerjan: I'm tempted to use a list type that can nest indefinitely and flatten it at the end 23:27:40 oerjan: since all these concats are essentially barriers that force sequentiality... 23:27:41 *parallelize 23:28:15 elliott_: ok :P 23:28:25 ?undo [d:ds | (d,n') <- (ndigs b pos n) remdigs, ds <- (nsearch b (pos+1) n' (delete d remdigs))] 23:28:25 concatMap (\ (d, n') -> concatMap (\ ds -> [d : ds]) (nsearch b (pos + 1) n' (delete d remdigs))) (ndigs b pos n) remdigs 23:28:42 wrong position, heh 23:29:16 oerjan: so, erm, would I want the outer or inner concatMap to be parallel? 23:29:24 or both 23:29:52 oh hm 23:30:13 basically is ndigs or nsearch the long one :D 23:30:58 oh. the outer one, i think. 23:31:31 -!- azaq23 has joined. 23:31:58 ok, it's using all my CPU, so hopefully this will be faster 23:32:03 but that's what I said last time, too 23:32:07 heh 23:32:34 elliott_: my point is you don't want to parallelize on remdigs, only on the result of ndigs 23:32:50 because remdigs is likely to be pruned a lot 23:33:20 right 23:33:23 real1m31.738s 23:33:24 woot 23:33:36 it worked? :P 23:33:42 yep 23:33:52 ok, now for thirty-four 23:34:37 http://www.irregularwebcomic.net/3080.html 23:35:06 I am now genuinely curious as to how laid-back scheduling works for the person arranging a meeting. 23:35:09 -!- hagb4rd has changed nick to hagb[4]rd. 23:35:11 "on English time" :D 23:35:19 Do you just turn up half an hour later than you specified? 23:35:27 You just turn up whenever, man. 23:36:26 elliott_: i take it there have been no new elements in the sequence so far, and you're up to trying 34? 23:36:31 indeed 23:36:33 it's running now 23:36:35 eating up all my cpu 23:36:39 Throughout the Latin American world, are the conference rooms booked for 10 o'clock but empty of people because they've all tacitly agreed to turn up at half 10? 23:36:57 Phantom_Hoover: You realise that "laid back" means "laid back", not "PRECISELY half an hour later". 23:37:13 elliott_, *around* half 10. 23:37:27 oerjan: anyway, thirty-two took 19m28.434s sequentially 23:37:33 so I dunno how long this will take, parallely 23:37:46 oops 23:37:49 ? 23:37:53 don't tell me it has a bug :D 23:38:15 it's just a bit of time 23:38:20 oerjan: ? 23:38:23 what do you mean 23:38:44 i don't know any bug. you might want to try it on 8 which we know has 3 elements :P 23:39:28 well actually i did, on the pre-parallelized version 23:40:16 -!- cheater_ has quit (Ping timeout: 255 seconds). 23:44:57 elliott_: hm hopefully this framework is smart enough not to add parallelizing overhead if mapping over a list with 1 element :P 23:45:13 oerjan: I think sparks are really cheap 23:45:17 oh 23:45:18 as in, you can have hundreds of thousands at any time 23:45:23 it's like 23:45:30 os threads > haskell green threads > sparks 23:46:13 elliott_: yeah but still i thought i'd heard that the trick to parallelization is to not get too fine-grained so everything is destroyed by overhead... 23:46:26 oerjan: that's sort of the idea of sparks, isn't it? 23:46:28 having almost 0 overhead 23:46:30 ok 23:46:53 anyway, all the smart people think it's great ;D 23:46:58 good, good 23:58:19 oerjan: still going 23:59:17 25 minutes... 2011-07-04: 00:00:15 elliott_: since 32 has so many factors, the gcd rule is likely to cut that down more than 34 which is twice a prime. i think. 00:01:23 oerjan: would it be possible to make some sort of progress report output? :P 00:01:35 probably? 00:02:27 dunno 00:03:32 oerjan: well i could always report progress through the original list passed, right? 00:03:36 that would be rather non-finegrained though 00:04:45 um but those are done in parallel... 00:05:04 oerjan: oh right :D 00:05:54 [[Two things - firstly: "Every time you do any string handling with C's native string types and functions, you need to make sure you have allocated enough memory for each string" - that's right, and experienced C developers write the correct code naturally and without thinking.]] 00:05:55 hehehe 00:06:00 humans are infallible and busywork is good 00:06:49 as i've almost said before, with perfect people everything works, even nazism 00:07:16 oerjan: Even sparks can be destroyed by overhead, but 99% of the time, it "just works". 00:07:44 (those suckers are *really* cheap) 00:08:01 mhm 00:08:22 Understanding probability can help to play at pokemon card! 00:09:01 oerjan: indeed 00:10:01 "That's silly - almost all programs use strings heavily, considering that they're really the most natural way for programs to take input from and produce output for humans." 00:10:09 and that's why everyone uses text UIs, without even colour or cursor control 00:11:11 I am playing CLEFAIRY [Lv15] against DARK CLEFABLE [Lv33] and I think my chance of hitting them is 50%. Their chance of hitting me is probably lower, but I don't know the exact amount. It is not greater than 50% though. 00:12:42 Pokémon names aren't officially always-uppercased nowadays 00:12:59 zzo38: link? 00:13:00 win 4 00:13:02 although it's a relatively recent change 00:13:18 coppro: No link, sorry. 00:13:40 Bulbapedia has most of the older Pokémon cards, but they're sorted by expansion, rather than zzo38's naming scheme 00:13:42 ais523: I am uppercased the names of all the cards 00:14:07 ais523: Do you know how to play pokemon card? 00:14:12 yes 00:14:24 * coppro braces 00:14:28 See if you understand my puzzle games. 00:14:47 Cords are a nice structure; I wonder if they're efficient when implemented purely functionally. 00:14:59 yup, there it was 00:15:02 elliott_: Can you try it and figure out? 00:15:06 it'll be complicated by the fact that zzo38 likely plays a mix of old rulesets 00:15:16 -!- CakeProphet has quit (Read error: Connection reset by peer). 00:15:19 zzo38: I'm trying to. 00:15:44 http://zzo38computer.cjb.net/textfile/miscellaneous/pokemon_card/puzzle.1 00:15:46 http://zzo38computer.cjb.net/textfile/miscellaneous/pokemon_card/puzzle.2 00:15:51 -!- CakeProphet has joined. 00:15:51 -!- CakeProphet has quit (Changing host). 00:15:51 -!- CakeProphet has joined. 00:16:43 ah, DARK CLEFABLE [Lv33] is more commonly called Dark Clefable (Team Rocket's Ambition) or Dark Clefable (GB 2) 00:16:55 so that was easy enough to find: http://bulbapedia.bulbagarden.net/wiki/Dark_Clefable_%28GB_2%29 00:17:05 Yes it is the GB 2 version. 00:17:09 newtype Cord a = Leaf ![a] 00:17:09 | Branch !Int !(Maybe (Cord l a)) !(Maybe (Cord l a)) 00:17:11 kind of ugly, but oh well 00:17:31 Calling it [Lv33] should still be unambiguous, though. Also, the puzzle games list all the card texts. 00:17:44 and hmm, is exclusive to one of the Game Boy games, rather than being an actual physical card 00:18:44 oerjan: still running, btw 00:19:07 Yes it is, although it could be played with physical cards too I think, if the chance os 1/3 for -0, 1/3 for -1, 1/3 for -2, then you can use a dice however, which is not part of the standard game. 00:19:35 (These are also the numbers I used to estimate my probability of hitting) 00:21:12 huh 00:22:10 elliott_: your newtype has some spurious l's 00:22:23 oerjan: indeed, remnants from a previous, more general attempt that I'm delaying 00:22:28 oerjan: ([a] is not a very efficient short-string structure) 00:23:04 "Leaf nodes (as well as some single-child internal nodes) also contain a short string." 00:23:07 i love that unexplained as-well-as 00:23:42 "Seen from another perspective, the binary tree of a rope can be seen as several levels of nodes. The bottom level contains all the nodes that have a short string. Higher levels have fewer and fewer nodes, until finally there is just one root node in the top level. We can build the rope by putting all the nodes with short strings in the bottom level, then randomly picking half those nodes in order to form parent nodes in the next level. Nodes with no p 00:23:42 arent (for example, the two nodes storing the strings "my_" and "me_i" in the diagram above) become the right child of the node located immediately to their left, thus forming a chain. In this way, we can build higher levels one level at a time. We stop when there is only one node remaining." 00:23:43 this is stupid 00:23:51 it's like it's purposefully trying not to be an actual algorithm 00:24:00 The GameBoy computer opponents seem to be bad at defensive play and average at offensive play, and often do stupid things. 00:24:15 ais523: Can you figure out my puzzle games? Can you understand it? 00:24:36 zzo38: Referring to cards by level is a bad approach 00:24:46 zzo38: The cards are much more well-known by name 00:25:16 oerjan: hmm, looks like finger trees are actually pretty close to this 00:25:20 The card texts of the puzzles are typed on there 00:25:30 And anyways I only know them by level anyways 00:25:38 oerjan: hm but wait 00:25:43 oerjan: finger trees have O(n) indexing, right? 00:25:50 oh, O(log(min(i,n-i))), weird 00:26:00 i guess because it tries from the end too 00:26:03 or something 00:26:05 zzo38: I haven't looked at it, I'm watching a Pokémon Blue TAS at the moment 00:26:56 elliott_: finger trees have O(1) indexing at the end, is the major difference i think 00:27:24 oerjan: that's actually quite useful, for strings 00:27:32 yeah 00:27:42 a pokemon TAS? oh dear 00:27:56 oerjan: the problem is that you don't want (Seq Char), you want (Seq AboutSixteenOrSoChars) 00:28:00 oerjan: which just complicates every algorithm 00:28:09 sufficiently so that I think reinventing the wheel might be more expedient 00:28:39 elliott_: the O(1) also keeps holding a*ly as you traverse inwards 00:28:55 yes, that is definitely a sentence that makes sense. 00:29:04 good job for making it. 00:29:08 a* is here the word i keep forgetting 00:29:08 i am proud of you. 00:29:21 What is a Pokemon TAS? 00:29:24 oerjan: asymptomatically? 00:29:25 er oh er 00:29:29 a....stigma 00:29:33 apex 00:29:35 aperture 00:29:40 argh :P 00:30:47 i know what you mean :D 00:31:29 good, good 00:31:49 http://hackage.haskell.org/packages/archive/simple-rope/0.1/doc/html/Data-Rope.html ;; TYPE FAMILIES: TOTALLY SIMPLE 00:31:53 anyway, the first 16 chars take 16*O(1) to traverse 00:32:36 elliott_ hates history 00:32:41 and historical stuff 00:33:43 oerjan: hmm, http://upload.wikimedia.org/wikipedia/commons/c/c2/Rope_example.jpg confuses me 00:33:51 apart from being tilted for no apparent reason, the lengths of the strings all vary wildly 00:33:59 is it because of inserting "s" somewhere that there's a one-char "s"? 00:34:02 elliott_: one hour 00:34:06 oerjan: :D 00:37:08 and the numbers only apply to the part vertically below ignoring the tilting... 00:38:01 oerjan: I know 00:38:07 oerjan: I just mean, why would all the strings not be equally-sized? 00:38:10 (Or one off from that) 00:38:15 So presumably it isn't a newly-created string, but a modified one 00:38:30 * oerjan doesn't actually know ropes 00:38:48 i think i briefly considered if they were useful for implementing dupdog 00:39:24 ok i guess if there isn't more to them than that, i know them 00:39:36 It is impossible to pull the ropes regardless of the number of your tentacles, I think. 00:40:28 maybe zzo38 is a great old one 00:41:20 Actually I am not one million years old. Nobody lives that long, I think. 00:44:17 -!- ralc has quit (Quit: Leaving). 00:47:24 hmm, I wonder what I should use as the target length of the small strings in a rope 00:47:32 there is probably some obvious answer based on keeping the tree shallow 00:47:34 but I don't know what it is 00:47:43 well, shallow but still... foresty enough 00:50:54 oerjan: still giong 00:50:54 going 00:51:53 RIP Bonobo Conspiracy 00:52:59 -!- azaq23 has quit (Quit: Leaving.). 00:53:52 * elliott_ was hoping oerjan would answer :D 00:54:01 4004 elliott 20 0 48740 3984 1260 S 109 0.1 124:00.04 nsearch.optim 00:54:02 two hours 00:55:01 wat 00:55:07 only in Haskell would you rotate a list by extending it to be infinitely long and then throwing out most of it ;P 00:55:08 oerjan: ? 00:55:41 * Phantom_Hoover → sleep 00:55:49 -!- Phantom_Hoover has quit (Quit: Leaving). 00:56:15 > let rot n l = take (length l) . drop n $ cycle l in rot 5 "abracadabra" 00:56:16 "adabraabrac" 00:56:19 LinuxJournal: Is there a world outside of computers? 00:56:19 -- http://www.linuxjournal.com/article/5048 00:56:25 "No." 00:56:39 elliott_: * elliott_ was hoping oerjan would answer :D 00:56:52 oerjan: hmm, I wonder what I should use as the target length of the small strings in a rope 00:56:53 there is probably some obvious answer based on keeping the tree shallow 00:56:53 but I don't know what it is 00:56:53 well, shallow but still... foresty enough 00:57:02 oerjan: also, the reason no haskell compiler does automatic memoisation is because of space leaks, right? 00:57:14 i think so 00:58:52 http://www.reddit.com/r/programming/comments/ifq59/a_regular_expression_matcher_in_30_lines_of_c/c23fz1d?context=3 hey oerjan, tell me whether my response is bullshit or not :P 00:58:55 ;D ;D ;D 01:00:05 -!- jcp has joined. 01:01:39 sounds fair. although i vaguely recall at one time reading that main = putStrLn "hello" >> main 01:01:40 ?hoogle Int -> a -> [[a]] 01:01:40 Prelude replicate :: Int -> a -> [a] 01:01:40 Data.List replicate :: Int -> a -> [a] 01:01:40 Control.Monad replicateM :: Monad m => Int -> m a -> m [a] 01:01:46 ?hoogle Int -> [a] -> [[a]] 01:01:47 Control.Monad replicateM :: Monad m => Int -> m a -> m [a] 01:01:47 Prelude drop :: Int -> [a] -> [a] 01:01:47 Prelude take :: Int -> [a] -> [a] 01:01:49 grr 01:01:52 does leak space 01:02:01 elliott_: how dare you paste in the middle of my broken line 01:02:03 oerjan: hmm, I don't think so 01:02:05 main is shared, after all 01:02:13 anyway, it won't blow the stack 01:02:14 elliott_: er, *did leak space 01:02:16 even if it does eat all your ram 01:02:18 at 01:02:19 [asterisk]ah 01:02:31 this was in some ancient version 01:03:02 elliott_: what do you want for that ?hoogle function? 01:03:20 oerjan: group into lists of length N 01:03:32 "abcdefgh" grouped by three -> ["abc","def","gh"] 01:03:35 :t chunks 01:03:36 elliott_: Data.Split, i think 01:03:36 :t chunk 01:03:36 Not in scope: `chunks' 01:03:37 Not in scope: `chunk' 01:03:40 oerjan: yeah :( 01:03:53 not in standard libraries 01:04:58 > takeWhile (not.null) . map(take 3) . iterate(drop 3) $ "abcdefgh" 01:04:59 ["abc","def","gh"] 01:09:49 -!- Sgeo has quit (Ping timeout: 255 seconds). 01:10:33 -!- Sgeo has joined. 01:11:30 algorithms suck 01:13:58 ?pl \d -> f d . g 01:13:58 (. g) . f 01:15:10 http://hackage.haskell.org/packages/archive/ListLike/3.1.1/doc/html/Data-ListLike.html#t:ListLike ugliest typeclass 01:15:28 elliott_: Should I feel bad for having made sabotage build dynamically? 01:15:34 pikhq: yes 01:15:40 -!- Sgeo has quit (Ping timeout: 255 seconds). 01:15:49 Well, that was straightforward. 01:15:56 oerjan: still going, btw 01:16:42 elliott_: It also seems to have cut the size of X11 by 95%. 01:17:59 Does the Linux kernel have support for error emulation? 01:19:48 -!- jcp|other has joined. 01:19:55 -!- jcp|other has quit (Read error: Connection reset by peer). 01:20:14 -!- jcp|other has joined. 01:23:48 -!- Sgeo has joined. 01:26:58 -!- CakeProphet has quit (Ping timeout: 260 seconds). 01:33:04 oerjan: COUGH COUGH 01:33:07 eek 01:33:12 TWO HOURS 01:33:32 oerjan: that was actually to answer my implicit question IN RETURN FOR ALL MY CPU TIME 01:33:32 also you beat me by seconds there 01:33:44 oerjan: hmm, I wonder what I should use as the target length of the small strings in a rope 01:33:44 there is probably some obvious answer based on keeping the tree shallow 01:33:44 but I don't know what it is 01:33:44 well, shallow but still... foresty enough 01:33:44 oh hm 01:34:01 i think i can say with some confidence that i dunno 01:34:06 I dunno whether you want it to be some fraction of the total initial string length or some constant :D 01:34:08 oerjan: >:( 01:34:29 elliott_: square root or logarithm perhaps? 01:34:40 hm but you want a lower limit too 01:34:44 yes, let's just throw random functions at the problem :D 01:34:58 RANDOM, THAT'S IT! 01:35:11 gaussian, to be precise 01:35:21 oerjan: :D 01:35:25 you are joking right 01:35:40 defaultChunkSize :: Int 01:35:40 defaultChunkSize = 64 01:35:40 pack :: (StringLike a) => Int -> a -> Rope a 01:35:40 pack cs s | size s < 2*cs = Leaf cs s 01:35:40 | otherwise = let (a,b) = splitAt cs s in pack cs a <> pack cs b 01:35:42 HMMMMMMMmmmmmmmmmmmmmmmmmm 01:35:47 _finally_ elliott_ is getting a clue 01:35:53 :( 01:36:31 -- | O(n) Convert a list of 'Word8' into a 'Rope' 01:36:32 pack::[Word8]->Rope 01:36:32 pack s= 01:36:32 if Prelude.length s<=leafSize then unsafePerformIO $ do 01:36:32 contents<-mallocForeignPtrArray leafSize 01:36:34 i0<-mallocForeignPtr 01:36:36 withForeignPtr i0 $ \i->poke i $ Prelude.length s 01:36:38 withForeignPtr contents $ \c->fillPtr c s 01:36:40 return $ String { contents, i0, offset=0, length_=Prelude.length s } 01:36:42 else 01:36:44 let (a,b)=Prelude.splitAt leafSize s in 01:36:46 append (pack a) (pack b) 01:36:48 where 01:36:50 fillPtr::Storable a=>Ptr a->[a]->IO () 01:36:52 fillPtr _ []=return () 01:36:54 fillPtr ptr (h:t)=do 01:36:56 poke ptr h 01:36:58 fillPtr (plusPtr ptr 1) t 01:37:00 cool 01:37:04 \end{code} Il n'est pas clair qu'on ne puisse pas faire beaucoup mieux que ce pack. Par exemple, vu qu'on calcule la taille de la liste, on pourrait sortir un arbre directement \'equilibr\'e. Vu qu'on ne fait jamais pack avec des 'ByteString's (sauf ghc quand il compile des IsString), \c ca ne vaut sans doute pas le co\^ut. Par contre, append est utilise presque partout. Il est crucial que son implementation soit extremement efficace. \begin{code} 01:37:09 cool 01:37:11 ok its leaf size is 65,536 01:37:13 so the ideal chunk size is between 64 and 65536 01:37:15 :D 01:39:56 wait this is the kind of "you need no know cache" stuff, isn't it. 01:40:01 *to know 01:40:27 oerjan: i'm not sure :D 01:40:32 HEY VOOOOORPAAAAAAAAAL 01:40:35 HEY GREEEEEGOOOOOOOOOR 01:41:33 Newspaper works as a mousepad! 01:41:41 Sgeo: Warren considers my ardent anti-historism beautiful. 01:43:31 lol 01:43:52 oerjan: 208:18.92 nsearch.optim 01:46:22 are you _sure_ you didn't accidentally write 43 or something 01:51:02 main = print (nsearch 34 1 0 [1..33]) 01:51:34 oerjan: heh, fromList is a painful function to write :( 01:51:42 because just getting a list of chunks isn't enough, i have to all spindly them down into a tree 01:51:43 im lazy 01:55:02 -!- Lymia has changed nick to Lymee. 01:56:19 :t Node 01:56:20 forall a. a -> Forest a -> Tree a 01:57:11 oerjan: what of it 01:57:52 :t Leaf 01:57:52 Not in scope: data constructor `Leaf' 01:58:14 > return True :: Tree Bool 01:58:15 Node {rootLabel = True, subForest = []} 01:58:27 aha 02:00:44 hm that's annoying 02:01:06 234:22.89 i give up 02:01:14 $ time ./nsearch.optim +RTS -N 02:01:14 ^C 02:01:14 real146m53.288s 02:01:14 user208m42.860s 02:01:14 sys25m50.830s 02:01:15 NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO 02:01:23 two seconds later: OMG ITS FOUND 02:01:48 > undefined :: [Int] 02:01:49 *Exception: Prelude.undefined 02:02:02 why doesn't it print the initial [, anyway 02:02:23 for undefined 02:02:29 yeah 02:02:29 [undefined] would produce [ 02:02:43 well sure 02:02:51 > [undefined] :: [Int] 02:02:51 [*Exception: Prelude.undefined 02:03:01 but even without the brackets 02:03:26 > undefined :: String 02:03:27 "*Exception: Prelude.undefined 02:03:44 hm 02:03:57 that's the reason why fix show works 02:04:26 > fix show 02:04:27 "\"\\\"\\\\\\\"\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\... 02:06:01 :t var 02:06:02 forall a. String -> Sym a 02:06:30 > fix (return.var.show) :: [Sym ()] 02:06:31 [[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[... 02:10:19 > fix (return.var.show) :: Maybe (Sym ()) 02:10:21 Just Just Just Just Just Just Just Just Just Just Just Just Just Just Just ... 02:10:43 hm 02:11:00 > Just (Just (Just True)) 02:11:00 Just (Just (Just True)) 02:16:05 -!- pikhq_ has joined. 02:16:09 -!- pikhq has quit (Ping timeout: 240 seconds). 02:16:16 elliott_: have you tried timing the parallel one for smaller values? that was some leap from 32 to 34... 02:16:37 yes i tried thirty 02:16:50 how long did that take? 02:19:53 -!- copumpkin has joined. 02:19:53 -!- copumpkin has quit (Changing host). 02:19:53 -!- copumpkin has joined. 02:20:39 realI1m31.738s 02:20:45 was that for 30? 02:20:52 yes 02:21:25 -!- copumpkin has quit (Client Quit). 02:21:31 that's more than 100 times up to when you stopped 34 :( 02:21:44 er, *almost 02:21:54 its obviously massively exponential 02:21:55 or worse 02:22:03 perhaps factorial 02:22:32 or rather, i cannot see how it could be _more_ than factorial. well maybe some of the large artithmetic on n. 02:22:44 *-t 02:23:22 wow, Slashdot has given me a total of 30 moderator points in a week 02:23:36 well you are a very moderate guy 02:24:52 according to the FAQ, it implies I'm in the top percentile of moderators, or something like that 02:25:16 (moderator selection is random, but apparently when you're selected, you get to do more moderation if the metamoderators think you've been doing well) 02:25:18 I mostly read via rss now 02:25:28 as far as I can tell, it just means most Slashdotters are really biased 02:25:38 and I read Slashdot for the comments 02:26:58 I have sometimes read the comments on Slashdot, too. 02:26:59 Are you able to read pokemon card puzzle by now? 02:27:06 ah, I forgot about it 02:27:11 let me look 02:27:45 I don't understand your notation for energy 02:28:08 does @ mean purple/psychic energy? 02:28:13 and if so, what is %? 02:28:57 ais523: What part are you having trouble with about the energy? Yes, @ means purple/psychic energy although you can still solve it without that information (all the card texts use the same notation too, in that file). % means leaf energy (green) 02:28:57 also, how many Prizes does each player have? are they called something else? 02:29:10 "Side cards remaining". 02:29:54 Also called Prizes also the name "side cards" is also used sometimes, and that is what I am using there. 02:29:58 and numbers on their own in Pokémon descriptions are damages in multiples of 10? 02:30:06 Yes. 02:30:23 -!- copumpkin has joined. 02:32:30 What is called ten damage is called 1 here; it is more logical. 02:32:32 you need to point out that the opponent has at least one card in draw pile 02:32:43 otherwise you can win by passing the turn :) 02:32:52 you have [irrelevant] there atm 02:36:10 I don't think it is necessary but OK I will change that 02:37:50 I fixed it. 02:38:12 -!- zzo38 has quit (Quit: Unfortunately I have to leave now, sorry). 02:40:18 I'm not convinced the first puzzle is possible; there seems to be no way to get a draw from the deck other than itemfindering Bill in any of the cards there, and if you do that, you have no way to refill your deck with Nightly Garbage Run 02:40:28 other than that, it's reasonably obvious what you have to do 02:41:45 ais523: it's not possible according to modern rules 02:42:06 it /may/ have been possible according to older rules, although I don't recall them well enough 02:42:20 in any case, I'd forgotten the rule that makes it impossible 02:42:21 coppro: under zzo38's ruleset, weakness is almost certainly *2 damage rather than a fixed bonus amount of damage like it is nowadays 02:42:56 I'm assuming you're meant to hit a weakness (using goop gas attack) in order to deal 60 damage to get one prize, and 10 to a benched to get the other 02:43:30 oh, you can just itemfinder for goop gas attack and ignore all the other cards in the discard 02:44:28 move a counter from dark muk to porygon, retreat Gengar for Spearow, GoW Dark Muk, retreat Spearow for Hypno, itemfinder for Goop Gas Attack, play it, then hit for 60+10 benched damage for the double KO 02:44:45 normally it's bad style to write a puzzle that has that much irrelevant stuff in... 02:46:00 ais523: I cannot find any evidence to support your assertion that weakness is not *2 damage nowadays, and that is the correct solution although it's illegal under modern rules as you can only retreat once per turn 02:46:10 note that I define 'modern rules' as 'the rulebook on the website' 02:46:15 you can only retreat once per turn nowadays? 02:46:19 I stopped playing before that was introduced 02:46:33 and nowadays, weakness is printed on the cards; it's sometimes *2, but more commonly +20 or +30 02:46:43 ah ok 02:46:57 whereas in the first few sets, weakness was always printed as *2, making it look like a rules reminder rather than actually necessary 02:47:03 quick scan shows that most recent expansion is almost always *2 02:48:31 although it appears to be relatively simple cards generally 02:48:35 hmm, so it's changed again? 02:48:44 as I said, I'm a little out of the loop 02:48:53 I play the videogames competitively, but not the cards 02:48:59 ah ok 02:49:13 the videogames are much cheaper, a sort of one-off £40 or so for each version, and they come out once every few years 02:49:25 right 02:49:38 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 02:49:53 I suspect that the TCG adopts a similar approach to Magic of making on expansion a year much simpler 02:50:19 although it looks like they've been revising the rules a lot too 02:50:25 Magic's reason is also because there are a lot of boring cards that are nonetheless necessary to round out decks 02:50:37 and yes, I coincidentally quit Magic at the time of the latest big rules change 02:50:59 not because of the rules change itself (although I don't really see the point of some of the more controversial changes, and think they're mostly negative), but because I disliked the sets that they'd been making 02:51:25 The core sets were never really about printing utility cards 02:51:48 They need to be in every set since otherwise the limited format would be impossible to play 02:52:08 The new core set model is very awesome 02:52:16 yep 02:52:31 but it was the difference between core sets using basic utility cards everyone gets, and expansion sets having quirky ones 02:52:57 and often the basic ones were a better fit if you weren't going heavily themed 02:59:14 It appears that the Pokemon TCG has redone supporters and stadia again; now they are subtypes of Trainer 02:59:48 supporters were always subtypes of trainer, weren't they? 02:59:51 just with a 1/turn restriction? 03:00:16 yeah 03:00:23 except for a while when they were a card type 03:00:42 but they were originall cobbled on with annoyingly-present reminder text 03:00:58 the reminder text was needed 03:01:07 the new Trainer template has room for Item/Supporter/Stadium in the top-right corner and has a nice box at the bottom for the reminder text 03:01:12 because people kept trying to bring them to people using only old-style cards, when they first came out 03:01:49 the invention of supporters was needed, anyway; under the original rules, there was never a reason not to play 4x Bill and 4x Professor Oak 03:01:56 yeah 03:02:10 definitely agree there 03:02:43 (bill was completly safe, professor oak was a gamble but one that had incredibly good return) 03:02:47 there's now also basic metal and dark energy, but without the special effects 03:02:53 that was needed too, I think 03:03:02 Just wait until your hand is low, then play Oak 03:03:14 coppro: I mean, you might draw Oak at a time when it isn't useful 03:03:23 worst case is getting two Oaks from Bill 03:03:27 suppose 03:03:34 but then you just play one and the problem goes away 03:03:46 yep, it's just a waste more than anything else 03:03:50 it's a very good worst case :) 03:09:11 -!- copumpkin has joined. 03:09:11 -!- copumpkin has quit (Changing host). 03:09:11 -!- copumpkin has joined. 03:21:33 -!- jcp|1 has joined. 03:21:54 -!- jcp has quit (Ping timeout: 258 seconds). 03:23:28 -!- jcp|other has quit (Ping timeout: 255 seconds). 03:27:19 -!- jcp|other has joined. 03:29:25 -!- jcp|1 has quit (Ping timeout: 264 seconds). 03:29:27 -!- TeruFSX has quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.). 03:29:34 -!- jcp has joined. 03:29:41 -!- BeholdMyGlory has quit (Remote host closed the connection). 03:38:08 -!- pikhq has joined. 03:41:10 -!- pikhq_ has quit (Ping timeout: 244 seconds). 03:41:51 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 03:45:40 hi 03:53:39 -!- quintopia has quit (Ping timeout: 250 seconds). 03:55:38 -!- jcp|1 has joined. 03:56:19 -!- jcp has quit (Ping timeout: 255 seconds). 03:56:58 -!- jcp|other has quit (Ping timeout: 258 seconds). 03:58:58 -!- zzo38 has joined. 03:59:35 -!- quintopia has joined. 03:59:41 If it says "irrelevant" it means those cards are not important for the puzzle. 04:00:03 ais523: Did you figure it out? 04:03:32 move a counter from dark muk to porygon, retreat Gengar for Spearow, GoW Dark Muk, retreat Spearow for Hypno, itemfinder for Goop Gas Attack, play it, then hit for 60+10 benched damage for the double KO 04:04:02 there were a lot of things shown in that puzzle that weren't necessary, though 04:04:05 -!- jcp has joined. 04:04:10 as in, you only need to involve half the things on the field 04:30:30 yeah 04:30:51 I'd say card game puzzles should not include irrelevant game state 04:31:34 purely functional card g- oh wait that's this year's ICFP 04:34:59 no it isnt 04:35:12 isn't it 04:35:13 doesn't that game have so much state 04:35:14 it's crazy 04:35:20 well every game has state :P 04:35:24 but it's manipulated with pure functions 04:35:29 which are the things stored 04:37:30 -!- myndzi\ has quit. 04:55:16 -!- hagb[4]rd has quit (Ping timeout: 255 seconds). 05:24:57 I included some irrelevant thing I think it should sometimes contain some. Even in chess puzzle they sometimes do. But in tsume shogi they usually do not contain irrelevant things. 05:25:19 -!- myndzi has joined. 05:25:56 hmm, I was going to code something 05:26:00 ah, probably a nice esointerpreter 05:26:05 ais523: You did it good. Now try second one too. 05:26:28 oh, but then suddenly most esolangs are bad? :( 05:27:01 elliott_: Please do code something. Code everything. 05:27:07 i can't code all the things. 05:27:10 * pikhq wonders how easy would it be to get GHC working with musl. 05:27:10 there would be nothing left to not code. 05:27:19 pikhq: it works on windows, so ... trivial? 05:27:26 well 05:27:27 cygwin 05:27:29 well 05:27:30 ais523: Do you know how to make up another pokemon card puzzle, too? I would like to see. 05:27:30 not cygwin 05:27:31 but 05:27:31 uh 05:27:33 is zepto good is zepto esolangs 05:27:33 point is it works with newlib 05:27:37 is zepto interpreter 05:27:39 monqy: zepto is so fucking good, you have no idea. 05:27:45 it's the most gooderest. 05:27:51 im crying over how good zepto is. 05:27:57 this is the saddest day of my life. 05:27:58 elliott_: Okay, then it'd more just be the pain of building it at all. 05:28:09 zepto? 05:28:12 ill never be as good as zepto 05:28:15 zzo38: zepto 05:28:17 monqy: kill yourself 05:28:35 http://killyourself.org/ "killyourself.org - All about the Consideration to Kill Yourself" 05:28:38 zzo38: zepto is that property which most software lacks. 05:28:41 "in suck as hell..!!!!! kill your self if u play like this..!" 05:28:45 this is a good site 05:29:21 Zepto- (symbol z) is a prefix in the metric system 05:29:36 HOW TO KILL YOUR SELF ON BIG DIRT BIKE 05:29:36 THE MAD SAILORS HAVE CHANGED FROM WATER TO WHEELS. WHAT NEXT 05:30:09 Just came accross the following post on care2.com – Female Veterans More Likely To Commit Suicide and wanted to share it here with you on killyourself.org ... 05:30:18 zzo38: yes 05:30:23 zzo38: it's also an adjective, and also an adverb 05:30:25 example, 05:30:32 oh it is also a verb and a noun 05:30:33 so 05:30:43 i zepto zepto with my zepto zepto. it was zepto. 05:30:50 zepto 05:30:55 it can also replace other words if you want e.g. 05:31:05 zepto zepto zepto zepto zepto zepto zepto. it zepto zepto. 05:31:09 zepto 05:31:12 this makes thinking easier. 05:31:41 there is no true or false. there is only zepto 05:31:49 exactly. 05:31:55 the boolean type in zepto has one value 05:31:56 zepto 05:32:31 "One zeptomole (zmol) of substance contains 602 particles." 05:32:59 yes. this is why integers literals in zepto are base 602 05:33:34 hmm 05:33:37 now i gotsa implement zepto 05:33:42 but do i do it in C or Haskell 05:33:45 obviously Final Zepto must be in C 05:33:49 but this it not Final Zepto, oh no 05:33:58 no, final zepto must be in zepto, duh 05:34:06 this is but a meandering zepto on the zepto path to the one true zepto zepto which zepto zepto, and thus becometh the final zepto. 05:34:11 Now I am confused of it. 05:34:22 zzo38: me too. tip: try and not understand it and instead zepto. 05:34:29 oerjan: ah. you would think. but a failed bootstrapping is not very zepto. 05:34:43 and if you lose the binary, as zepto people are wont to do, then that would make it a very un-zepto situation. 05:34:55 also, compilers are un-zepto, so that's just too recursive for the universe to handle. 05:35:02 zepto in haskell, then make a zepto program to generate the final zepto 05:35:02 although that, in itself, is very zepto, we are unfortunately constrained. 05:35:05 we cannot achieve true zepto. 05:35:05 elliott: OK. But are you going to write in esolang wiki or what else? How can you do? 05:35:08 we can only achieve universal zepto. 05:35:14 zzo38: i think it might get deleted as spam :D 05:35:51 elliott_: well there's only one final solution then, we must ki^W implement hardware zepto. 05:36:05 Then post it in your own computer 05:36:20 AAAAGH 05:36:26 GHC's autoconf. 05:36:30 BEAT BEAT BEAT 05:36:39 oerjan: yes we must ki^W implement it. 05:36:40 Thou shalt not ignore CC 05:36:48 Thou shalt not override CC. 05:37:07 Zepto is the property most software lacks. Then should you say all software lacks it? 05:37:08 I shall feel compelled to beat you. 05:38:18 It is using autoconf and somehow making it ignore CC. 05:38:33 That is impressive and I feel compelled to murder those responsible. 05:38:47 zzo38: No; zepto is zepto. 05:39:01 In fact if you have zepto on your system, there is very little reason not to just delete all the other software on it. 05:40:20 elliott_: Same thing. 05:41:05 zzo38: As to what? 05:41:40 elliott_: As to zepto. 05:41:42 "--with-gcc" 05:41:43 MURDER 05:41:53 MURDER SAYS I 05:42:19 pikhq: wtf 05:42:26 -!- Sgeo_ has joined. 05:42:46 zzo38: As zepto to. 05:42:50 Can you make up any new pokemon card puzzles? I would like to see it, too. 05:42:55 coppro: It seems that most compilers supporting normal, cross, and Canadian cross builds using autoconf fuck it up. 05:42:57 elliott_: . 05:43:04 zzo38: To what zepto is? 05:43:10 elliott_: .. 05:43:17 pikhq: maybe it's a leftover from the evil mangler age 05:43:31 PCC and CINTERCAL are the only ones that seem to do it right that I know of. 05:43:41 (TCC also does it right, but it doesn't use autoconf.) 05:44:20 ghc-cabal: Bad header file: HsBase.h 05:44:20 The header file contains a compile error. You can re-run configure with the 05:44:20 verbosity flag -v3 to see the error messages from the C compiler. 05:44:31 I... Blimble... What the... Fuuuck? 05:44:46 -!- Sgeo has quit (Ping timeout: 255 seconds). 05:45:39 -!- elliott_ has quit (Read error: Connection reset by peer). 05:45:51 -!- elliott has joined. 05:45:59 monqy: would you like the greatest privilege 05:46:08 is it zepto 05:46:15 i like zpto 05:46:17 e 05:46:19 monqy: yes 05:46:20 * pikhq sees if that fails without --with-gcc=musl-gcc... 05:46:41 If not, then I suppose I'll have to bother building a proper cross compiler. 05:46:49 monqy: you could have a part in the designing of the initial zepto revision/derivative/variant/exoskeleton, ante-zepto 05:46:51 YES 05:46:53 YOU 05:46:54 Aside from PCC, that is. 05:46:57 YOU ARE _SO_ _LUCKY_ 05:47:31 zeptoskeleton 05:47:37 yes. 05:47:40 zeptoplasma 05:47:40 whats my part 05:47:50 monqy: moral support. also, implementation details. 05:47:55 also, design. 05:47:58 also, zepto. 05:47:59 zepto. 05:48:02 sounds zepto 05:48:18 you may also have to provide a few inessential vital organs. 05:48:22 Meeeh, fuck GHC. 05:48:26 pikhq: try jhc 05:48:29 it will be teh hots 05:48:59 monqy: also you get to supply bignum algorithms that i'm too lazy to write, or maybe i could just be really really un-zepto 05:49:00 and make it 05:49:01 not have bignums 05:49:11 yes, that means that + would fail for no reason and you would have to be all oh :( 05:49:12 and fix it and oh 05:49:13 and 05:49:14 yeah 05:49:19 whats bignums whats algorithms 05:49:24 zepto 05:49:35 Strange, it seems to be missing some Haskell dependencies. 05:49:41 I have the effing Platform. 05:49:53 haskell platform: literally contains every haskell library 05:49:55 somehow i've never learned how to implement bignums 05:50:17 prim 05:50:17 cons 05:50:18 intg 05:50:18 symb 05:50:21 what other types do we need monqy 05:50:33 Hmm, it actually doesn't have readline. 05:50:43 elliott: padic 05:50:49 padic is not four letters 05:50:56 darn 05:50:57 oerjan: whats padic 05:51:04 p-adic numbers 05:51:31 p-adic numbers are nice they make me smile 05:51:34 i want to hug them 05:51:41 //hugs p-adic numbers// 05:52:17 are characters zepto so long as there is no worry about messy things like encoding 05:52:39 monqy: you just use symbols 05:52:46 symbols are words, strings are words, what is the difference 05:52:57 i guess this works 05:53:00 i GUESS there can be a function to get the nth codepoint in a symbol as an integer 05:53:19 anyway we don't need non-primitive functions of course 05:53:28 we just define the application of e.g. ((x) x) instead 05:55:55 monqy: oh yeah previously zepto was dynamically scoped but I guess it can be lexical now??? 05:56:27 all i remember about zepto is i had no idea what was going on 05:57:13 (def lambda '(e fn '(e* arr . (apply e fn (eval arr e*))))) 05:57:13 hmm 05:57:40 pikhq: oh right jhc requires a haskell compiler 05:57:42 pikhq: try hugs :P 05:58:46 Y'know what? Haskell is insufficiently sane. :P 05:59:23 Thus far, there has been only one language implementation that has "just worked" with musl. 05:59:26 Tcl. 05:59:37 :( 05:59:41 ./configure&&make&&make install 06:00:13 ... Of course, this is a language that only recently dropped its support for the PocketPC and the Palm Pilot. 06:00:30 pikhq: tried hugs yet 06:00:35 elliott: Not yet. 06:01:01 are any languages sufficiently sane 06:01:06 monqy: Not really. 06:01:31 petzo 06:01:33 my experience as well; I was hoping for a different answer :( 06:01:41 Okay, well, I suppose that PCC was relatively sane... 06:01:53 Only had to futz with config.sub and the path to the dynamic linker. 06:01:57 * Lymee hugs elliott 06:02:02 * Lymee hugs pikhq too 06:02:12 elliott: Guess what doesn't work? 06:02:26 It seems to be assuming glibc overincluding. 06:02:41 monqy: hmm oh quote is not the same thing as lambda if I make things lexically scoped 06:02:54 ... I... And... Defuck? 06:03:27 we need a vau s.t. (vau args . fn) in environment e === (cons (cons e args) fn) 06:03:28 no defuck. or phantom_hoover will massacre you. 06:03:33 i.e. 06:03:35 mm vau 06:03:44 *siiiigh* 06:03:54 (vau x . x) ==> (( . x) . x) 06:03:55 IT'S TIME.H NOT SYS/TIME.H 06:03:59 elliott: wait are you basing this on that vau idea? 06:04:00 where is an environment object 06:04:02 so I guess, 06:04:06 or wait 06:04:14 oerjan: well yes, it is basically fexpr construction 06:04:25 oerjan: and if one represents lambdas as lists, and wants lexical scoping, then you need to include the environment in 06:04:32 so vau basically becomes a convenience 06:05:05 oh hm wait 06:05:10 it needs to take the environment as an operator too 06:05:36 (vau env args . fn) in environment e === (list e env args . fn) 06:05:46 meh, 06:05:50 so hmm 06:06:07 (vau e x (eval e x)) ==> ( e x (eval e x)) 06:06:16 right 06:06:17 I think 06:06:19 dflgjdfgk 06:06:23 monqy: this is becoming unzepto :( 06:06:28 :( 06:07:51 monqy: i guess we could go dynamically scoped again 06:08:35 how does dynamic scoping work with things like not feeling messy 06:08:37 it worked out so well the first time 06:08:40 I've never really studied it 06:08:45 at all 06:09:34 monqy: its great exclamation marks 06:09:41 here's a schemeish example 06:09:42 (define x 9) 06:09:46 (define (f) x) 06:09:52 (define (g) (let ((x 0)) (f))) 06:09:54 (g) ==> 9 06:09:58 erm 06:09:59 (g) ==> 0 06:10:08 sorry for momentarily misleading you into thinking that dynamic scoping was sane in any way 06:10:31 if you wanna relive bad programming decisions, just use perl 06:10:36 How much do you know of the Lesser Key? 06:10:49 is there a perl lisp 06:11:42 perl of lisps, perl with lisp syntax and benefits thereof, others??? 06:11:46 ". Perl is another language with dynamic scoping that added static scoping afterwards" 06:11:50 wikipedia 06:12:09 is php dynamically scoped or did they fix that or was I dreadfully misinformed 06:12:21 hehe php 06:12:24 lolphp 06:12:49 php is a good joke 06:12:51 ph urine 06:13:41 oh i turned into a goat 06:13:44 THIS HAPPENS OFTEN 06:19:40 monqy: php has no dynamic scoping 06:20:15 grats masterful php designers 06:22:03 > let ?x = 9; f = x; g = let ?x=0 in f in g 06:22:03 : parse error on input `f' 06:22:11 darn 06:22:14 hm 06:22:19 :t let ?x = 9; f = x; g = let ?x=0 in f in g 06:22:20 parse error on input `f' 06:22:30 monqy: oh cool my environments are immutable :slowpoke: 06:22:47 what did you do 06:22:58 emphasis on do 06:23:04 monqy: i failed to make them mutable, this is haskell 06:23:04 hmm 06:23:09 should conses be immutable y or n 06:23:28 bear in mind that if conses are immutable, there is exactly one kind of mutable object, environments 06:23:31 > let {?x = 9; f = x; g = let {?x=0} in f} in g 06:23:32 : parse error on input `f' 06:23:53 > let {?x = 9; f = x; module g = let {?x=0} in f} in g 06:23:53 : parse error on input `f' 06:24:00 hm 06:24:13 there would still be a way to define cyclic things right 06:24:22 monqy: nope 06:24:24 > let ?x = 9 in x 06:24:24 x 06:24:33 :'( 06:24:36 er 06:24:39 a tough choice 06:24:42 ah 06:24:54 > let {?x = 9; f = ?x; module g = let {?x=0} in f} in g 06:24:54 : parse error on input `f' 06:25:02 cycles are my bro but so is immutability 06:25:06 > let ?x = 9 in ?x 06:25:07 9 06:25:08 im torn 06:25:34 > let {?x = 9; f = ?x} in f 06:25:35 : parse error on input `f' 06:25:48 wtf is that an error 06:26:12 > let {?x = 9; g = ?x} in f 06:26:13 : parse error on input `g' 06:26:58 > let ?x = 9 in let f = ?x; g = (let ?x = 0 in f) in g 06:26:59 0 06:27:05 whew 06:27:41 :( 06:28:05 > let ?x = 9; ?y = 2 in let f = ?x; g = (let ?x = 0 in f) in g + ?y 06:28:06 2 06:28:29 hm is it forbidden to let both ? variables and others in the same block? 06:31:17 :t liftM 06:31:17 forall a1 r (m :: * -> *). (Monad m) => (a1 -> r) -> m a1 -> m r 06:31:28 ?hoogle (a -> b -> m c) -> m a -> m b -> m c 06:31:29 Control.Monad zipWithM :: Monad m => (a -> b -> m c) -> [a] -> [b] -> m [c] 06:31:29 Control.Monad zipWithM_ :: Monad m => (a -> b -> m c) -> [a] -> [b] -> m () 06:31:29 Control.Monad foldM :: Monad m => (a -> b -> m a) -> a -> [b] -> m a 06:31:35 ?hoogle (a -> m b) -> m a -> m b 06:31:35 Prelude (=<<) :: Monad m => (a -> m b) -> m a -> m b 06:31:35 Control.Monad (=<<) :: Monad m => (a -> m b) -> m a -> m b 06:31:35 Prelude (>>=) :: Monad m => m a -> (a -> m b) -> m b 06:31:41 meh 06:33:12 :t \f x y -> (f <$> x) =<< y 06:33:13 forall a (m :: * -> *) b a1. (Monad m) => (a -> m b) -> (a1 -> a) -> m a1 -> m b 06:33:24 wat 06:33:30 oh hm 06:33:49 :t \f x y -> (f <$> x <$> y) 06:33:49 forall a b a1 (f :: * -> *). (Functor f) => (a -> b) -> (a1 -> a) -> f a1 -> f b 06:34:33 :t \f x y -> (f <$> x) <*> y 06:34:34 forall a a1 b (f :: * -> *). (Applicative f) => (a -> a1 -> b) -> f a -> f a1 -> f b 06:34:57 :t \f x y -> join (f <$> x <*> y) 06:34:58 forall a a1 (m :: * -> *) a2. (Applicative m, Monad m) => (a -> a1 -> m a2) -> m a -> m a1 -> m a2 06:35:06 elliott: ^ 06:35:29 duh. i know that. 06:35:31 but uh thanks :P 06:35:33 ?ty \f ma mb -> ma >>= \a -> mb >>= \b -> f a b 06:35:34 forall (m :: * -> *) a a1 b. (Monad m) => (a -> a1 -> m b) -> m a -> m a1 -> m b 06:35:52 For your non-Applicative Monad needs 06:36:11 Deewiant: Such monads don't exist 06:36:25 ?pl \f ma mb -> ma >>= \a -> mb >>= \b -> f a b 06:36:25 flip ((.) . (>>=)) . flip ((.) . (>>=)) 06:36:27 They might 06:36:29 ouch 06:36:34 Deewiant: There are no monads that are not applicative functors 06:36:44 ?pl ma >>= \a -> mb >>= \b -> f a b 06:36:44 (mb >>=) . f =<< ma 06:36:45 elliott: The instance might not be defined 06:37:02 Deewiant: instance Applicative M where pure = return; (<*>) = ap 06:37:17 Better three lines than writing ugly code for the sake of a lie 06:37:19 elliott: An extra line of code, and potentially inefficient 06:37:27 "Potentially" 06:37:28 Meh 06:37:37 -funroll-loops 06:37:40 Got any benchmarks for applicative code being slow? :-P 06:38:19 I didn't mean the applicative-ness of it, just that defining <*> via a helper like ap might end up doing unnecessary work 06:38:23 shrug 06:38:46 ?src ap 06:38:46 ap = liftM2 id 06:38:55 ?unpl liftM2 id 06:38:55 (\ d e -> d >>= \ b -> e >>= \ a -> return (b a)) 06:39:17 Deewiant: instance Applicative M where pure = return; f <*> x = f >>= \f' -> x >>= \x' -> return (f' x'), if you're into ugliness 06:39:53 What a best ending for a vacation. They're doing a bathroom renovation thing in the apartment downstairs from us; we walk in with suitcases and so on, and the people doing it go: "Hey, do you live in the apartment above?" Sure, why? "We just accidentally drilled into your sewer and now you can't use your bathroom until it's fixed." 06:39:55 Deewiant: Have I mentioned that my hypothetical GHC extension would make this unnecessary? 06:39:57 ?src Applicative 06:39:57 class Functor f => Applicative f where 06:39:57 pure :: a -> f a 06:39:57 (<*>) :: f (a -> b) -> f a -> f b 06:40:17 instance Applicative M where 06:40:17 pure = return 06:40:17 f <*> x = do f' <- f; x' <- x; return (f' x') 06:40:20 relatively unugly 06:40:32 Deewiant: What I'm saying is: Woo, GHC extensions that don't yet actually exist 06:40:52 elliott: Woo 06:40:56 t 06:41:11 Deewiant: You were meant to ask what it is, but fine, ruin my flow like that 06:41:41 w00t 06:42:03 MY FLOW IS STILL RUINED 06:42:07 I MIGHT KILL MYSELF 06:42:46 wait why not (<*>) = ap 06:42:48 im confused 06:42:53 monqy: omg optimised 06:43:02 daaaagn 06:43:30 Someone told me that MISSINGNO actually has four attacks: FIREBALL, ICEBALL, THUNDERBALL, and SUPERBALL. The SUPERBALL attack does no damage but makes the screen look like a pinball game. However, I do not believe any of this is true. 06:43:32 I read that gentoo is for ricers thing yesterday and it was amazing. this reminds me of that. 06:43:45 Deewiant: ASK ME WHAT THE EXTENSION IS 06:43:50 sadfghjkl;'[ 06:43:55 * elliott hyperventilates. 06:44:00 * elliott foams at the mouth a bit. 06:44:17 zzo38: Strange, considering that none of those attacks exist in the game. 06:44:54 pikhq: Yes, I know. 06:45:01 monqy: funroll-loops? 06:45:04 yes 06:45:12 yeah, that site is awesome 06:45:24 elliott: you know of funroll-loops.info, right? 06:45:58 elliott@katia:~/logs$ grep -r funroll-loops\.info ????-??-??.txt | grep 'tusho\|ehird\|elliott\|alise' 06:45:58 2008-06-23.txt:18:18:25: ais523: http://funroll-loops.info/ 06:45:58 2009-01-07.txt:15:55:01: I am so tempted to link to http://funroll-loops.info/ here. Oh wait I just did 06:45:58 Hmm 06:46:02 I swear I've linked it a lot more than that 06:46:04 oh 06:46:05 ok 06:46:06 Oh well: yes, I know 06:46:06 :P 06:46:20 my favorite line there is "If the reviewers had been serious they would have used an optimised distributions such as Gentoo, which would have taken far fuller advantage of the extra 32bits in each register to provide a much fuller experience, more than any current Linux distribution possibly could." 06:46:28 Man, I wonder how long that site has just been up unchanged 06:46:38 good question 06:46:49 coppro: This is the best one, IMO: "I don't think that Debian can really compete with Gentoo. Sure it might be okay, but when it comes to dependencies, you probably are still going to have to get them all on your own. Or is there something like portage in the Debian world as well?" 06:46:52 too much of it is my favorite 06:47:02 that one's one of them 06:47:42 2009-10-31 02:59:02( ehiird) "I don't think that Debian can really compete with Gentoo. Sure it might be okay, but when it comes to dependencies, you probably are still going to have to get them all on your own. Or is there something like portage in the Debian world as well?" -- funroll-loops.info 06:48:01 Deewiant: Huh, clog incompleteness? 06:48:05 Oh, "ehiird" 06:48:07 2011-01-27 00:42:41( elliott) Vorpal: from a thread about funroll-loops.org on the Gentoo forums, circa 2004: "One week later: this is on the Arch forums. One month later: the Arch people get the joke." 06:48:16 Fuck it, I need a database of my nicknames 06:48:22 And the latest 06:48:25 2011-07-02 00:21:53( elliott) oblig. http://funroll-loops.info/ 06:48:33 Yes but that was what caused monqy to read it. 06:48:35 SO THAT DOESN'T EVEN COUNT 06:48:42 Yeah, I figured 06:49:32 [Tuesday, November 30, 2010] [04:07:07 pm] Phantom_Hoover: We're talking -O3 -funsafe-math -fomit-function-pointer -funroll-loops -fadvanced-maths -fcrazy-maths -fyour-mother-and-a-horse -fit-never-happened -flanguid-squids ... 06:49:46 I still use -flanguid-squids in all my programs 06:49:49 not a direct reference, though 06:50:01 I searched for "funroll-loops." 06:50:06 I just searched for funroll 06:50:13 in my own personal logs 06:50:23 Also -fit-never-happened; it lets you detect _|_ values without resulting in _|_ (impossible with any other method), and optimises all computations to run in 0 ms 06:51:05 -!- augur has quit (Remote host closed the connection). 06:51:16 What are _|_ values? 06:51:24 bottom 06:52:08 Are you allergic to bullets? 06:52:08 zzo38: any failing/non-halting computation, e.g. infinite loops and errors 06:52:15 > let (_|_) = undefined in (_|_) 06:52:16 : parse error on input `|' 06:52:20 darn 06:52:21 -!- augur has joined. 06:52:29 oerjan: you can do it with the unicode bottom symbol 06:52:34 it still needs to be an operator though :( 06:52:36 Except not with lambdabot 06:53:21 > let _I_ = undefined in _I_ 06:53:22 *Exception: Prelude.undefined 06:53:26 'void' in C is actually bottom as well 06:53:36 although 'void*' is not a pointer to bottom 06:53:40 coppro: untrue 06:53:45 you can return from a function that returns void 06:53:48 void is not really one type in C 06:53:54 as a return type, it signifies the unit type 06:54:01 it is not a valid variable type 06:54:16 of course it isn't a variable must have a value 06:54:18 but as a pointed-to type, it's... it's (void *) 06:54:41 (void *) is spooky 06:54:47 coppro: you are confused. if void was the type _|_, then no function declared as "void f();" would ever be able to return 06:55:07 it is instead the _unit_ type as a function return type, e.g. () 06:55:08 LLVM also has 'void' type, but not 'void*' type. But it also has nonreturning type which is separate. 06:55:10 [asterisk]i.e. () 06:56:22 monqy: (eof? getc putc close) -- List of functions: BEST INTERFACE? 06:56:30 It's, like, objects, man. 06:57:44 what good is close without open 06:58:12 monqy: open is how you get that list duh 06:58:18 a handle is literally represented as the functions operating on it 06:58:19 If it is existing object, then open gives you the object. 06:58:24 stdin is ( ) 06:58:33 oh that's nifty 06:58:57 elliott: I actually really like that model 06:59:02 me too 06:59:03 it's nifty 06:59:13 well at least I think I like it 06:59:46 elliott: Now if it were opaque and thus type-safe 06:59:52 void * is the opposite of bottom 06:59:55 so is this a quadruple or a list 07:00:50 coppro: Well, sure, it's BASICALLY a record of functions 07:01:02 coppro: It's just that having it as an arbitrarily ordered list with no names or anything is dumb dumb dumb :P 07:01:04 HEYY WAIT OH MY GOD 07:01:07 I could use an ENVIRONMENT 07:01:12 Oh my god 07:01:14 That is so perfect 07:01:17 It's basically a dictionary type 07:01:21 first-class environments? 07:01:21 Except you could merge it in with your environment 07:01:27 And thus get a global "current stream" 07:01:28 monqy: Yes 07:01:30 elliott: OR EVEN BETTER, YOU COULD CREATE A POLYMORPHIC... WAIT NO THAT'S OBJECT-ORIENTED 07:01:31 mmm 07:01:37 Oh man, that is so the best, objects as literal scopes. 07:01:43 I am a genius. This is the most zepto thing ever. 07:04:08 elliott: perl? 07:04:18 coppro: No, it's way better than that. 07:04:38 -af scaletempo -speed 3 07:04:41 proof: zepto is zepto. perl isnt. qed. 07:04:43 The solution to RPG TASes. 07:04:44 :) 07:04:44 coppro: Every function can look at the environment it gets called in, right? So environments are first-class. So you can poke around looking at various variables in your environment, enumerating them, blah blah blah. 07:05:04 coppro: So if we represent, e.g. a file as an environment with _only_ the bindings get-char, put-char, eof?, etc., 07:05:05 elliott: ohgod 07:05:11 coppro: Then we can read these in and call them, 07:05:14 coppro: Modify them (with set), 07:05:19 coppro: And even bring them into scope: 07:05:32 coppro: (with-env stdin (put-char 'c')) 07:05:50 coppro: So this means that we can have an implicit "current default output stream" without even doing anything! 07:06:01 And it is basically equivalent to an object as a hash table. 07:06:05 This is genius. 07:06:25 elliott: I want you to write me up a formal specification so that I can present this at a conference 07:06:59 coppro: YOUR SARCASM MAY STING BUT MY GENIUS WILL SHINE THROUGH WHEN I AM DEAD 07:07:07 Or maybe it isn't sarcasm and you just really like frightening people :P 07:07:39 First-Class Environments as Objects: or, Let: The Ultimate Overloader 07:07:40 I CAN SEE IT NOW 07:08:12 turn it into a paradigm 07:08:18 sell books 07:08:35 I just want you all to know that I literally just got up and did a ridiculous dance around the room while waving my hands and doing the most insane cackle I could muster at the same time. 07:08:44 FEAR ME, PROGRAMMING WORLD 07:08:45 FEAR ME 07:08:47 get crushed when oleg points out it's just simple syntactic sugar over delimited continuations 07:08:52 :D 07:09:30 then continue to sell books as no one outside #haskell understands oleg 07:09:59 coppro: oh, it's even better; you can make mutations of object members work with plain "set" just by making the object itself the top-level environment of all the functions inside 07:10:50 :D 07:11:11 hmm the with-env thing doesn't /quite/ work since environments are based on _static_ scope, i.e. a piece of code's default handle is based on the context around it, rather than dynamic scope... but I'm sure I can fix that 07:11:17 oh, it's just dynamic variables, except I want a dynamic /added scope/ 07:11:29 that sounds perfectly reasonable and logical, now I just have to figure out what it even _means_ 07:11:46 then turn it into papers, books 07:11:54 monqy: the whole world is exploding into little ribbons of zepto 07:11:59 i'm going to take some zepto in celebration 07:12:49 elliott: and infinitely recursive functions can be used to make changes 'permanent' 07:13:01 coppro: wat :D 07:13:24 elliott: Use the Erlang model of events 07:13:45 every handler ends with a tail recursive call 07:13:55 so that you have a 'loop' 07:14:31 i think you have invented another model that's just as crazy :D 07:14:37 two books 07:18:43 "noreturn" is a function attribute and not a type in LLVM, although it could work even if it was a type (because if it doesn't return, it shouldn't be necessary to specify another return type anyways) 07:18:46 *Main> env <- defaultEnv 07:18:46 Loading package array-0.3.0.2 ... linking ... done. 07:18:46 Loading package containers-0.4.0.0 ... linking ... done. 07:18:46 *Main> code <- anteList [AnteSymbol "eval", AnteEnv env, AnteSymbol "eval"] 07:18:46 *Main> eval env code 07:18:46 *** Exception: AnteException 07:18:48 monqy: im pro 07:19:48 what just happened 07:19:54 monqy: something went wrong in the evaluation 07:20:03 but what 07:20:11 something unAnteCipated 07:20:15 monqy: dunno, I can't display values yet 07:20:22 :( 07:22:09 elliott: No, it's your regular event loop in functional programming 07:22:46 you make a change of "state" by calling back into the event loop with a different argument 07:22:54 but if the "state" is the scope... 07:23:22 what happens if you call somewhere that isn't (directly) back into the event loop 07:23:25 what then 07:23:36 then the loop terminates 07:26:19 *Main> test 07:26:19 Error: (bad-function eval) 07:26:21 swoot 07:26:40 *Main> test 07:26:41 Error: (bad-function #) 07:26:41 swiit 07:26:56 ...wait what 07:27:54 monqy: what if i removed cons pairs 07:27:57 what if i replaced cons pairs 07:27:59 with environments 07:28:03 just containing the keys "car" and "cdr" 07:28:04 what then 07:28:06 zepto 07:28:25 coppro: WHAT THEN 07:28:38 Set! the Ultimate 07:29:21 monqy: and then instead of a meaningless list a function could be 07:29:33 elliott: I have no ability to compensate for the presence of zepto 07:29:51 #{env: ...; envName: 'e; argName: 'x; code: ...} 07:31:02 instead of function application you have some weird sort of environment mangling (of which function application is a special case) 07:31:20 where by special case I mean 07:31:22 instance 07:31:25 not special at all 07:31:32 unless you sugar it up 07:31:34 monqy: im starting to feel like this might not be lisp any more at all 07:31:45 elliott: it's not in kansas either 07:31:46 one time I had a language idea sort of like this. I forget what happened to it. 07:32:05 i think im going to be a wimp for now and keep cons cells being, you know, still a thing that exist 07:32:17 but I might change functions into environments rather than a meaningless list 07:32:18 we will see 07:32:22 although 07:32:33 it is tempting to make applying an environment to an argument look that argument up in the environment 07:34:01 yes 07:34:04 doit 07:34:17 we should call this language "greenparty" 07:34:45 yes that was part of my dead language i think. and all functions were environments with rewrite rules or something else special like that. 07:34:53 it was a few years ago so the details are very hazy 07:35:12 coppro: im sorry, its called zepto 07:35:22 any language that has the zepto nature should, by rights, be called zepto 07:35:26 although it can have another name, too 07:35:27 for instance 07:35:30 it could be called greenparty-zepto 07:35:34 all lowercase 07:35:35 ok 07:35:35 zeptoparty 07:35:37 exactly as printed 07:35:42 or greenzepto 07:35:54 no, finding the zepto languages must be a painless (zepto) process for the programmer 07:36:00 ah ok 07:36:04 I apologize 07:36:07 so it must always be clearly delineated from the other name 07:36:09 I zeptofailed 07:36:16 it is ok. we all sometimes zepto-fail. 07:36:26 in fact, that which is zepto is not zepto without zepto-fail. 07:36:28 side not 07:36:31 *side note 07:36:38 is it wrong to mount things directly onto /media or /mnt? 07:36:41 the very definition of zepto may even be learning to accept zepto-failing in your heart. 07:36:48 coppro: mounting into /mnt is done by the debian-installer 07:36:51 its kind of gross though 07:36:52 why do you want to? 07:36:54 elliott: not into 07:36:55 onto 07:36:58 I think doing it in /media is totally unacceptable 07:37:00 coppro: what do you mean then 07:37:07 debian-installer mounts the target system as /mnt 07:37:07 elliott: I plug a usb drive in 07:37:15 sudo mount /dev/sdb1 /media 07:37:28 yeah that's no good make a directory you bum 07:38:40 monqy: ok so im not sure what this bug is so im considering just calling it a feature? 07:38:44 application being broken is a feature 07:38:56 maybe i should sleep, sleep would be unzepto because zepto is to be optimised for sleep-deprived zepto programmers 07:38:57 but 07:38:59 im not writing in zepto 07:38:59 whats wrong with ap;plication 07:39:00 im writing in haskell 07:39:04 and that requires an unzepto frame of mind 07:39:07 monqy: i dunno you tell me 07:39:11 punque 07:39:19 oh 07:39:19 OH 07:39:20 im dum 07:39:23 dum as an shits 07:39:25 :/ 07:41:47 *Main> test 07:41:47 # 07:41:48 monqy: O YA 07:42:07 too cool to derive Show 07:42:40 -!- Sgeo_ has quit (Ping timeout: 255 seconds). 07:43:04 monqy: whats that supposed to mean 07:43:09 monqy: i lit. can't derive show 07:43:11 there's IORefs 07:43:13 oh 07:43:18 iorefs are scary 07:43:28 monqy: im thinking about making zepto stm 07:43:30 and using TVars 07:43:32 but 07:43:33 yeah 07:43:54 monqy: http://sprunge.us/HWMi 07:43:55 enjoy 07:44:03 this is ante-zepto initial 07:45:33 an ante-paste 07:45:34 instance Show a => Show (IORef a) where showsPrec d r = showParen (d>10) $ showString "unsafePerformIO (newIORef " . showsPrec 11 $ unsafePerformIO (readIORef r) 07:45:50 this makes me uncomfortable 07:46:04 Deewiant: i 07:46:06 Deewiant: dont like you 07:46:09 Deewiant: please...stop existing... 07:46:13 :( 07:46:19 im really not happy that you exist 07:46:20 I forgot to add the ")" at the end 07:46:28 thats not the bad part 07:49:28 monqy: the world is becoming unzepto i need another breakthrough like environment objects 07:49:53 im tired this may or may not help 07:50:13 monqy: im sleep deprived how can you possibly imrpove on that 07:50:34 this is the best i can do 07:51:26 monqy: btw did you note how i cunningly avoided so many unzepto feelings by not using a monad stack 07:51:29 thats expert 07:51:49 i understand its quite hard to read code when its not all in nice rainbow colours in your editor, this is why pastebin sites are the devil 07:51:56 i avoid monad stacks too 07:52:12 if it means what i think it means 07:53:11 monqy: things that look like BlahT (BluhT (BlingT IO))) 07:53:16 yeah those 07:53:30 http://sebfisch.github.com/haskell-regexp/regexp-play.pdf this is a nice paper it has a bunch of people talking who are nice people and, also, the code is all in nice colours and also it has nice fancy symbols 07:53:31 juggling lifts makes me uncomfortable 07:53:40 i recommend it to every sleep-deprived haskell programmer it is making me happy 07:53:47 monqy: well that's kind of what the various typeclasses are for 07:53:49 MonadIO, MonadState etc. 07:53:57 I guess those help yes 07:53:57 more like monad stuck 07:54:09 Using sym, we can translate every regular expression into a 07:54:09 weighted regular expression in a canonical fashion: 07:54:10 * elliott claps 07:54:19 im happy for them 07:54:29 woo colours 07:54:55 when im tired my eyes skip around and it's hard to read 07:55:08 wow is this paper a play 07:55:20 weighted regexps? sounds heavy. 07:55:45 * oerjan swats olsner -----### 07:56:07 monqy: yes its great 07:56:24 monqy: i suggest zooming in by the way, zooming in is nice because everything gets bigger 07:56:26 so its easier to see 07:56:43 less room for my eyes to skip 07:58:22 1 07:58:22 By x 07:58:23 n 07:58:23 Cody means a sequence of n copies of x 07:58:39 i really like how everyone understands each other in this 07:59:08 i want to see this acted out 07:59:19 oh my god 07:59:22 i want to voice act it now 08:00:58 "CODY (getting excited)" 08:04:04 Welp, that was fun. And absurd. 08:04:09 151 mon run of Pokemon. 08:04:28 3:20, only tolerable at ~3x speed. 08:04:37 Utterly ridiculous. 08:04:46 HAZEL I told you about Google’s new library. They implemented 08:04:46 an algorithm in C++ with similar worst case performance as our 08:04:46 algorithm. Do you know any C++? 08:04:46 CODY Gosh 08:04:57 [exclamation mark] 08:06:11 monqy: hey is it just me or is ungetc an unzepto kind of function 08:06:20 Actually, a 152 mon run, really; shame Missingno doesn't count on the Pokédex in-game. 08:06:25 elliott: Utterly unzepto. 08:06:35 ungetc is what 08:06:54 monqy: you can put the character you just read back into a stream 08:06:57 so it will be read again next time 08:06:59 but its only one character 08:07:03 constant size buffer of one 08:07:03 :( 08:07:03 i meant what in the sense that 08:07:06 and its built in to stdio 08:07:07 oh 08:07:08 right 08:07:09 yeah 08:07:46 * pikhq wonders how that is usually implemented 08:07:50 -- A handle has the keys: (foo) means only foo type handles 08:07:51 -- is-eof? (read) 08:07:51 -- get-char (read) 08:07:51 -- put-char (write) 08:07:51 -- close 08:07:53 DO I NEED ANYTHING ELSE PIKHQ 08:07:57 also, usually implemented: char keep; 08:07:59 i think 08:07:59 well 08:08:01 int keep; 08:08:04 negative one if theres nothing to buffer 08:08:14 or it just integrates into the regular buffer i guess 08:08:19 with some special code to break it if you call it more than once 08:08:39 -!- Phantom_Hoover has joined. 08:08:46 ACT III 08:08:46 SCENE I. INFINITE REGULAR EXPRESSIONS 08:08:48 oh yes 08:08:58 Hmm. Well, musl appears to just directly write it into the read buffer. 08:09:14 THEO I like our work as well, although it is always difficult to work 08:09:14 with practitioners. (Rolls his eyes.) 08:09:16 theo thats not nice 08:09:18 we're all friends here 08:11:29 THEO Ok, fine (tired of the practitioners’ conversation). 08:11:30 theo 08:11:33 you're being very nasty 08:12:17 It seems that how it handles ungetc is by being clever enough that ungetc itself is easy. :P 08:12:28 i like the part where theo writes some formal definitions to the whiteboard: seman- 08:12:31 tic brackets, Greek letters, languages as sets, etc. 08:12:48 i am imagining this takes him a while and the others just sit and watch him intently 08:12:51 Perhaps turn off ligatures, they are not very good for fixed-pitch text 08:13:05 monqy: he literally just writes those words 08:13:08 SEMANTIC BRACKETS 08:13:09 GREEK LETTERS 08:13:11 LANGUAGES AS SETS 08:13:12 ETC. 08:13:18 brilliant 08:13:32 can easily be coded in haskell 08:13:41 HAZEL Well, we have a cute program, elegant, efficient, concise, 08:13:41 solving a relevant problem. What else do you want? 08:13:49 THEO A friend who I'm not a sarcastic piece of shit to. 08:13:57 HAZEL You know you can never have that, Theo. 08:14:00 CODY God I hate you. 08:14:10 thats my fanfiction 08:14:29 T HEO But how do we make our story a fun essay? 08:14:29 The three turn to the audience, bright smiles on their 08:14:29 faces! 08:15:12 type ReadTable = Map Char AnteValue -- function from handle -> object 08:15:13 monqy 08:15:15 monqy oh my god 08:15:16 its a map 08:15:16 that means 08:15:18 its an environment 08:15:23 I just need to let environments have arbitrary objects as keys 08:15:30 rather than just symbols 08:15:55 are environments good keys 08:17:17 WHO'S A GOOD KEY? 08:18:25 You need the appropriate key! The red door is locked! 08:18:44 monqy: fdk glkkobgfnldmgdf 08:18:59 monqy: should quote be used as (quote . x) => x or (quote x) => x 08:19:07 picolisp does former, most things do latter 08:19:14 zeptoability in question of both 08:20:18 "British website owners could face extradition to the US on piracy charges even if their operation has no connection to America and does something which is most probably legal in the UK, the official leading US web anti-piracy efforts has told the Guardian." 08:20:19 the . is a little bizarre there does it mean the same thing as it does in scheme 08:20:35 good job usa 08:20:39 the . is a little bizarre there does it mean the same thing as it does in scheme 08:20:40 yes 08:20:47 pico does it because it means quote is faster, its just cdr rather than cadr :P 08:21:00 but since like 08:21:05 (quote a b) has no useful meaning afaik 08:21:11 it seems like (quote . a) is more... 08:21:17 clean? 08:21:19 but then 08:21:22 no other form acts like that 08:21:22 so 08:22:22 keeping it like other forms sounds nice to me 08:22:35 /home/elliott/Code/ante/ante.hs:150:34: Not in scope: `liftMtwo' 08:22:56 2 08:23:02 use wisely 08:23:06 im unwise 08:23:26 ?undo do dfjg <- read e h; dd <- cons dfjg AnteNil; cons (AnteSymbol "quote") dd 08:23:26 read e h >>= \ dfjg -> cons dfjg AnteNil >>= \ dd -> cons (AnteSymbol "quote") dd 08:23:31 ?pl read e h >>= \ dfjg -> cons dfjg AnteNil >>= \ dd -> cons (AnteSymbol "quote") dd 08:23:31 cons (AnteSymbol "quote") =<< flip cons AnteNil =<< read e h 08:23:41 ?pl \e h -> cons (AnteSymbol "quote") =<< flip cons AnteNil =<< read e h 08:23:41 (((cons (AnteSymbol "quote") =<<) . (flip cons AnteNil =<<)) .) . read 08:23:43 nice 08:23:47 very zepto 08:24:10 oh damn I need to call read anteRead 08:24:15 . sections are scary 08:24:39 all the more zepto i guess 08:24:51 What do these "Ante" things mean anyways? 08:25:30 @pl \a b c d e f g h -> a (b (c d e) (f g)) h 08:25:31 (. (((((.) .) .) .) . (.) . (.))) . (.) . (.) . (.) . (.) . (.) 08:25:39 *MWAHAHAHA* 08:26:03 dying from spook 08:30:39 oerjan: thats not nice 08:30:42 zzo38: yes 08:31:18 monqy: oh this is going to be hard are 08:31:24 do IORefs implement Eq 08:31:27 or 08:31:28 Ord 08:31:59 instance Eq (IORef a) -- Defined in GHC.IORef 08:32:10 oh im good 08:32:34 monqy: but Ord?? 08:32:54 Please join my TeXnicard project so that we can make something TeXnicard. 08:32:59 no 08:33:09 maybe in caleskell 08:33:13 ?info IORef 08:33:14 IORef 08:33:20 how do you do the info thing 08:33:23 ask oerjan 08:33:23 elliott: I don't mean you. 08:33:27 you don't 08:33:29 zzo38: then who 08:33:40 when I did :i in ghci it only gave Eq 08:33:44 Someone else. 08:34:01 monqy: yeah ditto 08:34:03 thatk ind of 08:34:04 Someone else who doesn't mean "no". 08:34:04 sucks though 08:34:05 :t newIORef "Boo!" 08:34:06 Not in scope: `newIORef' 08:34:11 im surprised its even Eq 08:34:12 why is it Eq 08:34:17 oh there's a Typeable1 instance too?? 08:34:25 monqy: yes its the height of luxury 08:34:55 presumably GC can move it about? 08:35:26 so Ord may not be safe 08:35:47 -- explicit instance because Haddock can't figure out a derived one 08:35:48 instance Eq (IORef a) where IORef x == IORef y = x == y 08:35:51 what is this nonsense 08:36:06 ?src IORef 08:36:06 newtype IORef a = IORef (STRef RealWorld a) 08:36:08 oh it depends on the STRef Eq instanced 08:36:11 ?src STRef 08:36:11 yeah 08:36:11 data STRef s a = STRef (MutVar# s a) 08:36:14 nooo 08:36:16 hashes already 08:36:20 ?src MutVar# 08:36:20 Source not found. 08:36:35 MutVar# is primitive i think 08:36:44 hm data so MutVar# is probably unboxed 08:36:52 -- Just pointer equality on mutable references: 08:36:52 instance Eq (STRef s a) where STRef v1# == STRef v2# = sameMutVar# v1# v2# 08:37:19 oerjan: well # implies unboxed... 08:37:21 it's magic, after all 08:37:36 i'm not sure of that... 08:37:39 oerjan: remember, different kind 08:37:42 Foo# :: # 08:37:59 um the # in names has no automatic meaning :P 08:38:12 Anyone programming in C or CWEB or Plain TeX or understanding these kind of card game or anything else relevant to the project, can join, if you want to, please. 08:38:35 oerjan: are you sure? I think it does for types 08:38:41 oerjan: you can't define your own Foo# type 08:39:00 -!- yorick_ has joined. 08:39:06 elliott: um you need MagicHashes, of course 08:39:18 but afaik that only extends syntax 08:40:22 !haskell {-# LANGUAGE MagicHashes #-} data Foo# = Foo# Int deriving Show; main = print $ Foo# 0 08:40:30 ptrEq :: a -> a -> IO Bool 08:40:31 ​/tmp/input.6121.hs:1:13: unsupported extension: MagicHashes 08:40:31 ptrEq x y = do nx <- makeStableName x ny; <- makeStableName y; return (nx == ny) 08:40:36 oops 08:40:42 !haskell {-# LANGUAGE MagicHash #-} data Foo# = Foo# Int deriving Show; main = print $ Foo# 0 08:40:47 Foo# 0 08:40:57 elliott: works perfectly 08:41:25 hm, fair enough then 08:41:34 it's just for things they don't want people to muck about with needlessly 08:41:38 imo 08:42:14 oerjan: i think it's because it's non-standard, dude :P 08:42:42 well yeah 08:42:50 also, for translating shootout benchmarks from C to Haskell 08:42:59 :P 08:43:41 -!- yorick has quit (*.net *.split). 08:47:48 -!- cheater_ has joined. 08:52:58 oh for _crying out loud_ 08:53:15 oerjan: i would like to mark down on the record how much IORefs in ADTs sucks in haskell 08:53:33 O KAY 08:53:34 but records suck too....... 08:53:45 got a function somewhere? or an IORef? wanna use your value as a Map key? 08:53:49 ha ha ha oh boy, HAVE FUN WITH THAT 08:54:40 -!- cheater_ has quit (Ping timeout: 255 seconds). 08:54:48 Writing an Ord instance that ignores them isn't exactly a huge pain 09:04:49 yay it all works now 09:04:57 Deewiant: um such an Ord instance won't work for Map will it? 09:04:58 I ended up doing 09:05:03 data Ref a = Ref !Int !(IORef a) 09:05:03 instance Eq (Ref a) where Ref i _ == Ref j _ = i == j 09:05:03 instance Ord (Ref a) where compare (Ref i _) (Ref j _) = compare i j 09:05:03 instance Show (Ref a) where show = const "" 09:05:09 with a global unsafePerformIO'd ioref to keep track of the top index 09:05:21 elliott: Why not? 09:05:43 Deewiant: good point :P 09:05:43 Also, globall unsafePerformIO'd ioref: and you don't like my code... 09:05:49 -l 09:06:05 Deewiant: It's completely encapsulated, and only exists because GHC is dumb and doesn't have its own ioref IDs :P 09:06:45 I don't know what you mean by "your code", though, unless I've complained at your HIDEOUS SINS AGAINST PROGRAMMING before in which case probably feel bad 09:07:36 -!- yorick_ has changed nick to yorick. 09:09:13 Deewiant: Deewiant: please...stop existing... 09:09:31 er *elliott: 09:09:39 oh right 09:09:41 yes that was bad 09:09:49 wasnt this the one that wasnt that one 09:09:52 ok i need to go unconscious for some hours now bye 09:09:53 something about stablenames 09:09:57 have fun 09:09:59 monqy: unsafeperformio for showing ioref 09:10:07 mm :( 09:10:07 monqy: ok i will ill try and hallcuating 09:10:12 tomorrow: ante-zepto 09:12:12 monqy: apparently StableNames don't have Ord either 09:14:26 -!- elliott has quit (Ping timeout: 246 seconds). 09:17:08 oerjan: "Stable, not sorted"; isn't that how James Bond likes his drinks? 09:17:18 MAYBE 09:22:10 -!- Lymee has quit (Ping timeout: 240 seconds). 09:23:31 -!- Lymee has joined. 09:36:19 -!- cheater_ has joined. 09:38:20 -!- Vorpal has joined. 09:38:26 Is the random number generator algorithm in TeXnicard OK? Is there anything wrong with it? 09:38:35 fizzie, no, Bond likes his drinks unstable. 09:38:42 He lives on the edge. 09:40:34 -!- cheater_ has quit (Ping timeout: 255 seconds). 09:40:39 -!- monqy has quit (Quit: hello). 09:44:01 -!- oerjan has quit (Quit: Good night). 09:51:06 -!- augur has quit (Read error: Connection reset by peer). 09:53:01 -!- augur has joined. 10:16:04 -!- zzo38 has quit (Quit: Unstable cards.). 11:35:40 -!- ineiros has quit (Ping timeout: 240 seconds). 12:05:16 -!- ais523 has quit (Remote host closed the connection). 12:10:06 -!- CakeProphet has joined. 12:10:07 -!- CakeProphet has quit (Changing host). 12:10:07 -!- CakeProphet has joined. 12:16:18 -!- boily has joined. 12:20:24 -!- boily has quit (Client Quit). 12:21:27 -!- boily has joined. 12:33:28 -!- BeholdMyGlory has joined. 12:58:02 -!- azaq23 has joined. 14:43:45 -!- adam____ has joined. 14:48:31 -!- CakeProphet has quit (*.net *.split). 14:56:09 -!- Sgeo has joined. 14:57:25 -!- cheater_ has joined. 15:01:53 -!- cheater_ has quit (Ping timeout: 255 seconds). 15:02:07 -!- copumpkin has joined. 15:02:07 -!- copumpkin has quit (Changing host). 15:02:07 -!- copumpkin has joined. 15:13:33 -!- Sgeo has quit (Read error: Connection reset by peer). 15:14:28 -!- Sgeo has joined. 15:19:48 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 15:40:49 -!- Sgeo_ has joined. 15:42:34 -!- Sgeo__ has joined. 15:43:44 -!- Sgeo has quit (Ping timeout: 255 seconds). 15:45:32 -!- Sgeo_ has quit (Ping timeout: 255 seconds). 15:47:20 -!- Sgeo__ has quit (Ping timeout: 255 seconds). 15:49:07 -!- monqy has joined. 15:55:56 -!- Sgeo has joined. 15:56:11 -!- Sgeo has quit (Client Quit). 16:17:19 hello 16:17:29 that ks a lot of coming and going 16:17:41 are you alive? 16:21:51 Nope. 16:29:05 -!- Cocytus has joined. 16:29:56 sorry guys this is my room. it's for Esoteric Philosophy...programming language is of course one avenue of Philosophy so you are welcome to stay and discuss amongst everyone. 16:31:18 that being said........Ave. 16:31:24 -!- Cocytus has left. 16:31:36 Oh no, we're in his room. :/ 16:40:54 Also, birds. 16:57:54 -!- cheater_ has joined. 17:00:35 -!- ineiros has joined. 17:23:15 you are standing at the end of a road before a small brick building. 17:23:21 -!- zzo38 has joined. 17:28:35 -!- cheater_ has quit (Ping timeout: 255 seconds). 17:29:59 -!- cheater_ has joined. 17:30:48 >go building 17:33:23 -!- copumpkin has joined. 17:33:23 -!- copumpkin has quit (Changing host). 17:33:23 -!- copumpkin has joined. 17:38:31 ineiros! 17:51:09 -!- esowiki has joined. 17:52:05 -!- esowiki has joined. 17:52:50 -!- esowiki has joined. 17:52:50 -!- glogbot has joined. 17:52:50 [freenode-info] please register your nickname...don't forget to auto-identify! http://freenode.net/faq.shtml#nicksetup 18:01:26 -!- cheater_ has quit (Ping timeout: 255 seconds). 18:03:28 -!- cheater_ has joined. 18:22:35 -!- cheater_ has quit (Ping timeout: 255 seconds). 18:33:20 -!- pikhq_ has joined. 18:33:49 -!- cheater_ has joined. 18:34:10 -!- pikhq has quit (Ping timeout: 240 seconds). 18:41:18 -!- pikhq has joined. 18:43:44 -!- cheater_ has quit (Ping timeout: 240 seconds). 18:43:52 -!- pikhq_ has quit (Ping timeout: 240 seconds). 18:44:59 -!- cheater_ has joined. 18:46:27 -!- KingOfKarlsruhe has joined. 18:50:40 -!- cheater_ has quit (Ping timeout: 250 seconds). 18:51:41 -!- cheater_ has joined. 18:55:03 -!- quintopia has quit (Ping timeout: 252 seconds). 18:56:20 -!- cheater_ has quit (Ping timeout: 255 seconds). 18:58:33 -!- quintopia has joined. 18:58:34 -!- quintopia has quit (Changing host). 18:58:34 -!- quintopia has joined. 19:16:44 -!- BeedaWeeda has joined. 19:19:32 Oh god. 19:19:55 I have the choice between YouTube binging on The Chaser, or on Dead Ringers. 19:20:59 -!- MigoMipo has joined. 19:23:59 -!- oerjan has joined. 19:24:31 I like the way The Chaser were always able to find John Howard for their stunts. 19:24:37 tswett_, you Australians are cool. 19:26:05 while you welsh are cwwl 19:28:03 -!- pikhq_ has joined. 19:28:41 -!- hiato_ has quit (Ping timeout: 258 seconds). 19:30:02 -!- pikhq has quit (Ping timeout: 264 seconds). 19:30:15 * tswett_ bows. 19:34:38 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 19:35:50 -!- hiato has joined. 19:49:51 "Today I want to talk about the status of the question and baseball." 19:50:23 eek a picture 19:50:34 *"Today I want to talk about the status of the P = NP question and baseball." 19:50:58 is there any progress on it currently? 19:51:04 I prefer calling it just... the Question. 19:51:15 I like the idea of the question 19:51:24 with double or triple spaces between the article and noun 19:53:11 Zwaarddijk: nothing immediately promising that i know of 19:55:31 although maybe the rest of http://rjlipton.wordpress.com/2011/07/04/getting-on-base-with-pnp/ may count as a little survey of the case 20:09:55 -!- elliott has joined. 20:11:15 16:29:05: -!- Cocytus has joined #esoteric. 20:11:15 16:29:56: sorry guys this is my room. it's for Esoteric Philosophy...programming language is of course one avenue of Philosophy so you are welcome to stay and discuss amongst everyone. 20:11:15 16:31:18: that being said........Ave. 20:11:15 16:31:24: -!- Cocytus has parted #esoteric. 20:11:16 lol what 20:11:54 should have told him about Malbolge 20:12:04 elliott: that was you under a differen nick, wasn't it? 20:12:48 no 20:12:54 i do not know elliott to use comcast, but who knows 20:21:02 -!- adam____ has quit (Ping timeout: 264 seconds). 20:23:00 -!- CakeProphet has joined. 20:24:14 http://en.wikipedia.org/wiki/List_of_atheists <-- list of famous bisexuals 20:24:51 God, how stupid are they. 20:25:11 That's a list of lists of atheists. 20:25:35 probably more like FixF [] Atheist 20:25:59 :t FixF 20:26:00 Not in scope: data constructor `FixF' 20:26:04 -_- 20:26:18 data FixF f a = Foo a | Bar (f (FixF f a)), presumably 20:26:47 Nope. 20:26:52 actually, the FixF I was thinking of would be a bit hard to use since you'd never get to the Atheists 20:26:54 unless olsner means a two-argument Mu, in which case it's a very useless type :D 20:29:32 monqy: i have sad news 20:29:40 is it about zepto 20:29:58 antezepto specifically? 20:30:00 monqy: yes 20:30:09 weeping 20:30:19 monqy: i am sorry to report 20:30:25 monqy: that ............................................................................................. 20:30:31 monqy: my impl is broken :( 20:30:39 :( 20:30:42 its not enough to just compare references by pointer equality, because 20:30:46 | AntePair !(Ref AnteValue) !(Ref AnteValue) 20:30:47 so as it stands 20:30:54 if you have a map with key (a b) 20:31:03 I think something like FixF (Either Atheist `O` []) Atheist is more what I meant, i.e. what elliott said 20:31:05 only the same object will look it up, pretty much 20:31:34 monqy: so what I need is a map where compare and (==) are done in IO? 20:31:43 which 20:31:43 yeah 20:31:43 aaaaaaaaaaaaaaaaaaa 20:31:45 i dunno of one 20:32:24 is there any way around it 20:33:03 monqy: I can't think of one that doesn't involve unsafePerformIO 20:33:08 I meant FixF from http://hackage.haskell.org/packages/archive/category-extras/0.53.5/doc/html/Control-Functor-Fix.html and I didn't even remember it right... fail :( 20:33:10 aaaaaaaaaaaaaaaaaaa 20:33:18 olsner: category-extras is deprecated >:| 20:33:50 aha, so that's why it's not indexed by hoogle then 20:33:59 it's being split up 20:33:59 why did it get deprecated? 20:34:03 into a bunch of mostly-haskellninetyeight packages 20:34:03 is there any way to cleanly encapsulate the unsafePerformIO 20:34:17 alternatively, construct everything else in such a way that doing this wackness isn't necessary 20:34:19 olsner: I think because it's really huge and unfocused (= big monolithic dependency), plus it relies on like five thousand extensions 20:34:28 olsner: so he's trying to separate everything into really portable haskell ninetyeight code 20:34:33 and separate out the unportable stuff 20:34:40 while putting it all into different packages 20:36:38 makes sense, I guess 20:37:34 dunno where the replacement for that module is though :D 20:38:19 ?ty let f _ [] = return Nothing; f p (x:xs) = p x >>= \b -> if b then return (Just x) else f p xs in f -- there's your map in IO 20:38:20 forall a (m :: * -> *). (Monad m) => (a -> m Bool) -> [a] -> m (Maybe a) 20:38:44 Deewiant: Heh :P 20:38:57 -!- CakeProphet has quit (Read error: Operation timed out). 20:39:17 monqy: hmm, if you use (0 9) as an environment key, then mutate the car so it's (9 9), should the environment key mutate or should environment keys get copied 20:39:21 (answer: the latter) 20:39:32 but what if you get (0 9) out of the keys list of the environment, and mutate it, WHAT THEN 20:39:44 (answer: it should probably copy keys before giving them back, too) 20:40:12 yep 20:41:43 functor fixpoints are easy to define when you need one, so if category-extras is deprecated you can just opt not to use it 20:41:52 -!- CakeProphet has joined. 20:50:11 monqy: Hmm, I could make map keys be immutable 20:50:16 monqy: By making a version of AnteValue with no IORefs 20:50:21 Or parameterising it on the type of references 20:50:27 monqy: But, ugh, that seems like a Pain 20:50:30 would this fix your broken 20:50:41 monqy: Maybe 20:55:49 -!- KingOfKarlsruhe has quit (Quit: ChatZilla 0.9.87 [Firefox 5.0/20110615151330]). 21:14:37 -!- cheater_ has joined. 21:33:17 -!- hagb[4]rd has joined. 21:33:21 -!- MigoMipo has quit (Read error: Connection reset by peer). 21:35:20 -!- azaq23 has quit (Quit: Leaving.). 21:39:22 -!- hagb[4]rd has changed nick to hagb4rd. 21:44:05 -!- CakeProphet has quit (Ping timeout: 252 seconds). 21:45:19 -!- CakeProphet has joined. 21:45:19 -!- CakeProphet has quit (Changing host). 21:45:20 -!- CakeProphet has joined. 21:54:51 -!- |||Ksarks||| has joined. 21:56:09 -!- |||Ksarks||| has left. 22:05:49 -!- azaq23 has joined. 22:07:20 -!- CakeProphet has quit (Ping timeout: 276 seconds). 22:07:54 -!- CakeProphet has joined. 22:07:54 -!- CakeProphet has quit (Changing host). 22:07:55 -!- CakeProphet has joined. 22:11:20 `quote 479 22:11:21 479) Nobody actually said this; this is just a demonstration. 22:11:27 monqy: ugh this is ugly 22:11:27 Now, how do I get rid of it? 22:11:32 tswett_: `delquot 22:11:32 e 22:11:39 `delquote 479 22:11:41 ​*poof* 22:11:54 It has now been delled, I guess. 22:12:01 `quote 479 22:12:02 No output. 22:12:09 SO IT WOULD APPEAR 22:14:07 elliott: ughly? 22:14:46 -!- myndzi has quit (Ping timeout: 258 seconds). 22:15:07 monqy: yes 22:17:56 -!- cheater_ has quit (Ping timeout: 255 seconds). 22:32:53 monqy: i just realised these changes mean you can bind an integer as a variable 22:33:08 not that 9 will evaluate to anything, only symbols look themselves up in the environment 22:33:10 BUT STILL 22:33:13 that could be a great FORTE 22:33:28 oerjan: Funny, I just opened a buffer to implement Forte a few minutes ago. 22:34:21 parallel coding ftw 22:35:44 hm first vau, now integers as variables. is your new language gradually absorbing everything else weird? 22:36:25 oerjan: um you realise zepto always had vau? it was just equivalent to quote (and thus not given a name), because it was dynamically scoped 22:36:28 i.e., no environment to save 22:36:37 so (argname . body) was an acceptable lambda representation 22:36:48 aha 22:36:53 ante-zepto is lexically scoped, so it needs an actual operation to store the current environment in too 22:37:08 oh, and it has another parameter to name the environment the fexpr is called in 22:37:19 which didn't exist, again, in the dynamic version 22:37:28 * oerjan is divided on whether "in too" is a misspelling or not 22:37:45 hmm, i dunno what that happened there 22:38:15 gramma bogons 22:39:09 hm could you make a TC language which had hygienic macros and nothing else 22:40:04 i mean something like statically scoped fexprs but with all environments implicit. also this is very vague. 22:42:09 ("this is very vague" is here a synonym for "i'm not sure what i mean there") 22:43:07 someone said recently that hygienic macros are easy to implement if you do it in the base implementation 22:43:13 or something like that 22:45:31 -!- Sgeo has joined. 22:46:50 Will anyone be irritated if I tend to disconnect and reconnect a lot? 22:47:04 Yes. 22:47:53 -!- Sgeo has quit (Client Quit). 22:50:14 -!- foocraft has joined. 22:50:53 -!- CakeProphet has quit (Ping timeout: 276 seconds). 22:51:40 we _almost_ have an established policy that bots will be banned it they do that. which means we might have to administer a turing test to sgeo, and that could get ugly. 22:52:02 -!- CakeProphet has joined. 22:52:14 oerjan, suggest we begin as soon as he reënters. 22:53:12 eek, what have i done. 22:58:11 `addquote Will anyone be irritated if I tend to disconnect and reconnect a lot? [...] we _almost_ have an established policy that bots will be banned it they do that. which means we might have to administer a turing test to sgeo, and that could get ugly. 22:58:12 479) Will anyone be irritated if I tend to disconnect and reconnect a lot? [...] we _almost_ have an established policy that bots will be banned it they do that. which means we might have to administer a turing test to sgeo, and that could get ugly. 23:16:26 "Any scripting language (Python, Ruby, Perl) will IMO teach bad practices. Start off with something with more structure and less help. C++ or Java. 23:16:26 Higher level scripting languages come with conveniences that are not found at other levels of programming. Callback functions, .each loops, dynamic typing, built-in operators, libraries. These are all detrimental to your overall mindset. Limit the comforts available until he can create those comforts himself. 23:16:26 Start off dumb. Working in something like C++ or Java that forces you to choose a type for your variable and offers excellent language structure enhances your ability to think like a programmer. Then moving on to "smarter" languages will be easier." 23:16:28 HAHAHAHA OH WOW 23:16:34 THIS WAS ACTUALLY NOT VOTED DOWN INTO OBLIVION 23:16:54 "START WITH A LOW LEVEL LANGUAGE, NOT HAVING TO THINK ABOUT MINUTIAE DAMAGES THINKING ....... SO CLEARLY USE JAVA, THE MOST LOW-LEVEL OF ALL LANGUAGES" 23:16:58 PFFAFAPAHAHAHAHAAHAHAHAHAHAHAHAAHAHAHA 23:18:59 Start off dumb. 23:19:06 (this is dumb) 23:23:11 i wonder what that guy would say about starting with a functional language 23:23:38 THATS SO MANY STEPS ABOVE JAVA ITS BAD 23:24:04 java is a functional language 23:25:13 its just a little verbose 23:26:17 elliott, link to comment? 23:26:42 http://programmers.stackexchange.com/questions/9621/teach-linux-programming-to-home-schooled-15-year-old, found while absent-mindedly traversing the graph of programmers.stackexchange, a terrible place. 23:28:19 "If this is a learning experience, something like R is probably the most useful thing. It will teach him problem-solving skills as well as the ability to load and analyze data files, which is also very useful." 23:28:34 I have picked up the general impression from here that R is somewhat insane. 23:28:38 http://www.thenewsh.com/~chat/j/XXPrelude.java 23:28:54 oops, http://www.thenewsh.com/~chat/j/XPrelude.java this one 23:30:00 newsham: meh, it's not impressive until you get monads 23:30:05 I think http://functionaljava.org/ has them :P 23:30:09 not there yet 23:30:21 i havent tried to play with typeclasses at all 23:30:31 monads have nothing to do with typeclasses. 23:30:40 you would want to implement it as 23:30:47 newsham, are the Xes for X-rated? 23:30:58 data Monad m = Monad { return :: forall a. a -> m a; bind :: forall a b. m a -> (b -> m b) -> m b } 23:31:01 i.e. simply an interface 23:31:04 Monad 23:31:16 who was it that did pattern matching in java 23:31:18 phantom: X's for "lets try another approach, maybe i should rename this to preserve the original" :) 23:31:27 using exceptions or something like that 23:31:53 also you dont need teh monads to be funkshunal 23:32:39 newsham, yeah, but without them you lack monad tutorials, a vital part of any functional programming community. 23:33:27 newsham: ok then, HLists 23:33:28 // A lot of type annotation 23:33:28 final HAppend>>, 23:33:28 HCons>>> zero = append(); 23:33:28 final HAppend, HCons>>, 23:33:29 HCons>>>> one = append(zero); 23:33:30 final HAppend>, HCons>>, 23:33:31 the view of half of the community is that not supporting monad tutorials is a feature 23:33:33 HCons>>>>> two = append(one); 23:33:36 final HAppend>>, 23:33:38 HCons>>, 23:33:42 HCons>>>>>> 23:33:45 three = append(two); 23:33:47 23:33:49 god bless functionaljava 23:33:58 newsham, yeah, but that half is just bitter that they can't write a monad tutorial. 23:34:18 whoa.. there are people who havent written monad tutorials? 23:34:20 i dont believe you 23:34:29 "@rei: Well, I have advanced social skills, [...]" --programmers.stackexchange 23:34:33 i have never written a monad tutorial. 23:34:37 oerjan: yet 23:34:41 oerjan: perhaps you have and you didnt realize it 23:34:47 ooh 23:34:57 oerjan: I believe you've tried to explain them in here before :D 23:34:59 oerjan, little do you realise that everything you say and do is part of that great monad tutorial we call life. 23:35:05 did you write any tutorials that are isomorphic to monad tutorials? 23:35:08 `addquote oerjan, little do you realise that everything you say and do is part of that great monad tutorial we call life. 23:35:09 480) oerjan, little do you realise that everything you say and do is part of that great monad tutorial we call life. 23:35:12 -!- Sgeo has joined. 23:35:47 leggo my ego 23:36:13 life, a reverse state monad 23:37:10 happy 4th of july, state monad! 23:37:20 Wired does not, in fact, seem to be faster than wireless 23:38:02 newsham, the 4th ended 40 minutes ago. 23:38:10 Mon Jul 4 13:34:50 HST 2011 23:38:15 At least in civilised timezones. 23:38:27 the 4th doesnt matter there 23:38:44 typical european response... assume all islanders are uncivilized 23:38:59 monqy, sorry who did they declare themselves independent from. 23:39:09 newsham: You're all uncivilised, apart from the natives. 23:39:19 ...americans are islanders and brits not, now? 23:39:37 we didnt much care for all the taxation without representation, phantom. 23:39:51 although these days the radical right seems to be fighting for less representation. 23:39:55 oh hawaii 23:40:04 fourth makes me mad 23:40:12 fourth makes me drunk 23:40:15 loud noises and idiocy makes my head ache 23:40:21 but drunk does not make me mad 23:40:45 monqy: loud noises are unzepto 23:40:57 what about idiocy i hope 23:41:11 yes 23:41:43 elliott: have you considered the possibility that zepto may not be implementable in this imperfect world 23:41:55 newsham, yeah but the fundamental point is that you were a British colony so you logically declared independence in British time true fact. 23:42:15 i was never a british colony 23:42:53 most of me was being kicked around eastern europe at the time this all went down 23:42:58 05:34:29: oerjan: ah. you would think. but a failed bootstrapping is not very zepto. 23:42:58 05:34:43: and if you lose the binary, as zepto people are wont to do, then that would make it a very un-zepto situation. 23:42:58 05:34:55: also, compilers are un-zepto, so that's just too recursive for the universe to handle. 23:42:58 05:35:02: although that, in itself, is very zepto, we are unfortunately constrained. 23:42:58 05:35:05: we cannot achieve true zepto. 23:43:00 05:35:08: we can only achieve universal zepto. 23:43:02 or at least most of the people who led to me 23:43:02 oerjan: caret 23:43:04 from yesterday 23:43:06 Phantom_Hoover: but timezones weren't invented back then! 23:43:34 didnt ben franklin help come up with daylight savings time? did that happen before ther ewere timezones? 23:43:45 daylight savings time is the worst 23:43:56 newsham, so you are therefore inextricably tied to eastern European time Q.E.D. 23:44:11 phantom: some would say I'm the white devil. 23:45:20 newsham, I thought that was a drink. 23:45:43 dst is unzepto 23:46:02 most of me was being kicked around eastern europe at the time this all went down <-- wait does this mean newsham isn't your real name 23:46:56 one out of four of my grandparents were called newsham 23:46:58 this much is true 23:47:05 ah. 23:47:43 oerjan, what, do you think they didn't have pigs that announced current events in eastern Europe? 23:48:04 Phantom_Hoover: well it _could_ be translated of course. 23:48:06 phantom: check out newsham.com 23:48:11 (not my site, btw) 23:48:20 but you might chuckle anyway 23:48:25 Very good. 23:48:40 Moses Neuesschinkel 23:48:49 apparently lots of pig farming in the newsham line 23:48:51 Is that German? 23:49:30 newsham: that isn't real is it? 23:49:36 it is 23:49:44 pig genetics 23:49:44 huh 23:49:47 SuperMom™ Maternal Line 23:49:47 Your choice for performance and longevity. A proven maternal leader. 23:49:48 SuperMom™ 37 23:49:52 i want a SuperMom™ 23:50:19 some of the newsham/newsome coat of arms have pigs on em, too 23:51:22 Stop flaunting your fancy family coat of arms. 23:52:01 your SuperMom™ so fat, she can be used in the penrose process 23:52:06 not to worry, recent family is all poor working class 23:52:20 -!- Vorpal has quit (Ping timeout: 260 seconds). 23:52:46 newsham, yeah, but there are like no interesting people with my last name. 23:53:26 you have a low self opinion? 23:54:09 i assume you have your last name 23:54:20 didnt ben franklin help come up with daylight savings time? did that happen before ther ewere timezones? <-- last i heard he was joking. 23:55:20 Phantom_Hoover: your name is cool tho 23:55:22 mine is just boring 23:57:02 our family was so poor their coat had no arms 23:57:04 newsham, yeah, but I mean actual Googleable people. 23:57:18 * Phantom_Hoover swatpans oerjan --==\#/ 23:57:29 google, the foundation of all credibility! 23:57:37 no google, never happened. 23:59:05 Indeed. 2011-07-05: 00:00:57 i'll frien dyou on facebook and then you'll be super famouse like me! 00:01:16 -!- myndzi has joined. 00:01:40 newsham: omg me too 00:01:42 (i have no facebook) 00:01:51 whats facebook 00:01:56 un-zepto 00:02:10 Oh wait turns out I have an uncle who once had an article in a newspaper about his company. 00:02:23 spiffy 00:04:53 -!- CakeProphet has quit (Ping timeout: 252 seconds). 00:06:38 -!- CakeProphet has joined. 00:06:38 -!- CakeProphet has quit (Changing host). 00:06:39 -!- CakeProphet has joined. 00:07:03 "'I'm not on facebook' is the new 'I don't have a TV'" 00:07:12 fwiw, I dont use facebook either (though I do have 2 accounts) 00:07:45 once at a Berlin concert I touched the bodyguard who was carrying Terri Nunn 00:08:01 my claim to fame 00:09:05 "'I'm not on facebook' is the new 'I don't have a TV'" 00:09:08 meh, I don't bring it up 00:09:19 it's perfectly alright not to own a TV, it's just mentioning that you don't all the time that's annoying 00:09:56 i 00:10:08 i'm watching tv as we speak, but i have a high opinion of people who manage to avoid it 00:10:28 whats tv 00:10:31 newsham, turns out said uncle's company helped make the first mobile phone topup things. 00:10:46 Also I was once totally in the same room as Iain Banks. 00:11:25 why dont you come up when i google "same room as iain banks"? 00:11:32 newsham: i don't know how anyone could watch tv when they have an internets in front of them, it's like ... taking both caffeine and heroin and going "whoa, this coffee!!!!" 00:11:32 WHO KNOWS 00:11:34 that made no sense, but. 00:11:48 Phantom_Hoover: bah boring. see if your great great grandfather was involved in the first telegraph, or something. 00:11:56 elliott: the coffee happens to be Law&Order 00:11:57 the original 00:11:59 no colon! 00:12:02 his great great grandfather _was_ the first telegraph 00:12:13 newsham: why do people like police procedurals :/ 00:12:13 oerjan, unlikely, given that my family is basically all boring Irish people after a point. 00:12:35 http://upload.wikimedia.org/wikipedia/en/4/4f/The_Clang.ogg ;; put on repeat, go insane 00:12:44 Although I guess maybe one of them moved crates for Marconi when he broadcast that transatlantic signal or something. 00:12:59 elliott: did I mention, "no colon"? 00:13:12 newsham: and? :P 00:13:25 i once played sprouts with john conway. so there. 00:13:28 i'm not talking L&O:LA or SVU or anything 00:13:30 this is the real thing!@# 00:13:41 -!- CakeProphet has quit (Ping timeout: 240 seconds). 00:13:44 oerjan, I once... um... dammit. 00:13:49 i once made out with ladyada, is that worth anything? 00:14:13 newsham, depends, was it the real Ada, or some cheap imitator? 00:14:59 it was countace lovelace.. i was young and needed th emoney 00:15:02 Did you solicit a prostitute to pretend to be Ada Lovelace is basically what I am asking. 00:15:06 lord byron was pissed 00:15:11 -!- CakeProphet has joined. 00:15:12 -!- CakeProphet has quit (Changing host). 00:15:12 -!- CakeProphet has joined. 00:15:39 newsham, also you're an internet celebrity yourself, so that doesn't count. 00:16:08 yeah everyone knows the famous news ham 00:17:01 rec.arts.ham 00:17:39 newsham, you have a WP article; that's good enough for me. 00:18:03 they'll give those out to anybody 00:18:12 elliott: http://www.girlgeniusonline.com/comic.php?date=20070625 00:18:32 -!- CakeProphet has quit (Client Quit). 00:18:49 -!- CakeProphet has joined. 00:18:49 -!- CakeProphet has quit (Changing host). 00:18:50 -!- CakeProphet has joined. 00:19:48 My dad is offering to send me to another country away from him 00:20:00 (Sorry about the blogging) 00:20:13 that seems rather excessive 00:20:19 (what do you mean it's just passive-aggressiveness) 00:20:24 elliott, I'm wondering if I should 00:20:30 Get away from him for a while 00:20:30 elliott, yeah, it's effectively the same as getting a transfer. 00:20:30 better education???? 00:20:57 I don't know if or how education plays into it 00:21:00 dad doesnt care for proximity? 00:21:05 Sgeo: There are rather less drastic ways to get away from someone, but if he's actually seriously offering to help make that happen, then it might be the easiest... 00:21:23 Erm, should have mentioned that it's temporary 00:21:29 oh 00:21:30 Well yeah. 00:21:34 That was obvious. 00:21:41 stay away forever 00:21:53 I suggest joining a circus (note: I do not really suggest this) 00:22:25 Sgeo, *which* country. 00:22:54 another one 00:22:55 Phantom_Hoover, a choice, I think. Between England, Israel, and Australia 00:22:56 Zimbabwe. 00:23:11 You don't want to come to England. Or Israel. 00:23:14 But they don't have running water in Australia. 00:23:34 just waiting for mean reversion on those zimbabwe dollars! :) 00:23:37 Sgeo, you should totally come to Scotland. It's like England, but with worse food. 00:23:37 sure they have. i'm not sure you'll be able to catch it. 00:23:52 and better whiskey 00:23:55 What an endorsement. 00:23:56 is australian weather good this time of year 00:23:57 So you can get over your eating problems! 00:24:01 is english weather good this time of year 00:24:01 newsham: whisky. 00:24:08 * oerjan swats that e off newsham -----### 00:24:10 whisk{ey,y} 00:24:12 monqy: English weather is as good as English weather gets this time of year, i.e. not 00:24:31 "Australian weather" is a bit of a misnomer isn't it, which of the five thousand climates do you mean :P 00:24:32 I mean the pain is reduced when you can eat a single deep-fried Mars Bar and be over your recommended daily everything. 00:25:16 I wish I could take "deep-fried Mars Bar" as a serious nutritional suggestion. I wouldn't mind that being a main food source 00:25:17 -!- CakeProphet has quit (Ping timeout: 240 seconds). 00:25:19 Or some other sort of bar 00:25:22 elliott: did you miss http://www.girlgeniusonline.com/comic.php?date=20070625 00:25:29 oerjan: no 00:25:32 oerjan: I couldn't think what to say 00:25:56 what is this nonsens 00:25:56 e 00:27:06 monqy: which nonsense? 00:27:14 that nonsense 00:27:18 is there more than one 00:27:23 always 00:32:23 -!- CakeProphet has joined. 00:32:23 -!- CakeProphet has quit (Changing host). 00:32:23 -!- CakeProphet has joined. 00:34:04 you know what sucks 00:34:13 vacuum! 00:34:15 data AnteValue ref = AnteNil 00:34:15 | AnteSymbol !String 00:34:16 | AnteInt !Integer 00:34:16 | AntePrim !Prim 00:34:16 | AntePair !(ref (AnteValue ref)) !(ref (AnteValue ref)) 00:34:16 | AnteEnv !(Env ref) 00:34:18 I can't write 00:34:30 copy :: (Ref a, Ref b) => AnteValue a -> IO (AnteValue b) 00:34:31 copy (AntePair car cdr) = ... 00:34:31 obviously 00:34:34 copy (AnteEnv e) = ... 00:34:36 copy x = return x 00:34:39 because the types don't match for the last line 00:34:49 so I have to write four boring copiers 00:35:46 :t Map.foldWithKey 00:35:46 Couldn't find qualified module. 00:35:48 :t Data.Map.foldWithKey 00:35:49 forall k a b. (k -> a -> b -> b) -> b -> M.Map k a -> b 00:35:59 elliott: some kind of GADT maybe? 00:36:03 :t Data.Map.foldWithKey (\k a m -> liftM3 Data.Map.insert (copy k) (return a) m) (return Map.empty) 00:36:04 Couldn't find qualified module. 00:36:07 :t Data.Map.foldWithKey (\k a m -> liftM3 Data.Map.insert (copy k) (return a) m) (return Data.Map.empty) 00:36:08 Not in scope: `copy' 00:36:12 :t Data.Map.foldWithKey (\k a m -> liftM3 Data.Map.insert (?copy k) (return a) m) (return Data.Map.empty) 00:36:13 forall k (m :: * -> *) k1 a. (Ord k1, ?copy::k -> m k1, Monad m) => M.Map k a -> m (M.Map k1 a) 00:36:31 oh wait 00:36:31 duh 00:36:47 -!- CakeProphet has quit (Ping timeout: 252 seconds). 00:37:15 :t Data.Map.foldWithKey (\k a m -> liftM2 (Data.Map.insert k) (?copy a) m) (return Data.Map.empty) 00:37:16 forall a (m :: * -> *) k a1. (Ord k, ?copy::a -> m a1, Monad m) => M.Map k a -> m (M.Map k a1) 00:38:48 ?pl sequence [return x, copy f] 00:38:49 sequence [return x, copy f] 00:38:54 -!- CakeProphet has joined. 00:39:22 :t liftM2 (:) (return ?x) (return `fmap` copy ?y) 00:39:23 Not in scope: `copy' 00:39:24 :t liftM2 (:) (return ?x) (return `fmap` ?copy ?y) 00:39:25 forall a1 (m :: * -> *) t. (?x::a1, Monad m, ?copy::t -> m a1, ?y::t, Functor m) => m [a1] 00:39:32 :t \x y -> liftM2 (:) (return x) (return `fmap` ?copy y) 00:39:33 forall a1 (m :: * -> *) t. (Monad m, ?copy::t -> m a1, Functor m) => a1 -> t -> m [a1] 00:39:43 ?pl liftM2 (:) (return x) (return `fmap` ?copy y) 00:39:43 (line 1, column 38): 00:39:43 unexpected "?" 00:39:43 expecting space or simple term 00:39:48 ?pl \x y -> liftM2 (:) (return x) (return `fmap` copy y) 00:39:48 (. ((return `fmap`) . copy)) . fmap . (:) 00:39:51 ?pl \y -> liftM2 (:) (return x) (return `fmap` copy y) 00:39:52 ((x :) `fmap`) . (return `fmap`) . copy 00:39:55 ?pl liftM2 (:) (return x) (return `fmap` copy y) 00:39:55 (x :) `fmap` (return `fmap` copy y) 00:40:20 can i friend you on oercut, elliott? 00:40:39 oercut? ...orkut? 00:41:03 oercut, my cutting edge site 00:41:13 sharp 00:41:48 :t sequence 00:41:49 forall (m :: * -> *) a. (Monad m) => [m a] -> m [a] 00:42:00 beta invites is such a clever marketting scheme for google 00:42:13 i kinda wanna be on google+, and I hate social networking sites 00:42:43 newsham, I want to be on Google+, but they don't let under-18s on. 00:43:14 wait, a social networking site that excludes people under 18? 00:43:14 elliott had the prescience to lie about his age, but I foolishly associated my real age with my YouTube account ages ago and it's stuck now. 00:43:18 how is that gonna work 00:43:23 It's an initial legal thing. 00:43:27 :t Data.Map.foldlWithKey 00:43:27 forall b k a. (b -> k -> a -> b) -> b -> M.Map k a -> b 00:45:01 monqy: http://sprunge.us/Gghf 00:45:08 monqy: this is much nicer than before 00:45:13 monqy: no unsafeness whatsoever 00:45:16 longer too 00:45:35 does it work 00:45:35 monqy: well it grew before this :P 00:45:51 monqy: the only added code is the Ref typeclass and copy + uses, pretty much 00:45:52 and yes, it does 00:45:57 now I can write the reader 00:50:18 *Main> freeze code 00:50:19 AntePair (ID {unID = AnteSymbol "eval"}) (ID {unID = AntePair (ID {unID = AnteEnv (Env (ID {unID = fromList [(AnteSymbol "eval",AntePrim )]}) NullEnv)}) (ID {unID = AntePair (ID {unID = AnteSymbol "eval"}) (ID {unID = AnteNil})})}) 00:50:19 good 00:50:43 AntePair (ID (AnteSymbol "eval")) (ID (AntePair (ID (AnteEnv (Env (ID (fromList [(AnteSymbol "eval",AntePrim )])) NullEnv))) (ID (AntePair (ID (AnteSymbol "eval")) (ID AnteNil))))) 00:50:43 better 01:19:10 monqy we have neglected booleans 01:21:27 i guess if integers deserve language membership booleans do too 01:21:56 monqy: maybe i should just use symbols 01:22:01 monqy: maybe numbers should just be symbols too 01:22:09 maybe everything should be a symb- HELLOOOOOOO TCL 01:22:23 symbols or functions or environments 01:22:28 or lists????????? 01:30:57 symbols, lists, and numbers 01:31:08 what 01:31:22 Oh, remind me to read context next time. But just thinking of Picolisp 01:33:12 -!- Phantom_Hoover has quit (Remote host closed the connection). 01:36:32 http://www.reddit.com/r/math/comments/ig4qb/results_from_the_rmath_survey/c23ihcq?context=1 XD 01:42:41 -!- CakeProphet has quit (Read error: Operation timed out). 01:55:03 *Main> test 01:55:03 x 01:55:03 *** Exception: AnteException (AntePair (ID (AnteSymbol "unbound-name")) (ID (AntePair (ID (AnteInt 120)) (ID AnteNil)))) 01:55:05 monqy: excellent 01:55:25 that's it failing to find a readtable entry for 'x', btw, not it failing to look up the name x 01:57:00 what's that 120 01:58:20 monqy: ascii 'x' 01:58:25 well unicode 'x' 01:58:48 oh it's not a symbol? 01:58:58 yeah 01:59:06 and what's with it being in a pair with nil 01:59:28 or is that a list 02:01:13 monqy: list, yeah 02:01:21 it's (unbound-name 120) 02:07:41 Hello world!!! = ) You stumbled in my page? are you serious? are you a cute girl? = ) 02:07:42 --http://en.wikipedia.org/wiki/User:Fuwikepedia 02:09:28 monqy: i don't think lisp is a zero-lookahead language :( 02:09:42 who handcodes parsers 02:11:50 monqy: readtables, man 02:11:59 monqy: EXTENSIBLE SYNTAX 02:12:00 it's zepto 02:12:08 oh 02:12:12 zepto 02:13:35 (def (get-char p) ((p 'get-char))) ;; this leaves something to be desired 02:13:48 I guess I could have some sugar like (def (get-char p) (p.get-char)) but still 02:14:02 It would be nice if it didn't need declaring at all 02:16:59 monqy: oh i actually do need a buffer of some kind 02:17:24 any kind in particular? 02:21:14 as for the get-char thing my solution would be either not to have it as a function or do something bizarre to make explicit definition unnecessary (not vague at all) 02:22:39 monqy: technically i only need a one-char buffer 02:22:41 that seems... gross, though 02:22:45 I should have an arbitrary-length one 02:24:22 how will syntax extension work 02:28:44 monqy: i don't think lisp is a zero-lookahead language :( <-- i think you can tweak the grammar so it is, though 02:29:28 ending a (...) is obviously zero-lookahead 02:31:05 oerjan: it's not 02:31:23 why not 02:31:24 get char -> is it a )? end the list; is it a .? ok, then it's a dotted ending; or we just used up the first character of the object we want to read 02:31:25 "fuck" 02:31:56 you have not tweaked the grammar :P 02:32:32 list ::= "(" rest-list 02:33:12 oerjan: well if you're constrained to readtable form... 02:33:28 hm wait... 02:33:42 ok, if every readtable function gets the character it was triggered with 02:33:49 oh wait it doesn't even need to be 02:33:52 ok it is zero lookahead 02:33:53 I think 02:33:57 elliott, did we ever play the Birds map? 02:33:59 I think we did 02:34:01 Sgeo: whuh? 02:34:26 elliott, the hard map for Tube Trap 02:35:54 oh 02:35:57 we played the hardest one, yes 02:35:58 yeah that one 02:36:38 -!- elliott has quit (Read error: Connection reset by peer). 02:36:42 -!- elliott_ has joined. 02:36:48 * elliott_ is up for a W:A game, btw 02:36:52 just remembered it existed :D 02:37:12 Um, does my mentioning its existence count as "just"? 02:37:21 what? 02:37:36 You said you just remembered it existed right after I reminded you 02:37:45 yeah 02:37:47 that reminded me 02:38:06 Not now, I want to watch some Doctor Who 02:38:13 But soon, as in in some days maybe 02:39:11 That's a strange definition of soon 02:42:48 * Sgeo waits while his font cache is rebuilt. 02:43:27 I have no idea why a font cache should need to be rebuilt in order to watch a video 02:43:34 I remember seeing something about it thought 02:44:55 oerjan: oh noi think i need language extneiosna s :( 02:45:08 Found an article about disabling it, not sure I should trust the author, but it makes sense 02:45:14 what video player 02:45:15 and link 02:45:21 http://techdows.com/2010/12/disable-building-font-cache.html 02:45:22 VLC 02:45:33 OH NO THE OWNER OF TECHDOWS IS A VIRUS WRITER DUDE 02:45:53 I think I may be stereotyping :( 02:46:42 Sgeo: stereotyping what 02:47:03 Based on the English failures :( 02:53:06 00:55:56 When I was 11 years old I visited Neverland Ranch for 3 days and had a ball with Michael Jackson. We would go gokarting around sipping jesus juice and cuddling. My favorite moment was when we climbed a tree, and he pulled off my shorts and underoos to stick his nice hot nigger dick into my ass while I grabbed a giraffe's head by the horns to felate me! 02:53:07 a day in #haskell 02:53:59 -!- elliott_ has changed nick to elliott. 02:54:09 -!- elliott has quit (Changing host). 02:54:09 -!- elliott has joined. 02:54:35 elliott: i take it he's not a regular 02:55:02 :D 02:55:03 you don't say 02:57:30 eek spam 03:15:32 so now michael jackson's black again? 03:17:13 Is a ++ b ++ c processed as (a ++ b) ++ c or a ++ (b ++ c)? (Yes, I know they are the same due to the rules of monoids, but this makes a difference in execution time due to the nature of linked lists) 03:17:19 don't the two have identical performance due to laziness 03:17:23 gotta ask here so i don't look like an idiot :D 03:17:31 no. 03:17:45 oh 03:17:49 when they're forced wont the times be diff? 03:18:08 a ++ (b ++ c) only traverses a once, while (a ++ b) ++ c does it twice, conceptually. 03:18:53 oh right 03:18:55 this is sort of why why ShowS exists. 03:18:57 *-why 03:24:50 -!- hagb4rd has quit (Ping timeout: 255 seconds). 03:41:29 -!- azaq23 has quit (Ping timeout: 255 seconds). 03:44:57 -!- azaq23 has joined. 04:22:40 -!- BeholdMyGlory has quit (Ping timeout: 252 seconds). 04:27:00 -!- azaq23 has quit (Quit: Leaving.). 04:38:22 Friend decided to try a supposed hacking tool to get back into his email address 04:38:47 I try the tool, give it a mailinator address, and ... it returns a hash 04:39:22 link 04:40:09 "get back into his email address" how does one get back into an address what 04:40:29 http://www.learntohack.co.uk/ 04:40:35 promising url 04:40:41 quality site design 04:40:45 looks legitimate 04:41:22 wow this video 04:43:04 I just realized "hacking" by this POS into an example.com address would have been funnier 04:43:28 i like how it's called learntohack.co.uk and there is no learning it is just what 04:44:34 "Your email selbri@example.com is invalid or has been banned." 04:44:50 lol 04:45:09 Wait, that's the "real" email it asked for, not the one I tried to "hack" into 04:45:29 i do not like this site 04:45:32 im staying away from it 04:46:14 Now that I changed my "real" email address, it's going through, hacking "sumti@example.com" 04:47:19 "Hacking process completed 04:47:19 Example.com Account: sumti@example.com 04:47:19 MD5 Hash Password found: 04:47:19 0bcdf471234c4ed69707aca9ab859e0e" 04:48:05 now get the real password 04:48:14 and ruin sumti@example.com's life 05:11:39 Certainly it's worth the 90 €. 05:17:24 does it just hash the email 05:19:33 yes, but using only the finest salt. 05:19:36 genuine maldon. 05:20:11 -!- aloril has quit (Ping timeout: 258 seconds). 05:20:18 i love slat, it is the best 05:20:19 salt 05:20:37 how ionic 05:20:50 too much salt makes things yucky 05:20:56 real yucky 05:21:54 http://www.youtube.com/watch?v=oGjcuFzSkqE http://www.youtube.com/watch?v=0yOLKotyDBY <-- i was profoundly affected by this work of art, namely in that it made me want to put salt on everything for the remainder of the month 05:22:04 you wacky americans and your wacky tv shows 05:22:09 so... wacky 05:23:31 this wacky american tv show is so wacky 05:24:19 wow im dying 05:25:11 you should not have juggled knives while chatting on irc 05:26:00 monqy: it's great i love it 05:27:28 "marshmallow...y...ness of the marshmallow" good quotes 05:28:20 monqy: he ends up arguing with mary poppins later i want to know who caused this show to come into being and hug them 05:29:10 missy puffinstuff 05:32:01 monqy: he makes like peanut maple bacon later :( 05:32:07 its so nice ive forgotten what it actually is 05:32:40 right now hes using a ruler to make papercraft 05:33:10 oh god i forgot the toffee he means 05:33:11 with soy sauce 05:33:16 makes 05:33:18 nt means 05:33:21 oh god 05:33:26 it looks delicious 05:33:28 trust me 05:33:29 :< 05:33:48 -!- aloril has joined. 05:35:32 adding soy sauce now 05:36:18 "invented after French sometime after fire, but before the plane" 05:37:02 edible bling 05:39:08 wow did he grow another arm 05:39:13 what 05:39:28 god this caramel looks so lovely in the pan 05:39:30 i want to lick it 05:39:35 how was he holding the knife and the scissors and the pizza cutter 05:39:47 yess break down those glucose and fructose 05:39:54 i don't want them to be atoms any more 05:39:56 caramel plasma 05:41:48 monqy: i love how much of a salt nerd eh is 05:41:52 i dont know what all these salts are 05:41:56 edible 05:41:56 [asterisk]he 05:41:57 bling 05:42:09 sugar that bacon 05:43:00 smoked sea salt mmmm 05:43:46 lol at three and a half hours 05:43:49 for the edible bling 05:44:15 monqy: yes i can confirm he grew another arm 05:44:29 god these look delicious 05:46:22 what do americans consider thick cut bacon 05:46:26 it looks not very thick 05:47:29 "pat it down lightly; don't pat, just give it a pat" 05:47:52 monqy: god on top of ice cream yes 05:48:01 :( 05:48:04 food shows are bad 05:48:12 they make me want to eat more things than people can eat 05:56:11 -!- Lymia has quit (Ping timeout: 240 seconds). 05:56:52 -!- Lymia has joined. 06:03:45 -!- elliott_ has joined. 06:03:57 -!- elliott has quit (Read error: Connection reset by peer). 06:05:05 "Luke, this is Bruce from the FPUG. I really like your idea. It’s very similar to mine, except that I have been working on it full-time for many years and I am putting on the final touches. I know that if I met someone who was almost done with what I was just starting I would have a lot of strong feelings about having my idea and motivation stolen. (Then I’d get over it:) ) The thing is, it was MUCH harder than I ever thought it would be and I had 06:05:05 to learn and invent a lot of mathematics. I also found some really cool things that will totally change the way we interact with computers; e.g., an almost perfect map from the mathematical model of information to natural languages. I also found that what I was doing was really discovery and that there is very close to one way to do it." 06:05:10 hehehe 06:05:14 random blog comments are great 06:05:18 why do i even have this tab open 06:05:22 dunno where it came from 06:06:10 "an almost perfect map from the mathematical model of information to natural languages 06:06:24 http://theslipstream.net/drupal1/sites/default/files/garland_logo.png what the fuck 06:06:27 my crackpot sense is tingling... 06:06:32 oerjan: why do you think i quoted it :D 06:06:42 last time i heard something like that it was vortex math 06:06:44 http://theslipstream.net/drupal1/sites/default/files/garland_logo.png <-- this is the logo of their...thing 06:06:52 Imagine being able to access your documents, files, and applications from anywhere in the world, on any device, at any time. 06:06:52 Imagine customizing your every computer screen according to your needs. 06:06:52 Imagine sharing knowledge at lightning speed and becoming an authority in an information community. 06:06:52 Imagine a world where you are always in control of your personal information. 06:06:52 Imagine a world where medical cures are researched, discovered, and put to market within six months. 06:06:54 Imagine a world where political decisions are made by reason rather than shouting matches at the nearest town hall. 06:07:06 it's going to literally cure disease and politics 06:07:29 wowee 06:07:39 sign everybody up this isntant 06:10:30 -!- Nisstyre has quit (Remote host closed the connection). 06:11:09 -!- Nisstyre has joined. 06:11:34 -!- Nisstyre has quit (Remote host closed the connection). 06:11:47 -!- monqy has quit (Disconnected by services). 06:11:49 -!- monqy_ has joined. 06:11:54 -!- monqy_ has changed nick to monqy. 06:12:36 -!- Nisstyre has joined. 06:13:38 -!- Nisstyre has quit (Remote host closed the connection). 06:14:51 -!- Nisstyre has joined. 06:18:18 -!- sebbu has quit (Read error: Connection reset by peer). 06:18:50 -!- sebbu has joined. 06:18:50 -!- sebbu has quit (Changing host). 06:18:50 -!- sebbu has joined. 06:19:36 monqy: http://www.scribd.com/doc/40697621/Mathematics-Ends-in-Meaninglessness-ie-self-contradiction 06:19:59 all the best papers site mathsisfun.com 06:20:17 2)The Australian leading erotic poet philosopher colin leslie dean points out1+1=1 06:20:17 06:20:17 get a salt shaker 06:20:30 i can prove that aliens exist 06:20:39 AUSTRALIAS LEADING EROTIC POET COLIN LESLIE DEAN 06:20:44 06:20:45 This paper is a case study in regard to the view that all views collapse intomeaninglessness or absurdity or self contradiction. 06:20:46 BeedaWeeda: orly 06:20:49 wtf kind of view is this 06:20:55 yes 06:21:00 monqy: an self-contradictory one 06:21:01 OH THE IRONY 06:21:03 BeedaWeeda: go on 06:21:04 ohohoho 06:21:06 hold on 06:21:08 ok 06:21:10 im holding 06:21:11 im getting the picture 06:21:12 what if its just absurd 06:21:19 or meaningless 06:21:31 Mathematic is noexception Mathematics has many paradoxes which show mathematics ends inmeaninglessness 06:21:45 mathematics: a view???? 06:22:02 * BeedaWeeda internet is really slow 06:22:15 monqy: Reality has paradoxes, so reality ends in meaninglessness. 06:22:18 >:D 06:22:43 BeedaWeeda: do you mean to prove that alien life exists, or that alien life forms have visited Earth 06:22:47 i like these reasons 06:22:54 ) 06:22:55 x can = 1 and .999[bar] at the same time or in other words1=.999[bar]-to infinity ie a finite number = an infinite number- acontradictions in terms 06:22:59 1+1=1 06:23:03 MATHEMATICS JUST AD HOC ARBITRARILY DEFINESAWAY THE SELF-CONTRADICTIONS IN MATHEMATICS IETHE AXIOM OF SEPARATION –which is impredicative and thusinvalid 06:23:07 whoa calm down 06:23:19 MATHEMATICS IS NOT THE LANGUAGE OFTHE UNIVERSE as it is mathematics is just abunch of meaningless symbols connected byrules 06:23:21 elliott_: Both would be fairly interesting. 06:23:23 it got bigger 06:23:34 pikhq_: the former can be proved: whoops probability qed 06:23:35 (though only one would be *surprising*) 06:23:43 so uh 06:23:47 is this paper thing 06:23:50 a joke i hope 06:23:54 elliott_: If the universe is finite, then there's a chance there exists no alien life. 06:23:55 i dont think so 06:23:56 -!- cheater_ has joined. 06:24:04 elliot: aliens have visited earth but i cant prove it, i can only prove they exist 06:24:08 BeedaWeeda: ok, go on 06:24:13 Though it would be more surprising for that to be the case than for there to be aliens. 06:24:34 http://apod.nasa.gov/apod/image/9702/deep_hst_big.jpg 06:24:35 there 06:24:43 that is absolutely proof of extra terrestrials 06:24:45 wow, it's from nasa too, i can believe that 06:24:49 BeedaWeeda: ok can you point to the alien in that image? 06:24:56 its right over there 06:24:58 cant you see it 06:24:59 you will need to use your logic 06:25:13 can you grasp that photograph 06:25:30 that is over 1,000 galaxies 06:25:42 each one has hundreds of trillions of stars 06:25:44 BeedaWeeda: ok: is the proof: There are a huge number of galaxies which are all immensely large in themselves and contain countless numbers of planets; it is absurd to suppose that none of them would have any extraterrestrial life; therefore extraterrestrial life exists? 06:25:54 yes 06:25:55 absolutely 06:25:59 I can accept that, it's obviously not a formal proof but it basically works out 06:26:08 BeedaWeeda: So, you suppose that some of these extraterrestrials have developed faster-than-light travel? 06:26:14 That is the only way they could have visited Earth. 06:26:20 yes 06:26:33 I'm not *quite* willing to accept that, but I'm willing to accept that there's something like a 99.9% chance that there's extraterrestrial life. So, no *notable* argument from me. :P 06:26:47 theres probably a shitload of life within our own galaxy 06:27:01 BeedaWeeda: Why do you believe this? i.e., why do you not instead believe that extraterrestrials have not visited earth, and faster-than-light travel is impossible, as all current physical theories state? 06:27:13 Is it because you have evidence of extraterrestrials visiting Earth? 06:27:14 because 06:27:17 science is primitive 06:27:34 I'm not sure I understand; I'm interested to know what you mean. 06:27:36 we dont really know 06:27:43 well think about it 06:27:47 ... Is your argument "science is primitive therefore aliens", or is there something I'm missing? 06:27:50 how long has science really been around 06:27:55 BeedaWeeda: do you have an objection to the scientific method? 06:28:01 i.e., do you believe it is not an effective way of figuring things out? 06:28:09 or do you just object to current scientific theories? 06:28:14 yes 06:28:19 if so, do you believe that current scientific theories were not developed correctly according to the scientific method? 06:28:50 you are asking too many questions my friend 06:28:58 what 06:29:03 BeedaWeeda: I'm just trying to understand 06:29:12 I don't believe what you believe, but if I ask you questions, 06:29:23 then I can get information about what you believe; and if I think you're convincing, then I could start believing it. 06:29:25 i think science has a lot of dogma 06:29:29 I'm just trying to expand my worldview. 06:29:44 Can I ask another question?: Do you think I've been asking the wrong questions/bad questions? 06:29:48 no 06:29:54 just too fast for me to keep up 06:29:54 OK. 06:30:01 Sorry then. 06:30:03 in what way does science "have" dogma 06:30:27 science is dogma in a lot of ways 06:30:34 ok 06:30:37 BeedaWeeda: ok, here's a simpler question: Why do you believe aliens have visited earth? 06:31:01 -!- CakeProphet has joined. 06:31:01 -!- CakeProphet has quit (Changing host). 06:31:01 -!- CakeProphet has joined. 06:31:12 ufo reports have clearly documented them for the past 60 years 06:31:21 heh 06:31:25 it is clearly 06:31:30 a huge sort of, open secret 06:31:35 BeedaWeeda: do you know what this channel is about, btw? 06:31:42 How does that demonstrate aliens have visited earth? There are many things those could be. 06:31:48 like what? 06:32:01 humans are probably flying them too 06:32:04 BeedaWeeda: oh, wait: did Cocytus send you here? 06:32:09 they did recover crashed discs after all 06:32:20 Hallucinations, military secrets, hoaxes, etc. 06:32:23 wasn't beedaweeda here a few days ago too or was it yesterday or am I confusing him with someone else 06:32:30 the airforce said it themselves after the roswell incident 06:32:38 they quickly changed their story of course 06:32:50 Of course, we can't immediately *rule out* aliens, but it's not the only possible, or even probable, answer. 06:32:50 BeedaWeeda: do you know what this channel is for? just a question 06:33:01 no 06:33:08 BeedaWeeda: programming 06:33:12 lol 06:33:34 freenode is mostly about open source stuff, so you're unlikely to find a relevant channel on this network 06:33:35 i thought this was a kind of occult/paranormal/metaphysics chatroom 06:33:47 =( 06:34:01 did you know 06:34:10 did i nkow what? 06:34:10 you're not the first to think that. 06:34:16 in certain megalithic structures around the world 06:34:19 they find tool marks 06:34:27 making perfect incisions 06:34:33 and drilled holes 06:34:34 did the airforce say that 06:34:39 in megalithic structures 06:34:40 so um 06:34:46 that are like 10,000 years old 06:34:47 did they have electric drills is this what you're saying 06:35:09 they probably had something better than that 06:35:30 mind lasers 06:36:10 do a little research on this place called puma punku 06:36:22 the megaliths found there are freakin huge 06:36:31 and they interlock together like a puzzle 06:36:36 so? 06:36:39 old people had brains, too. 06:36:44 you don't say 06:36:53 some of them way up to 1,000 tons 06:36:55 you mean to tell me people of this time period were moving those!? 06:37:03 have you heard of ropes and stuff 06:37:07 with freakin logs and ropes 06:37:08 pulley type things 06:37:14 its called slave labour 06:37:16 BeedaWeeda: Moving large objects is actually nowhere near as hard as you think. 06:37:34 Only takes a single clever man and some carpentry to pull off, TBH. 06:38:19 some of the megaliths are so perfectly and precisely carved that modern engineers have come forth saying they couldn't even replicate it if they tried 06:38:32 BeedaWeeda: yeah but 06:38:34 there are millions of engineers 06:38:40 and a lot of them believe really stupid stuff 06:38:54 Now, the *cutting* of the structures at Pumapunku is more impressive, and I can't say I have any particular explanation for how that happened. 06:38:59 unless they're experts in their field, "an engineer" saying something means very little 06:39:06 "this engineer is so stupid he couldn't even make a megalith" 06:39:18 Though it must be said, my not having an explanation does not imply that any explanation someone comes up with must be true. 06:39:37 no it means mind lasers 06:39:44 but anyway, whatever the reason is for whatever mysteries of construction remain, there is undoubtedly a simpler answer than "all of our current physics is totally incorrect, and intelligent extraterrestrials built ancient structures" 06:39:49 And zombie Jews. 06:39:56 because "ancient humans built it with this tool or method we forgot about" is WAY simpler than that 06:40:53 mind the lasers, or you may get cut 06:41:28 you clearly 06:41:31 havent researched the field 06:41:34 elliott 06:41:43 i think your speaking out of ignorance 06:42:07 BeedaWeeda: and _i_ think you're a gullible idiot. 06:42:16 sorry, i tried to humour you, but you couldn't justify a single thing to me. 06:42:23 and you are boring too :( 06:42:24 -!- aloril has quit (Read error: Operation timed out). 06:42:29 :( 06:42:55 do you believe in the bible elliott? 06:43:01 haha. no. 06:43:37 oh, so you have activated some of your logic, is that what your telling me? 06:43:43 what 06:43:55 I've activated my logic beams and they're cutting perfect holes into megalithic structures. 06:44:02 Sorry if you get caught in the blast. 06:44:08 BeedaWeeda: I'll make this easy for you. "Extraordinary claims require extraordinary evidence." You have extraordinary claims. Where is your extraordinary evidence? 06:44:09 look at the pictures yourself 06:44:32 those pictures just dont say "mind lasers" to me 06:44:33 anyway, this is off-topic 06:44:39 elliott_: We always are. :P 06:44:45 pikhq_: SSHHHHH 06:45:50 what mind lasers? did i say that or are you making things up? 06:45:58 I DECREE THIS CONVERSATION TO BE NO WEIRDER THAN WHAT WE USUALLY TALK ABOUT 06:46:31 BeedaWeeda: You've basically rejected logic by calling anyone who asks questions that conform to a logical structure of debate closed-minded and ignorant, and telling us instead to basically just decide you're right based on unfounded claims and pictures. 06:46:47 BeedaWeeda: Since you're not being reasonable, we don't have to be either. 06:46:55 You've forfeited your right to a logical debate. 06:47:35 oerjan: Nothing is weird. 06:48:10 UFO's have been documented for hundreds of years, and im not being reasonable or logical by suggesting that aliens are and have been visiting us for a long time? 06:48:34 BeedaWeeda: The documentation of UFOs does not imply there must be aliens. 06:48:37 BeedaWeeda: Those stories are widely regarded by experts to be untrue. 06:48:41 i showed a picture of 1,000 galaxies with quadrillions of stars and suggest that alien life exists, and thats not logical or reasonable? 06:48:46 You didn't provide evidence otherwise or give a reason for dismissing those judgements. 06:48:50 elliott_: experts who havent researched the field 06:48:50 BeedaWeeda: It implies something unknown. 06:48:54 elliott_: (clearly) 06:49:01 BeedaWeeda: Besides, your claims about the megaliths are more important. 06:49:02 BeedaWeeda: When something is unknown, you don't get to fill in the gaps with whatever you feel like. 06:49:06 BeedaWeeda: You haven't justified those at all. 06:49:29 excuse me elliott, im not doing your research for YOU, go research it yourself instead of harping on me to educate you 06:49:40 BeedaWeeda: If you're not trying to educate me, then... go away? 06:49:45 You're the one who said you could prove that aliens existed. 06:49:56 You're the one who then went off on a tangent about UFOs visiting earth. 06:50:01 elliott_: I did actually look into that specific megalith a bit. Pumapunku exhibits some fairly impressive stoneworking. 06:50:10 You are the one who initiated this, so you can't exactly complain that I'm not doing my research. 06:50:23 clearly you havent 06:50:28 you probably believe everything the media tells you 06:50:29 eat your dogma 06:50:30 good boy 06:50:31 what 06:50:32 i 06:50:32 lol 06:50:38 laughing 06:50:38 yes i watch fox news every day 06:50:43 they let me know about the threats to my great country 06:50:48 BeedaWeeda: *Ahahahah*. You think we believe everything the media tells you? Not even slightly. 06:50:51 you probably do 06:50:55 BeedaWeeda: We believe what can be shown by evidence. 06:51:02 BeedaWeeda: im glad that you believe that anyone who disagrees with you on a single thing, must necessarily be a complete sheep 06:51:05 so everyone is either a clone of you 06:51:06 or a sheep 06:51:08 which is great 06:51:14 because it means you never have to take anyone seriously who says you're full of shit 06:51:19 you are a boring idiot go away 06:51:25 (which, incidentally, *is* science.) 06:51:34 pikhq_: you might not want to speak for everyone in the channel. 06:51:43 elliott_: Okay, okay, s/we/I/ 06:51:52 science is (big rocks => mind lasers) shoo 06:52:09 Big Rocks, Mind Lasers -- good album title 06:52:21 elliott, only some fucking moron like you could turn a calm and peaceful discussion into some ridiculous argument like this 06:52:31 welcome to esoteric 06:52:35 home of fucking morons 06:52:40 thanks 06:52:45 BeedaWeeda: Evidence. Do you have it? 06:52:49 eliott has CLEARLY demonstrated that 06:52:51 BeedaWeeda: you realise ive just been doing this for entertainment from the start 06:53:02 BeedaWeeda: Anyway: I was completely civil from you until the moment where you stopped answering my questions and just called me ignorant. 06:53:07 You threw the first stone. 06:53:17 -!- BeedaWeeda has left. 06:53:18 civil with you 06:53:20 bye 06:53:20 ah good 06:53:44 have i upset you i'm sorry 06:53:52 maybe he'll be entertaining now 06:54:04 oerjan cant ban me for this because its not in channel mwa ha ha ha ha 06:54:12 It's amusing how utterly foreign science seems to be for people. 06:54:21 wat 06:54:31 oerjan: im trying to antagonise em in /msg 06:54:39 elliott_........ 06:54:45 what 06:54:52 harrassments not cool 8( 06:54:55 I mean, you'd think "Believe that which can be shown by evidence" wouldn't be hard, but... Holy fuck people. 06:54:57 have i upset you i'm sorry 06:55:01 monqy: thats not harassment 06:55:03 oh ok 06:55:05 thats niceness :( 06:55:08 :( 06:55:19 im going to code more ante-zepto now its good and nice 06:56:00 monqy: oh hey i could hmm 06:57:48 -!- aloril has joined. 06:58:50 -!- oerjan has set topic: Do not feed the elliotts | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 06:59:04 oerjan............ 06:59:07 we were keeping that topic............ 06:59:10 zzo set it and it was amazing..... 06:59:13 we've had it for weeks.... 06:59:50 sorry, i needed to include an important safety message 07:01:02 ALSO NO ONE TOLD ME 07:01:11 oerjan give me some bacon 07:01:28 * oerjan gives elliott_ some bacon ===\__/ 07:01:30 whoops 07:01:32 thx 07:01:35 straight from the pan 07:02:19 "Unlike Heidegger, the Ancient Egyptians were normal people who had normal thoughts." 07:02:51 sounds obvious when you put it that way 07:03:43 normal? they were Ancient Egyptians, they should have ancient thoughts - in egyptian! 07:03:52 they had mind lasers 07:05:43 oerjan: do you think i upset beedaweeda 07:05:48 :( 07:05:58 i will have to track them down in real life and say sorry with a big hammer 07:10:26 oerjan: did you know that carpal tunnel is now illegal 07:10:41 elliott_: um yes you did 07:10:51 ic 07:11:00 oerjan: no, they upset themselves :D 07:11:18 it takes two to tango 07:11:20 -!- CakeProphet has quit (Ping timeout: 252 seconds). 07:11:32 yeah well 07:11:35 hes a poopy head 07:11:36 qed 07:18:58 monqy: ante-zepto is almost three hundred lines : O 07:19:09 are they good lines 07:19:58 yes. 07:20:01 "Once you understand Monads, I think you have made the transition from a beginner haskell programmer to an intermediate haskeller." oh my god what is this shit 07:20:18 what is that shit 07:21:14 Funny, I thought understanding Monads was a trivial exercise. :P 07:22:35 /home/elliott/Code/ante: 07:22:35 total used in directory 28 available 67807276 07:22:35 drwxr-xr-x 2 elliott elliott 4096 2011-07-05 08:17 . 07:22:35 drwxr-xr-x 55 elliott elliott 4096 2011-07-05 04:11 .. 07:22:35 -rw-r--r-- 1 elliott elliott 5982 2011-07-04 10:04 ante.greatawesomegoodyes.hs 07:22:37 -rw-r--r-- 1 elliott elliott 9436 2011-07-05 08:17 ante.yesthebestfuckinganteeverfuckingyessedsozeptoohmygodyouhavenoidea.hs 07:22:40 i have good filenames 07:22:54 im considering... splutting it... into maltiple... fules.... 07:23:46 if you read about monads before having a clue, you'd be likely to conclude that they are really scary and require loads of work to understand 07:23:58 wait you don't have to capitalize module file names? 07:24:17 oerjan: you can name haskell files whatever you want. 07:24:24 "import Foo.Bar" will look at Foo/Bar.hs, though. 07:27:01 monqy: oh god no i cant split it up 07:27:03 its not read 07:27:03 y 07:27:05 not right 07:27:07 :( 07:27:17 i must complete the reader 07:39:22 monqy should i sleep or code zepto and eat bacon 07:39:31 -!- Lymia has changed nick to Lymee. 07:39:32 is it sugared bacon 07:39:37 no 07:39:39 :( 07:39:41 :( 07:41:11 going to cry -> 07:44:29 monqy: im not sure if i can zepto any more 07:44:40 maybe i'll have some bacon while sleeping... 07:44:51 dont choke on it 07:44:59 that might be bad???? 07:45:24 ok 07:45:40 hm, sweet and sour bacon 07:46:03 ok im going to try and find bacon or sleep 07:46:23 too find out watch thing is true....... buy the shirt? 07:59:20 -!- monqy has quit (Quit: hello). 08:34:05 -!- oerjan has quit (Quit: leaving). 08:47:17 -!- Vorpal has joined. 08:51:00 -!- foocraft_ has joined. 08:51:18 -!- foocraft has quit (Read error: Connection reset by peer). 08:57:02 -!- foocraft_ has changed nick to foocraft. 09:24:45 -!- ais523_ has joined. 09:27:48 -!- ais523 has joined. 09:34:31 -!- ais523 has quit (Read error: Connection reset by peer). 09:34:53 -!- ais523 has joined. 10:20:05 -!- falso___ has joined. 10:20:07 Hi sirs! 10:20:24 just to tell that i have released a IDE form Brainfuck for OSX 10:20:27 for 10:20:55 hmm, the world needs more esolang IDEs 10:20:59 even if they are all for BF 10:21:42 next stop: create one for malbolge 10:21:50 http://blol.org/1742-brainfucker 10:22:03 doesnt support INPUT yet, just OUTPUT 10:22:21 its also open sores 10:22:40 `addquote < falso___> its also open sores 10:22:41 481) < falso___> its also open sores 10:22:47 -!- cheater_ has quit (Ping timeout: 250 seconds). 10:22:57 yap, i always say open sores instead of open source 10:23:02 because that just what it is :-P 10:23:03 ais523: hmm... do you think it needs more context? 10:23:10 nah, it's fine as it is 10:25:05 -!- cheater_ has joined. 10:25:21 we need a befunge IDE 10:25:28 They exist 10:25:29 They suck 10:27:10 lol 10:27:11 in that case, we need a decent befunge IDE 10:27:30 im strill trying to understand how that 99 bottles of beer in malbolge was done 10:27:31 still 10:27:41 i wanted to make a simpler algorithm 10:27:54 I've started some very minimal work on one twice but never got anywhere 10:27:55 but dont know how to start..., just bruteforcing every combination 10:28:00 and thats... not really programming 10:28:11 bruteforcing Malbolge has been tried 10:28:13 a friend of mine did a "MALBOLGE-SDK" 10:28:15 it works 10:28:21 it eventually resulted in a hello world, that wasn't even capitalised correctly 10:28:25 i did two algorithms in bruteforce 10:28:30 (as in, random capitalisation for each letter) 10:28:40 nah, its possible 10:28:46 i fixed that Hello World in wikipedia 10:28:52 to the correct capitalisation 10:28:52 :-P 10:30:03 for the bruteforce theres this application: http://www.cs.uit.no/~johnm/code/hacks/ 10:30:11 uses a genetic algorithm 10:30:16 ais523: My first idea is a control flow graph 10:30:40 overlaid on the source 10:31:03 if you guys are interested 10:31:11 --- translated from portuguese to english - http://translate.google.com/translate?js=n&prev=_t&hl=en&ie=UTF-8&layout=2&eotf=1&sl=pt&tl=en&u=http%3A%2F%2Fblol.org%2F735-malbolge-desmistificado&act=url 10:32:04 i really wish i could contact the japaneses that did the 99 bottles of beer 10:32:06 with CYCLES 10:32:13 to understand how did he do that 10:51:33 -!- foocraft has quit (Quit: if you're going....to san. fran. cisco!!!). 10:53:03 -!- cheater_ has quit (Ping timeout: 255 seconds). 11:03:10 hm 11:04:47 -!- Phantom_Hoover has joined. 11:38:31 -!- choochter has joined. 11:46:35 -!- Lymee has quit (Ping timeout: 241 seconds). 12:02:21 -!- Lymee has joined. 12:06:33 -!- Lymee has quit (Ping timeout: 240 seconds). 12:14:43 -!- CakeProphet has joined. 12:14:43 -!- CakeProphet has quit (Changing host). 12:14:43 -!- CakeProphet has joined. 12:17:09 -!- Lymee has joined. 12:27:45 bleh, Ubuntu bug 290204 really makes me lose hope in humanity, or at least small subsets of it 12:27:59 link? 12:28:13 https://bugs.launchpad.net/ubuntu/+source/gnome-session/+bug/290204 12:28:32 basically, shutting down Ubuntu works indirectly by calling shutdown(1) 12:28:36 which plays a beep through the PC speaker 12:28:47 the fix they used was to blacklist the kernel driver for the PC speaker 12:28:51 globally 12:29:04 rather than just adding an option to shutdown to not beep, or using telinit, or, really, anything else 12:31:33 ais523: on the plus side 12:34:45 http://llvm.org/bugs/show_bug.cgi?id=1000 12:36:01 that's just a joke bug, I'm fine with those 12:36:17 its a most excellent joke bug 12:36:25 the best is who it's assigned to 12:38:17 ok, that's enough william hartnell for this what-is-quickly-becoming-an-allnighter 12:51:41 ""The whole notion of replacing π by 2π is silly since we all are very comfortable with π and multiplication by two." 12:51:52 I think this is the best summary of the entire tau movement to date. 13:07:11 -!- oerjan has joined. 13:17:06 oerjan, this is a holdup; comment! 13:17:18 -!- copumpkin has joined. 13:23:04 Phantom_Hoover: and yet mathematicians strive for perfection 13:23:28 note that the physicists found h/2pi to be so useful they invented a symbol for it 13:23:39 coppro, not the kind of perfection that comes from changing some factors. 13:25:27 pi vs. tau is only considered important by the same kind of people who insist on punishing pupils for putting a single line under the final answer when the school rules say there should be two. 13:26:02 * Phantom_Hoover hugs oerjan while still pointing the gun at him. 13:26:28 > let { infixr 6 >=; x >= f = f x } in 10 >= 11 >= (+) 13:26:28 21 13:26:56 > let { infixr 6 >=; (>=) = flip ($) } in 10 >= 11 >= (+) 13:26:59 21 13:27:05 I decided Haskell needed more RPN... 13:27:18 You could've used a new operator for it. 13:27:35 istr F# uses |> 13:28:01 nah, no one uses comparison operators in modern programming anyways 13:28:03 although i think that's infixl 13:28:05 it's all about RPN these days. 13:28:19 Oh, right. 13:28:23 coppro: engineers have separate names for units which are just 1 divided by existing units 13:28:33 ais523: So do physicists 13:28:41 well, it's the same units 13:29:02 This is more because the English language sucks at expressing inverse units 13:29:03 inverse femtobarns ftw 13:29:36 and also to avoid confusion 13:29:36 you coould just add the prefix in- to the unit name. 13:29:52 Infemtobarns. 13:30:03 ingrams 13:30:03 since dimensions do not uniquely identify the physical properties of a unit 13:30:06 that's how adjectives work, anyways... 13:30:17 most of them, that is. 13:30:36 some are un-, some allow both. English is weird. 13:30:46 Unfemtobarns. 13:30:59 I'd prefer in- over un- though, for units 13:31:03 dammit I need a snuggy 13:31:20 also, what the hell is a femtobarn. 13:31:29 is it a really small barn? 13:31:34 CakeProphet, a barn is a unit of area. 13:31:36 like, the kind you keep animals in? 13:31:37 oh. 13:31:41 it is the size of a barn? 13:31:47 rather smaller, i believe :P 13:31:47 A really, really small unit of area; it was used for nuclear physics. 13:32:15 oerjan: this seems like a clever way to advertise a barn your selling, by saying it the size of many barns. 13:32:19 *you're 13:32:22 So wait, speed would be measured in metre-inseconds? 13:32:46 Phantom_Hoover: also known as Galileos 13:32:59 inverse femtobarns is the unit used for measuring the total amount of collision data collected by the LHC 13:33:16 oerjan, seems like an odd unit to use. 13:34:21 i think it somehow measures how small an area they have statistically managed to hit with those collisions, or something 13:34:22 1 barn = 1.0 × 10-28 meters squared 13:34:45 A barn (symbol b) is a unit of area. Originally used in nuclear physics for expressing the cross sectional area of nuclei and nuclear reactions, today it is used in all fields of high energy physics to express the cross sections of any scattering process. 13:34:49 I guess this would explain the choice? 13:34:55 The electric constant would be in square amp-4th seconds-inkilograms-cubic inmetres? 13:35:06 I much prefer microouthouse to femtobarn 13:35:48 so in fact, I could advertise my barn to be the size of over one thousand barns. 13:36:00 and still be technically correct. 13:36:07 except for the whole size not being area thing. 13:36:14 also, really, the unit used for measuring collision rate is finverse femtobarn-seconds 13:36:19 s/fin/in/ 13:36:29 or inverse femtobarn-hours or what have you 13:37:48 if I worked with the LHC I would convert all of my measurements to invese (beardseconds squared)-seconds 13:38:07 *inverse 13:40:03 or I guess it would be (inverse beardseconds squared)-seconds 13:40:25 makes everything completely different... 13:41:08 "Geneva, 17 June 2011. Today at around 10:50 CEST, the amount of data accumulated by LHC experiments ATLAS and CMS clicked over from 0.999 to 1 inverse femtobarn, signalling an important milestone in the experiments' quest for new physics." 13:41:52 "The number signifies a quantity physicists call integrated luminosity, which is a measure of the total number of collisions produced." 13:44:29 1 barn = 4.0 × 10-12 beard second squared 13:44:39 that's 10^(-12) 13:45:01 * Sgeo must not be allowed to fall asleep 13:47:25 * oerjan gently pushes Sgeo into a vat of chloroform 13:48:10 oerjan is such a gentleman 13:50:18 > 5 * 31556926 13:50:19 157784630 13:50:24 a beardyear in nanometers. 13:51:57 ars for dyeing your bears 13:52:46 huh, so the average beard only grows about 15 cm in a year. I guess that makes sense. 13:58:00 * oerjan gently pushes Sgeo into a vat of chloroform 13:58:06 Should've included benzene. 13:59:16 Bye all 14:01:25 "Is benzene and chloroform mixture a good eluent? 14:01:35 " 14:02:33 i find the relevance somewhat elusive, at least 14:04:39 -!- Sgeo has quit (Ping timeout: 250 seconds). 14:06:28 elliott_: how's scapegoat getting on? 14:06:38 I just got into a darcs vs. svn flamewar in my boss's office 14:07:09 oerjan, it's a long story. 14:07:20 and need a version control system that is unambiguously superior to all others in order to justify advocating it 14:07:23 aha. 14:07:51 oerjan: it is also not a particularly good story 14:08:19 oh. 14:09:08 in fact, it's probably not even worth randomly referencing 14:09:10 * ais523 glares at Phantom_Hoover 14:09:25 -!- copumpkin has quit (Remote host closed the connection). 14:09:50 -!- copumpkin has joined. 14:09:50 -!- copumpkin has quit (Changing host). 14:09:50 -!- copumpkin has joined. 14:12:11 * oerjan wonders what ais523 and Phantom_Hoover did, and whether it was entirely legal. 14:12:26 oerjan: I didn't do anything 14:12:33 in fact, I was on the other side of the argument 14:12:47 ic. that would increase the chances it wasn't legal, i guess. 14:12:53 ais523, the BORING side of the argument. 14:13:26 OK, so I was on the boring (and yet legal) side of the argument 14:13:40 Was it really, truly illegal? 14:13:45 I still think it was a better side than yours 14:13:46 Or simply forbidden by unjust laws? 14:13:58 and OK, there are some stupid laws around 14:14:19 but the law in question is an entirely sensible one, and I would likely advocate for its adoption if for some reason it hadn't been introduced 14:15:04 * oerjan wasn't aware that there was some concept of "truly illegal" 14:15:09 Well sure, but you're a joyless automaton with no love for the finer things. 14:15:39 oerjan: probably similar to "illegal and easily enforceable" 14:15:46 oerjan: Phantom_Hoover seems to be using it as "illegal and I agree with it being illegal" 14:16:06 or yes, illegal and unethical. 14:16:14 It was a victimless crime! 14:16:22 Or at least a crime with no victims worth speaking of. 14:16:38 there was nothing of the victim left to complain! 14:16:51 oerjan, I wouldn't go that far. 14:16:58 If anything there'd be slightly more of the victim. 14:17:05 ah. 14:17:24 Phantom_Hoover: well, it never happened (I hope, at least) 14:17:38 so it was victimless in the sense that it was never committed 14:18:11 Sgeo was damnably weak-willed, yes. 14:28:38 You have stumbled upon the difference between music lovers and audiophiles. Music lovers listen to music, where audiophiles listen to stereos. 14:33:17 -!- oerjan has quit (Quit: Good night). 14:37:30 I am a music lover that prefers higher quality speakers, but realizes that there's an upper ceiling where quality begins to matter less. 14:37:45 my laptop speakers aren't cutting it... 14:38:01 but I'll amend this situation when I get my first paycheck Thursday.. 14:39:12 anyways, I'm going to do that thing animals do where there heart rate and brain activity slows down and the eyes experience phases of rapid movement. 14:39:28 *their ...I am messing those up a lot right now. 14:39:33 buy some sennheisers 14:40:49 I will probably begin to hallucinate as I lie in a state of paralysis. 14:40:59 but I will have difficulty remember what it was that I hallucinated. 14:41:04 *remembering 14:55:34 -!- Nisstyre has quit (Ping timeout: 240 seconds). 14:59:43 -!- BeholdMyGlory has joined. 15:27:31 -!- ais523 has quit (Read error: Connection reset by peer). 15:32:49 -!- ais523 has joined. 15:53:31 -!- sebbu has quit (Ping timeout: 260 seconds). 15:54:34 -!- sebbu has joined. 15:54:34 -!- sebbu has quit (Changing host). 15:54:35 -!- sebbu has joined. 16:05:15 -!- monqy has joined. 16:05:52 -!- derrik has joined. 16:10:21 -!- calamari has joined. 16:30:04 -!- MigoMipo has joined. 16:31:28 -!- calamari has quit (Quit: Leaving). 16:49:38 -!- Nisstyre has joined. 16:50:17 -!- derrik has quit (Ping timeout: 240 seconds). 16:52:03 -!- jcp has quit (Ping timeout: 276 seconds). 16:52:12 -!- jcp|1 has quit (Ping timeout: 240 seconds). 17:02:49 -!- ais523 has quit (Remote host closed the connection). 17:03:58 -!- ais523_ has quit (Quit: Page closed). 17:04:55 -!- cheater_ has joined. 17:33:40 -!- Sgeo has joined. 17:38:27 -!- Sgeo has quit (Ping timeout: 264 seconds). 17:42:44 -!- Sgeo has joined. 17:43:15 -!- Wamanuz4 has quit (Remote host closed the connection). 17:47:27 -!- Wamanuz has joined. 17:59:23 -!- azaq23 has joined. 18:31:18 -!- hiato has quit (Ping timeout: 276 seconds). 18:37:13 Need to save power 18:37:43 i recommend rechargeable batteries 18:37:47 -!- Sgeo has quit (Quit: Leaving). 18:37:49 -!- hiato has joined. 18:37:49 those new lithium ones 18:38:31 -!- cheater_ has quit (Ping timeout: 250 seconds). 18:39:36 -!- cheater_ has joined. 18:42:19 -!- pikhq has joined. 18:43:29 -!- pikhq_ has quit (Read error: Operation timed out). 19:14:18 does a double fill only one word in 64-bit systems? 19:14:23 -!- jcp has joined. 19:15:52 double float is 64bits. 19:24:30 http://www.reddit.com/r/pics/comments/elnr4/our_heater_is_shit_so_this_is_how_were/c1915ub 19:24:33 -!- pikhq_ has joined. 19:24:39 Scroll down to the later replies; facepalm. 19:24:40 -!- pikhq has quit (Ping timeout: 252 seconds). 19:27:23 "Here's your evidence: common fucking sense. 19:27:23 But you go on and uh...talk about computers..and kJ of energy..." 19:27:52 Fun fact: these people were being upvoted until someone called in /r/Physics. 19:42:39 -!- jcp|other has joined. 19:51:58 -!- BeedaWeeda has joined. 19:52:09 "Its because oven heating elements generally aren't built for continuous duty, they're designed to cycle on and off. My guess is that some parts that normally don't get hot could get hot and become a fire hazard." 19:52:14 wtf 19:52:19 it's like this guy has never heard of broiling 19:54:01 anyone can find a stupid person on the internet, only the truely talented time wasters actually bother to read them. 19:54:26 -!- Vorpal has quit (Quit: ZNC - http://znc.sourceforge.net). 19:54:40 newsham, I think the thing that hooked me was the fact that the hivemind was initially on the side of the idiots. 19:55:23 most of the people in this thread are not stupid. only about the usual amount 19:55:47 but i'm above and beyond the average time-waster. i'm a time-waster extraordinaire 19:55:52 Yes, but some of them are really stupid, and it seems that they were initially the ones with upvotes. 19:56:08 -!- Vorpal has joined. 19:56:31 maybe people are upvoting the idiots so we can all share in their glory 20:20:59 Yes. That is what we shall tell ourselves from now on. 20:22:21 -!- Lymee has quit (Read error: Connection reset by peer). 20:22:30 http://sttngfashion.tumblr.com/post/5550581072/special-report-star-trek-the-next-generation-a-xxx Best 20:26:50 -!- boily has quit (Read error: Operation timed out). 20:32:44 quintopia: Uh, I could've sworn that a 100% duty cycle was, in fact, designed for in electric heating elements. 20:38:43 -!- Sgeo has joined. 20:50:26 pikhq_: indeed. but it's been an hour since i was talking about idiots on reddit, and the moment has passed 20:52:29 Hmm? 20:53:56 quintopia: Beh. 20:54:52 "Sorry, cows, your skin is really nice-looking when it gets made into shoes and jackets." 20:55:03 Are cows ever actually killed for leather? 20:55:20 I'd've thought that food cows would yield enough. 20:56:27 old milchcows :P 20:56:38 a cow killed for meat and leather is still killed for leather? 20:56:50 i don't actually have many things made of cow leather 20:57:00 some kangaroo leather, some sheep leather... 20:57:08 olsner, I suspect the demand for cows for food exceeds that for leather. 20:57:46 poll question: how would you interpret the following sentence: "Of course, this same person apparently knows casey through six degrees." 21:00:03 Casey from Casey and Andy. 21:00:56 He knows him through six degrees of parallax. 21:02:37 lul 21:04:17 -!- augur has quit (Remote host closed the connection). 21:24:40 -!- Phantom__Hoover has joined. 21:24:44 -!- Phantom_Hoover has quit (Read error: Connection reset by peer). 21:25:00 O...K... 21:25:19 I am arriving at the hypothesis that Wine's D3D support crashes my computer. 21:43:49 -!- MigoMipo has quit (Read error: Connection reset by peer). 21:50:18 -!- NihilistDandy has joined. 21:50:34 -!- augur has joined. 22:10:25 http://www.facebook.com/photo.php?pid=32182066&l=d213217594&id=1055580469 Great advancement in ties, or /greatest/ advancement in ties? 22:11:32 man, content not found is my favorite kind of tie 22:13:48 Gregor, http://wheelof.com/whitney/ 22:13:54 You have been ousted as a composer. 22:14:03 oh dear 22:14:26 oh 22:14:28 that thing 22:14:30 old 22:14:53 Oh. Well then, Gregor has always been ousted. 22:15:04 this is true 22:15:37 he was never even outed 22:17:49 quintopia: Content not found? wtf? 22:18:01 This is supposed to be a "for anyone, even not on Facebook" permalink: http://www.facebook.com/photo.php?pid=32182066&l=d213217594&id=1055580469 22:18:13 And it appears to be the same link I gave before ... 22:18:43 Argh, fuggin Facebook. 22:19:03 if its a pic 22:19:04 http://codu.org/tmp/futuretie.jpg 22:19:23 you can just right click->copy image location 22:19:31 never had that not work 22:19:54 http://a6.sphotos.ak.fbcdn.net/hphotos-ak-snc6/260546_1982623639337_1055580469_32182066_4949751_n.jpg lulsecurity 22:20:23 so you just tied two together backtoback? 22:21:04 Uhh, no, if that was what I had done it wouldn't look anything like that. 22:21:45 HOW SHOULD I KNOW 22:21:50 what did? 22:22:01 Have you never tied a tie before? X-D 22:22:11 Well, that is two ties, but the knot is, to my knowledge, unique. 22:22:44 Not that there's much knot there, it's just an up-and-over for the wide parts, the thin parts are tied for flourish :) 22:23:13 Up-and-over? 22:23:21 I am not familiar with this knot. 22:23:29 Admittedly I only know one tie knot, but still. 22:23:32 it looked about like how i imagine two ties tied in a standard fashion but with their knots intermingled would look 22:23:59 "Up-and-over" is the first step of nearly every tie knot. 22:24:05 -!- terix has joined. 22:24:26 Where you push the long part up through the loop created by wrapping it 'round the short part. 22:24:52 (The only tie knot I know is the Windsor, which is apparently weird.) 22:25:03 It's not particularly weird, no ... 22:25:12 It's the canonical knot, although most people do the pussy half-windsor nowadays. 22:25:40 i usually do either a full windsor or fourinhand 22:25:41 -!- terix has left. 22:25:46 the difference is subtle 22:25:56 so i dont know which it is 22:26:01 quintopia, the difference is huge. 22:26:13 i have a photo 22:26:16 of all the ties 22:26:20 Do you wrap the big end around the small end when tying it? 22:26:28 painted on the side of a building in reykjavik 22:26:43 i can look at that and decide 22:27:53 OK, but it might take a while to get there. 22:27:55 Anyway, this isn't any standard tie knot, as indicated by the fact that it involves TWO EFFING TIES 22:28:08 But anyway, real question: Me wearing a double-tie all the time from now on. Yes/no? 22:28:36 Yes. 22:31:47 i think 22:31:50 you can do better 22:31:57 QUADTIE 22:32:02 http://stackoverflow.com/questions/4272067/what-does-mean-in-mathematica 22:32:17 "The & "pumps in" the variable into the # sign." 22:32:29 Perhaps the worst way to describe anonymous functions? 22:36:27 quintopia: I would need a pretty impressive collar for that :P 22:45:40 and a more impressive know! 22:45:44 *knot 23:02:03 -!- Sgeo has quit (Ping timeout: 255 seconds). 23:25:52 a 23:28:22 12:28:47: the fix they used was to blacklist the kernel driver for the PC speaker 23:28:22 12:28:51: globally 23:28:26 so they solved two problems 23:31:13 13:23:04: Phantom_Hoover: and yet mathematicians strive for perfection 23:31:13 lol 23:31:22 13:25:27: pi vs. tau is only considered important by the same kind of people who insist on punishing pupils for putting a single line under the final answer when the school rules say there should be two. 23:31:29 heh, but I'm not sure that's accurate 23:33:17 Ssh, it's oerjan and he's agreeing with us. 23:33:23 You don't question that, you just accept it. 23:33:43 13:41:08: "Geneva, 17 June 2011. Today at around 10:50 CEST, the amount of data accumulated by LHC experiments ATLAS and CMS clicked over from 0.999 to 1 inverse femtobarn, signalling an important milestone in the experiments' quest for new physics." 23:34:01 I would like to think that the only results kept at the end of the LHC experiments will be the single inverse femtobarn number. 23:34:08 All the rest will be thrown away now that we have THE RESULT. 23:34:13 (It will be 4.) 23:35:11 13:47:25: * oerjan gently pushes Sgeo into a vat of chloroform 23:35:11 Oh, my. 23:35:21 -!- cheater_ has quit (Ping timeout: 255 seconds). 23:37:23 Ah, you're secretly George Takei. 23:37:28 You're getting off on this, I bet. 23:37:40 btw 23:37:48 its odd that his last name is almost "the gay" 23:37:51 george takei was hilarious in larry crowne 23:37:53 thats a lot of pressure 23:38:18 45000 atmospheres 23:47:27 -!- mycrofti1 has changed nick to mycroftiv. 23:47:41 -!- cheater_ has joined. 23:51:35 -!- augur has quit (Remote host closed the connection). 23:55:09 -!- cheater_ has quit (Ping timeout: 255 seconds). 23:56:51 qweuiop 2011-07-06: 00:07:31 -!- cheater_ has joined. 00:12:08 -!- oerjan has joined. 00:19:40 -!- augur has joined. 00:19:55 -!- cheater_ has quit (Ping timeout: 255 seconds). 00:22:19 -!- Patashu has joined. 00:23:38 -!- elliott_ has quit (Remote host closed the connection). 00:24:26 -!- elliott has joined. 00:26:18 * Phantom__Hoover → sleep 00:26:19 -!- Phantom__Hoover has quit (Quit: Leaving). 00:30:31 wertyuio 00:30:34 oiu 00:30:37 qwant 00:30:39 taupe 00:30:43 pestilence 00:30:45 the nine sins 00:31:02 hft? 00:32:41 elliott has been possessed by a demon, sadly. 00:34:11 and now two new cardinal sins will be unleashed upon the world 00:34:32 and some pestilence, but that's hardly new 00:34:58 no that was the list of sins 00:35:01 - wertyuio 00:35:05 - oiu 00:35:05 - qwant 00:35:06 - taupe 00:35:08 - pestilence 00:35:10 those are the nine sins 00:35:24 shoo demon 00:35:57 im a shoe demon 00:36:06 it is a great boon that demons can't count, at least 00:36:28 maybe its nine in a different base 00:36:29 ;-) 00:36:37 casey anthony beat the murder case 00:37:13 oh god 00:37:16 he came back? 00:37:27 its like christmas 00:37:51 maybe elliott has finally met his match 00:39:58 http://codu.org/tmp/futuretie.jpg <-- there are people who wear ties to conform. and then there is Gregor. 00:40:28 why does he wear ties? 00:40:32 to offend? 00:40:55 i assume for the same reason he wears hats 00:41:05 that goes without saying 00:41:08 maybe it's a side effect of hyposmia 00:41:14 but brings me no closer to the truth 00:42:07 what is pretty clear is that whatever he is doing, it's not conforming 00:42:24 would anyone here fuck casey anthony? 00:42:27 unless his peers are in the circus 00:42:46 isnt she dead? eww.. thats gross 00:42:47 14:06:28: elliott_: how's scapegoat getting on? 00:42:48 14:06:38: I just got into a darcs vs. svn flamewar in my boss's office 00:42:56 I explained it to a friend recently, so maybe I'll even work on it 00:43:03 14:07:20: and need a version control system that is unambiguously superior to all others in order to justify advocating it 00:43:04 isnt that he moms name? 00:43:04 It doesn't have to exist to advocate it 00:43:09 i can at least say, who the fuck is casey anthony 00:43:22 casey anthony is the mom 00:43:24 can we not talk about stupid diversionary non-news news stories? 00:43:35 there are lots of other retarded places to talk to retarded people on that subject 00:43:47 id fuck casey anthony 00:43:48 in the ass 00:43:49 oh it's a woman, i was confused the previous talk about casey and andy 00:44:05 i was going to call up augur for expertise 00:44:09 oerjan: Caylee Marie Anthony (August 9, 2005 – c. June 16, 2008)[1] was a child from Orlando, Florida, whose disappearance in June 2008 attracted national media attention. Caylee's skeletal remains were discovered December 11, 2008, six months after she was reported missing by her grandmother, Cindy Anthony.[2] Her mother, Casey Anthony, decided not to report her daughter missing, and was indicted on charges of felony murder, though she continu 00:44:09 ed to maintain her innocence throughout her trial. Casey Anthony was found not guilty of murder, aggravated child abuse, and aggravated manslaughter, but guilty of providing false information to a law enforcement officer. 00:44:11 o.o 00:44:12 *by the 00:44:23 so no caylee is the kid 00:44:35 oh wait 00:44:37 casey is the mother right 00:44:56 -!- newsham has left. 00:45:51 can we not talk about stupid diversionary non-news news stories? 00:45:51 there are lots of other retarded places to talk to retarded people on that subject 00:45:53 concurring with this btw 00:46:03 not that there's been any _discussion_ :D 00:46:05 im gonna get a blow job from casey anthony 00:47:46 oerjan: hes not only stupid and stupid in a boring way but a troll and a troll in a boring way :( 00:48:05 QUADTIE 00:48:08 octotie 00:49:57 oerjan: I wear ties to AVOID conforming :P 00:50:09 If I was in business, I probably wouldn't wear ties :P 00:50:49 if you were in business you might or might not get a choice, afaik 00:50:54 http://codu.org/tmp/futuretie.jpg <-- there are people who wear ties to conform. and then there is Gregor. 00:51:00 well this is definitely the ugliest thing i've ever seen 00:51:02 Gregor that is, nice tie 00:51:08 *sobblecopter* 00:51:09 oh, I should have worded that as "nice tie, though" :( 00:52:22 I am making a pretty goofy face, and my jetlag tiredness makes me look like I have a black eye :P 00:53:05 BeedaWeeda: 95% of the people in this channel are nerds and don't like to mess up our nice geeky channel with woman talk. and the rest are gay. 00:53:17 -!- augur has quit (Remote host closed the connection). 00:54:02 well and then there's oklopol, but he's on vacation. 00:54:09 I like oerjan's definition of woman talk :P 00:54:32 elliott: english compounds are ambiguous 00:55:01 oerjan: I didn't mean that :P 00:55:31 ah. 01:18:10 http://codu.org/tmp/doubletie2.jpg Doubleties are seriously the greatest. 01:18:57 niceties and doubleties 01:19:43 Gregor: tripletie 01:19:45 the challenge is set 01:20:01 elliott: One tie at a time :P 01:20:02 octotie, we said 01:20:11 If I had a long skinnytie, tripletie would be easy. 01:20:56 tie mummification 01:23:37 -!- BeedaWeeda has quit (Changing host). 01:23:37 -!- BeedaWeeda has joined. 01:28:18 BeedaWeeda: it is too late.... the fbi have seen your ip.... 01:29:39 -!- augur has joined. 01:30:51 -!- augur has quit (Client Quit). 01:31:02 -!- augur has joined. 01:34:34 http://codu.org/tmp/doubletie2.jpg augur, behold my amazing invention! 01:36:20 Gregor the gordian 01:36:58 -!- Sgeo has joined. 01:38:04 Gregor: it looks like something youd wear 01:38:29 Well, that's good :P 01:38:31 Gregor: its less ugly than the other one F- 01:38:42 elliott: I'm experimenting with "knots" :P 01:39:52 Gregor: can you get a tie that's a transparent plastic thing filled with multicoloured glow in the dark liquid 01:39:54 wear that 01:40:11 Umm ... I doubt that you can :P 01:41:27 Gregor: why not 01:41:35 that would fucking rock i would wear that all day holy shit 01:41:36 i have to make one 01:41:53 It would be quite a trick to tie :P 01:42:02 If it's thick enough to not break when you try to tie it, it's too thick to tie. 01:42:16 Gregor: The bit you actually tie would get thinner. 01:42:22 (And maybe be made of a bit nicer material :P) 01:42:43 Gregor: You'd need some way to keep all the liquid flowing to make it the most cool though >_> 01:42:51 The bit you actually tie varies depending on the height, build, knot and preferences of the wearer. 01:42:58 Yeah yeah yeah, HAND-TAILORED 01:43:07 Have fun with that :P 01:43:29 Gregor: IT WILL BE SO COOL DO YOU EVEN HAVE ANY IDEA. 01:43:36 Instant rockstar. 01:45:50 what about some kind of paper-thin lcd screen surface 01:46:31 Which also does not break when tied :P 01:46:33 ...i guess we should just wait for the nanofabrics 01:46:55 Gregor: um there are thin bendable transparent oled displays at least 01:47:08 they might even not look like shit in the few years that have passed since I started knowing this 01:47:10 Bendable, or holyfuckmegabendable? 01:47:28 Gregor: Bendable as in "fold it in half with a little bulge at the end and then back over itself" :P 01:47:33 JUST NEEDS A BIT OF TORTURE 01:47:51 oh my god if you had a tie hooked up to a camera on the back of your shirt 01:47:57 so it looked like a hole 01:47:57 best tie 01:48:02 the actual pulling at the knot part might get ugly, there 01:48:22 wait 01:48:25 whatif you had a whole shirt like that 01:48:27 omfg.......... 01:48:46 Elizacat: A whole shirt like that, but wore a tie :P 01:48:47 the half invisible man 01:48:49 Errrg 01:48:54 elliott: Who is Elizacat? :P 01:49:02 Gregor: Somebody who came in here to ping Vorpal. 01:49:59 wait 01:50:00 whatif you had a whole shirt like that 01:50:00 omfg.......... 01:50:02 i think this is actually feasible 01:50:15 i mean shirts don't need to bend THAT much really 01:50:36 also if you made all the non-screen parts out of shiny mirror... yes.... i want this shirt........... 01:51:05 sup 01:51:06 hi 01:51:16 Gregor, I'm a friend of Vorpal 01:51:22 Gregor, we go way back 01:51:24 Elizacat: u r squatting on my nick letter plz rename urself 01:51:32 sod off 01:51:36 Elizacat: im sue you 01:51:43 lul 01:51:46 what jurisdiction 01:51:48 Elizacat: irc 01:51:54 I'll win 01:51:56 I have a better lawyer 01:51:59 im judge 01:52:09 I'm judge, jury, and executioner 01:52:23 im stab you behind back while u talk ha ha.... now ur dead for eva 01:52:32 I don't have a back 01:52:49 what do cats have that is fatally stabbable 01:52:58 specifically, automated therapist program cats 01:53:22 I think we've lost track of the topic here. 01:53:27 Which is how awesome doubleties are. 01:56:47 you know, a mirror shirt would be almost as cool as that idea 01:56:51 and about a thousand times easier 01:56:54 do they exist 01:57:11 google image search results for "shirt made out of mirror" not promising 01:57:33 mirror shirt mirror pants mirror hat 01:58:39 i need to become a ~~rockstar~~ just so i can wear this omg 01:58:44 maybe a rockstar programmer would do 01:58:46 Gregor: get the jquerys 01:58:51 or wait 01:58:52 was that ninja 01:58:53 i forget 01:59:36 mirror shoes 01:59:46 mirror glasses 01:59:48 mirror scarf 01:59:52 mirror cape 02:00:05 i cant have mirror everything monqy 02:00:11 does there exist mirror skin paint 02:06:14 -!- Lymee has joined. 02:06:14 -!- Lymee has quit (Changing host). 02:06:14 -!- Lymee has joined. 02:10:02 -!- pumpkin has joined. 02:10:11 -!- pumpkin has quit (Changing host). 02:10:11 -!- pumpkin has joined. 02:13:28 -!- copumpkin has quit (Ping timeout: 276 seconds). 02:20:15 -!- zzo38 has joined. 02:23:22 Do you know if ais523 has answered the second pokemon card puzzle game? 02:25:06 I do ont 02:25:07 *not 02:27:37 / Don't rename the system principal! 02:27:37 / The JS engine (NewCompartment) relies on this name. 02:27:37 #define SYSTEM_PRINCIPAL_SPEC "[System Principal]" 02:27:37 --caps/src/nsSystemPrincipal.cpp 02:27:42 compartment->systemGCChunks = principals && !strcmp(principals->codebase, "[System Principal]"); 02:27:42 --js/src/jscompartment.h 02:27:46 good coding dot jpg 02:28:29 lol what 02:29:38 why 02:31:06 maybe you're not allowed to include header files from different components 02:33:40 "My source is common sense" 02:33:45 * elliott adds to list of phrases never to say 02:34:14 [1] 02:34:17 1. common sense 02:34:23 *'s edit is reverted :(* 02:36:22 -!- Nisstyre has quit (Quit: Leaving). 02:38:27 -!- Nisstyre has joined. 02:38:45 elliott: man that is the most common sense I've ever seen in code. 02:39:02 board of porpoises 02:39:37 im an artist... of death 02:39:52 i kill people then hide their bodies then never talk about it ever that is my art 02:40:05 all artists are more valuable dead, that's common sense 02:40:10 my next target......... BeedaWeeda 02:40:19 i am working... for the fbi... 02:40:45 03:29:47: * oerjan suddenly has a realization: mime types cannot possibly handle sound data. 02:40:45 the idea is just plain unsound 02:41:05 wait why did i say that 02:41:14 i have _no_ idea whatsoever 02:41:21 also, murdering BeedaWeeda _will_ get you banned. just saying. 02:41:27 03:15:57: eh... scope makes sense in Python... to me anyways... but that's because I've been using it... a lot. 02:41:27 03:16:09: i don't understand scope in python 02:41:27 03:16:40: everything is local unless stated otherwise. 02:41:27 03:16:47: mm hmmm 02:41:27 03:17:16: and a closure is just an encapsulation of the globals() at the time of definition. 02:41:30 03:17:55: so... any idea of what's causing self to be undefined? I'm thinking it might be something with the way you have it set up... can I see the source? 02:41:35 03:19:10: bsmntbombdood.mooo.com/chroot_ircbot.py 02:41:37 03:20:38: argh 02:41:39 03:20:45: I think it would be cool if python.exe could take URLs as pathnames. 02:41:41 03:21:02: so it would interpret a program off of a URL. 02:41:43 03:21:41: this needs a script to start i 02:41:45 03:21:42: t 02:41:47 03:27:34: there, mime types are better 02:41:49 03:29:47: * oerjan suddenly has a realization: mime types cannot possibly handle sound data. 02:41:51 oh thats 02:41:53 a bigger paste than i realised 02:41:55 also, murdering BeedaWeeda _will_ get you banned. just saying. 02:41:57 is crime bannable? 02:42:15 i'm surprised it got through. well, if it all did. 02:42:57 no, it's just the attitude i don't like. 02:43:27 lol at classifying murder as "attitude" 02:43:34 DON'T TAKE THAT MURDERING TONE WITH ME MISTER 02:43:39 #reallybadattitude at that 02:43:53 oh, i got in 02:43:58 :) ))) 02:45:02 also, i still wish i knew what i meant by that mime type comment 02:46:22 alas. 02:47:29 oerjan: i figured it out 02:47:30 oerjan: it's a pun 02:47:46 >_< 02:48:16 got it yet? :D 02:48:25 yeah yeah 02:48:33 oerjan: oh did you know all along... 02:48:37 no 02:48:57 i simply didn't consider that i could possibly have meant to make a pun. the idea! 02:49:55 :D 02:52:38 monqy: soon...zepto...blood... 02:52:51 whose blood 02:53:49 monqy: nonbelievers 02:54:07 bah reddit link crashed my browser 02:56:55 > let ncheck b pos n [] = []; ncheck b pos n (d:ds) = let n' = n*b+d in (if n` mod pos == 0 then id else (pos:)) $ ncheck b (pos+1) n' ds in ncheck 6 1 0 [5, 4..] 02:56:56 : parse error on input `pos' 02:57:13 > let ncheck b pos n [] = []; ncheck b pos n (d:ds) = let n' = n*b+d in (if n' `mod` pos == 0 then id else (pos:)) $ ncheck b (pos+1) n' ds in ncheck 6 1 0 [5, 4..] 02:57:14 [7,9,11,13,16,17,18,19,21,22,23,26,27,29,31,32,33,34,35,36,37,38,39,41,43,4... 02:57:25 oops 02:57:31 > let ncheck b pos n [] = []; ncheck b pos n (d:ds) = let n' = n*b+d in (if n' `mod` pos == 0 then id else (pos:)) $ ncheck b (pos+1) n' ds in ncheck 6 1 0 [5, 4.. 0] 02:57:32 [] 02:57:41 _more_ ncheck? :D 02:57:43 oh this looks optimised 02:57:49 is it optimised 02:57:58 > let ncheck b pos n [] = []; ncheck b pos n (d:ds) = let n' = n*b+d in (if n' `mod` pos == 0 then id else (pos:)) $ ncheck b (pos+1) n' ds in let b = 6 in ncheck b 1 0 [b, b-1 .. 0] 02:57:59 [2,3,4,6,7] 02:58:05 i'm just checking a special case 02:58:10 oops 02:58:12 boring :( 02:58:16 > let ncheck b pos n [] = []; ncheck b pos n (d:ds) = let n' = n*b+d in (if n' `mod` pos == 0 then id else (pos:)) $ ncheck b (pos+1) n' ds in let b = 6 in ncheck b 1 0 [b-1, b-2 .. 0] 02:58:17 [] 02:58:20 i want something i can actually run on thirty-four :D 02:58:29 > let ncheck b pos n [] = []; ncheck b pos n (d:ds) = let n' = n*b+d in (if n' `mod` pos == 0 then id else (pos:)) $ ncheck b (pos+1) n' ds in let b = 34 in ncheck b 1 0 [b-1, b-2 .. 0] 02:58:30 [5,7,13,15,19,21,23,25,26,29,31] 02:58:45 (sorry, failed :P) 02:58:53 > let ncheck b pos n [] = []; ncheck b pos n (d:ds) = let n' = n*b+d in (if n' `mod` pos == 0 then id else (pos:)) $ ncheck b (pos+1) n' ds in let b = 4 in ncheck b 1 0 [b-1, b-2 .. 0] 02:58:54 [] 02:58:54 failed what 02:59:00 > let ncheck b pos n [] = []; ncheck b pos n (d:ds) = let n' = n*b+d in (if n' `mod` pos == 0 then id else (pos:)) $ ncheck b (pos+1) n' ds in let b = 8 in ncheck b 1 0 [b-1, b-2 .. 0] 02:59:01 [5] 02:59:06 > let ncheck b pos n [] = []; ncheck b pos n (d:ds) = let n' = n*b+d in (if n' `mod` pos == 0 then id else (pos:)) $ ncheck b (pos+1) n' ds in let b = 14 in ncheck b 1 0 [b-1, b-2 .. 0] 02:59:07 [5,9,11] 02:59:13 hmph 02:59:18 > let ncheck b pos n [] = []; ncheck b pos n (d:ds) = let n' = n*b+d in (if n' `mod` pos == 0 then id else (pos:)) $ ncheck b (pos+1) n' ds in let b = 28 in ncheck b 1 0 [b-1, b-2 .. 0] 02:59:18 [5,10,11,15,16,17,19,22,23,25] 02:59:45 nah i just realized that base 4 and 6 have solutions of the form (b-1)(b-2)...0 03:00:01 > let ncheck b pos n [] = []; ncheck b pos n (d:ds) = let n' = n*b+d in (if n' `mod` pos == 0 then id else (pos:)) $ ncheck b (pos+1) n' ds in let b = 62 in ncheck b 1 0 [b-1, b-2 .. 0] 03:00:02 [7,9,11,13,16,17,19,21,22,23,25,26,27,29,32,33,34,35,37,38,39,41,43,44,45,4... 03:00:08 thats a big numbro 03:00:08 :( 03:00:14 oh are we sad :( 03:00:35 > let ncheck b pos n [] = []; ncheck b pos n (d:ds) = let n' = n*b+d in (if n' `mod` pos == 0 then id else (pos:)) $ ncheck b (pos+1) n' ds in let b = 16*31 in ncheck b 1 0 [b-1, b-2 .. 0] 03:00:36 [7,17,21,23,29,34,35,37,41,43,46,47,49,51,53,58,59,61,63,64,67,68,69,71,73,... 03:00:39 bah 03:01:05 elliott: i just wanted to see if it worked for either perfect numbers or twice mersenne primes 03:01:18 oerjan: its ok theres a world of laughter in a bone 03:01:19 but nah 03:02:29 oh only one tab actually crashed 03:02:38 you still use IE right :) 03:02:59 sometimes i forget IE is a thing 03:03:29 yeah :P 03:03:52 monqy: you live a peaceful life 03:04:27 a few times a long time ago i tried to do cross-browser web stuff and IE was just the worst thing it made my life hell 03:04:30 elliott: oh and i did have one idea for improving nsearch. as i wrote it it actually recomputes a lot of gcd's. it might be an idea to put the gcd's for a base in an array instead. 03:04:30 this is why i dont do web stuff 03:05:00 > flip replicateM ['a'..'c'] =<< [1..] 03:05:01 ["a","b","c","aa","ab","ac","ba","bb","bc","ca","cb","cc","aaa","aab","aac"... 03:05:03 the fact that it is that easy to test every possible combination of an alphabet makes me want to write some password crackers in Haskell... 03:05:04 my arm is sticky how did that happen... wait i spilled water on it maybe im imagining the water is sticky 03:05:22 > [1..] >>= ['a'..'c'] 03:05:23 Couldn't match expected type `t -> [b]' against inferred type `[a]' 03:05:25 > [1..] >> ['a'..'c'] 03:05:25 also _maybe_ one could split the list of digits by the resulting gcd, but that would mean more complicated deletion. 03:05:26 "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcab... 03:05:28 elliott: maybe you are on acid, or schizophrenic. 03:05:33 > [1..] >>= replicate ['a'..'c'] 03:05:34 Couldn't match expected type `GHC.Types.Int' 03:05:34 against inferred type ... 03:05:37 hmm, what was it... 03:05:44 replicateM 03:06:28 > replicateM 3 ['a'..'c'] 03:06:29 ["aaa","aab","aac","aba","abb","abc","aca","acb","acc","baa","bab","bac","b... 03:06:54 > permutations ['a' .. 'c'] 03:06:55 ["abc","bac","cba","bca","cab","acb"] 03:06:58 :t newArray 03:06:59 Not in scope: `newArray' 03:07:04 oh right oops 03:07:05 :t arrayFromList 03:07:06 Not in scope: `arrayFromList' 03:07:07 im a bad person 03:07:10 argh 03:07:15 > permutations (repeat ['a'..'c']) 03:07:16 [["abc","abc","abc","abc","abc","abc","abc","abc","abc","abc","abc","abc","... 03:07:20 > permutations (cycle ['a'..'c']) 03:07:21 ["abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabca... 03:07:28 argh 03:07:36 I think the function you're looking for... 03:07:44 > map (take 3) . permutations (cycle ['a'..'c']) 03:07:45 Couldn't match expected type `[a]' 03:07:45 against inferred type `GHC.Types... 03:07:49 > map (take 3)( permutations (cycle ['a'..'c'])) 03:07:50 ["abc","bac","cba","bca","cab","acb","acb","cab","cba","abc","bac","bca","a... 03:07:51 is flip replicateM ['a'..'c'] =<< [1..] 03:07:55 CakeProphet: SHADDAP 03:07:57 [1..] >>- flip replicateM ['a' .. 'c'] 03:08:02 > [1..] >>- flip replicateM ['a' .. 'c'] 03:08:04 ["a","aa","b","aaa","c","ab","aaaa","ac","aab","ba","aaaaa","bb","aac","bc"... 03:08:07 hehehehe 03:08:08 ?hoogle LogicT 03:08:09 No results found 03:08:10 ?hoogle Logic 03:08:10 No results found 03:08:12 oh come on 03:08:16 there has to be an equivalent >:( 03:08:26 @src replicateM 03:08:26 replicateM n x = sequence (replicate n x) 03:08:33 @src replicate 03:08:34 replicate n x = take n (repeat x) 03:08:47 when in doubt, expand some functions. 03:08:48 elliott: what is it you _want_ :P 03:09:15 :t combinations 03:09:16 Not in scope: `combinations' 03:09:22 hmm. 03:09:44 that wouldn't help 03:09:56 @src sequence 03:09:56 sequence [] = return [] 03:09:56 sequence (x:xs) = do v <- x; vs <- sequence xs; return (v:vs) 03:09:56 -- OR: sequence = foldr (liftM2 (:)) (return []) 03:10:23 elliott: what is it you _want_ :P 03:10:28 what CakeProphet did, but shorter and prettier 03:10:28 oh right I was thinking of sequence 03:10:30 so that he feels bad. 03:10:37 lol 03:10:39 oh 03:10:45 > sequence "abc" 03:10:46 Couldn't match expected type `m a' 03:10:46 against inferred type `GHC.Types... 03:10:49 WHY NOT 03:10:53 yeah because that code is so ugly, with its flip and stuff. 03:10:54 Char is totally a monad. 03:11:00 CakeProphet: yes it is. you're a terrible person. 03:11:07 > [0..] >=> "pop" 03:11:08 Couldn't match expected type `a -> m b' 03:11:08 against inferred type `[a1]' 03:11:09 > (`replicateM`['a'..'c'])=<<[1..] 03:11:10 ["a","b","c","aa","ab","ac","ba","bb","bc","ca","cb","cc","aaa","aab","aac"... 03:11:12 :t (>=>) 03:11:13 forall a (m :: * -> *) b c. (Monad m) => (a -> m b) -> (b -> m c) -> a -> m c 03:11:16 oerjan: NO NOT LIKE THAT DAMMIT 03:11:36 oerjan: elliott doesn't like bind and replicateM apparently. These are out of the question. 03:11:41 he needs two functions with different names. 03:11:43 :t duplicate 03:11:44 Not in scope: `duplicate' 03:11:46 er 03:12:09 wait I think that's exactly what I wanted 03:12:09 CakeProphet: IT NEED SOMETHING SHORTER AND MORE ELEGANTK[PDFGOFIJGOPRGJRIOTJGORG 03:12:15 > duplicate "x" 03:12:16 Not in scope: `duplicate' 03:12:20 YESS NOT IN SCOPE ERRORS ARE THE BEST 03:12:22 it's already pretty elegant... so, good luck. 03:12:24 I mean 03:12:28 not what I wanted 03:12:29 but 03:12:32 what I was trying to spell 03:12:35 CakeProphet: no its ugly and youre terrible 03:12:37 :( 03:12:38 (i didn';t misspell duplicate) 03:13:17 @src 03:13:17 src . Display the implementation of a standard function 03:13:20 isnt duplicate the comonad thing 03:13:20 oh hm 03:13:24 yes 03:13:27 @src sequence 03:13:27 sequence [] = return [] 03:13:27 sequence (x:xs) = do v <- x; vs <- sequence xs; return (v:vs) 03:13:28 -- OR: sequence = foldr (liftM2 (:)) (return []) 03:13:32 > Control.Comonad.duplicate 03:13:33 Not in scope: `Control.Comonad.duplicate' 03:13:47 Data.Functor.Extend.duplicate 03:13:48 monqy: the [] implementation is tails 03:13:49 it seems 03:13:51 > tails "abcd" 03:13:52 ["abcd","bcd","cd","d",""] 03:14:02 ah 03:14:05 > reverse (tails "abcd") 03:14:05 ["","d","cd","bcd","abcd"] 03:14:09 > map permutations . reverse (tails "abcd") 03:14:10 Couldn't match expected type `[a]' 03:14:10 against inferred type `GHC.Types... 03:14:16 > let f = map permutations . reverse . tails in f "abcd" 03:14:17 [[""],["d"],["cd","dc"],["bcd","cbd","dcb","cdb","dbc","bdc"],["abcd","bacd... 03:14:30 > let f = concat . map permutations . tail . reverse . tails in f "abcd" 03:14:31 ["d","cd","dc","bcd","cbd","dcb","cdb","dbc","bdc","abcd","bacd","cbad","bc... 03:14:36 hmm, that's not right 03:14:38 duh 03:14:40 wow I think you're on the right track. This is becoming so elegant. 03:14:42 > let f = concat . map permutations . tail . reverse . inits in f "abcd" 03:14:44 ["abc","bac","cba","bca","cab","acb","ab","ba","a",""] 03:14:48 > let f = concat . map permutations . tail . inits in f "abcd" 03:14:50 ["a","ab","ba","abc","bac","cba","bca","cab","acb","abcd","bacd","cbad","bc... 03:14:57 CakeProphet: yep 03:15:04 > let f = concatMap permutations . tail . inits in f "abcd" 03:15:06 > [1..]>>=\n->sequence$[1..n]>>['a'..'c'] 03:15:06 ["a","ab","ba","abc","bac","cba","bca","cab","acb","abcd","bacd","cbad","bc... 03:15:06 : parse error on input `->' 03:15:14 > let f = tail . inits >=> permutations in f "abcd" 03:15:15 ["a","ab","ba","abc","bac","cba","bca","cab","acb","abcd","bacd","cbad","bc... 03:15:21 > [1..]>>= \n->sequence$[1..n]>>['a'..'c'] 03:15:22 Couldn't match expected type `m a' 03:15:22 against inferred type `GHC.Types... 03:15:23 ?src inits 03:15:23 inits [] = [[]] 03:15:23 inits (x:xs) = [[]] ++ map (x:) (inits xs) 03:15:25 bah 03:15:31 > (tail . inits >=> permutations) "abcd" 03:15:32 ["a","ab","ba","abc","bac","cba","bca","cab","acb","abcd","bacd","cbad","bc... 03:15:32 CakeProphet: looks good to me 03:15:35 > iterate (take 1) ['a' ..] >>= permutations 03:15:36 ["abcdefghijklmnopqrstuvwxyz{|}~\DEL\128\129\130\131\132\133\134\135\136\13... 03:15:39 oh oops 03:15:49 > iterate (take 1) ['a' .. 'z'] >>= permutations 03:15:50 ["abcdefghijklmnopqrstuvwxyz","bacdefghijklmnopqrstuvwxyz","cbadefghijklmno... 03:15:53 CakeProphet: In fact, omitting the empty string is really arbitrary 03:15:54 > (inits >=> permutations) "abcd" 03:15:55 ["","a","ab","ba","abc","bac","cba","bca","cab","acb","abcd","bacd","cbad",... 03:15:56 OH SNAP MOST ELEGANT 03:16:07 uhh im backwards 03:16:21 elliott: no the empty string is there, you just have to get to the end of the list. 03:16:24 :) 03:16:28 CakeProphet: how inelegant. 03:16:29 > (inits >=> permutations) "01" 03:16:30 ["","0","01","10"] 03:16:36 hm wait 03:16:38 :t >=> 03:16:38 parse error on input `>=>' 03:16:43 :t (>=>) 03:16:43 forall a (m :: * -> *) b c. (Monad m) => (a -> m b) -> (b -> m c) -> a -> m c 03:16:46 > [1..] >>= flip replicateM "01" 03:16:48 ["0","1","00","01","10","11","000","001","010","011","100","101","110","111... 03:16:49 >=> is like composition but for cool dudes 03:16:50 oh 03:16:56 some sort of bind composition? 03:17:01 > inits "abcd" 03:17:01 ["","a","ab","abc","abcd"] 03:17:06 (>>>) is cool too 03:17:10 > inits (cycle "abcd") 03:17:11 ["","a","ab","abc","abcd","abcda","abcdab","abcdabc","abcdabcd","abcdabcda"... 03:17:18 > (inits . cycle >=> permutations) "01" 03:17:19 ["","0","01","10","010","100","010","100","001","001","0101","1001","0101",... 03:17:28 dammit, misses 11 03:18:09 I would say that is equally elegant to using replicateM and bind... 03:18:16 it doesn't work 03:18:18 so it's irrelevant 03:18:37 elliott: i have a hunch you are never actually producing the string "b" 03:18:48 > (inits . cycle) "01" 03:18:50 ["","0","01","010","0101","01010","010101","0101010","01010101","010101010"... 03:18:58 > (cycle) "01" 03:18:59 "01010101010101010101010101010101010101010101010101010101010101010101010101... 03:19:05 > (map cycle . inits) "01" 03:19:07 ["*Exception: Prelude.cycle: empty list 03:19:11 > (map cycle . tail . inits) "01" 03:19:13 ["0000000000000000000000000000000000000000000000000000000000000000000000000... 03:19:15 :D 03:19:19 :t flatten 03:19:19 forall a. Tree a -> [a] 03:19:28 > (`replicateM` ['a'..'z']) =<< [0..] 03:19:29 ["","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r"... 03:19:31 :3 03:20:31 im going to rip your soul from its seams 03:20:33 hmm 03:20:37 lets expand that 03:20:44 concatMap (`replicateM` ['a'..'z']) [0..] 03:20:53 concatMap (\n -> replicateM n ['a'..'z']) [0..] 03:20:55 ?src replicateM 03:20:55 replicateM n x = sequence (replicate n x) 03:21:04 concatMap (\n -> sequence (replicate n ['a'..'z'])) [0..] 03:21:16 > concatMap (\n -> sequence (replicate n ['a'..'z'])) [0..] 03:21:17 ["","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r"... 03:21:26 > (concat . concat . map (\n -> replicate n ['a'..'z'])) [0..] 03:21:28 "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuv... 03:21:39 > sequence ["abc","def"] 03:21:40 ["ad","ae","af","bd","be","bf","cd","ce","cf"] 03:21:42 ugh 03:21:48 > zip ["abc","def"] 03:21:49 Overlapping instances for GHC.Show.Show 03:21:49 ([b] -... 03:22:00 > foldr zip fuck this shit ["abc","def"] 03:22:01 Not in scope: `fuck'Not in scope: `this'Not in scope: `shit' 03:22:14 > transpose ["abc","def"] 03:22:15 ["ad","be","cf"] 03:22:17 eyah working backwards is probably not the best way. 03:23:48 > return . length . (`replicateM` "abc") =<< [0..] 03:23:52 mueval-core: Time limit exceeded 03:24:03 > (return . length . (`replicateM` "abc")) =<< [0..] 03:24:07 mueval-core: Time limit exceeded 03:24:14 well, nevermind I guess. 03:24:25 > (return . length . (`replicateM` "abc")) =<< [0..5] 03:24:27 [1,3,9,27,81,243] 03:25:28 > (length . (`replicateM` "abc")) <$> [0..] 03:25:33 mueval-core: Time limit exceeded 03:25:42 ...see, not sure why it times out. 03:27:50 -!- augur has quit (Read error: Connection reset by peer). 03:28:09 -!- augur has joined. 03:29:05 Haskell sure is awesome. 03:29:32 I'm thinking it should be possible to use combinators to define rhythmic patterns with multiple instruments. 03:31:33 > ['a'..] >>= permutations . enumFromTo 'a' 03:31:35 ["a","ab","ba","abc","bac","cba","bca","cab","acb","abcd","bacd","cbad","bc... 03:31:47 oh my. 03:32:08 agh that only gets the permutations not combinations :( 03:32:44 yeah, to get the combinations you'll probably have to use some other function 03:32:50 like... replicateM 03:32:52 :P 03:32:54 no never 03:33:51 also it's not exactly the same because it adds a character on each length change 03:33:58 this is probably intentional or something? 03:35:13 > dropWhile ((<30).length) $ ['a' ..] >>= permutations . enumFromTo 'a' 03:35:17 mueval-core: Time limit exceeded 03:35:19 lol 03:35:26 > dropWhile ((<26).length) $ ['a' ..] >>= permutations . enumFromTo 'a' 03:35:29 mueval-core: Time limit exceeded 03:35:32 awww. 03:35:56 monqy: the ante-zepto reader is kind of ugly :( 03:36:00 damn you O(n) length calculation for linked lists. 03:36:05 CakeProphet: um 03:36:10 CakeProphet: length fails on infinite lists, if that matters 03:36:19 it doesn't in this case. 03:36:22 > dropWhile ((<26).length) $ (['a' ..] >>= permutations . enumFromTo 'a') 03:36:26 mueval-core: Time limit exceeded 03:36:42 ....whut? 03:36:49 :t dropWhile 03:36:52 forall a. (a -> Bool) -> [a] -> [a] 03:37:41 yeah it's just taking too long because of the thousands of length computations. 03:38:11 well, maybe hundreds since it's permutations? I don't feel like doing the math... :P 03:38:46 > (['a' ..] >>= permutations . enumFromTo 'a') 03:38:48 ["a","ab","ba","abc","bac","cba","bca","cab","acb","abcd","bacd","cbad","bc... 03:39:48 > map(length &&& head) . group . map length $ (['a' ..] >>= permutations . enumFromTo 'a') 03:39:52 mueval-core: Time limit exceeded 03:40:00 > take 5 $ map(length &&& head) . group . map length $ (['a' ..] >>= permutations . enumFromTo 'a') 03:40:02 [(1,1),(2,2),(6,3),(24,4),(120,5)] 03:40:18 CakeProphet: grows like factorial 03:41:05 yeah... 03:41:10 > scanl (*3) 1 03:41:11 Occurs check: cannot construct the infinite type: a = b -> a 03:41:12 -!- azaq23 has quit (Ping timeout: 240 seconds). 03:41:20 > iterate (*3) 1 03:41:21 [1,3,9,27,81,243,729,2187,6561,19683,59049,177147,531441,1594323,4782969,14... 03:41:47 CakeProphet: that's why the first one timed out :P 03:41:56 indeed. 03:42:11 I wanted to see further into the list, when it started using non-alphabetic characters. 03:42:34 ...for no particular reason at all. you could easily just change the starting point of the alphabet, but that's not as fun. 03:42:39 in fact i vaguely recall lambdabot calculates even more before actually cutting it off. or used to. 03:43:18 > iterate (\x -> if x > 80 then let y = y in y else x+1) 1 03:43:21 mueval-core: Time limit exceeded 03:43:35 > iterate (\x -> if x > 200 then let y = y in y else x+1) 1 03:43:38 whut? 03:43:39 mueval-core: Time limit exceeded 03:43:44 > iterate (\x -> if x > 500 then let y = y in y else x+1) 1 03:43:45 [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28... 03:43:53 > iterate (\x -> if x > 300 then let y = y in y else x+1) 1 03:43:54 [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28... 03:44:00 > iterate (\x -> if x > 250 then let y = y in y else x+1) 1 03:44:04 mueval-core: Time limit exceeded 03:44:09 > iterate (\x -> if x > 275 then let y = y in y else x+1) 1 03:44:11 er 03:44:12 that's... odd 03:44:13 mueval-core: Time limit exceeded 03:44:22 > iterate (\x -> if x > 225 then let y = y in y else x+1) 1 03:44:26 mueval-core: Time limit exceeded 03:44:33 > iterate (\x -> if x > 215 then let y = y in y else x+1) 1 03:44:33 is let time consuming or something? 03:44:36 mueval-core: Time limit exceeded 03:44:45 CakeProphet: um that let is an infinite loop 03:44:54 ...oh, right. 03:44:58 > iterate (\x -> if x > 2108 then let y = y in y else x+1) 1 03:44:59 [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28... 03:45:03 > iterate (\x -> if x > 208 then let y = y in y else x+1) 1 03:45:06 mueval-core: Time limit exceeded 03:45:14 too much Perl. :P let y = y in y looked like a nop. 03:45:31 er wait what, i'm binary searching in the wrong direction 03:45:47 > iterate (\x -> if x > 288 then let y = y in y else x+1) 1 03:45:48 [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28... 03:45:53 > iterate (\x -> if x > 280 then let y = y in y else x+1) 1 03:45:56 mueval-core: Time limit exceeded 03:46:01 > iterate (\x -> if x > 284 then let y = y in y else x+1) 1 03:46:02 [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28... 03:46:06 > iterate (\x -> if x > 282 then let y = y in y else x+1) 1 03:46:07 [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28... 03:46:13 > iterate (\x -> if x > 281 then let y = y in y else x+1) 1 03:46:16 mueval-core: Time limit exceeded 03:46:28 > length $ show [1..281] 03:46:29 1017 03:46:33 > length $ show [1..280] 03:46:34 1013 03:46:42 @pl iterate (\x -> if x > 281 then let y = y in y else x+1) 1 03:46:42 iterate (ap (flip if' (fix id) . (> 281)) (1 +)) 1 03:47:16 CakeProphet: so it calculates a bit more than the first 1000 characters, even if the resulting string will be cut off afterwards 03:47:46 > length $ show [1..282] 03:47:47 1021 03:48:13 the value of let y = y in y is <> 03:48:13 duh 03:48:19 (ghc pun, the best kind of pun) 03:48:23 wait its not even a pun 03:48:25 its just a ghc... joke 03:48:29 well lambdabot doesn't use blackholing 03:50:55 > drop 1000 . take 1013 . show . iterate (*3) $ 1 03:50:57 "2042447694583" 03:51:01 oops 03:51:13 > drop 960 . take 1013 . show . iterate (*3) $ 1 03:51:14 "3201,127173474825648610542883299603,38152042447694583" 03:53:13 CakeProphet: so that's about how far it was trying to calculate your (length . (`replicateM` "abc")) <$> [0..] thing :P 03:56:59 > (sequence . (flip replicate <*> length) <=< inits) ['a' ..] 03:57:00 ["","a","aa","ab","ba","bb","aaa","aab","aac","aba","abb","abc","aca","acb"... 03:57:06 victory 03:59:15 > nub . (>>= subsequences) . permutations $ "abc" 03:59:17 ["","a","b","ab","c","ac","bc","abc","ba","bac","cb","ca","cba","bca","cab"... 03:59:25 monqy: i see no "b" there 03:59:33 no victory :( 03:59:36 oerjan: the character set grows with length. 03:59:52 hm 04:00:52 > nub . (>>- subsequences) . permutations $ "abc" 04:00:53 ["","a","b","ab","c","ac","bc","ba","abc","cb","bac","ca","cba","bca","cab"... 04:01:04 not sure what this >>- thing is. 04:01:23 it's from Control.Monad.Logic 04:01:46 > permutations $ [1..] 04:01:46 [[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,2... 04:01:47 fair (>>=) for doing nondeterminism stuff, but really you want to use Logic or LogicT not [] 04:01:48 it's like >>= but interleaves the results from different values in the first part 04:02:15 > map (take 5) $ permutations $ [1..] 04:02:16 [[1,2,3,4,5],[2,1,3,4,5],[3,2,1,4,5],[2,3,1,4,5],[3,1,2,4,5],[1,3,2,4,5],[4... 04:02:25 > nub . (>>= subsequences) . permutations $ ['a'..'z'] 04:02:27 ["","a","b","ab","c","ac","bc","abc","d","ad","bd","abd","cd","acd","bcd","... 04:02:29 > [1..] >>- flip replicateM [1..] 04:02:30 oerjan: not really sure I understand... 04:02:31 [[1],[1,1],[2],[1,1,1],[3],[1,2],[4],[1,1,1,1],[5],[1,3],[6],[1,1,2],[7],[1... 04:02:47 ah 04:03:00 that's... strange. I don't really get the ordering. 04:03:01 CakeProphet: look at that example. if i used >>= it would never get beyond the length 1 lists 04:03:13 ah yeah I see that. 04:03:30 "hello" >>- repeat 04:03:34 > "hello" >>- repeat 04:03:35 "hehlhehlhehlhehohehlhehlhehlhehohehlhehlhehlhehohehlhehlhehlhehohehlhehlhe... 04:03:37 > "hello" >>= repeat 04:03:37 "hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh... 04:03:39 so that would be useful for things like getting the set of all strings matched by a regular expression. 04:03:40 -!- pikhq has joined. 04:03:47 -!- pikhq_ has quit (Ping timeout: 252 seconds). 04:03:54 CakeProphet: it is rather simplistic. the first value is used every second time, the second value every fourth time, etc. 04:04:05 CakeProphet: yeah probably 04:04:33 I should try using/understanding the actual Logic/LogicT sometime 04:05:04 (I have the paper but it's on my reading pile) 04:06:02 > return "a" <|> return "b" :: Logic String 04:06:03 No instance for (GHC.Show.Show 04:06:03 (Control.Monad.Logic.Log... 04:06:06 darn 04:06:22 :t return "a" <|> return "b" :: Logic String 04:06:22 Logic String 04:06:37 :t runLogic 04:06:38 forall a r. Logic a -> (a -> r -> r) -> r -> r 04:06:45 yes I'll have to read about Logic as well. 04:06:51 hm how does that work 04:07:25 oh right 04:07:54 elliott: I win at finding an alternative to my own already very elegant code. OH YEAAAH. 04:08:06 but the alternative is less elegant. 04:08:07 > (return "a" <|> return "b" :: Logic String) ((.).(:)) "" 04:08:08 Couldn't match expected type `t1 -> t2 -> t' 04:08:08 against inferred type ... 04:08:09 er 04:08:13 > runLogic (return "a" <|> return "b" :: Logic String) ((.).(:)) "" 04:08:14 Couldn't match expected type `[GHC.Base.String]' 04:08:14 against inferred t... 04:08:16 but it implements a degree of common sense that the other lacks. 04:08:17 darn 04:08:23 > runLogic (return "a" <|> return "b" :: Logic String) ((:)) "" 04:08:24 Couldn't match expected type `[GHC.Types.Char]' 04:08:24 against inferred ty... 04:08:34 oh 04:08:41 > runLogic (return "a" <|> return "b" :: Logic String) ((:)) [] 04:08:42 ["a","b"] 04:09:03 oh my. 04:09:27 CakeProphet: on the plus side, it was obvious from the type of runLogic :P 04:09:35 indeed. 04:10:21 looks like <|> constructs a fold over the function supplied by runLogic 04:10:32 ? 04:10:37 > runLogic (return "a" `interleave` return "b" `interleave` return "c" :: Logic String) ((:)) [] 04:10:37 ["a","c","b"] 04:10:54 (<|>) is from Alternative 04:10:57 :t (<|>) 04:10:58 forall (f :: * -> *) a. (Alternative f) => f a -> f a -> f a 04:11:17 > "abc" <|> "def" 04:11:17 "abcdef" 04:13:01 CakeProphet: um <|> is backtracking choice, i guess. and then instead of concatenating the choices directly, the r -> r trick gives you an optimization similar to using ShowS instead of (++). i guess. 04:15:38 > foldl' interleave "" $ map return "scramble" 04:15:39 "selbmarc" 04:15:53 > foldr interleave "" $ map return "scramble" 04:15:54 "scramble" 04:16:02 disappointing :P 04:16:41 > printStrLn ":D" 04:16:42 Not in scope: `printStrLn' 04:16:48 > putStrLn ":D" 04:16:49 04:16:53 Lymee: no IO in lambdabot 04:16:56 > execute-your-damn-io 04:16:57 Not in scope: `execute'Not in scope: `your'Not in scope: `damn'Not in scope... 04:17:13 Heh. 04:17:15 Lymee: try EgoBot 04:17:19 Guess sandboxing is /really/ easy in Haskell. 04:18:06 Lymee: that's the idea. although they are also excluding some type extensions which can be used for loopholes, iirc 04:18:53 I wonder. 04:19:02 How low level of stuff you can you do with pure Haskell? 04:19:06 anything which can be used to implement unsafeCoerce, i assume 04:19:16 define "pure" :P 04:21:02 Heh. 04:21:04 How hard would it be to implement a kernel if you added a few low level CPU-specific assembly routines as IO actions? 04:21:12 -!- derrik has joined. 04:22:00 Lymee: it's not that easy 04:22:08 you need garbage collected memory management, at least 04:22:19 it's very hard to write haskell code that doesn't cons :D 04:22:35 Lymee: basically you need an RTS. 04:22:48 GHC's depends on libc, but not _that_ much of it 04:23:06 So you'd need to implement some low level functions that Haskell depends on. 04:23:26 no. 04:23:27 as I said: you need an RTS. 04:23:31 that is more than just a few functions. 04:23:56 GHC's is 50,000 lines, a quick google tells me 04:24:10 although you hardly need the byte-code interpreter, or profiling 04:24:22 and the memory manager is likely to be rather suboptimal for an OS... 04:24:32 So... 04:24:42 Maybe a Haskell userspace might be a less horrible idea. 04:24:49 there are multiple Haskell kernels. 04:24:59 it's just not as easy as you seem to want :) 04:25:02 -!- azaq23 has joined. 04:25:49 hOp, House, that updated fork of House that I forget the name of, and that other project I forget the name of 04:34:38 haskell kernels do horrible things to your memory. also, amortization. 04:36:41 oerjan: is this a pun or an opinion :D 04:36:52 yes. 04:37:17 also i just thought i'd write down that word while i remembered it. 04:37:19 oerjan: WHICH 04:37:23 :D 04:41:16 ?hoogle showAtBase 04:41:17 No results found 04:41:22 ?hoogle base 04:41:23 package base 04:41:23 Text.Html base :: String -> HtmlAttr 04:41:23 Text.XHtml.Frameset base :: String -> HtmlAttr 04:41:24 ?hoogle showBase 04:41:24 No results found 04:41:25 :t showIntAtBase 04:41:26 forall a. (Integral a) => a -> (Int -> Char) -> a -> String -> String 04:42:00 hmm what's the third argument 04:42:23 > showIntAtBase 2 intToDigit 255 "" 04:42:24 "11111111" 04:42:32 oh 04:42:33 right 04:42:36 :D 04:44:07 -!- augur has quit (Read error: Connection reset by peer). 04:44:18 -!- augur has joined. 04:44:31 -!- IanWizard has joined. 04:45:00 I made a program in TeX for overlaying every page of output with a grid. I also made a program in TeX for overlaying specific pages with pictures from plain PBM files. 04:45:15 The #brainfuck topic said to come here. 04:47:29 indeed 04:47:50 oerjan: i feel our current topic may give some UNWARRANTED FIRST IMPRESSIONS to newbies :D 04:48:32 you misspelled ENTIRELY ACCURATE 04:48:53 I've been googling, but can't find anything... I've never used BF before, would it be possible to read from a file and do math based on what's in the file, with BF? 04:49:11 basically, does it support reading in a file in any way? 04:49:19 IanWizard: only standard input 04:49:25 IanWizard: No, it only supports (in UNIX terms) stdin and stdout. 04:49:38 which may come from a file though 04:49:49 You could redirect stdin from a file 04:50:14 IanWizard: CLEARLY YOU NEED PSOX 04:50:14 ^ 04:50:16 [injoke rimshot] 04:50:29 elliott: hey i was pondering whether to mention PSOX 04:50:42 I was *trying* to mention PSOX, but had forgotten the name. 04:51:12 * Sgeo still has PSOX on ping, apparently 04:51:17 psox psox psox psox psox psox psox psox psox psox psox 04:51:50 IanWizard: PSOX is a wrapping layer which can be used to give BF (and possibly other esolangs) extra capabilities 04:52:01 What does "PSOX on ping" mean? 04:52:20 zzo38, I have my client set up to hilight if it sees PSOX just the same as if it saw my nick 04:52:20 zzo38: that his client pings him when it's mentioned 04:52:49 oerjan: it's also very dead 04:52:56 i don't think we need to _recommend_ it to anyone ;D 04:53:21 It's only dead because people other than me had 0 interest, so I lost interest 04:57:04 -!- CakeProphet has quit (Ping timeout: 264 seconds). 04:58:38 -!- augur has quit (Read error: Connection reset by peer). 04:58:47 -!- augur has joined. 05:01:42 -!- augur has quit (Read error: Connection reset by peer). 05:01:59 -!- augur has joined. 05:03:27 Now you can include picture in your document while still remaining device independent, not using any specials or nonstandard fonts or anything like that. The quality is not perfect but it should be good enough for some purposes. However, you have to decide the placement manually. 05:04:51 -!- augur has quit (Read error: Connection reset by peer). 05:05:12 -!- augur has joined. 05:06:00 One command might be useful in TeX, is the command \hidecs takes a control sequence of two or more letters and damages its entry in the hash table. 05:11:13 -!- augur has quit (Read error: Connection reset by peer). 05:11:25 -!- augur has joined. 05:13:53 -!- IanWizard has quit (Quit: Leaving). 05:19:10 @hoogle Alternative a => [a x] -> a [x] 05:19:11 Control.Applicative many :: Alternative f => f a -> f [a] 05:19:11 Control.Applicative some :: Alternative f => f a -> f [a] 05:19:11 Prelude sequence :: Monad m => [m a] -> m [a] 05:19:54 > many . map pure $ "abc" :: String 05:19:55 Couldn't match expected type `GHC.Types.Char' 05:19:55 against inferred type... 05:20:02 :t many . map pure $ "abc" 05:20:03 forall (f :: * -> *). (Applicative f) => [[f Char]] 05:20:21 oh wait 05:20:38 @hoogle Alternative a => [a x] -> a x 05:20:39 Data.Foldable asum :: (Foldable t, Alternative f) => t (f a) -> f a 05:20:39 Control.Monad msum :: MonadPlus m => [m a] -> m a 05:20:39 Control.Applicative (<|>) :: Alternative f => f a -> f a -> f a 05:23:05 I do not get haskell's existential qualifiers 05:23:13 hm? 05:23:40 Like, I understand how they are used 05:24:02 what don't you understand? 05:24:08 -!- zzo38 has left. 05:24:12 it may help to know that typeclasses can't always be resolved statically 05:24:15 and there's typeclass dictionaries for this purpose 05:24:22 (a lot of people think all typeclass resolution is done at compile-time, which is just not true) 05:24:42 so e.g. data Foo = Foo (forall a. (Num a) => a) will store the Num dictionary in there 05:24:45 or I forget the syntax, but yeah 05:25:37 but I do not understand you get from the universal qualifier to using it for existential purposes 05:26:15 like, (forall a. Num a => a) is something that is all Nums 05:26:36 data Foo = forall a. Num a => Foo a 05:27:20 oerjan: So is Foo a mean that "a" is a Num or that "a" is all Nums? 05:27:26 like, (forall a. Num a => a) is something that is all Nums 05:27:26 no 05:27:35 well 05:27:37 that's not a good type to use 05:27:41 because i got it wrong :) 05:27:53 coppro: it means that a is a Num 05:27:58 but note that the type of (Foo x) is Foo 05:28:00 coppro: it means that for all a s.t. Num a, Foo a is a value of type Foo a 05:28:02 not (Foo a) for some a 05:28:05 oerjan: nope 05:28:20 er oops 05:28:24 *of type Foo 05:28:26 -!- derrik has quit (Quit: left). 05:28:27 coppro: 05:28:35 elliott@katia:~$ cat >foo.hs 05:28:35 data Foo = forall a. Num a => Foo a 05:28:35 elliott@katia:~$ ghci -XExistentialQuantification foo.hs 05:28:35 *Main> :t Foo 9 05:28:35 Foo 9 :: Foo 05:28:35 *Main> :t Foo 05:28:37 Foo :: Num a => a -> Foo 05:28:41 hth :P 05:29:26 coppro: it is essentially defining an existential _type_ by writing down the _universal_ type of its constructor 05:29:32 oerjan: Oh ok 05:29:43 thanks 05:30:21 oerjan: what, that is the last thing i'd expected to have worked as an explanation... 05:30:27 clearly i misunderstood the nature of coppro's misunderstanding :D 05:30:34 coppro: although that is much clearer with the GADT syntax 05:30:37 yeah 05:30:39 data Foo where 05:30:42 Foo :: (Num a) => a -> Foo 05:30:48 implicit "forall a." after that :: ofc 05:30:54 that's why i showed the constructor type 05:30:57 above 05:32:57 yeah I really like GADT 05:43:42 -!- oklopol has joined. 05:43:49 * oklopol feeds elliott 05:43:55 sup 05:43:56 NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO 05:44:07 sup U 05:44:09 * oerjan prepares the gremling catcher 05:44:10 finally a straight non-nerd in the channel!!!!!!!!!! 05:44:13 *-g 05:44:18 OUR LONG TEMPORARY NATIONAL OERJAN-INDUCED NIGHTMARE IS OVER 05:44:58 elliott: would you have been available this week out of q 05:45:13 'fraid not 05:45:15 good 05:45:31 because i'm here now 05:45:35 oh is that good, im gonna go drop everything then and get on a plane somewhere to do something totally non-required 05:45:37 back on #eso 05:45:58 thats the ESO channel stupid 05:46:18 european space organization 05:46:23 it's also the nickname of #esoteric 05:47:05 my nickname for #esoteric is esoteric 05:47:21 well your nickname is wrong then 05:47:22 that couldn't possibly cause any confusion whatsoever 05:47:25 monqy: oh? what is it? 05:47:36 esoteric 05:47:48 yes, you said that, but what _is_ it 05:48:28 :D 05:48:39 i love irc 05:49:57 very ircsome 05:50:10 i still don't really get " oh is that good, im gonna go drop everything then and get on a plane somewhere to do something totally non-required" 05:50:20 oklopol: 05:50:20 oklopol> elliott: would you have been available this week out of q 05:50:20 'fraid not 05:50:21 good 05:50:24 wanted to do something really availableish 05:50:32 "look at me all doing these things because they sound like fun" 05:50:38 "coulda been all with oklopol but i hate him haha" 05:50:53 ah 05:51:13 yeah well it's not like i actually wanted to meet you you piece of nigger 05:51:30 racism is illegal oklopol 05:52:00 who's being raciist 05:52:02 *racist 05:52:17 no one 05:52:41 they wouldn't let a black guy in my room in paris because he was black 05:53:10 why have neither xkcd nor girl genius updated yet :( 05:53:34 oerjan outs himself as an xkcd reader 05:53:43 no oerjan............ no stop.................. 05:53:46 it's not precisely a secret 05:53:47 wow there's an oxymoron 05:53:59 (should be deprived of)oxy(gen )moron 05:53:59 girlzngames hasnt updated for a month :( 05:54:00 what oxymoron? 05:54:20 oklopol: ARE YOU INSULTING THE GREAT AGATHA HETERODYNE? 05:54:48 monqy: is that bad, i looked at it but im too tired to really interpret 05:55:06 * elliott checks. unfortunately, ctrl-alt-del updated today. 05:55:09 i will find a good one 05:55:12 oerjan: no i was being sexist because i had a good bigot spree going on 05:55:17 ah. 05:55:29 you norwegian fisher homo 05:55:36 monqy: its on the bad webcomics wiki along with every other webcomic in existence 05:55:40 http://www.girlzngames.com/comics/2010-12-22-Christmas-Gamer-Greetings.jpg classic 05:55:49 oh 05:55:51 wow 05:55:56 yes 05:55:56 that's impressive 05:56:30 http://www.girlzngames.com/comics/2011-01-05-Feel-the-Love.jpg 05:56:42 monqy: have you ever read Minimum Security, it's this anarcho-primitivist comic, and it's just so amazing 05:56:47 it stars a bunch of animals 05:56:48 and they like 05:56:53 fuck up nuclear power plants 05:56:55 and free entire zoos 05:56:57 sounds amazing 05:56:58 and have guns 05:56:59 and jesus 05:57:03 its just so disturbing 05:57:17 http://stephaniemcmillan.org/ 05:57:19 guh where is it 05:57:25 oh maybe its the comic category 05:57:39 Minimum Security has gone through several phases. From 1998-2004, it was a weekly editorial cartoon, commenting on the most egregious outrages of the day. In 2005, I started using regular characters. The cartoon got picked up by United Media’s comics.com, where it evolved into a more humorous, gag-a-day comic strip with some sequential stories. 05:57:41 d/win 4 05:57:43 oh my god shut up just give me a link 05:57:55 monqy: but yeah it's lit. the scariest comic 05:58:01 Victoria: A guinea pig with a vision, she’s the brains of the Resistance and its Minister of Agit-Prop. She’s all about plan, strategy, tactics, ideology and method. Possessing logic, clarity and a magnificent ego, she fancies herself the furry, potato-shaped mastermind of the revolution. 05:58:10 Bananabelle: Kranti’s best friend since preschool, Bananabelle is a lovely, cheerful person with a good heart, but her loyalties are divided. A sustainable economy, or swanky shoes? She’d like both. She’ll help out at a community garden or attend a protest, but she’s not sure about all this revolution business – a little love and being a good example ought to be sufficient. 05:58:16 Chip: The cultured son of a major corporate bigwig, he has everything except the one thing he really craves: Kranti’s love. He’d settle for her lukewarm indifference, but he doesn’t even get that. When he calls her on his diamond-studded, solid gold cell phone, she never answers — alas, alas. Bananabelle, however, thinks he’s the hottest thing since this season’s Manolo Blahniks. 05:58:18 jesus 05:58:22 oh god 05:58:23 Bunnista: He’s an action-oriented rabbit, furious about the shrinking wilderness, the vivisection that took his eye, and pretty much everything else as well. Impatient with the fine points of political philosophy, all he wants is to destroy human civilization. His favorite method is blowing up infrastructure. 05:58:25 that's the best character 05:58:33 THE VIVISECTION THAT TOOK HIS EYE 05:58:44 and pretty much everything else as well 05:58:50 monqy: pretty sure that Bunnista is a protagonist btw 05:58:59 "Impatient with the fine points of political philosophy, all he wants is to destroy human civilization. His favorite method is blowing up infrastructure." <-- good guy 06:00:13 is he actually supposed to be a good guy or does minimum security not have real life morals 06:00:24 either way what 06:00:33 either way/regardless 06:01:09 monqy: anarcho-primitivist remember 06:01:11 so yes, no morals 06:01:28 -!- azaq23 has quit (Quit: Leaving.). 06:01:51 i meant like how fairy tales have moral lessons is minimal security supposed to be how it's good to be angry and blow up infrastructure 06:02:13 * oklopol likes many of the new xkcd's 06:02:19 i thnk its just about how all civilisation is bad and anybody who doesnt want to blow it up is bad 06:02:36 told through really disturbing ~jokes~ with anthropomorphic animals doing terrible (= good) things 06:03:29 who cares about moral lessons when there's explosions and violence involved 06:03:56 philosophy crap < explosions and violence < sex 06:07:53 http://en.wikipedia.org/wiki/File:Minimumsecurity.jpg oh wow 06:07:55 is this real 06:07:56 was this published 06:11:39 ?unmtl StateT s m a 06:11:39 s -> m (a, s) 06:12:39 ?unmtl giytvfrde 06:12:39 giytvfrde 06:13:26 i think i won't do anything today or tomorrow or the day after that or the day after that or the day after that 06:13:38 or the day before today 06:13:48 i did a lot yesterday 06:15:27 -!- augur has quit (Read error: Connection reset by peer). 06:15:38 -!- augur has joined. 06:15:46 for instance i learned that if i want to get a hot barely legal girlfriend all i have to do is to stop working, use drugs for the next 10 years and get some brain damage 06:16:44 seemed to have worked for this one dude at least, he had a rather disfigured face as well 06:17:28 ?unmtl RWST a b (RWST b a (RWST a b ST)) a 06:17:28 err: `RWST a b (RWST b a (RWST a b ST)) a' is not applied to enough arguments. 06:17:35 oerjan: where's IO's Monad instance :( 06:17:53 ?src IO >>= 06:17:53 Source not found. I feel much better now. 06:18:00 ?src IO (>>=) 06:18:00 m >>= k = bindIO m k 06:18:09 ?src bindIO 06:18:09 Source not found. I've seen penguins that can type better than that. 06:18:22 i meant in ghc :P 06:18:23 * elliott grep 06:18:24 s 06:18:24 penguins don't have fingers 06:18:49 ah, GHC/Base 06:18:51 .lhs 06:18:54 Penguins *do* have phalanges, however. 06:18:54 for bindIO 06:18:58 and the instance 06:19:46 elliott: http://www.haskell.org/ghc/docs/latest/html/libraries/base-4.3.1.0/src/GHC-Base.html#Monad 06:20:09 pikhq: well who doesn't 06:20:23 oklopol: Non-vertebrates. 06:20:40 And a very small handful of vertebrates. 06:21:09 this is bizarre 06:21:38 if i say non-vertebrates don't count, am i being phylist or what? 06:21:58 the instance defines (>>) in terms of (>>=), and exactly the same of as the default instance, but there's thenIO, which looks like it does the (>>) stuff 06:22:05 oklopol: There's much more non-vertebrates than vertebrates, even if we only consider the animal clade. 06:22:09 oh vertebrates is a subphylum 06:22:42 pikhq: there's also more primes than non-vertebrates, but you can't really have a conversation with most of them 06:23:08 at least not a very *product*ive one 06:23:18 Also, fuck Linnaean taxonomy. 06:23:49 that's a very taxonomist thing to say 06:23:58 Clades are the only form of super-species grouping that make any sense at all. 06:24:04 all taxonomists are created equal you know 06:24:08 *taxonomies 06:26:43 * pikhq dislikes classification that is devoid of meaning 06:26:47 ?unmtl RWST a b ST a 06:26:47 err: `RWST a b ST a' is not applied to enough arguments, giving `/\A. a -> ST -> a (A, ST, b)' 06:26:51 * pikhq likes even *less* classification with negative meaning. 06:27:29 ?unmtl RWST a b m a 06:27:29 err: `RWST a b m a' is not applied to enough arguments, giving `/\A. a -> m -> a (A, m, b)' 06:27:33 ?unmtl RWST a b m a x 06:27:34 a -> m -> a (x, m, b) 06:27:40 how well does having a tree work for species classification? i mean usually you get the problem that you have to choose the order of branchings, say when you want to separate blue animals from red and animals with big dicks from ones with small dicks; does the fact that you will often be kind of following when the species actually temporally branched solve this 06:27:51 do you get what i mean 06:28:07 ?unmtl RWS a b m x 06:28:07 a -> m -> (x, m, b) 06:28:19 oh hm 06:28:30 oklopol: Tolerably, but you do get very confusing edge cases. 06:28:30 oerjan: hm implementing IOT is hard 06:28:35 (things to say to scare oerjan) 06:28:39 Ring species despise you. ;) 06:28:54 ?unmtl RWST a b c (RWST b c a (RWST c a b ST)) a 06:28:54 a -> c -> b -> a -> c -> b -> ST (a, c, b, a, c, b, a) 06:29:28 Though, that problem is pretty inherent in any model which assumes that there are strict boundaries delimiting "species". 06:29:36 When there really aren't. 06:30:27 With the common definition of "Can they breed together?", how do you distinuish between different asexual species? 06:30:45 can they breed together is problematic because of aforementioned rings 06:30:51 i guess 06:30:54 also 06:31:22 elliott: SMTT. fnord. 06:31:26 that it's not a transitive relation 06:31:29 er 06:31:35 *elliott: STMT. fnord. 06:31:41 nice :D 06:31:43 oerjan: i've written STT, mind you 06:31:50 oh maybe i should just reuse it? 06:31:53 it's kind of lame though 06:31:56 Sgeo: The mere notion of what a "species" *is* is one of the big questions in biology, TBH. 06:31:59 wait, it only actually handles STRefs 06:32:07 newtype STT s m a = STT (STTState s -> m (a, STTState s)) 06:32:08 well sort of 06:32:09 but anyway 06:32:31 elliott: ghc _does_ make IO almost equivalent to ST RealWorld... 06:32:48 (only a couple newtype wrappings away) 06:33:05 ?src IO 06:33:05 Source not found. :( 06:33:12 NO FUN 06:33:15 oerjan: yeah, but mine is a pure-apart-from-unsafeCoerce-for-heterogeneous-maps STRef-only ST 06:33:17 Sgeo: But, generally, one simply picks a definition that makes sense in the context you're dealing in. 06:33:22 so it's not really applicable here 06:34:11 Sgeo: With asexual species, one would most generally resort to "things with a preponderance of similar traits." or some such. 06:35:18 we could have aRb if creature a can breed with creature b, then define species as equivalence classes of S, another equivalence relation such that aSb iff aRb and (for all c, aRc iff bRc). 06:35:19 With relatively clear boundaries for reproduction, one uses the "Can they breed together?" bit... 06:35:32 then asexual thingies would of course be species themselves 06:35:56 With ring species, well, *wince* 06:36:07 pikhq: well mine takes that into account 06:36:24 but of course if there's a very continuous ring, then you will get everyone in a different species 06:36:39 oklopol: Fortunately, that's not what happens. 06:36:47 * oerjan wonders if there are sphere species 06:37:02 Instead, you get individual groups which can interbreed with the neighboring groups. 06:37:14 they'd have to live both in the arctic, antarctic and the tropics, for one thing... 06:37:21 if you have "species" A, B and C such that aRb and bRc for all x \in X, but never aRc, then my definition makes A, B and C different species 06:37:23 If it weren't for that biologists would give up now. :P 06:37:39 oklopol: That is a neat definition. 06:37:48 pikhq: standard trick in math really 06:37:57 oh wait 06:38:00 oklopol: Though only works with species that are capable of breeding. :) 06:38:04 pikhq: yep 06:38:23 Fortunately, dealing with asexual entities is less *confusing*. 06:38:53 Because you get groups with clear, distinct traits rather than a continuum of interbreeding groups. 06:39:07 (though gene transfer hates you) 06:39:16 oklopol: define R better. do you mean "mate and produce viable offspring?" 06:39:38 quintopia: choose your favorite 06:39:50 quintopia: Presumably "mate and produce viable offspring with no external influence". 06:40:08 so coyotes and red wolves are the same species? 06:40:25 i would say produce a creature x which is in the same species as a and b w.r.t. the current population 06:40:30 There's some species which can be *coaxed* into producing offspring, but will generally refuse otherwise. 06:40:33 hmm 06:40:59 yeah that should work, it just occasionally further subdivides species 06:41:34 quintopia: How readily do the two interbreed? 06:41:55 pikhq: red wolves are almost gone due to interbreeding in the wild 06:42:14 They are most certainly the same species, then. 06:42:23 alrighty 06:42:48 Just like the dog and the (gray) wolf are same species. 06:42:58 (and that is utterly uncontroversial) 06:43:02 by what i've understood the usual definition is, i'd say they are the same species, isn't that kind of the point of having races 06:43:31 erm 06:43:35 are they called races............ 06:43:43 Subspecies. 06:43:51 because "lupus" and "familiaris" are just two ways to spell the same word 06:44:13 quintopia: Actually, the classification for domestic dog is "Canis lupus familiaris". 06:44:46 so how are subspecies defined? 06:44:49 so... "" and "familiaris" are just two ways to spell the same word? 06:44:49 oerjan: IOT m a -> IO (m a) should be safe-ish, right? 06:44:56 oh wait 06:45:13 wolf is like lupus lupus is it 06:45:24 oklopol: No, C. lupus. 06:45:43 quintopia: Generally, arbitrarily based on what taxonomists feel is "enough" distinction between two given populations. 06:45:48 okay so then my joke was valid 06:46:01 ah i see. it is also known as canis familiaris equally often. thus my confusion 06:46:25 Yeah, that's fairly old taxonomy. 06:46:30 sometimes it's also called dog 06:46:46 oklopol: Insufficiently specific. 06:46:54 it is? 06:46:58 There's rather a lot of things called "dog". 06:47:04 oklopol: do you mean golden retriever or dingo? 06:47:09 they are different subspecies after all 06:47:44 oklopol: it's never lupus 06:47:52 i mean the set of creatures that can mate with my dog and produce offspring which are not wolves. 06:47:59 or other weirdos 06:48:25 Ah, see, the problem is there's many species *called* "dog", even though they can't interbreed with yours. 06:48:25 dingos are not dogs 06:48:34 Dingos are dogs. 06:48:50 your mother is a dog 06:48:56 oklopol is a dog 06:48:56 Anyways. 06:49:13 what are called dogs without being able to interpreed with mien? 06:49:15 *mine 06:49:41 Lycaon pictus, Speothos venaticus, Cuon alpinus, Nyctereutes procyonoides, Atelocynus microtis, and species in genus Cynomys are all commonly called dogs. 06:50:04 please tell me that was from memory 06:50:08 It wasn't. 06:50:09 :D 06:50:24 your dog can't breed with a prairie dog 06:50:29 although i'd like to see it try 06:50:33 ;D 06:50:40 Also, all but Cynomys are in the clade Canidae. 06:51:14 Cynomys is prairie dog, in case you missed that oklopol 06:51:24 * oklopol realizes his definition separates boys and girls into different species, and in fact then everyone is their own species 06:51:44 eh 06:51:49 good enough for computer science 06:52:07 just give every creature an ip 06:52:16 *v6 06:52:23 well obv 06:52:36 Huh. The tanuki is an invasive species in Europe. TIL. 06:52:39 quintopia: i most certainly missed that 06:52:41 how many thousands of years of animals can we track with ipv6 addresses 06:52:55 quintopia: forevery many 06:53:26 i'm gonna go to the uni for just a LITTLE bit, then back to my holiday -> 06:53:26 keep in mind that the dead ones have to keep their addresses, because they are distinct from the living ones genetically 06:53:30 hf 06:53:42 -!- monqy has quit (Quit: hello). 06:54:04 -!- augur has quit (Read error: Connection reset by peer). 06:54:18 -!- augur has joined. 06:56:14 -!- augur has quit (Read error: Connection reset by peer). 06:56:14 ok runIOT is very difficult 06:56:20 I once knew a hunter who went out for big game, and managed to kill a puma, a mountain lion, a cougar, a catamount, and a panther, all with a single bullet. 06:56:30 -!- augur has joined. 06:57:01 (yes i use oxford commas, biotches) 06:57:09 so does everyone good 06:57:23 i don't know about genetic differences, but dead guys are at least always their own species: lemma 1: if you fuck a dead guy, he won't get pregnant, proof omitted; thus trivially if a is dead, aRb is false for all b, and thus a and b cannot belong to the same species 06:58:04 INDEED 06:58:34 you can find the full proof in my thesis 06:58:40 moreover, dead guys will never try to mate with one another 06:59:00 ?hoogle permutations 06:59:00 Data.List permutations :: [a] -> [[a]] 06:59:01 hence the clause about no external influence takes care of them 06:59:14 quintopia: if a dead guy is its own species, but doesn 06:59:15 argh 06:59:27 quintopia: if a dead guy is its own species, but doesn't want to mate itself, does that make it a different subspecies from itself? 06:59:36 yes 06:59:43 the relation is not reflexive 06:59:50 it is not an equivalence relation then 06:59:57 so it is not a proper equivalence class 07:00:27 Huh, a Gmail add caught my eye 07:00:36 however, certain female lizards, reproducing by parthenogenesis, do satisfy the relation reflexively 07:00:39 so 07:00:41 not reflexive? umm i masturbate all the time! 07:00:45 "I'm hiding in your inbox - www.*******.com - please don't tell anyone I'm here. Know any good jokes?" 07:00:49 good point 07:01:05 it is an equivalence class that mammals don't satisfy 07:01:08 and birds too 07:01:10 quintopia: the relation R is not an equivalence relation, no, S is. 07:01:22 yes 07:01:37 but R cannot be applied meaningfully to birds and mammals 07:01:41 and most other things 07:01:46 why not? 07:01:55 ur a mamal 07:02:01 oh because everyone is their own species? 07:02:13 at least not as an equivalence relation 07:02:22 it is some other kind of relation 07:02:26 well right 07:03:03 but yeah probably buys and girls should be formalized since this will only work for boygirlious creatures anyway 07:03:24 or at least just mateous creatures but all the cool mateates are boygirlious anyway. 07:03:32 i dunno 07:03:35 worms are p cool 07:03:41 especially the ones that do penis jousting 07:03:55 umm, worms are basically dicks 07:04:15 dicks...with dicks! 07:04:19 :O 07:04:27 -!- BeedaWeeda has quit (Quit: The internet is full, go away.). 07:04:43 What's the status of IPv4? 07:05:01 lol still not depleted? 07:05:02 -!- BeedaWeeda has joined. 07:05:03 ask ARIN or something. we don't care anymore 07:05:12 -!- BeedaWeeda has quit (Changing host). 07:05:13 -!- BeedaWeeda has joined. 07:05:16 oh right -> 07:05:20 bai 07:05:48 -!- BeedaWeeda has quit (Client Quit). 07:06:38 -!- BeedaWeeda has joined. 07:06:39 -!- BeedaWeeda has quit (Changing host). 07:06:39 -!- BeedaWeeda has joined. 07:07:45 :t callCC 07:07:48 forall a (m :: * -> *) b. (MonadCont m) => ((a -> m b) -> m a) -> m a 07:08:02 ?src MonadCon 07:08:02 Source not found. Do you think like you type? 07:08:03 ?src MonadCont 07:08:03 class (Monad m) => MonadCont m where 07:08:03 callCC :: ((a -> m b) -> m a) -> m a 07:09:03 Sgeo: RIPE depletion quite in August 2012. 07:09:10 Sgeo: APNIC depletion a while back. 07:09:35 Erm, s/quite/ 07:09:37 Erm, s/quite// 07:09:53 Sgeo: ARIN depletion anywhere from early 2012 to 2014, depending on who you listen to. 07:10:10 And AFRINIC could probably last until the heat death of the universe. 07:10:15 Why doesn't the RIPE estimate vary more? 07:10:20 oh wait, IO (m a) is really dangerous, it should be m (IO a) 07:10:21 ugh 07:10:52 Sgeo: There is variance, but it's just not that controversial that it'll happen sometime mid-2012. 07:11:04 So I just named the estimate that I like most. 07:11:41 The CEO of ARIN is saying depletion will happen by Jan. 2012, but statistical estimates all put it much later. 07:11:58 I wonder if there's somethin he knows that we don't. 07:12:29 oh wait, m (IO a) is just as unsafe 07:13:40 -!- cheater_ has joined. 07:16:08 -!- BeedaWeeda has quit (Quit: The internet is full, go away.). 07:17:49 runIOT :: (Monad m) => (forall b. m b -> (b,r)) -> IOT m a -> IO (a,r) 07:17:52 oerjan: it might even be safe 07:19:21 huh 07:19:29 runIOT run (IOT f) = 07:19:29 IO $ \s -> 07:19:29 case run (f (RW s)) of 07:19:29 ((RW new_s, a), r) -> (# new_s, (a, r) #) 07:19:29 :D 07:22:25 does anyone know if the original colossal cave adventure has been ported to C/linux ? 07:23:59 cheater_: It should be in your distro's bsdgames packages, as "adventure". 07:24:08 that's not the original one 07:24:23 It's a port to C from the original FORTRAN. 07:24:31 it's not even the 1994 "original" one 07:24:40 nah, it's a rewrite 07:24:52 the original fortran sources are available, a conversion should not be difficult. 07:25:15 for example "get all" does not work 07:25:15 but that's just one minor difference out of very very many 07:25:23 You could probably build it directly, actually. 07:25:28 you cant ive tried iirc 07:25:45 http://jerz.setonhill.edu/if/canon/Adventure.htm 07:26:25 that is indeed a blog post. 07:26:37 Ah, it seems to be a port of Don Woods' expansion on the original. 07:26:56 Because Crowther's original had gone missing. 07:27:07 nah it's available 07:27:19 Wasn't at the time. 07:27:36 Crowther, Will. "Adventure." Original FORTRAN source code. 1975-76. http://jerz.setonhill.edu/if/crowther/ (recovered from a backup of Don Woods's student account at Stanford.) Edited to compile under g77 (Matthew Russoto, 2007). Windows Executable (David Kinder, 2007). 07:27:49 not bad 07:27:57 didnt compile for me 07:29:59 The original depends on 36-bit words. 07:41:45 god dammit Lymee now i'm wondering how much of the ghc rts depends on libc 07:43:02 unfortunately ghc doesn't really have a bit-precise data type mechanism 07:43:09 you can use Ptrs and copy structures into them 07:43:11 but that's Ugly 07:43:19 and it means the lower-level stuff will be really painful 08:04:33 -!- augur has quit (Read error: Connection reset by peer). 08:04:40 -!- augur has joined. 08:08:28 ?pl \f x -> (x, f x) 08:08:28 ap (,) 08:10:22 ?ty second >>> (. join (,)) 08:10:22 forall c a. (a -> c) -> a -> (a, c) 08:10:27 :t truncate 08:10:28 forall a b. (RealFrac a, Integral b) => a -> b 08:10:34 Deewiant: That's preferable to ap (,)? :P 08:10:52 It's what I'd've thought of first 08:14:43 tracking an n and doing (start + n delta) is preferable to repeatedly adding delta when using floating point, right? 08:15:25 I guess so, it's two sources of imprecision instead of n 08:19:26 *Main> last (seconds 1 id) 08:19:27 (1.0,1.0) 08:19:27 *Main> last (sampleSecond id 0 44000) 08:19:27 (0.99997723,0.99997723) 08:19:27 yikes 08:24:27 good morning 08:24:33 -!- falso___ has changed nick to fALSO. 08:27:54 elliott: Well, probably not *much* of the RTS depends on libc, considering that it runs on Xen. 08:31:01 how does the RTS allocate memory? malloc? mmap? 08:31:38 sbrk! (Probably not.) 08:31:44 sample :: SignalC a -> Time -> Float -> Float -> SignalD a 08:31:44 sample f start dt ns = sample' 0 f start dt (ns/dt) 08:31:44 where sample' !n f start dt nsamp 08:31:44 | n > nsamp = [] 08:31:44 | otherwise = ap (,) f (start + n*dt) : sample' (n+1) f start dt nsamp 08:31:45 good 08:31:47 Vorpal: gc 08:34:09 oh wait not good, that's bad for some reason 08:36:05 oh wait it's good 08:36:33 a list is probably the worst possible choice for a SignalD mind you 08:36:56 elliott, and how does the gc allocate it 08:37:03 Vorpal: how does malloc allocate things 08:37:05 how does mmap allocate things 08:37:14 garbage collector means "allocator and collector" 08:37:14 elliott, well, malloc uses sbrk or mmap usually 08:37:28 elliott, yes but the gc must request the memory from the OS somehow :P 08:37:42 elliott, or things would segfault 08:37:47 http://hackage.haskell.org/trac/ghc/wiki/Commentary/Rts/Storage 08:38:20 aha, block allocation layer 08:38:21 Vorpal: A GC generally implements its own allocator. 08:38:27 Vorpal: So, it allocates via malloc and mmap. 08:38:31 Erm. 08:38:32 sbrk. 08:38:33 Not malloc. 08:38:35 pikhq, hm 08:38:37 Vorpal: its obviously not as simple as regular allocation 08:38:41 Vorpal: because everything is in a thunk 08:38:42 elliott, of course 08:38:50 so yeah, see above :P 08:39:00 "At the bottom, talking to the OS, is the megablock allocator (rts/sm/MBlock.c, includes/rts/storage/MBlock.h). It is responsible for delivering megablocks, correctly aligned, to the upper layers." 08:39:09 That's probably the place to peek if curious enough. 08:39:16 right 08:39:17 Also "megablock" sounds fabulous. 08:39:30 fizzie: And is almost certainly nothing that interesting. 08:39:49 fizzie: it will surely most likely be in platform code 08:39:52 no mmap on windows 08:40:10 elliott: There's a drop-in replacement, though. 08:40:14 ret = osGetMBlocks(n); 08:40:33 in posix/OSMem.c... 08:40:38 / A wrapper around mmap(), to abstract away from OS differences in 08:40:38 / the mmap() interface. 08:40:46 Vorpal: mmap on POSIX 08:41:06 VirtualAlloc on Windows 08:41:19 right 08:41:55 Well, rather, a handful of replacements; there's different functions for "Get me a page" and "Get me a page that mirrors a file". 08:42:17 Anyways, point is the *functionality* is part of the API, making it nothing too painful to work with. 08:42:22 (unlike fork()) 08:45:17 Anyways. Mere *allocation* is essentially a solved problem; a specific implementation is going to be about as interesting as a specific implementation of quicksort. 08:45:43 It's deallocation that's hard. 08:48:42 yeah ghc doesn't even try deallocating >:) 08:49:18 Good thing I got my unbound spool of tape in the mail today. 08:49:47 -!- augur has quit (Read error: Connection reset by peer). 08:49:55 -!- augur has joined. 08:52:50 pikhq: what 08:54:23 coppro: What, I was ordering parts for my Turing machine, and that came in today. 08:55:23 ah 08:55:48 pikhq, given the size of it, I guess the postage must have been prohibitive? 08:56:25 Vorpal: no no no 08:56:35 you see, it gets thinner as it goes along 08:56:40 elliott, ah. 08:56:51 so the first cell takes up half the envelope 08:57:00 but the rest tapers to an (infinite) point 08:57:07 (it gets smaller in every dimension) 08:57:13 right 08:57:18 (including thickness :D) 08:57:21 The reader is a truly impressive piece of work. 08:57:23 Paper tape, the storage method of kings: http://zem.fi/g2/d/17070-4/p1100859.jpg 08:57:25 so they just ship it rolled up 08:57:29 pikhq, I can imagine 08:57:47 fizzie, where did you take that photo? 08:58:04 pikhq: yeah it uses magnets and light to read instead of doing it directly 08:58:08 that way it doesn't have to get smaller as it moves 08:58:18 Vorpal: It's the UK National Museum of Computing's rebuild of Colossus, the Lorenz-cipher-breaker thing. 08:58:24 -!- oerjan has quit (Quit: leaving). 08:58:25 ah 08:58:26 basically it shoots the right coloured beam of light to just reflect the specific cell it wants 08:58:31 which magnetises the tape cell 08:58:36 then it pulls up with the magnet 08:58:49 and the reaction causes the value to be put on to the platter 08:58:58 elliott: I've not tried it for cells that would be below a Planck distance in wavelength. 08:59:09 The quite-probably ionizing radiation kinda scares me. 08:59:47 pikhq: yes well, you _are_ meant to operate it in a vacuum in a container the size of a galaxy. 09:00:19 I'm kinda cheating. I've got a TARDIS on backorder. 09:00:23 pikhq: in fact, since it means the platter can move less (i.e. not at all), normal operation operates exclusively on the atom at the very tip of the tape 09:00:25 the feats of modern technology are truly marvelous 09:01:23 oh, the writing mechanism is really cool; it has two lasers, one really hot, one really cold, and it mixes them both at the current tape cell to cause it to undergo a chemical reaction which transforms it into the right value. 09:01:27 science facts 09:01:48 elliott, what is the MTBF? 09:02:07 Vorpal: why would it fail? 09:02:08 -!- augur has quit (Read error: Connection reset by peer). 09:02:19 elliott, well, the reader and writer may 09:02:22 -!- augur has joined. 09:02:39 Vorpal: it uses the infinite sequence of bits as an entropic power source 09:02:46 ah 09:02:46 so there's little worry about that 09:02:51 nifty 09:03:01 it's not doing anything strenuous, just firing a few lasers at a single atom and turning an electromagnet on and off 09:03:06 Good thing, too. It requires more power the further you get in the tape. 09:03:31 indeed 09:03:40 have to generate light of ever more ridiculous wavelengths to shine to read 09:03:47 Precisely. 09:03:52 this conversation is awesome 09:04:02 what about seek time 09:04:08 Irrelevant. 09:04:12 ah yes 09:04:25 pikhq, only relevant for the start of the tape I guess 09:04:29 Vorpal: Like I said, it uses the last atom exclusively in normal usage. 09:04:34 elliott, ah 09:04:36 So no spatial seeking is necessary. 09:04:39 coppro: it's just making me want one 09:05:00 Vorpal: Interestingly, just cutting off the tape before this last atom results in a catastrophic system meltdown. 09:05:08 I need one of those infinite sequence power supplies in my laptop... 09:05:18 elliott, oh, why? 09:05:30 Vorpal: PHYSICS HAS YET TO EXPLAIN. 09:05:34 ah 09:05:35 elliott: Just need to take a trip to the frictionless pulley store. 09:06:20 Vorpal: Interestingly, you can exploit the random appearance of tachyons during the tape-reading process to serve as a halting oracle. 09:06:36 oh nice 09:06:43 It's not very practical, though; if the computation goes on forever, then an infinite number of tachyons hit your sensor all at once. 09:06:53 The results are quite spectacular but usually fatal. 09:06:56 elliott, hm, even if seek time is non-existent, how long does it take to read a single symbol? 09:07:16 BUT WHAT'S A FEW GALAXIES BETWEEN FRIENDS WHO WANT TO DECIDE THE GOLDBACH CONJECTURE???? 09:07:46 of course, of course 09:07:48 Vorpal: As long as it takes for light to make it there and back. Technically, turning an electromagnet on and off should be included in time, but in practice, the machine operates so quickly that the electromagnet is never off. 09:08:12 So, since the head is mere millimetres above the tape: practically no time at all. 09:08:21 ah 09:08:40 What about wear and tear 09:08:45 Infinitely small tape cells should wear out infinitely fast 09:08:48 elliott, something similar would apply for writing of course 09:09:17 Patashu: There's nothing to wear out. 09:09:30 But you said it had chemical reactions 09:09:35 So inevitably atoms will escape 09:09:51 Patashu: Yes, this is why it uses a self-repairing mechanism. 09:09:57 in evitably your mom will escape my chemical reactions 09:10:00 *inevitably 09:10:12 Patashu: The atom gets destroyed roughly every other clock cycle, but it is duplicated by a simple mechanism and put back into place constantly. 09:10:25 Since it's just a single atom, this is a simple process, compared to scanning every single tape cell, which would take literally forever. 09:10:26 QED 09:10:32 elliott, a bit like those self-repairing mc structures? using pistons and so on? 09:10:38 lol 09:10:42 turing machines compared to pistons in minecraft 09:10:42 (infinitely small ones of course) 09:10:53 Vorpal: Precisely, if one block of cobblestone could be used to access infinite bits. 09:10:54 you know, minecraft represents an infinitely large space 09:10:57 let's set up a piston driven turing machine 09:10:59 Patashu: Incorrect. 09:11:02 elliott, ah yes 09:11:04 it represents one 09:11:06 it just doesn't implement it 09:11:09 Heh. 09:11:10 because of floating point inaccuracies 09:11:25 Patashu: Things start breaking way before the actual coordinates hit floating point limits. 09:11:37 IIRC, it's only like a few solid months of walking to the place where repeated addition and the like fuck everything up. 09:11:40 elliott, implementation limits 09:11:46 your mom's floating point starts breaking before the actual coordinates hit repeated addition implementation limits 09:11:57 name one thing that breaks down not because of floating point inaccuracies 09:12:06 Patashu, heard of the "far lands"? 09:12:09 Patashu: The whole game is floating point, so I don't know what you mean. 09:12:13 elliott, implementation limits 09:12:20 yes I have 09:12:21 Yeah, but they're reachable ones. 09:12:22 I am thinking of them atm 09:12:22 Patashu, http://www.minecraftwiki.net/wiki/Far_Lands 09:12:23 yeah 09:12:36 Notch used to say that the bugs were way too far out to ever be relevant. 09:12:38 But... they're not. 09:12:38 if minecraft's floats and doubles were swapped for e.g. bigdecimal 09:12:40 far lands not happen 09:12:53 Patashu: that would be a terrible idea 09:12:57 as far as performance goes 09:12:59 it would indeed 09:13:33 when are we getting 128 bit floating point units? 09:13:35 Patashu: Elliottcraft just uses a fixed-point sixty-four-bit integer with four bits of ... decimal. 09:13:37 (Binary?) 09:13:54 elliott, s/uses/will use/ 09:13:57 Yeah yeah. 09:14:16 1,073,741.82 kilometres in every direction ain't bad. 09:14:20 (Including vertically.) 09:14:20 wouldn't that have awful rounding off errors if you were heading in any non-orthogonal direction 09:14:35 Patashu: The player position is stored with more precision in memory 09:14:48 Everything is just rounded upon serialisation 09:15:24 Hmm, I suppose I could use full sixty-four bit coordinates and then use an additional sixteen bits or so for fractional stuff 09:15:42 Since most things don't have such precise positions 09:15:49 1,073,741.82 kilometres in every direction ain't bad. 09:15:53 This was both positive and negative, BTW 09:16:04 Err, wait, did I fuck it up 09:16:12 I did 09:16:30 1.1529215 × 10 to the power of 15 kilometres 09:16:33 Noice 09:16:39 (That's for sixty-bit + four-bit) 09:17:10 1.1529215 * (10 to the power of 15 kilometres) 09:17:16 hahahahahaha 09:19:35 Patashu: I'm not sure what you mean, anyway 09:19:57 by? 09:20:12 wouldn't that have awful rounding off errors if you were heading in any non-orthogonal direction 09:20:31 imagine I'm an object and I want to move a short distance at a 30 degree angle 09:20:37 how do you represent that without rounding errors? 09:20:44 rounding errors even worse than would be in floating points, btw 09:21:23 Patashu: that only affects save/load 09:21:37 I'm storing things with higher precision in memory, but nobody will notice the clamping on save/load :P 09:21:46 aah 09:21:56 so when you save and reload, the co-ordinate system is moved to your new location as the origin 09:22:02 and once again you can walk XXX months before you'll see the far lands 09:22:11 Whaat, no :) 09:22:15 well it would work right? 09:22:26 That would require, like, rewriting every single chunk file, I think. 09:23:19 I'm not seeing why 09:23:23 Chunks could be referenced relatively 09:23:44 As in when you save you say 'ok this chunk is the new origin chunk and it's numbered N in X and M in Y, so I'll look near N and M for the next chunks' 09:23:45 or something 09:23:48 Wait, that's actually literally equivalent to using some form of bigfloat, it just pushes the problem to the chunk storage layer. 09:24:25 Hmm, yeah I suppose it is in a way 09:24:49 I mean, it makes the in-memory storage fixed, but it still requires resolving it all on load 09:25:00 And you couldn't walk from really far out to origin without running into FARRRR LANDS. 09:25:04 Without saving and loading, I mean 09:25:12 Patashu: Anyway, there'd be no far lands with fixed point 09:25:17 Since precision is retained throughout the whole range 09:25:19 Yeah, it would just end abruptly 09:25:22 That's not fun :( 09:25:25 Patashu: No, it would wrap around :) 09:25:26 How will you advertise an infinitely large world 09:25:45 Patashu: I've half-jokingly considered putting stupid shit as the borders of the world. 09:25:54 Like the ice mountains said to surround the flat earth. 09:26:23 Patashu: Anyway, I can advertise way-more-infinite-than-Minecraft worlds, especially since I have a plan for arbitrary y coordinates too :P 09:26:26 Fuck the height limit. 09:27:27 write blocks until you reach the topmost one, then indicate you're done and move to the next x,z co-ordinate? generate higher y level chunks when your tower sticks up higher than 128 blocks? 09:28:01 I'm not sure what that's supposed to mean; there might not be a topmost block -- or well, sure there will be, but there won't be a bottom most block. 09:28:05 Patashu, or your mines go down more than 128? 09:28:10 Just imagine a hashtable of (x/n,y/n,z/n) -> chunk 09:28:13 Where / is integer division 09:28:17 And n is sixty-four or so 09:28:27 I can clump a bunch of chunks together in a single file and then rely on the filesystem for the rest 09:28:29 elliott, why a hashtable, why not an octtree? 09:28:33 ah, bottommost, good point 09:28:42 what's an octtree? 09:28:56 sorry, octree* 09:28:58 Do octtrees even work for infinite spaces 09:29:00 http://en.wikipedia.org/wiki/Octree 09:29:05 elliott, hm, not sure 09:29:18 It doesn't look like it would 09:29:24 elliott, a binary tree would work for an infinite range, you would just have to rebalance it 09:29:31 of course that is one axis 09:29:41 but that is cheap 09:29:51 Or I could just do what I already plan :P 09:30:08 elliott, the issue with hash table is that worst case performance is horrible :P 09:30:24 use a good hash algorithm then 09:30:29 even so 09:30:30 Vorpal: It's not a hash table 09:30:33 Not really 09:30:35 It's a B-tree 09:30:37 you said it was, okay 09:30:39 Because it's your filesystem :P 09:30:41 lol 09:30:42 Yes, that was an explanatory tool. 09:30:43 haha 09:30:45 elliott, well B-tree is fine 09:31:03 I'm literally just going to store world/x-y-z files :P 09:31:09 That contain like sixteen by sixteen chunks each. 09:31:14 Well. 09:31:17 Eight by eight by eight, say. 09:31:40 Wait, that makes chunk files at least 128 megabytes :P 09:31:40 so, is your world generation algorithm going to extend infinitely far downwards? 09:31:46 will it just keep generating denser and denser compressed rock? 09:31:55 elliott, you could do sparse files 09:32:14 OK, how about four by four by four, then it's like thirty two megabytes, even if I have two bytes per block. 09:32:18 elliott, add a header at the start to indicate which chunks are valid, then use fseek() to make the file sparse 09:32:20 How big are mcregion's files anyway? 09:32:28 elliott, they vary 09:32:29 pretty compact I'd think 09:32:36 Patashu: I have plans for various underworld type things with large lava-like caverns. 09:32:44 If I have a Nether, it'll be at a certain block layer :P 09:32:48 elliott, iirc they have 1024 chunks each or such 09:32:53 lava is cool. but would the generation be homogenous after a certain point? 09:32:56 Vorpal: Yeah, but like approximate kilobyte/megabyte sizes 09:33:09 Patashu: Probably. 09:33:14 Patashu: But with biomes. 09:33:20 Patashu: No reason biomes can't be vertical too. 09:33:37 elliott, largest one I have is 6 MB 09:33:44 elliott, iirc each chunk is gzip compressed 09:33:47 or something like that 09:34:13 Yeah, I'll probably gzip them before storage; storing them packed in memory isn't feasible, and RLE is a waste of time when I could just steal an algorithm 09:35:21 * elliott reads people taking Infinite Solutions seriously. 09:35:23 elliott, wait a second, how would this work on @? 09:35:41 Vorpal: How would what work 09:35:50 elliott, would the OS do transparent gzip when writing out to disk after a hint? 09:35:53 or what 09:35:57 Serialisation is obviously overridable 09:36:01 ah 09:36:12 elliott, it didn't sound like that before 09:36:14 but sure 09:36:16 makes sense 09:36:27 Tricky though, in that you have to make sure it bijects properly 09:36:38 elliott, well the gzip case is simple 09:36:40 But there can obviously be a "gzip compression" function from serialisers to serialisers 09:37:13 elliott, anyway it doesn't have to serialise to exactly the same does it? gzip decompression is speced, but decompression is not iirc 09:37:15 err 09:37:19 compression is not* 09:37:30 meaning you can do various efficient ways to compress it 09:37:39 speed/time tradeoffs etc 09:37:42 I mean that you can't serialise all strings as "x" 09:37:49 i.e., your serialisation has to include all aspects of the object 09:37:54 hm 09:37:55 (Apart from things not exposed publicly) 09:38:10 elliott, metadata and such? 09:38:15 yeah let's just abandon state 09:38:17 Just internal fields 09:38:21 It's not acceptable to hit the reset button and have everything break because an object doesn't serialise and restore properly 09:38:27 and our objects always reset upon serialization 09:38:27 what a great idea! 09:38:49 elliott, speaking of which I had level.dat corrupted on a local bukkit test server when I had a power failure 09:39:00 elliott, seed changed and several chunks re-generated 09:39:22 Vorpal: But I thought the example of losing power for orthogonal persistence was contrived?!!!?!?!?!! 09:39:27 HOW COULD TROLLS MISLEAD ME SO 09:39:32 elliott, I meant for mc :P 09:39:35 elliott, not for your system 09:39:48 Vorpal: I meant that tripping over your power cord is a common way used to explain the benefits of orthogonal persistence 09:39:54 right 09:40:04 "EVERYONE USES UPS LOL AND ALSO, UPS IS PERFECT ALWAYS" is a common response. 09:40:10 elliott, well in this case it was "fuck the electricity company" 09:40:24 3200 houses affected or something like that 09:40:30 large part of this town anyway 09:40:35 for about an hour 09:40:45 elliott, I wish I could afford an UPS 09:41:12 Meh, they make noise and are bulky 09:41:18 Just use a laptop :P 09:41:23 elliott, bulky is not an issue for me, noisy however is 09:41:34 elliott, yeaaaah like where to connect MIDI? :P 09:41:37 It's just a buzzing, I gather 09:41:41 (midi over usb = fail) 09:41:44 But why bother 09:41:47 Vorpal: Why's it fail 09:42:03 I suspect latency 09:42:04 I'm sure you can get laptops with MIDI ports, anyway :P 09:42:07 elliott, because of the latency. Especially since the latency isn't stable 09:42:12 THUNDERBOOOOOOLT 09:42:15 Sorry 09:42:19 An Intel marketroid just took my laptop 09:42:20 Very rude 09:42:47 okokokokokokokokokokokokokokokokoko 09:42:50 elliott, I'm not sure that one has any hard latency requirements in the spec :P 09:43:27 elliott, also usb isn't isolated, MIDI requires opto-isolators to be used at each end of the cable 09:43:30 It's basically PCIe: The External Port, innit 09:43:34 elliott, this decouples the circuits 09:44:13 elliott, with midi cable I no ground "buzz", but with USB I get it. To the same electrical piano that is. 09:44:40 LEARN TO WORK WITH THE BUZZ 09:44:48 very droll 09:44:51 The first solution to any technical problem in music production is obviously to exploit it for all it's worth. 09:44:56 hah 09:45:10 elliott, yeah but it doesn't work for everything. 09:45:18 Just make symphonies of buzz 09:45:22 It's called eight-bit 09:46:42 elliott, ground buzz doesn't sound like a SID chipset at all :P 09:46:56 Afraid you might INNOVATE???? 09:47:10 metal was born because guitar amps sucked 09:47:28 PRECISELY 09:47:37 AND THAT'S WHY I MUST NOT YIELD TO SAID TEMPTATION 09:47:46 elliott, touche 09:47:51 i have this guitar amp that is so shitty, you have no idea. 09:47:55 I don't like metal really 09:47:56 it would almost fit in my pocket 09:48:02 it's powered by a couple of batteries 09:48:07 and it makes everything sound so terrible 09:48:08 elliott, does it go to 10 or 11? 09:48:10 i cannot believe it even exists 09:48:12 Vorpal: 9 09:48:14 :P 09:48:17 elliott, ouch 09:48:20 my amp so big it would destroy everything 09:48:40 oklopol: I have a less crappy amplifier (although I'm not exactly sure why), I just have that monstrosity too :P 09:48:51 Oh right, that theremin. GOTTA HAVE GOOD AMPS FOR THEREMIN 09:48:55 don't you use one for right 09:48:56 elliott, what brand/model is it? 09:48:58 LOGIC N JUSTIFICATION 09:49:02 Vorpal: The shitty one? 09:49:04 elliott, yes 09:49:08 I don't think it even HAS a brand. 09:49:13 aaaah.... 09:49:14 Does "made in China" count? Because it probably has a sticker on it saying that. 09:49:15 can you put like huge distortion on the theremin and make it sound just horrible 09:49:26 oklopol: overdriven theremin is quite a thing 09:49:28 quite a... thing 09:49:37 heh 09:50:09 elliott, suggestion: aplay /dev/sda 09:50:20 elliott, NTFS sometimes sound quite good 09:50:31 oh /dev/sda starts off really nice here 09:50:40 crunchy sounds then a rapidly repeating beep 09:50:50 ok you can't just stop the beep DEVELOP that shit man 09:51:09 Vorpal: does aplay have seeking 09:51:10 elliott, is it GPT or MBR? 09:51:17 elliott, not that I'm aware of 09:51:23 elliott, possibly it can start at an offset 09:51:28 elliott, try listen to the partitions too 09:51:33 GPT 09:51:52 huh, partition four sounds the same at the start 09:52:07 oh, i have no swap, heh 09:52:11 was gonna play my swap for some fun 09:52:19 Vorpal: sudo aplay /dev/mem <-- SAFEST THING POSSIBLE 09:52:28 elliott, err no 09:52:31 not safe at all 09:52:36 Vorpal: Note joke :P 09:52:50 Aww, /dev/input/mice is not very fun sounding at all 09:52:58 hm, my /dev/sda is a bit of whitish noise, then a second of quietness, then a rapid regular ticking that goes on for quite a while 09:53:11 Didn't you send me a partition ogg once 09:53:16 yes 09:53:19 Oh /dev/core starts out good 09:53:22 elliott, I don't have that file anyway 09:53:22 But then just more lameo silence 09:53:24 any more 09:53:24 What is it with zeroes 09:53:37 elliott, I don't even have the original NTFS partition it came from 09:53:41 /dev/random is amusingly silent 09:54:10 the music of linux 09:54:17 Oh /dev/sda2 is a nice thing 09:54:19 elliott, actually /dev/sda sounds about the same as /dev/sda1 for me. So I guess it was the mostly empty /boot I listened too there... the clicking is probably the ext* superblock backups 09:54:31 This has actual substance, I guess HFS+ is very musical 09:54:34 It's more uh 09:54:38 Textural than toneful though 09:54:43 whoa /dev/sda2 (root iirc) sounds nice 09:54:44 [asterisk]tuneful 09:54:47 nice beat to it 09:54:49 3/4 I think 09:54:54 Hahaha seriously? 09:55:04 Oh man /dev/sda3 09:55:09 ext4 starts off brutal 09:55:10 elliott, no, it is only vagually like it, for a bit 09:55:17 tick tick tick tick 09:55:22 my /dev/sda3.... 09:55:22 whoa 09:55:24 whoa 09:55:26 What 09:55:27 WHOA 09:55:30 elliott, it is swap 09:55:38 Dammit, I want to turn swap on just to experience that 09:55:45 Compare BSD binaries to GNU, statically linked if possible 09:55:49 elliott, well used swap (before switch to new computer) too 09:55:54 Can I ask for an ogg of swap, or are you afraid I'll somehow reverse psychoacoustic compression and get your passwords ;) 09:55:56 elliott, whoa there is some metal here 09:55:57 and what not 09:56:07 elliott, I'll think about it 09:56:08 I take it "metal" is your word for "noise" 09:56:18 Deewiant: /bin/ls is fun 09:56:19 elliott, no, some of it sounds like overdriven guitar 09:56:22 -!- Phantom_Hoover has joined. 09:56:23 there is quite a bit of noise too 09:56:29 Oh, I actually like /bin/ls 09:56:39 I mean, as far as atonal binary noise goes 09:56:54 Assertion 'pa_atomic_load(&(s)->_ref) >= 1' failed at pulse/stream.c:1848, function pa_stream_disconnect(). Aborting. 09:56:54 Aborted by signal Aborted... 09:56:54 Assertion 'pa_atomic_load(&(s)->_ref) >= 1' failed at pulse/stream.c:1848, function pa_stream_disconnect(). Aborting. 09:56:54 Aborted by signal Aborted... 09:56:54 Segmentation fault 09:56:58 There were like five thousand of those errors 09:56:59 herp derp 09:56:59 elliott, /dev/sdb3 is similar, but different 09:57:06 sda3 sounds better 09:57:08 definitely 09:57:31 Playing raw data '/usr/bin/emacs' : Unsigned 8 bit, Rate 8000 Hz, Mono 09:57:33 Sounds like bloat 09:57:39 are you guys going to make an album of this stuff 09:57:46 Patashu, haha 09:57:53 Patashu: Don't tempt me. 09:57:55 send the proceeds to charity 09:58:00 lol 09:58:01 I hit ext4 on my lvm listening 09:58:02 Send the proceeds to GNU :P 09:58:05 or that 09:58:06 actual lvm is very quiet 09:58:20 Machine code sounds disappointingly random 09:58:25 Some nice flourishes of beeps here though 09:58:38 It keeps interrupting the fuzz for some bleep soloing, I guess it's binary data 09:58:45 elliott, empty ext2 has a more rapid pulse than empty ext4 btw 09:58:46 Padding or whatnot 09:59:28 elliott, my /usr/bin/emacs sounds quite nice for some bits 09:59:31 vim sounds nicer than emacs 09:59:33 mostly the start 09:59:38 then it is just noise 09:59:44 I know a guy who'd listen to a box set of this 09:59:54 wha... /usr/bin/soffice was short 09:59:57 oh, shell script 10:00:18 how is binary data being interpreted as sound? 10:00:23 even wav has a header I think 10:00:29 Patashu, Playing raw data '/usr/bin/soffice' : Unsigned 8 bit, Rate 8000 Hz, Mono 10:00:31 Patashu: eight kilohertz, mono, unsigned 10:00:32 that is how 10:00:44 you can change it with parameters to aplay 10:00:45 -rwxr-xr-x 1 root root 6.4K 2011-01-29 06:11 /usr/lib/openoffice/program/soffice 10:00:48 oh FFS, where's the real openoffice 10:00:57 aha 10:01:04 -rwxr-xr-x 1 root root 63 2011-01-29 05:39 /usr/lib/openoffice/program/swriter 10:01:05 ><_ 10:01:06 so you could play the same file a large number of ways 10:01:06 >_< 10:01:15 elliott, there is /usr/lib/libreoffice/program/oosplash.bin at least 10:01:37 elliott, I think it is dlopened() by a wrapper basically 10:01:40 Ah, it's /usr/lib/openoffice/program/soffice.bin 10:01:45 libsofficeapp.so => /usr/lib/openoffice/program/../basis-link/program/libsofficeapp.so (0x00007f3712e5f000) 10:01:47 no it isn't, that is way to short 10:01:49 hm 10:01:50 -rw-r--r-- 1 root root 503K 2011-01-29 06:59 /usr/lib/openoffice/program/../basis-link/program/libsofficeapp.so 10:01:51 Argh 10:01:54 Where are you hiding the bloat 10:02:17 elliott, why don't you have libreoffice? 10:02:25 -rw-r--r-- 1 root root 13M 2011-01-29 06:59 libswlx.so 10:02:25 Good enough 10:02:34 Vorpal: You realise it's literally identical to go.oo 10:02:37 And the answer is Ubuntu 10:02:43 elliott, ah 10:02:50 find /usr/lib/openoffice -type f -exec du -h {} + | sort -g 10:02:53 How surprising, OpenOffice sounds like shit 10:03:07 elliott, hm /dev/input/mice is silent? 10:03:12 even when moving the mouse I mean 10:03:24 Yeah, I think you can't generate big enough values anywhere near quickly enough 10:03:28 /usr/lib/libreoffice/basis3.3/program/libswlx.so here is 12 megs. 10:03:31 Just like /dev/random is silent but /dev/urandom isn't 10:03:35 fizzie: Already found, see above 10:03:37 Ah, you found that too, yes. 10:03:59 Vorpal: /usr/bin/ghostscript sure is short 10:04:03 ELF, though 10:04:11 hm 10:04:26 elliott, eh, you mean /usr/bin/gs ? 10:04:32 Nope, I mean what I say 10:04:33 I have no /usr/bin/ghostscript 10:04:42 /usr/local/lib/ghc-7.0.4/ghc is the soundtrack to a life of purity. 10:04:46 gs (1) - Ghostscript (PostScript and PDF language interpreter and previewer) 10:04:48 The Haskell monks blast it all day at full volume. 10:04:57 -rw-r--r-- 1 root root 10346152 2011-04-01 16:35 /usr/lib/libgs.so.9.01 10:05:02 That's more of Ghostscript. 10:05:07 lrwxrwxrwx 1 root root 2 2011-05-09 12:57 /usr/bin/ghostscript -> gs 10:05:09 Are you expecting it to be spooky? 10:05:11 Just a link, it seems. 10:05:15 fizzie: Yes definitely. 10:05:38 10M/usr/bin/gs 10:05:40 /bin/busybox sure is... busy. 10:05:42 elliott, gs is NOT short 10:05:50 -rwxr-xr-x 1 root root 6.2K 2010-09-22 01:50 /usr/bin/gs 10:05:55 huh 10:06:01 weird 10:06:15 Oh busybox is nice 10:06:23 elliott, static? 10:06:35 -!- jcp|other has quit (Read error: Operation timed out). 10:06:39 elliott, it is just noise on my system 10:06:43 -!- jcp has quit (Ping timeout: 240 seconds). 10:07:14 Vorpal: It has nice breaks 10:07:28 elliott, not for me 10:10:01 FLACs sound predictably random. 10:10:09 Compare these: /usr/lib/perl5/core_perl/CORE/libperl.so /usr/lib/libruby.so.1.9.1 /usr/lib/libpython2.7.so.1.0 /usr/lib/libpython3.2mu.so.1.0 10:10:43 why is this aif silent :( 10:10:49 Deewiant: im scared 10:11:23 If the music gets worse, that's probably not a good sign 10:11:32 Eh? :P 10:11:40 -!- cheater_ has quit (Ping timeout: 255 seconds). 10:11:40 Hmm, Python sounds like what talking to Guido must be like. 10:11:57 -!- jcp has joined. 10:12:29 Well, assuming that Python should be cleaner than Perl etc 10:13:31 Wow, I played this eight khz mono unsigned eight-bit raw file and it sounded exactly like the original 10:14:10 How... unexpected 10:14:26 It's positively shocking. 10:14:52 nsearch.optim sounds The Best. 10:17:57 -!- javawizard has joined. 10:18:22 debian-testing-i386-netinst.iso sounds boring 10:18:32 OH it started a beat. 10:18:50 dootdoot doot doot doot 10:19:40 OK are you going to do anything with that beat. 10:21:31 elliott, nsearch.optim ? 10:21:36 yes 10:21:42 elliott, what is that 10:21:52 oerjan's nsearch, parallelised 10:21:56 Vorpal: definitely listen to a debian ISO 10:22:01 it is subtle but brilliant. 10:22:03 elliott, don't have a copy around 10:22:16 elliott, anyway, what is oerjan's nsearch? 10:22:25 Searching for... something. 10:22:43 Try a .hi 10:22:44 elliott, searching for what? files? prime numbers? 10:22:50 Deewiant: What's it sound like 10:22:54 I don't know 10:22:54 Vorpal: Bases 10:22:58 ah 10:23:07 I don't have any big his here 10:23:23 Yes I do 10:23:29 Don't really wanna pause Debian though 10:23:31 -!- cheater_ has joined. 10:24:42 Deewiant: Oh man. 10:24:50 Shiro/Interpreter.hi is a brief but amazing work of art. 10:25:14 elliott, how does it sound if rot13 is applied on it 10:25:40 elliott, I mean, does it make any noticeable difference 10:26:12 Depends how many characters are alphabetical :P 10:26:22 elliott, well for Shiro/Interpreter.hi I meant 10:26:25 bbl 10:26:43 dxsrNCNCXiNpjsFEoaoskNmdEPZykBhRioLyCLWLYwQpnSeUiuJTWfBygIkCpfcIoKZzvCRaMfeHKlgIRNLjlztLQyRGiprdpKwYTWbnbCQgvAnMXaoAXEvtmzHhnUJvrqAnsjBuDaYLCPHDfVfWDxprSaEIOAFeyzwGlRhlqqHIotJCbpKyELVnvsSHMzYduNmpvOwHZZPJwQlULtlRxESOsHTPhUVYYLzPWdfaXQZKbYwNGGINZzaJYUHFMZSEumJOrNwraMuUFbZhCYcjqocBdKeqRtfoHgNYphbRaTFpirbjkIkKylTBefQcmupblnokQhRptZqDAnrRRxXsRruZRtbuxrCrqvrHjwxPtdqJwwXzxJVZFPyzytrjHPelsccooPACOCBWovETJbjzfVqyLCldNhpvMHarRusUTDplfIArtbABCDEFGHIJKLMNOP 10:26:43 QRSATBUCVDWEXFYGZHIJKLMNaObPcQdReSfTgUhViWjXkYlZmnopqrsatbucvdwexfygzijknopqrstuvwxyzKUpxuSzzuPUqaUUxeLjmzcvCxXAcYFhlVBTGVdRoSTJcdDsXROtlHZZLxcbvhBgMTqoqScncaCKkhxavyHTPFnxLlaPIqLcymAblXJXXBWdwQDUGlaJgzvUaXiHhBaUDeVlTZtncSUWoFZWZRuEOzZzUNBEveWZVrZeKXpJXNeCBdtzCCAcQDLDnGeAnHduAKJwbcKuOMlrRcqTEUhdLNyMTjkGgUIGrXSXECsYeSTYXspOYMetLlJlWJEVxhlaxddpdxsdVwZhtMShUainrejvGfmfWtIoYTLwoUkGoqgpsquOtGhbuczXNRBcPzJwrzwybLIzEuFXzdfgSnZoAnfnBpdSClByfDoZPhEvfaFhbD 10:26:43 GKddBytHVISJOutHKbLyGRLKtMNsYJDgNcsCXxOnTwiPzQQjjpvvSRPRvYSRgIsTDCUZRVsfYueWXYYXkSXOZCBWbWoQkCBXYYXCWimwMVaabbElectPENdYZxeWVUsfVoRQqgKGyhPAzBGisDULjJUkgYlAulDggPnPmqcnKpoIDWpyFAphFqDESrezsIatBvUxsuUnvbKelwlAkCxfCLNHyPzghCUSMVwHnraEaYcEVeHcrJDRwuDyVGaPkpNwwfzYXQdqTgvsUIRplkTiZZmpcABCBDEFqozMDkKGHwTWkoEtneREpdHsMyIRauJuLCghIGFONsLAhnhgbMskKrDOxFKumxrLSyQymMqdgOZCvawUNOMEoQPQRSKTiMdUbyxwvutsrqpnmlkjihgfecZWVTOLHEBzoUIdRnSACDFGJKMNPymainShiroInterpr 10:26:48 eterShiroFingerprintShiroFingerprintsShiroFungeSpaceShiroIPShiroMonadShiroTypesShiroUtilsShiroValueMaybeTbasebytestringcontainersfilepathghcprimintegergmpmtloldlocaleprocessrandomtimetransformersunixControlMonadInstancesGHCBaseGHCFloatGHCNumDataByteStringDataByteStringCharDataTimeCalendarGregorianDataTimeFormatParseDataTimeLocalTimeLocalTimeControlMonadTransErrorControlExceptionControlMonadDataBitsDataCharDataFunctorDataMaybeGHCClassesGHCEnumGHCE 10:26:53 rrGHCIOExceptionGHCIOHandleGHCIOHandleFDGHCIOHandleTextGHCListGHCRealGHCShowPreludeSystemEnvironmentSystemExitSystemIODataMapSystemFilePathSystemFilePathPosixGHCOrderingGHCIntegerTypemergeByteStringrectangleToByteStringtextifycatchShirocurrentIPgoh 10:26:57 A brief selection of the alphabetical strings in that file 10:27:03 Big block of "InscoreInscoreInscoreInscore..." at one point. 10:37:20 elliott, is that before or after rot13? 10:37:45 X-D 10:37:49 After; GHC stores everything ROT encoded. 10:37:53 elliott, aha 10:37:53 Saves bits. 10:37:56 LOL 10:37:56 Totally. 10:38:09 elliott, but come on, "dxsrNCNCXiNpjsFEoaoskNmdEPZykBhRioLyCLWLYwQpnS" doesn't look terribly sensible even if cut up 10:38:27 That will be from machine code or whatever :P 10:38:34 elliott, oh right, a .hi is binary 10:38:44 forgot that 10:39:14 elliott, GPT or MBR, which one do you recommend? 10:45:39 back 10:45:47 Vorpal: is this actual advice you're asking for 10:46:04 elliott, possibly I will apply it yes 10:46:32 I would fake-suggest GPT, on the pretend-reason that it makes your disk more secure. (Since it then won't work in not-modern-enough systems.) 10:46:38 Vorpal: MBR; it is supported by far more tools. 10:46:43 right 10:46:46 -!- cheater_ has quit (Ping timeout: 255 seconds). 10:46:47 Vorpal: Plus: 10:46:48 Vorpal: "As of 2010, most current OSs support GPT, although some (including Mac OS X and Windows) only support booting to GPT partitions on systems with EFI firmware." 10:46:55 elliott, that precludes UEFI boot though 10:46:56 So unless you want to use your EFI capability too... 10:47:02 Vorpal: Big whoop :P 10:47:11 elliott, I do have EFI on the computer in question 10:47:15 EFI is worse than the BIOS 10:47:21 You don't need another OS before your OS 10:47:32 elliott, what about openfirmware then? 10:47:39 That's not an OS, that's a Forth 10:47:42 hah 10:47:46 Which is a perfectly cromulent low-level interface :P 10:47:59 Compare Commodores booting into BASIC 10:48:26 Vorpal: You should try coreboot 10:49:19 elliott, well I'm not risking bricking the system 10:49:55 I think I had a coreboot-supported MB here somewhere. 10:50:10 Vorpal: Not system, motherboard 10:50:17 Cheapest part of any system, apart from like, the mouse 10:50:18 elliott, nor the mobo :P 10:50:19 Or maybe the HD 10:50:31 elliott, anyway the sata cable is cheaper 10:50:51 elliott, anyway coreboot doesn't support the mobo in question so... 10:51:05 Hmm, I ought to start assembling my rig sometime 10:51:07 Then you just *make* it support it. 10:51:18 WITH MORE RAM THAN VORPAL'S 10:51:32 If I cannot get the best processor with infinite RAM completely passively cooled I will have failed miserably. 10:51:40 elliott, sure, I'm happy with the amount I have. I don't need more. But I could fit in more if I needed. 10:51:40 I will be forced to commit suicide. 10:51:51 Vorpal: I WILL HAVE TO EXCEED YOUR MOBO'S CAPACITY THEN 10:52:01 BTW, which CPU did you go with? 10:52:04 elliott, that is 32 GB 10:52:23 I should just get enough RAM that I can run absolutely everything from a RAM disk. 10:52:24 EVEN OS X 10:52:42 elliott, I don't remember the model code off-hand. 10:52:43 bbl 10:52:48 Vorpal: i7? 10:59:33 -!- cheater_ has joined. 11:07:24 -!- elliott has left ("Leaving"). 11:07:28 -!- elliott has joined. 11:37:32 * elliott reverts TehZ. 11:39:32 -!- elliott has quit (Remote host closed the connection). 11:40:00 -!- elliott has joined. 11:40:14 * elliott reverts TehZ. 11:40:14 Phantom_Hoover: You have 4 new messages. '/msg lambdabot @messages' to read them. 11:40:20 He... doesn't seem to have said anything. 11:40:35 You could, y'know, look at recent changes. 11:42:58 -!- ais523 has joined. 11:43:02 hi ais523; Feather 11:43:25 and here we see an expertly-executed example of the Drive-By Mindfuck 11:43:28 Type mismatch: ais523 is not of type command 11:43:42 ais523: no, but hi : person -> command 11:43:45 elliott, erm, ctrl-F Teh shows nothing. 11:43:50 I suppose that has to be value rather than person or something. 11:44:01 Phantom_Hoover: church-turing thesis 11:44:05 elliott: aha 11:44:05 fwiw, Feather isn't of type command or expression, either 11:44:07 and the sequence operator I have can only handle base types 11:44:32 ais523: was that an actual error or do they look more like "?" 11:44:40 elliott, hmm, it seems a little ambiguous. 11:45:11 ais523, is it telling that I have meta-deja vu from that exchange between you and elliott? 11:45:16 it's not, just the rest of the article is kind of crappy too 11:45:32 Phantom_Hoover: it's much what you'd expect from me/elliott banter 11:46:17 elliott, well, it's certainly not a theorem, so he's correct by that standard. 11:46:42 It could be misunderstood for either, really. 11:46:55 ais523, ah, but the meta-deja vu applies to Feather. 11:47:18 you know, I've got really good about not thinking about Feather 11:47:42 -!- elliott_ has joined. 11:47:52 much like it takes me about three or four minutes to remember the rules of The Game 11:47:55 wow, it should /not/ be that easy to throw away data irreversibly 11:48:23 ais523: you should really set some time aside dedicated to going insane sometime 11:48:27 -!- elliott has quit (Read error: Connection reset by peer). 11:48:27 find / | xargs shred? 11:48:29 ais523: then you could get Feather over with nice and quickly 11:48:32 that's pretty easily 11:48:33 also, no, 11:48:39 I was trying to hit backspace 11:48:43 but it shut down my computer instead 11:48:44 ah 11:48:48 and threw away all my open programs 11:48:57 OK, that's a great typo 11:48:59 another enter key would have thrown away any unsaved documents I had open, too, if I had any 11:49:04 tl;dr fuck computers 11:49:09 many programs will autosave in response to the sighup 11:49:13 -!- boily has joined. 11:49:28 gui programs will generally just ask you instead 11:49:29 in a recovery file 11:49:30 they exist, you know 11:49:36 ah, yes 11:49:40 Emacs doesn't, even the GUI version 11:49:41 although I think is save for most of them 11:49:44 nor does Nethack, or Firefox 11:49:48 but GNOME tends to be really hasty 11:49:55 and start asking whether you want to kill them 11:49:58 and enter will accept that 11:50:06 find / | xargs shred? 11:50:13 And then ais realised he was in a terminal window. 11:50:34 I wonder if it's actually possible for me to not think of ais as "ais" 11:50:42 Phantom_Hoover: it's fine, shred?(1) isn't a real command 11:50:46 and if it were, would probably prompt first 11:51:00 ais523: you should change your legal name to "ais DXXIII" 11:51:07 elliott_: nah 11:51:07 best name ever 11:51:11 ais523, you have a symlink to shred called shredd in the current directory. 11:51:18 Wait, that wouldn't work. 11:51:23 ais523: but it preserves your heritage! 11:51:24 I've used aisDXXIII in posts about INTERCAL before now 11:51:33 Phantom_Hoover: nope, I removed . from the current directory 11:51:42 `addquote Phantom_Hoover: nope, I removed . from the current directory 11:51:43 umm, from the path 11:51:46 482) Phantom_Hoover: nope, I removed . from the current directory 11:51:51 elliott_: good catch, that's a great thinko 11:51:59 You coincidentally have an enhanced version of shred called shred2. 11:52:06 elliott@katia:~/hello$ rm -rf . 11:52:07 rm: cannot remove directory: `.' 11:52:11 apparently ESR uses . on path, some of thescripts he wrote required it 11:52:12 STOP ARGUING WITH ME I TOLD YOU TO REMOVE IT 11:52:18 elliott_: rm is allowed to special-case . 11:52:23 ais523: >:( 11:52:31 this is the same reasoning that allows it to special-case / 11:52:40 on the basis that rm -r / inevitably has to remove . at some point 11:52:52 that is _so_ cheating 11:52:57 I love the way that the BSD people were looking for a loophole in POSIX to allow rm -rf / to not work by default 11:53:09 whereas the GNU people just did it, without caring that it probably violated the standard 11:53:25 http://esolangs.org/wiki/Schrodilang ;; heh, those categories 11:54:10 yep, that's a nice touch 11:54:42 hmm, [[Nandypants]], someone made a stupid BF derivative by mistake? 11:55:05 people must really start thinking less imperatively 11:55:22 I think any imperative tarpit will end up close to BF unless you go to a lot of effort to make it different 11:56:35 elliott_: as for the Church-Turing thesis, there's a part of Gödel, Escher, Bach which lists about twenty different formulations of it 11:56:47 :t Data.Map.lookupWithDefault 11:56:48 Not in scope: `Data.Map.lookupWithDefault' 11:56:49 some of which are trivially true, some of which are obviously only-on-faith, some of which are somewhere in between 11:57:06 I think any imperative tarpit will end up close to BF unless you go to a lot of effort to make it different <-- hm... what other imperative tarpits exist that are different? 11:57:07 :t Data.Map.findWithDefault 11:57:08 forall a k. (Ord k) => a -> k -> M.Map k a -> a 11:57:18 Vorpal: I can't think of any offhand 11:57:23 although I wouldn't be completely surprised if there was one 11:57:31 ?pl \x -> findWithDefault x x m 11:57:31 flip (join findWithDefault) m 11:57:34 I suppose MiniMAX is relatively different, although I'm not so certain it's imperative 11:58:10 Malbolge. 11:58:23 Malbolge isn't a tarpit 11:58:33 Well yeah, it isn't TC. 11:58:47 it isn't? 11:59:06 Patashu, finite memory space. 11:59:14 What about oerjan's attempt at making it TC? 11:59:38 ais523, a befunge98-inf-space tarpit could be made. Remove instructions until you get a small set that is still TC 12:01:00 ais523, what about OISCs? 12:01:07 hmm, yes 12:01:14 I suppose that explains why MiniMAX is different, because it's an OISC 12:01:17 ah 12:01:27 an OISC can't be massively BF-like, because none of BF's instructions are TC by themselves 12:01:27 and the befunge subset? 12:01:57 I imagine a befunge subset would be rather larger than BF, due to p and g being the only way to get infinite memory, and those requiring coordinates and a separate stack 12:03:29 aww, lsystems were as easy to do in haskell as i suspected 12:04:02 ais523, it wouldn't need the numbers would it? You could construct all numbers from 1 and - I think. 11- (0) 11-1- (-1) 11-11-1-- (0-(-1) = 1, can be extended to 2 and so on, but I can't be bothered) 12:04:18 Vorpal: indeed, but it's still being rather complicated 12:04:29 -!- derrik has joined. 12:04:57 ais523, you will need a stack and p and g. I suggest w for turning. You can feed it constant values to do fixed turning 12:05:13 then we can dispose []<>^vx etc 12:05:34 and of course _ 12:05:39 (and | by extension) 12:06:31 ais523, no need for string mode, simple byte based IO is enough etc. I guess I'll try to make a serious attempt at this perhaps... 12:07:04 'w' pops a value and determines direction? 12:07:06 Vorpal: it's still going to end up more complex than BF 12:07:09 mod 4? 12:07:13 ais523, that is true 12:07:15 or two integers? 12:07:30 Patashu: I think it turns left or right depending on zero or nonzero 12:07:35 Patashu, it does a I can't remember which way round 12:07:42 and turns left/right depending on which one is largest 12:07:45 ah, it's positive/negative/zero? 12:07:46 aah 12:07:49 okay, that's useful 12:08:00 | and _ are the ones ais523 described 12:08:19 do we need logical not hm? I guess that can be emulated with w 12:08:42 :t Text.Parsec.sepBy 12:08:43 Couldn't find qualified module. 12:08:49 Vorpal: | and _ don't do turn left and turn right, they turn in two specific directions depending on negative or positive 12:08:49 :t Text.ParserCombinators.Parsec.sepBy 12:08:50 forall tok st a sep. Text.ParserCombinators.Parsec.Prim.GenParser tok st a -> Text.ParserCombinators.Parsec.Prim.GenParser tok st sep -> Text.ParserCombinators.Parsec.Prim.GenParser tok st [a] 12:08:54 holy shit :D 12:08:57 it's quite common to approach a _ from the left, for instance 12:09:00 *depending on zero or nonzero 12:09:04 ais523, yes 12:09:39 duplicate top of stack shouldn't be needed 12:10:02 (11-11-p11-11-g11-11-g should do the trick) 12:10:44 can be used to swap, but I can't be arsed to write that one out 12:13:35 ais523, I *think* this should be bf-complete " ,-1@gpw~" (quotes not part of string, but needed to show that space is included, otherwise wire crossing issue would probably arise) 12:13:37 http://esolangs.org/wiki/Black_and_white_and_read_all_over stupid 12:14:00 Vorpal: you can probably arrange for commands to cancel each other out in each direction, thus not needing space 12:14:39 ais523, possibly. Anyway it isn't that much larger than bf in number of instructions 12:15:30 ais523, this would require befunge, not unefunge of course, since unefunge lacks w, instead I think it uses _ and # (and possibly j) to be able to branch 12:19:00 oolzybub and murphy programs are pretty 12:20:10 !befunge98 11-1-.a,@ 12:20:13 ​-1 12:20:27 !befunge98 11-11-1--.a,@ 12:20:28 1 12:20:33 VARIABLES ARE p /p*/, p /q*/. 12:20:33 dynast(3) <-> 12:20:34 (. do (. if? not? exists/dynast 5 ,then 12:20:34 create/countably/many/dynasts #myself#, 5 .) .) ,then 12:20:34 (. for each prime /p*|p/ below #myself#+2 do 12:20:34 for each prime /q*|q/ below /p*|pp/+1 do 12:20:36 if? not? exists/dynast /p*|p|p/+/q*|q|q/ ,then 12:20:38 copy/dynast #myself#, /p*|ppp/, /q*|qqq/ .) 12:20:40 pretty 12:20:51 !befunge98 11-11-1-11-1---.a,@ 12:20:52 0 12:20:54 err 12:20:56 !befunge98 11-11-1-11-1--.a,@ 12:20:56 0 12:21:00 !befunge98 11-11-1-11-1-.a,@ 12:21:00 ​-1 12:21:20 !befunge98 11-11-1-1--.a,@ 12:21:21 2 12:21:26 :) 12:22:14 !befunge98 211p11g11g..a,@ 12:22:14 2 2 12:22:31 !befunge98 3y.4y.a,@ 12:22:32 1128682830 90 12:32:41 -!- pumpkin has quit (Remote host closed the connection). 12:32:52 -!- copumpkin has joined. 12:32:52 -!- copumpkin has quit (Changing host). 12:32:52 -!- copumpkin has joined. 12:34:17 Deewiant, ais523, should the funge-space in this tarpit version warp around as usual or should an IP head out into the "void" forever instead? 12:34:56 Vorpal: I doubt it matters, it depends a lot on what you consider a tarpit to be 12:35:00 wrapping sounds more useful 12:35:06 mhm 12:36:48 wrapping makes it less of a tarpit 12:38:32 ais523: Can I ask questions about VHDL of you in the form of an IRC log? 12:38:56 elliott_: you're physically capable of doing so, certainly 12:38:59 you may even get replies 12:39:07 and I won't be offended by the attempt to ask 12:39:12 Delightful! 12:39:33 http://codu.org/logs/log/_esoteric-minecraft/2011-07-06 <-- /What I don't understand how to do/ onwards (it's mostly Vorpal telling me to ask you instead) 12:39:46 [...migrating conversation] 12:39:57 Vorpal: Yeah, but that doesn't actually help me go from "logical tree with clock input" => "MC circuit". 12:40:05 There is no "clock input" block in Minecraft. 12:40:09 So there's a mismatch. 12:40:12 * ais523 reads 12:40:31 ais523: (The context is a synthesiser for Redstone logic in Minecraft.) 12:40:35 elliott_, that is where synthesis comes into it. And I have no clue how to write a program that does that. 12:40:39 (Which is basically just NOR wires.) 12:41:17 elliott_, you need to synth D-flipflops and possibly SR-latches too 12:41:24 elliott_: the usual trick, and the one VHDL is obviously intended to use (and I suspect the synthesizers use behind the scenes) is to split your circuit up into two different sorts of blocks: combinational logic (arbitrary logic with no time dependence), and 1-cycle delays 12:41:52 ais523, what about gate delay then? 12:41:53 in fact, FPGAs are made up out of elements that consist of a lookup table (with four or six bits of input), followed by an optional 1-cycle delay 12:42:15 ais523: Hmm, so I make a bunch of "sub-components" which are just pure logic trees involving no clock, and then I have connections like "Output X of block abc connected to input Y of block def with one cycle delay"? 12:42:18 ais523, and how does it do latches then? 12:42:33 Vorpal: normally the length of a cycle is chosen to be large enough that gate delay is irrelevant compared to cycle length 12:42:37 elliott_, yes then you reduced it to a problem of wire routing 12:42:48 elliott_: yep, pretty much 12:43:19 now, if you're on a hardware system where gate delay is very large, or where clock routing would be difficult, it's normally better to make an asynchronous circuit rather than a synchronous circuit 12:43:28 that doesn't require a separate clock at all 12:43:36 ais523: I would say "I'm still not sure how I go from a tree of expressions with a clock input to that form", but I suspect the answer is either "you don't" or "that's an entire research field and industry, here's a link to ten classic papers". 12:44:22 elliott_: it's not actually masssively hard, as long as the expressions themselves aren't doing anything particularly nonstandard 12:44:26 elliott_, how would you do latches in a tree of that form? 12:44:31 and if they are, your synthesis tool normally shouts and you and spouts warnings 12:44:38 Vorpal: a D latch is a one-cycle delay 12:44:47 ais523, hm. What about SR-latch? 12:45:13 it's ((output OR S) AND NOT R) followed by a one-cycle delay 12:45:21 where "output" is the output of that delay 12:45:23 elliott_, anyway you need to be able to calculate shortest clock cycle that would work I think. 12:45:25 elliott_, erm, if you have a tree of expressions, how does time actually matter? 12:45:31 ais523: I have a feeling my components will look something like: 12:45:33 foo(A,B,C) => D,E,F 12:45:33 begin 12:45:34 A nor B nor ~C => D 12:45:34 A nor ~C => E 12:45:34 A => F 12:45:34 end 12:45:36 ais523, heh 12:45:38 ais523: Where C could be a clock, say. 12:45:42 ais523: So literally as simple as it gets. 12:45:46 -!- pikhq has quit (Ping timeout: 250 seconds). 12:45:49 elliott_: that syntax is confusing me, is it reverse VHDL? 12:45:51 I'll probably have a few other primitive logical operations to "simplify" things. 12:45:56 Phantom_Hoover: Because you can have a clock input. 12:45:56 (VHDL does D <= A nor B nor not C) 12:46:04 ais523: Yes, apparently :P 12:46:07 elliott_, not if it's a tree? 12:46:09 ais523: Inputs are ABC, outputs are DEF. 12:46:14 Phantom_Hoover: 12:46:16 foo(A,B,C) => D,E,F 12:46:16 begin 12:46:16 A nor B nor ~C => D 12:46:16 A nor ~C => E 12:46:16 A => F 12:46:17 end 12:46:17 well, that's combinational 12:46:20 yeah 12:46:24 no clock dependence there 12:46:26 Phantom_Hoover: In a file elsewhere, you specify that C gets a clock input. 12:46:32 aha 12:46:39 You'd also specify literal Minecraft block locations for the other inputs and the final output of the main component. 12:46:43 what you're doing wrong, compared to standard calculation, is making both edges of the clock relevant 12:46:46 elliott_, I'm not sure if that counts as a tree... 12:46:51 Phantom_Hoover: "A nor B nor ~C" is a tree. 12:47:00 ais523, DDR FPGA! ;) 12:47:06 ais523: You're going to be shocked by me not quite understanding, I'm sure. 12:47:28 elliott_: let's see... in ordinary circuit design, you make everything in the circuit update at the "leading edge" of the clock, when it changes from 0 to 1 12:47:34 and have the change from 1 to 0 have no effect 12:47:47 Ah, hmm 12:47:53 there are physical reasons why doing that is a good idea 12:48:00 I literally made that example up without thinking because Vorpal said to use a clock input ;) 12:48:08 Gah, ;) looks way sleazier than I always intend 12:48:23 (Vorpal's mention of DDR memory is relevant, that's memory which uses both edges of the clock in order to go twice as fast as anything else on the board, it's a bit of a disgusting hack) 12:48:27 elliott_, no I meant in general, not for purely combinatorial circuits of course 12:48:32 ais523: Well, with Minecraft there's fun things like the not gates burning out if you flip them too much. 12:48:32 ais523, yeah, my suggestion was to do that but with the physics ticks as the clock. 12:48:53 Phantom_Hoover: Wait, is there still that sixteen block limit? 12:48:56 anyway, the trick is to not use your clock input like other sorts of logic input 12:48:59 Grumble grumble grumble. 12:49:03 ais523: Right. 12:49:03 elliott_: can you get around that by doing A nor A? 12:49:09 or does that burn out too? 12:49:10 elliott_, what sixteen block limit? 12:49:17 You mean for wires? 12:49:18 Yes. 12:49:20 ais523: I think you can, but a not gate (one redstone torch) is a lot smaller. 12:49:24 ais523, there are some stuff that uses two clocks 90 degrees out of phase, to do QDR 12:49:31 Vorpal: I am aware 12:49:43 ais523, and I think there is some insane memory used in gaming consoles (PS3 and such) that has octal data rate... 12:49:45 that's even more of a disgusting hack, and likely causes all sorts of problems for the engineers making those things 12:49:50 Hmm, does fancy ASIC synthesis involve any kind of three-dimensional layout? 12:50:02 I have a feeling the kind of complexities involved here are super-super-exponential :) 12:50:03 probably, even if it's just to cross wires 12:50:04 minecraft redstone is disgusting, no way around it 12:50:16 "Pack this circuit into a twenty by twenty by twenty box for me." "No. Argh. My brain. Stop. It hurts." 12:50:29 standard ASIC synthesis techniques wouldn't like having to do that, but they'd be capable of doing it 12:50:41 elliott_, no no, "here is the outline made out of intersecting cuboids that you have to fit it into" 12:50:41 Patashu, it gets even worse with pistons. 12:50:45 also, you really don't want to know how circuits are place and routed for FPGAs and ASICs in real life 12:50:47 so I can imagine 12:50:55 to do a complex sequence of pistons you have to activate them with slight delay? 12:51:04 so I'll tell you anyway: they get powerful computers to run overnight trying lots of placements with genetic algorithms, until it happens to fit 12:51:07 and then just run with it 12:51:09 the result is generally a mess 12:51:17 Yay, genetic 12:51:31 ais523, for smaller ones in FPGAs it just takes a few minutes usually 12:51:40 or do you mean the silicon layout? 12:51:47 Vorpal: no, I mean that layout 12:51:56 ais523, huh 12:51:59 it takes just a few minutes for small programs, because the routing doesn't need to be very good to make it fit 12:52:02 ais523: Anyway, is this high-level type of design correct?: You define your combinatorial circuits and whatever as the main bulk of the thing, and then you have a separate file naming the "main" circuit, and giving the Minecraft block positions of where each input signal should come from, and where each output signal should go to 12:52:05 the larger the program, the harder it is to fit it on the board 12:52:11 Obviously I'm still not sure how to do clocks, but that's the basic idea 12:52:23 Then you'd build buttons and levers and whatnot on top of it so you can actually use the inputs 12:52:25 elliott_, how do you plan to do latches? 12:52:29 elliott_: yep, that'd probably work 12:52:30 And, I dunno, noteblocks or doors or whatever at the outputs 12:52:31 what are you guys planning? minecraft circuit design? 12:52:35 seems like it 12:52:37 oh, you're making a song creator 12:52:40 Patashu: No 12:52:49 elliott_: look up the "master/slave J/K flip-flop" somewhere 12:52:53 Patashu, VHDL-oid → redstone compiler. 12:52:54 Patashu: I'm trying to figure out how feasible a Minecraft synthesis tool is :) 12:53:06 ais523, I know what a J/K one is, but not what a master/slave J/K one is... 12:53:06 Vorpal: Do latches require any special handling? 12:53:09 it's a standard circuit that you can make into various types of flip/flop 12:53:09 *googles* 12:53:16 would a midi -> minecraft noteblock approximator be easier or harder 12:53:25 elliott_, probably, do you plan to use VHDL syntax? 12:53:27 or your own? 12:53:28 Vorpal: it's basically a particular set of internals for a J/K, which has the advantage that it can be done entirely with combinatorial components 12:53:29 Patashu: Way easier 12:53:38 Vorpal: Dunno; if VHDL, definitely a subset. 12:53:47 And the actual layout file will be custom because it's, you know, Minecraft-specific. 12:53:58 the clock speed is going to be freakishly low, but it's Minecraft so it probably doesn't matter 12:54:13 elliott_, then look up how you define a process in vhdl, for sequential circuits. That is like a FSM written in VHDL basically 12:54:16 Sure it matters, you don't want your door opening two seconds after you hit your button 12:54:51 ais523: But yeah, how should I handle clock inputs if not through a regular logical input? 12:55:07 it's just a regular logical input in terms of synthesis 12:55:14 you just only use it as the clock input to a delay block 12:55:17 and not in any other way 12:55:41 ais523, err routing needs to be done so all parts get the clock at the same time 12:55:59 Vorpal: actually, that's not strictly necessary as long as the clock is slow enough 12:56:07 and in actual FPGAs I would guess that the clock wires are hard-wired, no? 12:56:09 it's just that the more symmetrical the clock routing, the faster you can clock it 12:56:21 indeed 12:56:23 ais523: Would it be fair to say that a redstone synthesiser would be way beyond my knowledge and abilities of synthesis at this point? :-P 12:56:23 and in actual FPGAs, there are hardwired symmetrical clock wires in order to help bring the clock speed up 12:56:32 "How hard can it be?", I thought. "It's just NOR gates." 12:56:33 elliott_: I wouldn't say way beyond 12:56:51 I'd say if you really cared about doing it, and focused on it for a few weeks, you could probably get there 12:56:54 but you'd likely get bored first 12:57:05 That's just a general me-related assessment, nothing related to the project :P 12:57:10 elliott_, if you just want combinatorial expressions without any state then yes, it is much simpler 12:57:21 Vorpal: Surely you can simulate state with the former. 12:57:32 Minecraft seems pretty much perfectly suited for asynchronous design, actually 12:57:35 I just want delay handling and basic logics. 12:57:38 Yes, LOGICS plural. 12:57:45 but it has the downside of making the input programs harder to write 12:57:51 Without handling of time it's pretty much useless because you can't make circuits that actuall ydo aynthing. 12:58:02 ais523, indeed, everything is clocked in a way, redstone updates on ticks of the game engine 12:58:14 Vorpal: which would make the main problem of asynchronous design way easier to solve 12:58:17 ais523: Well, it can't be harder than the current method of creating redstone circuits (= manually designing and laying them out by hand) 12:58:21 ais523, I think almost all my redstone circuits (some fairly complex) have been mostly asynchronous 12:58:32 I thought there was a redstone developer tool? 12:58:36 sounds better than 'by hand' 12:58:37 you can rely on wires to transmit signals at a consistent rate 12:58:40 I have done a few clocked ones, but usually only for some part 12:58:43 what are the semantics of redstone, anyway? 12:58:48 Patashu: Probably just "Paint: The Redstone Edition" 12:59:01 ais523: NOR wires and a NOT torch, as I understand it 12:59:12 ais523: Plus signals only travel along a wire for sixteen blocks and then you need a repeater 12:59:12 what do you mean by "NOR wires"? 12:59:14 ais: complex 12:59:16 Repeaters also have a delay setting 12:59:19 From zero to eight or so 12:59:20 ais523, well, the redstone wire transmits a wire instantly up to 15 blocks along the wire. Then you need to add a repeater (adds a 1 tick delay) 12:59:28 if you want it going any further I mean 12:59:30 ais523: If you're up for opening a browser... http://www.minecraftwiki.net/wiki/Redstone_circuits 12:59:40 ais523: NOR wires and a NOT torch, as I understand it 12:59:41 It summarises the mechanism briefly 12:59:42 Erm, no. 12:59:53 Wires, and a 3-input NOR gate. 13:00:02 Well, right, same thing. :p 13:00:10 You create the gate by laying wire, that's all that matters. 13:00:23 ais523, then there are redstone torches, which are basically inverters. Can be used to make a NOR gate. You can make "connect wire-together" style OR of course, but that has the obvious disadvantage of flowing back into the inputs 13:00:26 No, the gate needs a torch and a semiconducting block. 13:00:49 Phantom_Hoover, "semiconducting block"? 13:01:12 Vorpal, non-transparent and non-redstone or repeater. 13:01:44 ais523, there are a number of quirks as well, like repeater in front of solid block doesn't just power the block, but actually powers through it. (can be used to make a physical OR or AND gate with pistons, that is quite a bit slower though) 13:02:11 hmm, I think I prefer CUBE's way of doing things 13:02:18 CUBE? 13:02:20 So what's the VHDL for 13:02:20 foo(A,B,C) => D,E,F 13:02:20 begin 13:02:21 A nor B nor ~C => D 13:02:21 A nor ~C => E 13:02:21 A => F 13:02:21 Vorpal, a lot of the edge cases are frankly nondeterministic. 13:02:23 end 13:02:24 Phantom_Hoover, http://www.minecraftwiki.net/wiki/File:Pistongates.png <-- I seen those before (I made one of them) 13:02:25 Including the declaration 13:02:28 (not me who took the screenshot) 13:03:03 Vorpal, a lot of the edge cases are frankly nondeterministic. <-- some are deterministic and can be exploited 13:03:17 Vorpal, sure, but consider the 2x2 piston door. 13:03:19 Yeah yeah, but that's not relevant to synthesis. 13:03:32 Phantom_Hoover, yeah that depends on chunk boundary as far as I can tell 13:03:49 wow, chunk boundaries affect redstone processing? 13:03:52 Vorpal, sceptical of that. 13:04:21 I think we've successfully scared ais523 away. 13:04:42 this Minecraft stuff is just too complex for me to visualise 13:04:49 it seems like a particularly crazy set of primitives to use 13:04:53 ais523: It's not; Vorpal is overcomplicating things because he's Vorpal. 13:04:56 elliott_, well.. library IEEE; using ... blah blah; entity foo is port (A,B,C: in std_logic; D, E, F: out std_logic) end foo; 13:05:00 followed by 13:05:17 elliott_: based on the page you linked 13:05:34 ais523: They're also overcomplicating things because they're a minutiae wiki. 13:05:40 architecture whatever of foo is begin D <= A nor B nor not C; E <= A nor not C; F <= A; end whatever; 13:05:49 I should have just referred you to Phantom_Hoover, GOD OF ALL EXPLANATION. 13:05:54 Vorpal: Wow well fuck that I'm using my own syntax. 13:05:56 elliott_: fair enough 13:06:04 I noticed that page has a design for an edge-triggered D flip-flop, though 13:06:13 which is the only sequential circuit you need 13:06:20 and everything else can just be logic gates 13:06:21 ais523, the issue with mc redstone is basically that there are quite a few edge cases. If you keep away from them it is quite simple 13:06:40 ais523: So I take it combinatorial circuits can't call out to other circuits? You have to lay it out more manually. 13:06:47 ais523, OK, basically, torches can be placed on a block, and will power all blocks they are immediately adjacent to when on. 13:06:58 elliott_: sure they can, as long as you know what you mean by "call out" 13:07:04 (Except the block they're placed on.) 13:07:11 ais523: I don't. 13:07:17 If the block they're placed on is powered, the torch is deactivated. 13:07:19 elliott_: heh 13:07:25 Phantom_Hoover, is that ground-torch or wall torch? 13:07:29 Vorpal, either., 13:07:32 ah right 13:07:33 the normal equivalent to function calls in VHDL is effectively just #define from C 13:07:38 Phantom_Hoover, wall torch powers block below? 13:07:43 Yes. 13:07:46 heh 13:07:48 you just have standard arrangements of wires, that you inline in more complicated versions 13:07:51 ais523: I mean e.g. foo(A,B) => C; begin C <= bar(A,B) nor A; end; 13:08:03 ais523: Yeah, I suppose inlining is basically the name of the game 13:08:07 elliott_: yes, you just inline 13:08:11 ais523: At the end of it all there's only one circuit 13:08:17 With a bunch of fixed-position outputs and inputs 13:08:35 elliott_, nope, that doesn't make sense. You do some wire connecting to an entity instead. 13:08:38 in vhdl I mean 13:08:38 well, /I/ don't just inline, because my whole Master's project (that lead into my PhD) was looking into ways to not have to inline 13:08:41 but everyone else does 13:08:56 functions are usually built in ones, like rising_edge(signal) iirc 13:09:12 ais523, so how did you manage to not inline? 13:09:12 Vorpal: actually, that's an abbreviation for signal'event and signal = '1' 13:09:25 ais523, okay I was using signal as a variable name here 13:09:29 forgot that it was a keyword 13:09:32 Vorpal: so was I 13:09:35 ah 13:09:36 I also forgot it was a keyword 13:09:36 elliott_, nope, that doesn't make sense. You do some wire connecting to an entity instead. 13:09:41 Um, ais523 just said what I said made sense. 13:09:46 ais523, I think it is? 13:09:56 elliott_, hm 13:10:00 Vorpal: yes it is, I couldn't have forgotten it was a keyword if it wasn't a keyword 13:10:26 Vorpal: as long as you know a function isn't being accessed from two places simultaneously, you can basically connect it to a multiplexer/demultiplexer 13:10:34 hmm, I should so abbreviate that to mudem 13:10:44 true 13:11:03 there's a lot of mathematical basis behind calculating when that optimisation is safe and when it isn't 13:11:43 ais523, btw it is interesting how not (a xor b) is a == b (if a and b are single bits). 13:11:54 why is that interesting? 13:11:54 no shit sherlock 13:12:03 XOR is the NOT EQV 13:12:04 hm, I just think it is 13:12:06 ooold 13:12:07 elliott_, I know 13:12:08 s/the // 13:12:09 it is cool though 13:13:18 Hmm, is "Q" usually used as the variable name for the final output of a logical operation? 13:13:24 yes 13:13:24 yep 13:13:30 ais523, how do you make a monostable circuit in vhdl? 13:13:43 same way you make any other time-dependent circuit 13:13:46 hm 13:13:59 I want to know how too actually 13:14:05 Hmm, is "Q" usually used as the variable name for the final output of a logical operation? 13:14:16 a one-cycle monostable is simplest, it's just a one-cycle delay 13:14:22 Clearly it's for charge, representing the charge passed through the wire. 13:14:28 for a multiple-cycle monostable, it's probably clearest to use a counter 13:14:35 or else a shift register 13:14:38 depending on what you're trying to do 13:14:45 Hmm, is "Q" usually used as the variable name for the final output of a logical operation? 13:14:46 yes 13:14:46 aah 13:14:47 in answer to that? 13:14:52 counters are going to be better for long delays 13:15:01 elliott_: my yes was an answer to your question about q 13:15:05 right 13:15:11 Phantom_Hoover was joking, I think 13:15:32 Wow, what the hell is XNOR for. 13:15:48 Also: Is it just me, or is a good thirty percent of what synthesisers do common subexpression elimination? 13:15:53 XNOR or EQV comes in useful sometimes 13:16:14 elliott_: hmm, I didn't actually know they did CSE, although it wouldn't surprise me 13:16:24 sometimes they do common subexpression introduction, for fanout reasons 13:16:33 ais523: Well, if your primary method of composing programs is inlining... 13:16:42 ais523: "An XNOR gate can be constructed from four NOR gates implementing the expression "(A NOR N) NOR (B NOR N) where N = A NOR B"." 13:16:47 ais523: Surely at the lower level, N would be inlined here? 13:16:56 And thus it would be up to CSE to find out that it didn't have to construct two identical (A nor B) gates. 13:17:07 elliott_: actually, it all gets converted into lookup tables 13:17:21 it'll see there's only two inputs, and just put the truth table for an XNOR right into the FPGA 13:17:33 FPGAs aren't based on NOR/NAND behind the scenes 13:17:52 ais523, how is a lookup table constructed in silicon hm... 13:17:58 ais523: Well OK yes but redstone is. 13:18:06 ais523: Maybe I should convert it all to lookup tables and then convert it back to redstone. 13:18:14 elliott_: yep, so standard synthesis techniques wouldn't map directly onto Minecraft 13:18:28 what causes a redstone torch to burn out? 13:18:34 A xnor B => Q; 13:18:34 N := A nor B; 13:18:34 Q <= (A nor N) nor (B nor N); 13:18:34 end; 13:18:34 I have a feeling that making that := construction do anything but introduce a macro-esque thing is a Bad Idea. 13:18:40 (I mean, relying on it to not duplicate things.) 13:18:43 what causes a redstone torch to burn out? <-- toggling too fast 13:18:49 Vorpal: ah, that makes sense 13:19:06 Vorpal: I really hate Notch for that. 13:19:12 "Hmm... a virtual world... anything is possible..." 13:19:13 ais523, I think it is basically to stop lag killing the game. Toggling every third cycle seems to work fine. 13:19:21 "I know! I'll introduce arbitrary physical limitations!" 13:19:32 elliott_, like... falling too far kills you? 13:19:37 there's a bukkit plugin for redstone chips 13:19:41 but that's not esoteric anymore 13:19:47 Patashu, there are several iirc 13:19:50 yeah 13:19:54 redstonechips, craftbook... 13:19:57 yep, I was thinking that it was probably going to be something to do with preventing circuits taking up too much processor power 13:20:20 Patashu, I "love" how craftbook has a NOT-chip that is larger than a pure redstone inverter 13:20:30 it's probably for consistency 13:20:37 like if you put a craftbook chip down and realize 'darn, I actually need NOT' 13:20:39 you can just hot swap it 13:20:41 on the other hand, craftbook *does* have some useful ones. Like light detector, water detector, and so on 13:21:05 Patashu: it reminds me of the 0-ohm resistors you can buy 13:21:09 the IO ones are moderately useful in craftbook. PRNG too. 13:21:10 exactly 13:21:19 in case you happen to need a wire with the form factor of a resistor, say for wire-crossing on PCBs 13:21:26 I've suggested a circuitry system for terraria that involves wireless connections only, to < 1309976515 323147 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Something has gone terribly amiss on Codu :P 18:22:03 confidence in prgmr rising and rising 18:22:04 hey Gregor 18:22:08 IM GETTING MY FIRST MONTH OF PRGMR FREE 18:22:10 BECAUSE THEY LOVE ME 18:22:35 but the mouse was struggling till the end, is it just like mouse reflexes? 18:23:13 confidence in prgmr rising and rising <-- you are kidding right? 18:23:30 I'm guessing the nervous system that controls the twitches is disabled after higher brain functions. 18:23:39 Inasmuch as a hamster *has* higher brain functions. 18:23:43 Vorpal: yes :D 18:23:55 elliott_, so you won't get prgmr next time I guess 18:24:05 Vorpal: nothin' wrong with them 18:24:07 Gregor just has bad luck 18:24:17 elliott_, and you too 18:24:27 no i have all the luck 18:24:41 elliott_, you didn't get your vps yet 18:25:29 Phantom_Hoover: maybe we should tell the youtube people that only the hamster's nervous system was tortured. although probably torturing a large logical gate constitutes a horrible thing to do if it comes in a cute container. 18:25:57 oklopol, says the large logical gate. 18:26:00 `addquote ... only the hamster's nervous system was tortured. although probably torturing a large logical gate constitutes a horrible thing to do if it comes in a cute container. 18:26:05 483) ... only the hamster's nervous system was tortured. although probably torturing a large logical gate constitutes a horrible thing to do if it comes in a cute container. 18:26:11 Phantom_Hoover: well at least i have some looping going on 18:26:34 Hamsters iterate. 18:26:37 oklopol, somehow I doubt that hamsters are a fixed boolean gate. 18:26:46 but i think the twitching system is. 18:26:59 well 18:27:53 probably it's like incredibly complicated, but it certainly doesn't seem very interesting. 18:28:07 but i guess that doesn't really matter when discussing how bad it is to torture it 18:28:39 because for instance torturing people without IO is considered horrible (even more horrible than torturing those with IO) 18:28:53 althouhg humans 18:28:54 argh 18:29:01 oklopol, really, cats are even worse. 18:29:10 although different rules apply to humans so that's a bad example 18:29:18 Phantom_Hoover: you mean at torturing? 18:29:29 i'm aware 18:29:37 but cats are cute 18:29:55 they are at least as cute as mice 18:30:09 so i don't think it's that unethical if they torture mice 18:30:50 http://www.google.com/search?q=ugly%20cat&tbm=isch 18:30:52 i wish someone would write these rules down in a nice and accessible way, it has taken me years and years to deduce them from listening to idiots 18:30:52 cute stuff 18:36:35 -!- Gregor has set topic: TOPIC: Are hamsters Turing-complete? | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 18:36:56 http://www.google.com/search?q=ugly%20cat&tbm=isch 18:36:57 ahahaha 18:37:13 `delquote 483 18:37:14 ​*poof* 18:37:20 `addquote [...] only the hamster's nervous system was tortured. although probably torturing a large logical gate constitutes a horrible thing to do if it comes in a cute container. 18:37:21 483) [...] only the hamster's nervous system was tortured. although probably torturing a large logical gate constitutes a horrible thing to do if it comes in a cute container. 18:37:26 Yeesh :P 18:37:54 the problem with that is every idiot in the planet wants to repeat what Phantom_Hoover said when they see it 18:37:58 *on 18:38:17 Hey, what'd I say? 18:38:30 i'm not saying you're an idiot 18:38:44 Yeah, I'm just wondering which thing you're referring to. 18:38:47 ohhhhh 18:38:52 just the says the large logical gate 18:39:16 i mean it's funny but it's kind old 18:39:24 i mean 18:39:32 humor. humor is kinda old after this many years. 18:39:41 whats humor 18:40:29 In other news, someone on /r/AskScience thinks Minkowski space is hyperspace from Star Wars. 18:40:52 Is there any relation at all? 18:41:37 The most often-used Minkowski space is the 3+1 dimensional one, which is a hyperspace by one definition. 18:41:46 what R^4? :D 18:41:51 oh is it a physics thing 18:41:58 Phantom_Hoover: Not the Star Wars one though ;P 18:42:04 oklopol, well, no, it's a maths thing used in physics. 18:42:06 Yes, but Star Wars "hyperspace" is nothing more than advanced phlebotinum. 18:42:19 And yet, subspace is BETTER. 18:42:30 Gregor: That's Star Trek. 18:42:35 Exactly! 18:42:44 Like I said: Better :P 18:42:48 ... No argument there. :P 18:42:49 pikhq, yes, please stop lecturing me on things you know damn well I understand. 18:43:45 Phantom_Hoover: ... I was lecturing? 18:44:37 pikhq, you were about to launch into one of your "hey let me tell you all about this thing you just brought up", even though I know perfectly well what the difference is. 18:45:01 Phantom_Hoover: Actually, no, I wasn't. 18:45:18 pikhq, then let the matter end here. 18:45:28 There's really nothing more to be said about Star Wars "hyperspace". It's advanced phlebotinum. Absolutely nothing else *exists* about it. 18:45:33 Mmkay. 18:45:57 pikhq: Related: http://codu.org/tmp/doubletie2.jpg 18:46:02 oklopol, so yeah, it normally means R^4 with a weird distance metric. 18:46:18 Gregor: T3h awesome. 18:46:27 I have invented the future of neckties. 18:47:05 Actually, yes.. 18:47:34 According to the documentary "Back to the Future", it will be custom to wear multiple ties in a mere 4 years. 18:47:38 :) 18:48:00 OK, you're the second person to mention that, I guess I need to find that scene :P 18:48:07 http://images.wikia.com/bttf/images/1/19/Mockfry.jpg 18:48:17 i cant wait 18:49:04 On a scale from one to ten, my doubletie style is far, far better than that :P 18:49:17 No argument. 18:49:25 pikhq: Related: http://codu.org/tmp/doubletie2.jpg <-- Is that two different ties in one? 18:50:01 Vorpal: Yup 18:50:15 God. 2015 is 4 years from now. Where's my flying Delorean? 18:50:16 Gregor, try three now 18:50:36 pikhq, living in the future sucks. 18:51:03 Vorpal: *shakes fist* 18:51:13 Two works well because humans are all symmetrically :P 18:51:14 The past just keeps coming up to us and tries to make us feel guilty. 18:51:34 `addquote pikhq, living in the future sucks. The past just keeps coming up to us and tries to make us feel guilty. 18:51:35 484) pikhq, living in the future sucks. The past just keeps coming up to us and tries to make us feel guilty. 18:51:42 Gregor, but yours are intertwined anyway 18:51:49 Dammit, I mixed the tenses. 18:51:56 I don't want that going down for posterity! 18:51:57 Vorpal: Yeah, but to get them that way I have to wrap them 'round my neck somehow. 18:52:01 `delquote 484 18:52:03 Vorpal: And the way I do that is one in each direction. 18:52:03 ​*poof* 18:52:08 Vorpal: Any other way would create an imbalance. 18:52:13 `addquote pikhq, living in the future sucks. The past just keeps coming up to us and trying to make us feel guilty. 18:52:14 Gregor, ah so two 4 then, two at front, two at back 18:52:15 484) pikhq, living in the future sucks. The past just keeps coming up to us and trying to make us feel guilty. 18:52:21 ... wow :P 18:52:32 Gregor, like the idea? 18:52:42 Gregor, you know you have to try it 18:53:07 Gregor, anyway isn't having only one tie imbalanced? 18:53:33 Vorpal: Yeah, half of what goes into tying a tie is about balancing it again. 18:54:30 Anyway, the point is that doubleties rule and >=tripleties will have to wait 'til at least 2015 :P 18:55:02 -!- Lymee has quit (Ping timeout: 255 seconds). 18:55:58 Gregor, hm... what about ties all around? 18:56:18 probably the actual mechanism for them being attached to you would have to be modified 18:56:25 ... wow X-P 18:56:35 I mean, it would likely be bulky otherwise 18:56:53 Gregor, no? 18:57:16 Here I go and invent the future of neckties. 18:57:24 And everybody's like "Oh we want the future of the future of neckties" 18:57:46 i'm not, all i'm saying is you shouldn't wear a tie at all 18:58:02 the future is about taking your clothes off, not putting more of them on 18:58:15 Gregor, have you tried wearing it like in back to the future? 18:58:19 side by side I mean 18:58:52 Vorpal: That doesn't even make any sense with a normal collar ... hell, it barely makes sense with a modified collar, you'd need to clip them for them to not get in each others' way and they'd always make you look stout. 18:59:21 Gregor: imo tie number two doesn't show enough, it might as well just be coloring on tie #1. 18:59:37 you don't see its glans for instance 18:59:46 oklopol: But it adds /texture/ as well as color. 18:59:49 well you won't with a suit anyway i guess 18:59:56 Gregor, anything wrong with stoutness? 19:00:21 Gregor: sures 19:00:26 Vorpal: If you're >6ft tall, you can probably afford to look a bit stout, otherwise you should be aiming in the other direction :P 19:00:42 Gregor, what is that in SI? 19:01:11 Vorpal: ~1.8m 19:01:21 Gregor, 1.8? that is short :P 19:01:27 Friggin' nords. 19:01:28 I'm 1.89 meters 19:01:52 i'm 1.8 and i consider myself pretty short 19:01:52 actually last I checked I was 1.895, which means I should round it to 1.9 19:02:01 wow shut up 19:02:06 elliott_, what? 19:02:08 well 19:02:08 Friggin' nords. 19:02:09 in finland 19:02:14 in europe, everyone's just tiny 19:02:17 Need I say it again: 19:02:19 FRIGGIN' 19:02:19 NORDS 19:02:22 what!? 19:02:27 Nordic peoples :P 19:02:46 fNORDS 19:02:48 Gregor, are we unusually tall? I thought that was a myth 19:02:56 everything's a myth, everything is true 19:03:02 I mean, you surely have tall people in US too 19:03:10 there are short peoples here in Sweden as well 19:03:15 Vorpal: The average is taller. 19:03:29 I know someone in my age who is like 1.5-1.6 or so 19:03:38 I'm (I guess) about 1.77m, and slightly above average for American men. 19:03:53 wait that preposition was a Swedishism right? 19:04:02 it isn't "in my age" in English is it? 19:04:08 it's correct 19:04:14 yay 19:04:16 It's not correct :P 19:04:19 sure is 19:04:19 ah... 19:04:30 Gregor is just kind of a wank 19:04:31 "in my age group" would be right in some circumstances, but just "my age" 19:04:33 Gregor, what is the correct way to say it then, someone who is about as old as you are 19:04:46 Gregor, with no preposition for the latter? 19:04:47 "about my age" to emphasize that it's an estimate. 19:05:00 "I know someone about my age who ..." 19:05:00 oh that's how he used it 19:05:17 sorry i'm not actually reading what Vorpal is saying 19:05:21 "i min ålder" is idiomatic in Swedish, but obviously not in English 19:05:27 Vorpal would not believe my height :P 19:05:38 elliott_ is 0.65m 19:05:38 elliott_, I know you are short, forgot how short. 19:05:42 about 1.5m 19:05:44 ah 19:06:10 But he's also probably still at a growin' age. 19:06:16 elliott_, you aren't fully grown yet though. The person who I mentioned above is. 19:06:21 I was also short when I was 8 19:07:12 I was like 10ft tall when I was 8. I shrank. A lot. 19:07:18 olsner, oh so was I, I was only second tallest in my class in school :P 19:07:27 I forgot how tall that was though 19:07:50 "in my age" is most certainly correct english but mostly as in "in your age i already had a job" but when talking to yourself 19:08:07 -!- Lymee has joined. 19:08:20 oklopol, ah 19:08:32 oklopol: That's "at your age" or "at my age", not "in your age" or "in my age". "In age" would be talking about age in the sense of an epoch of time. 19:08:39 -!- BeedaWeeda has joined. 19:08:39 -!- BeedaWeeda has quit (Changing host). 19:08:39 -!- BeedaWeeda has joined. 19:08:49 Gregor: sure 19:08:51 when i was your age 19:08:54 Like "in my age" would probably mean "in the era of my youth" 19:09:00 at is better 19:09:56 Long story short: oklopol lies, trust those who natively speak English and its over-the-pond derivative. 19:10:01 :P 19:10:26 trust... americans? 19:10:31 you can certainly say things like "you shouldn't do that in your age" 19:10:38 besides, even I feel short sometimes. At the local Aikido club there is one guy who I estimate is about 2 meters tall. 19:10:41 Gregor, ^ 19:10:46 elliott_, you aren't fully grown yet though. The person who I mentioned above is. 19:10:49 Vorpal: FRIGGIN' 19:10:51 Vorpal: NORDS 19:10:56 i'm a few inches taller than my mother, so don't get too hasty :) 19:11:01 Gregor, well he is definitely above average up here 19:11:13 Vorpal: 2m is above average (nearly?) everywhere :P 19:11:25 Gregor, yeah 19:11:32 elliott_, ouch 19:11:42 short mother 19:11:47 elliott_, well I'm taller than both my parents (who are already rather tall) 19:11:56 Gregor, how tall are you? 19:12:01 you can certainly say things like "you shouldn't do that in your age" 19:12:05 In metric, I guess about 1.77m 19:12:11 Gregor, ah, quite short 19:12:18 I've never heard 'in' used that way. 19:12:22 neither have I 19:12:24 Vorpal: SLIGHTLY TALL >_< 19:12:28 Friggin' nords. 19:12:29 Phantom_Hoover, it was a language mixup indeed 19:12:30 It's always 'at'. 19:12:39 Phantom_Hoover: I've given up :P 19:12:40 short mother 19:12:41 shother 19:12:46 shortest 19:12:57 i'm sure i'll find a use that sounds okay 19:13:06 Short Mother, the new gangsta' rap hit by monqy. 19:13:16 you people just lack imagination 19:13:21 oklopol: I told you one :P 19:13:35 " I've never heard 'in' used that way." <<< me neither, what does that have to do with anything 19:13:42 Gregor: true 19:14:17 Gregor: but not a whole sentence that sounds good 19:14:52 In my age, we entertained ourselves by pushing a hoop with a stick down a dirt road. 19:14:53 Gregor: 1.77m isn't quite "short" just because Vorpal says so, but it's not exactly tall either... untall perhaps 19:15:02 ah yeah 19:16:26 "you shouldn't do that in your age" is rather hard to interpret 19:16:42 Y'know, I'll bet that hoop-with-a-stick game is actually really friggin' difficult. 19:16:49 no it's not 19:16:51 I guess it depends on the shape of the hoop. 19:17:02 If it's like a hula-hoop, it'd be nigh on impossible. 19:17:03 the average is 1.815m apparently 19:17:19 olsner: Average where? 19:17:24 sweden obviously 19:17:29 because they're swedes 19:17:57 Y'know, I'll bet that hoop-with-a-stick game is actually really friggin' difficult. <-- hm? 19:18:12 oklopol: Well, coulda been Scandinavia, or all the Nordic countries. 19:18:25 Vorpal: Where you push a hoop with a stick, trying to keep it upright. 19:18:59 Gregor: NO 19:19:09 Gregor, I'm not familiar with that game 19:19:21 oklopol: " I guess it depends on the shape of the hoop. If it's like a hula-hoop, it'd be nigh on impossible." 19:20:10 W|A on "average human height in Sweden": Input interpretation: "human | height | Sweden | highest point" 19:20:12 XD 19:20:18 "Assuming a list | Use multiplication instead" 19:21:22 Gregor: usually it's like a bike wheel 19:21:36 so easy 19:21:43 Well, that's better than a hula-hoop ... 19:21:43 i mean without the actual tire 19:21:46 AH 19:21:52 Then that's a lot easier, yes. 19:22:01 Because it's actually relatively stable upright. 19:22:24 oklopol: Why do you have so much experience with hoop-and-stick? :P 19:22:34 well exactly as stable as one with the tire if it's moving, point is you can actually do something with the stick 19:22:50 Gregor: my fetish: learning pointless skills 19:23:23 `addquote oklopol: Why do you have so much experience with hoop-and-stick? :P Gregor: my fetish: learning pointless skills 19:23:24 485) oklopol: Why do you have so much experience with hoop-and-stick? :P Gregor: my fetish: learning pointless skills 19:23:48 i have actually tried that only once but there's really nothing to learn 19:25:58 Gregor: okay i give up, can you make "in your age" make sense as well? :D 19:26:31 maybe just the same way but that sounds just kind of weird 19:26:45 oklopol: In my age, we entertained ourselves by pushing a hoop with a stick down a dirt road; in your age, you entertained yourself with heroin and prostitutes. 19:27:07 hmm right like when HE was a kiddo 19:27:31 btw i saw my first prostitute about a week ago 19:27:56 `addquote btw i saw my first prostitute about a week ago 19:27:57 486) btw i saw my first prostitute about a week ago 19:27:59 Is "saw" a euphemism here :P 19:28:05 :D 19:28:07 he just looked at him 19:28:09 staring 19:28:19 they were usually kind of ugly 19:28:45 i (literally) saw some cute ones in germany of all places, but i was not alone so didn't try 19:29:08 ..."try" because sex is so hard to get right. 19:29:43 With a legit partner, sure. With a prostitute, not so much :P 19:30:08 lesson learned: partners make sex unneccessarily difficult 19:30:19 *legit 19:30:50 good thing my partner is an ex con........... SEX con......... 19:31:09 have you lost the bet yet? 19:31:20 wait what were the rules, can you take it up the old blackie? 19:31:45 if im still a virgin by seventeen you give me money, hint, you are going to be giving me money 19:32:12 and i'm asking what is considered virginity 19:33:10 okay i thought i got tachycardia but it was just the neighbor playing music 19:33:12 elliott_, wait what? oklopol gives money to people who are virgins at a certain age? 19:33:40 yeah Vorpal i'm not giving you bonus for being virgin at 20 19:33:55 oklopol, what about 22? 19:34:04 nope 19:34:18 i'm not sure i could feed the whole channel 19:34:18 oklopol, anyway I has already been 17 19:34:27 have* 19:34:28 gah 19:35:06 "anyway I has already been 17" is actually more valid english than your earlier sentence, since it's actually in use by many interesting people 19:35:17 hm 19:35:35 bad sentence 19:35:36 go away 19:35:36 no natives though :D 19:35:47 hopefully 19:36:51 in your age you probably don't hear much as a general i have my own grammar type of thing, but it seems to be a relatively common swedishism 19:37:24 anyway 22 is nothing compared to SOME PEOPLE i know who are still virgins 19:39:57 oklopol, so why wouldn't elliott_ be a virgin by 17? the odds are in his favour 19:40:18 well let me let you in on it 19:40:23 everyone else ignore me for just a little bit 19:40:27 done? 19:40:28 okay 19:41:03 so Vorpal see i'm actually a devout christian and i'm trying to keep him a virgin until he gets married 19:41:25 XD 19:41:34 with most people on the channel i have some sort of technique of doing this, with elliott it's an open bet 19:41:45 with you, well, i really didn't have to do anything 19:41:52 okay everyone can unignore me now 19:41:53 tell them 19:42:11 -!- azaq23 has joined. 19:42:19 Vorpal: could you please tell them? 19:42:31 i don't wanna be silent :\ 19:42:39 i wanna be hurd 19:42:48 whoops 19:42:49 freudian slip 19:43:03 thank god i was ignored because i certainly didn't want anyone in on *that* 19:43:39 `say sadjkf 19:43:41 No output. 19:43:43 argh 19:43:54 `tell sadjkf 19:43:56 No output. 19:43:59 :( 19:44:03 my life is ruined 19:44:03 oklopol, so why wouldn't elliott_ be a virgin by 17? the odds are in his favour 19:44:04 What are you trying to do :P 19:44:06 gee thanks :D 19:44:12 Gregor: trying to get people to unignore me 19:44:15 and i'm asking what is considered virginity 19:44:18 we hashed out the entire definition 19:44:21 `echo It's echo, genius :P 19:44:22 It's echo, genius :P 19:44:27 Gregor: thanks 19:44:37 i wanna be hurd <-- gnu hurd? 19:44:40 yeaaaah right 19:44:41 `echo please unignore me now okay, says oklopol 19:44:42 please unignore me now okay, says oklopol 19:44:49 erm 19:44:53 whoops typo 19:44:54 *hird 19:44:58 oklopol, ah 19:45:24 gee thanks :D <-- well come on, you are a geek. 19:45:45 Gregor: `echo is kind of silly 19:45:53 oklopol: Dood ... it's UNIX >_< 19:45:55 `which echo 19:45:57 ​/bin/echo 19:46:02 `which which 19:46:03 ​/usr/bin/which 19:46:05 who's ignoring the oklo? 19:46:07 (Debian in fact) 19:46:11 Gregor: i know it's unix 19:46:15 Vorpal: geek =/= socially retarded 19:46:22 i happen to be socially retarded, but they're not the same thing. 19:46:26 olsner: everyone ignored me for a while 19:46:30 because i asked 19:46:33 elliott_: No, more like geek (subsetof) socially retarded :P 19:46:38 oklopol: I didn't 19:47:01 i'm neither a geek nor socially retarded, i'm just kind of stupid 19:47:17 olsner: well then you're an asshole i guess :( 19:47:26 I guess so 19:47:26 olsner: don't tell anyone what you heard plz 19:47:27 i ignored oklopol when he told me to ignore him 19:47:39 that is 19:48:01 i did not heed his command 19:48:11 that is 19:48:13 i heard the whole thing 19:48:14 `run ln -s /bin/echo bin/say 19:48:15 oklopol: heard? I saw text but heard nothing 19:48:16 No output. 19:48:22 `say lulstupidcommands 19:48:23 lulstupidcommands 19:48:35 Gregor: thanks, that's actually possible to guess 19:48:50 unlike echo, what the fuck is that supposed to mean 19:49:01 i'm not in a cave 19:49:11 really? 19:49:36 Except that `echo is quite guessable if you know what HackEgo is :P 19:50:27 -!- CakeProphet has joined. 19:50:27 -!- CakeProphet has quit (Changing host). 19:50:27 -!- CakeProphet has joined. 19:50:43 Gregor: well i know, didn't actively remember because it's so incredibly uninteresting 19:50:43 flip some consonants in that name and you'll get HagEcho 19:50:47 :D 19:51:00 olsner: now there's something i can understand 19:51:01 -!- Lymia has joined. 19:51:02 elliott_: No, more like geek (subsetof) socially retarded :P 19:51:02 yawn 19:51:06 foldl, applied to a binary operator, a starting value (typically the left-identity of the operator), and a list, reduces the list using the binary operator, from left to right 19:51:14 the idea of having two different identites intrigues me. 19:51:50 i saw the most horrible geek, he was like the most geek geek ever and he was at this party and he was being such a geek and everyone was like wow now that guy's a geek 19:51:52 easily intrigued? 19:51:53 i tell the best stories i know 19:53:04 his shirt looked like one of those star trek shirts although it was slightly different 19:53:10 geekhood and social retardation may be correlated but loads of people have either without having both 19:54:01 -!- Lymee has quit (Ping timeout: 246 seconds). 19:57:18 i usually try to tell people i'm a mathematician as fast as possible so they know i'm a geek 19:57:39 ooh, mathematician 19:58:10 people have very different reactions really 19:58:10 I say I'm an informatician. 19:58:17 informatician :D 19:58:48 something for everyone 19:58:52 #1 reason to use the word "informatics" instead of "computer science": Nobody thinks they know what informatics means, whereas people think they know (but in fact do not know) what computer science means :) 19:59:10 my title is "Developer" ... I guess I'm a programmer 19:59:28 #2 reason: Nobody asks you to fix their computer if you tell them you're an informatician. 19:59:30 same with math really, could someone supply me with the math version of informatics 19:59:41 numerology 19:59:44 maybe 19:59:51 hehehehehe 19:59:53 i actually told this norwegian woman i do math 19:59:55 and she says 19:59:58 with a straight face 20:00:05 oh that's cool, i'm reading a book on numerology 20:00:16 and i'm like 20:02:49 ok, I now proclaimed me a Certified WOMM Certification Engineer 20:04:59 oh and then there was another norwegian who was like "wow i love math, i remember when our math teacher taught us that one is not actually REALLY one!" 20:05:09 wow what 20:05:16 haha 20:06:18 what can i say to that 20:07:05 just think about it, the one thing she has committed in her memory about WHAT MATH REALLY IS ABOUT is some misunderstanding of set theory of her teacher's 20:07:19 or whatever, i don't really know what her teacher had misunderstood 20:07:46 I say I'm an informatician. 20:07:55 i kind of like "computing theorist" but it sounds really pretentious :D 20:08:05 computing theorist is good 20:08:47 i guess i could just say i study informatics as well, ca theory is just computer science anyway 20:09:14 says majority voting of unis at least 20:09:37 hey 20:10:01 what if i started saying i study symbolic dynamics 20:10:01 :D 20:10:27 (the theory of CA when you only run them for a single step.) 20:11:01 (but same topology, measures and techniques) 20:12:05 (and has more mathy content because you it mixes well with linear algebra when you take the n states as the basis of R^n) 20:12:10 *-you 20:12:48 mm i love talking about math 20:13:10 i could just barely drag myself out of the university because there was just so much math there 20:16:36 what does "symbolic dynamics" sound if you don't know anything about anythign? 20:16:38 *anything 20:16:41 *like 20:16:52 i happen to be socially retarded, but they're not the same thing. <-- there is a correlation though I would say 20:17:53 unlike echo, what the fuck is that supposed to mean <-- that is a what the command is called on *nix, and on DOS too iirc. And so on. 20:17:57 Vorpal: I already said there's a correlation 20:18:03 Vorpal: obviously i know that 20:18:05 olsner, yes saw that a bit down 20:18:12 oklopol, so what was the issue with "echo" then 20:18:44 Vorpal: i didn't guess it 20:19:16 obviously i couldn't guess it or no one would've asked me what i was doing 20:19:34 unlike echo, what the fuck is that supposed to mean 20:19:53 It echos what you put on its command line? 20:20:00 " unlike echo, what the fuck is that supposed to mean" <<< um, that's like the most used command for that... come one man learn ur stuffs.... 20:20:17 what a social retard that oklopol 20:20:24 such a famous bisexual 20:21:30 Yeah, like Marlon Brando. 20:21:40 And Caligula. 20:22:07 uhhuh 20:22:21 those were the days 20:22:25 and cthulhu 20:26:21 And... Keeley Hawes? 20:26:34 I feel cheated by Ashes to Ashes now. 20:27:02 bisexuals are people too... 20:27:03 `addquote such a famous bisexual Yeah, like Marlon Brando. And Caligula. And... Keeley Hawes? I feel cheated by Ashes to Ashes now. 20:27:04 487) such a famous bisexual Yeah, like Marlon Brando. And Caligula. And... Keeley Hawes? I feel cheated by Ashes to Ashes now. 20:34:00 ...wait was that a frog on my floor 20:34:05 -!- Lymia has changed nick to Lymee. 20:34:39 i swear i saw something jump in the air 20:35:53 -!- boily has quit (Ping timeout: 276 seconds). 20:36:58 i have to go to the office 20:37:00 see you later 20:37:17 -!- BeedaWeeda has quit (Ping timeout: 264 seconds). 20:37:52 -!- BeedaWeeda has joined. 20:37:53 -!- BeedaWeeda has quit (Changing host). 20:37:53 -!- BeedaWeeda has joined. 20:40:37 oklopol and offices, two things which could not be more opposed. 21:03:11 -!- Tritonio has joined. 21:49:09 -!- pumpkin has joined. 21:49:09 -!- pumpkin has quit (Changing host). 21:49:09 -!- pumpkin has joined. 21:51:01 -!- Lymia has joined. 21:51:55 -!- copumpkin has quit (Ping timeout: 240 seconds). 21:52:17 -!- pumpkin has changed nick to copumpkin. 21:53:01 -!- Lymee has quit (Disconnected by services). 21:53:01 -!- Lymia has changed nick to Lymee. 22:21:12 Vorpal: What happens if you synthesise (a <= not a) 22:23:21 Vorpal: IMPORTANT QUESTIONS 22:29:17 elliott_, feedback loop, burnout. 22:29:57 -!- Lymee has quit (Read error: Connection reset by peer). 22:30:11 Phantom_Hoover: I mean IRL. 22:30:17 Or was that your answer. 22:30:27 I guess that would be a clock of some kind? 22:30:47 -!- Lymee has joined. 22:32:22 Phantom_Hoover: Erm, it has no "after time", so I presume it's just a halt-and-catch-fire scenario. 22:48:39 -!- pikhq_ has joined. 22:51:17 -!- pikhq has quit (Ping timeout: 255 seconds). 22:52:55 Uh. 22:54:23 -!- Lymee has quit (Ping timeout: 260 seconds). 22:54:43 I haven't a clue what best to do right now. 22:55:13 A recruiter from Google emailed me. 22:55:17 -!- Sgeo_ has joined. 22:56:14 -!- Sgeo has quit (Ping timeout: 255 seconds). 22:56:27 I have no idea how best to say "I am currently a student, but please feel free to hire me." :P 22:56:56 -!- Tritonio has quit (Quit: Leaving). 22:59:05 the day pikhq_ discovered spam 23:00:54 Vorpal: What happens if you synthesise (a <= not a) <-- no idea 23:02:46 elliott_: Piss-poor spam. What sort of spammer uses an @google.com address and gives the phone number of Google's main campus? 23:04:59 i dunno a bad one???? 23:06:33 -!- Lymee has joined. 23:07:03 -!- NihilistDandy has quit (Remote host closed the connection). 23:09:38 pikhq_, faked email? 23:09:44 Elaborate practical joke? 23:10:13 It just seems so utterly improbable yet legit. 23:10:57 pikhq_, you can totally trust us to give you a reference. 23:21:09 -!- myndzi\ has joined. 23:21:09 -!- myndzi has quit (Read error: Connection reset by peer). 23:32:54 -!- elliott_ has quit (Ping timeout: 258 seconds). 23:34:02 -!- Lymee has quit (Ping timeout: 255 seconds). 23:34:21 Conclusion: myndzi = elliott = Lymia. 23:36:49 * Phantom_Hoover → sleep 23:36:50 -!- Phantom_Hoover has left ("Leaving"). 23:36:54 -!- Phantom_Hoover has quit (Quit: Leaving). 23:47:04 -!- Lymee has joined. 2011-07-07: 00:10:41 -!- Lymee has quit (Read error: Connection reset by peer). 00:25:47 -!- Nisstyre has quit (Ping timeout: 255 seconds). 00:27:17 -!- Lymee has joined. 00:52:33 -!- BeholdMyGlory has quit (Remote host closed the connection). 01:01:06 -!- Patashu has joined. 01:07:05 -!- oerjan has joined. 01:13:59 the idea of having two different identites intrigues me. 01:14:40 sadly if there is _both_ a left and a right identity, they have to be the same. (because l = l `op` r = r) 01:15:03 but you can have something that is just one of them, say 0 is just a right identity for (-) 01:15:41 and more intriguingly, if you _do_ have just one side, i think you can have more than one identity 01:17:14 actually that is pretty obvious 01:18:07 > let x `op` y = if x < 0 then y else -y in ((-2) `op` y, (-1) `op` y) 01:18:08 (y,y) 01:34:20 http://www.reddit.com/r/homestuck/comments/ihleb/so_im_doing_the_writing_for_a_midnight_crew_based/ how does this have -2 downvotes? 01:43:54 Upvote/downvote numbers are meaningless. 01:45:12 you'd think they'd keep the fudging within the natural numbers, though 01:48:31 -!- CakeProphet has quit (Ping timeout: 240 seconds). 02:14:07 -!- brucebanner has joined. 02:17:00 -!- brucebanner has left. 02:18:14 fortunately he left before anyone got him angry 02:23:59 :) 02:25:53 Why does the e-reader I want cost $330? 02:36:27 Wikipedia now automatically uses WOT 02:36:39 No, n/m 02:37:23 Someone actually manually inserted WOT stuff http://en.wikipedia.org/w/index.php?title=Reflexology&action=edit 02:53:06 -!- Lymia has joined. 02:55:59 -!- Lymee has quit (Ping timeout: 250 seconds). 03:18:08 -!- Lymia has quit (Ping timeout: 255 seconds). 03:36:51 -!- foocraft has joined. 03:38:23 -!- azaq23 has quit (Ping timeout: 255 seconds). 03:57:26 -!- azaq23 has joined. 04:49:06 " I haven't a clue what best to do right now." <<< ignore 04:50:46 " and more intriguingly, if you _do_ have just one side, i think you can have more than one identity" <<< a op b = a 04:52:19 ah yes 04:52:21 i think i characterized the CA generated by idempotents 04:52:38 although the characterization is a bit complicated 04:53:06 the CA generated by involutions (a^2 = 1) are a famous open problem 04:53:37 erm sorry the CA generated by periodic CA (a^n = 1 for some n) are a famous open problem 04:54:49 -!- foocraft has quit (Quit: if you're going....to san. fran. cisco!!!). 04:54:55 the conjecture is they essentially generate all reversible CA, although there are some restrictions on information flow and you can't do shifts for instance 04:56:45 YOU'LL FIND THE DETAILS IN MY PHD THESIS 04:58:01 an idempotent CA is kind of like a strong deformation retract of the full shift to an SFT 04:58:23 um idempotent just means everything becomes a still life after one generation, no? 04:58:46 yep 04:59:08 what do you mean "just" 04:59:27 i'd say it "just" means G^2 = G 05:00:04 a^n = 1 is to hold globally at all points for a fixed n? 05:00:17 yeah 1 is the identity map 05:00:23 oh 05:00:30 nono a^n = 1 means a^n is identity 05:00:31 so the conjecture means that every reversible CA has a finite period... 05:00:41 what? 05:00:52 um that's how i read what you wrote 05:01:02 they don't, so let me see what i wrote 05:01:06 or what do you mean by generate 05:01:16 no they GENERATE the reversible CA 05:01:24 = their products are 05:01:41 but as i said there are restrictions, and i don't know what they are exactly 05:01:54 but it is known they do not in fact generate all reversible CA, particularly the shift 05:02:03 ah. so a_1^n = a_2^n = ... = a_k^n = 1 and then a_1 a_2 ... a_k is an almost general reversible CA 05:02:10 yeah 05:03:51 and i think i have a kind of proof for forall i: a_i^2 = a^i and then a_1 a_2 ... a_k is is an almost general CA G which has the property that forall n: (if G(U_n) = U_n then G|U_n = 1|U_n) where U_n is the set of points with least period n 05:04:18 to use your way of expressing things 05:04:28 became kind of... obscure 05:04:38 erm 05:04:41 *a_i^2 = a_i 05:05:11 it is easy to see that that must hold for all CA generated by idempotents 05:05:17 and i believe it's sufficient 05:06:06 for certain values of easy 05:06:29 yeah i suppose it's kind of easy 05:07:08 anyway a oneliner 05:07:09 `quote turing 05:07:12 100) I can do everything a Turing machine can do, except love \ 146) we'd care about a turing-complete pencil \ 274) ah yes, indeed, alan turing was gay and stupid \ 468) i never meta turing. he died before i was born. \ 469) oerjan: can you delete that and the meta turing 05:07:54 `quote meta 05:07:55 333) Oh god. I've become a metallurgy hipster. Iridium is way too mainstream. \ 410) I was more of a pervert in Metaplace than Utherverse I invented Metaplace sex >.> \ 468) i never meta turing. he died before i was born. \ 469) oerjan: 05:09:46 oerjan: do you see why they have that property? i'd love to explain you see but i'm wondering if you want to do it yourself. i mean i know how much you love math. 05:10:06 oh and Sgeo_ wanted to learn math, this would actually be a fun exercise 05:11:14 * oklopol desperately tries to find math buddies, then realizes there will be ppl at the uni soon and he could just go there 05:12:05 i do not think my brain is sufficiently awake for that much math now. 05:12:28 * Sgeo_ needs to be both: Much more awake, and made familiar with what a^2 means in the context of a CA 05:12:40 Sgeo_: a \circ a, first do a, then do a again 05:12:42 two iterations 05:12:55 a^2(x) = a(a(x)) 05:12:59 in fact i somewhat fear my brain may never be that awake again 05:13:06 a^2=a is same thing as idempotent 05:13:08 ? 05:13:13 Sgeo_: that's the definition 05:13:25 a * a = a means a is an idempotent w.r.t. * 05:14:07 oerjan: speaking of brains being awake, have you heard of a topology for all CA or in general a topology for the set of dynamics commuting endomorphisms of a dynamical system? 05:14:44 because i came up with a fun topology using a dynamics invariant measures and we found some fun properties for it like composition being continuous in certain cases and inverse as well 05:15:01 and entropy almost never 05:15:58 i don't know why you'd want a measure for it, but since we got results it felt natural to assume someone else did that stuff already, much better 05:16:00 not that i recall 05:16:03 erm 05:16:08 *why you'd want a topology 05:19:25 also it turned out that in the CA case the metric is just the integral over S^Z of d(a(x), b(x)) where d is the besicovitch measure, a fact directly given by birkhoff's ergodic theorem 05:19:49 ermerm 05:19:55 besicovitch distance i mean 05:20:21 i guess one could ask what the fuck the besicovitch distance is 05:20:29 let me tell you 05:21:47 d(x, y) is the lim sup as n goes to infinity of H(Z_n(x), Z_n(y))/(2n + 1) where H is the hamming distance and Z_n(x) is the word of length 2n + 1 in the middle of x 05:22:42 the original motivation of the besicovitch distance is of course that the shift - the most natural thing in the world - is completely chaotic with the usual topology 05:22:54 but it preserves the besicovitch metric 05:22:57 obviously 05:23:56 also with the besicovitch topology, S^Z is path connected, which is not very hard to believe, and which i've actually proven here once upon a time 05:24:17 because you can gradually flip all the bits of x to those of y... 05:30:45 -!- Nisstyre has joined. 05:30:46 -!- Nisstyre has quit (Excess Flood). 05:32:09 -!- Sgeo_ has changed nick to Sgeo. 05:33:36 -!- Nisstyre has joined. 05:53:54 -!- Lymee has joined. 05:53:55 -!- Lymee has quit (Changing host). 05:53:55 -!- Lymee has joined. 06:40:07 -!- oklofok has joined. 06:42:05 -!- oklopol has quit (Ping timeout: 264 seconds). 06:43:36 http://www.biblegateway.com/passage/?search=Isaiah+45%3A7&version=KJV 06:43:53 That really seems to screw with "God is good". 06:44:09 Unless God is in a superposition of states. 06:47:57 gotta remember that one 06:48:22 superposition sounds a lot cleaner than inconsistent or self-contradictory 06:50:22 "For thou shalt worship no other god: for the LORD, whose name is Jealous, is a jealous God" (Exodus 34:14) -- yeah, well, if his *name* is "Jealous", ... 06:50:46 Any artist does knows that you have to include contrast 06:52:32 mental disorder makes for great art 06:54:08 Also great atrocities. 06:55:54 artrocities??? 06:56:37 Sometimes. 07:04:36 arthrocities 07:06:59 " Unless God is in a superposition of states." I think he's in all the 50 states, but if he's a probability function his density would likely be larger in the bible belt 07:10:57 Isn't this some sort of a cue to a "they certainly are dense there, eh-he-eh" pun? 07:11:11 ;:DS 07:16:05 Oh, Internet. Why did you have to connect me with a solipsist? 07:16:45 And why would a solipsist even want to argue? 07:17:57 what's a solipsist? 07:18:21 Someone who thinks reality does not exist. 07:18:32 don't worry about solipsists, they're just a figment of your imagination anyway 07:18:45 No, a figment of their own imagination. 07:18:47 Even better. 07:18:47 :) 07:19:50 obvious is better? 07:24:32 hmm, but if everyone is a figment of the same imagination, that should be the same as actually existing 07:24:48 -!- BeholdMyGlory has joined. 07:24:57 Well, it's certainly indistinguishable. 07:42:49 -!- monqy has quit (Quit: hello). 07:49:04 -!- RipperM has joined. 07:49:51 -!- RipperM has left. 07:57:53 -!- pikhq_ has quit (Read error: Operation timed out). 08:00:25 -!- pikhq has joined. 08:18:23 -!- oerjan has quit (Quit: leaving). 08:36:23 -!- azaq23 has quit (Quit: Leaving.). 08:46:16 -!- BeedaWeeda has quit (Ping timeout: 240 seconds). 08:54:09 -!- BeedaWeeda has joined. 08:54:10 -!- BeedaWeeda has quit (Changing host). 08:54:10 -!- BeedaWeeda has joined. 08:57:03 so i wonder if there's a support group for people in love with schizophrenic girls who keep telling you they have feelings for you but you're so good at everything you do they'd just feel like shit about themselves 24/7 if they dated you, and who will probably die soon enough anyway 08:57:47 it's prolly a pretty common problem, i should check the bulleting board downstairs 08:58:43 also sorry about being all Sgeo there :D 08:58:53 that's not quite my problem 08:59:09 but similar enough 08:59:11 really? 08:59:16 wanna share :D 08:59:35 in private maybe 10:19:59 -!- foocraft has joined. 10:20:48 -!- Phantom_Hoover has joined. 10:21:22 I typed 'cephalopod' into Google, and the two suggestions were 'intelligence' and 'pronunciation'. 10:21:46 How difficult is 'cephalopod' to pronounce? 10:26:53 "Some cephalopods are able to fly distances up to 50 m." 10:27:01 Minecraft: more realistic than you thought. 10:28:52 -!- FireyFly has joined. 10:41:41 Phantom_Hoover, TNT assisted flight? 10:41:56 Lymee, remember the flying squid bug? 10:42:04 いいえ 10:42:46 It was all over /r/Minecraft, although I never saw it myself. 10:45:53 i never understood minecraft 10:46:06 and why people pay for a game that looks like its been made in 1985 10:47:13 and whats all the hype about 10:49:03 fALSO, please understand that saying that Minecraft "looks like it's been made in 1985" just marks you out as an idiot. 10:49:33 fALSO, no, that's Dwarf Fortress... 10:49:36 which is much more fun than Minecraft 10:49:42 FSVO 'fun' 10:50:27 Ordering around random giant things then waiting for it to finish while tabbed into IRC or something. 10:51:01 If you take 'fun' to be as it is in the adage "losing is fun", then yes, it is. 10:51:38 "Losing is fun" only applies to multiplayer games. 10:51:50 And DF, apparently. 10:52:06 Reading Boatmurdered, I can see the attraction. 10:52:16 Just watching everything unravel is entertaining. 10:52:37 (Headshoots is even more fun to read, although for the exact opposite reason.) 10:52:51 Dunno. 10:53:18 The biggest screwup I've ever had is letting a forgotten beast with an insta-kill dust attack through a hole I didn't even notice before it entered... 10:53:52 Which is to say: Most preventable, most final mistae. 10:53:54 mistake* 10:54:27 I never actually started playing, because I'm too much of a perfectionist. 10:54:38 Dont you guys like nethack? 10:54:44 its a playable game 10:54:49 Yes. 10:54:52 but it looks phantom_hoover 10:55:00 i would never PAY for something like that 10:55:10 but its ideas..... 10:55:13 It looks like it's been made in 1987... because it was 10:55:17 dont need to call me an idiot 10:55:17 I'd pay for it 10:55:38 Yes, because you seem to think that a game's entertainment value is entirely a function of how detailed the graphics are. 10:55:41 nah 10:55:49 my entertainment value 10:55:56 The rest of us pay for Minecraft because it is fun to play. 10:55:56 makes me try something 10:55:59 before buying 10:56:05 to understand what the game is about 10:56:30 -!- Slereah_ has quit (Ping timeout: 264 seconds). 11:00:12 -!- Slereah has joined. 11:10:59 fALSO, yes, but the fact that you think the graphics are at all relevant is not encouraging. 11:11:30 Its cost is trivial, and it is more than worth the money if you're into it. 11:15:04 "141% is the difference between A4 and A3." — ad on YouTube 11:15:06 Um.... 11:16:30 (For Americans and other savages, the A series halves in area each increment.) 11:23:18 I think that would be correct for B4 and B3 11:23:42 hm, not even 11:24:27 The B series is the same, it just has a different starting point. 11:25:17 Same with the C series. 11:25:30 It's correct for the ratio between the edges of A4 and A3, as long as you take the shorter or the longer edge of each 11:25:35 knowledge++; 11:26:13 Deewiant, well, OK, I guess that makes sense. 11:26:39 Although in terms of actual costs and what you can print on it, the only thing that really matters is area. 11:26:53 is there an A negative one? 11:27:05 I guess you could say there is, yeah. 11:27:42 A0 to A10 exists, with A0 being a square metre (rounded) 11:27:54 Of course you can extend it arbitrarily far 11:27:58 No, it's precisely a square metre. 11:28:18 it WAS a square meter 11:28:21 but the official proportions are post rounding 11:28:27 It's defined such that the side ratio is 1:sqrt(2) and the area is a square metre. 11:28:31 so it's not exactly a square meter 11:28:48 841*1189 11:28:48 999949 11:30:28 Phantom_Hoover, why 1:sqrt(2)? 11:30:33 How is THAT useful? 11:30:51 Lymee, because it preserves the side ratio when you cut it in half along the long side. 11:30:58 Sorry, through the long side. 11:31:36 Ah. 11:31:38 So. 11:31:44 A1 is half A0 or something? 11:31:48 Yes. 11:31:53 Clever. 11:31:53 Lymee, http://en.wikipedia.org/wiki/ISO_216 11:31:54 Educate yourself 11:31:56 It is quite neat 11:32:16 Patashu, don't be hard on her, she comes from the standardless wasteland of America. 11:32:23 *gasp* 11:32:31 O 11:32:35 That's why everyone here is from sweden 11:32:38 (literally, everyone) 11:32:58 Heh, there are series from A to H. 11:33:02 And further, I suppose. 11:33:09 there are/ 11:33:16 how do you define D0 - D10? 11:33:33 Geometric means of Bn and An-1. 11:33:38 hmmm 11:33:50 B is the geometric mean of An and An-1. 11:34:26 Cn is often used for envelopes holding An papers. 11:34:29 Cn is Bn and An 12:01:14 http://www.wolframalpha.com/input/?i=%28rotational+energy+of+earth%29+-+%28G*mass+of+earth*mass+of+moon%29%2F%28distance+from+earth+to+moon%29 12:01:17 FFS, Alpha. 12:02:42 Oh, it doesn't recognise G as the gravitational constant. 12:02:47 Way to go, Wolfram. 12:03:12 -!- boily has joined. 12:03:51 ...and it still gets caught on the rotational energy bit. 12:04:35 is rotational energy a word? 12:04:38 do you mean angular momentum? 12:04:47 No, I mean rotational kinetic energy. 12:04:58 Ah, it is a term 12:05:33 Hmm. If there's energy in having a velocity, but all velocities are relative, does that mean judging kinetic energy is different in every frame of reference? 12:05:54 Energy is not invariant, no. 12:06:15 Interesting 12:06:26 When people describe it you get the impression that it's thought of as a THING 12:06:32 Some kind of substance objects possess 12:06:40 But it's just a measurement, an incidental property 12:06:47 It's not a thing as much as an accounting measurement. 12:19:18 -!- CakeProphet has joined. 12:19:18 -!- CakeProphet has quit (Changing host). 12:19:18 -!- CakeProphet has joined. 12:20:06 Dammit, why does America get so much pretty scenery. 12:20:39 -!- FireyFly has changed nick to FireFly. 12:35:30 kind of surprised mplus isn't ++ 12:36:03 -!- wth has joined. 12:36:06 or, at least, I'm surprised ++ isn't a method. 12:36:16 of any typeclass. 12:36:29 -!- wth has changed nick to Guest63324. 12:36:43 -!- Guest63324 has quit (Client Quit). 12:37:07 insane keyboard smash skills http://www.youtube.com/watch?v=DU_TtuIJwMQ&feature=feedf 12:40:42 -!- foocraft has quit (Ping timeout: 276 seconds). 12:42:44 -!- ais523 has joined. 13:05:03 -!- foocraft has joined. 13:08:46 "So I admit I'm probably not the kind of person who normally belongs in /r/math ... but am I the only one who thinks complex numbers are bullshit?" 13:11:43 the complex number footage was faked 13:11:45 @.@ 13:11:46 Maybe you meant: . @ 13:11:55 @ . @ 13:12:02 @. @ 13:12:02 Not enough arguments to @. 13:12:10 @help . 13:12:10 . [args]. 13:12:10 . [or compose] is the composition of two plugins 13:12:10 The following semantics are used: . f g xs == g xs >>= f 13:12:55 @. pl t \x -> x 13:12:55 Plugin `compose' failed with: Unknown command: "t" 13:12:58 Dammit. 13:13:02 @type id 13:13:03 forall a. a -> a 13:13:07 @. pl type \x -> x 13:13:08 (line 1, column 13): 13:13:08 unexpected ">" or "-" 13:13:08 expecting variable, "(", ".", "`", "!!", operator or end of input 13:13:16 @pl \x -> x 13:13:16 id 13:13:37 Oh wait it does g first. 13:13:42 @. type pl \x -> x 13:13:43 forall a. a -> a 13:13:54 so what is @. 13:14:21 It composes two lambdabot commands. 13:16:04 huh... 13:16:07 when would you need that 13:22:25 Patashu, what was that video? 13:23:32 That you linked to? 13:25:53 the program is lunatic rave 2, which is a beatmania IIDX emulator, IIDX being the series of 7key+1turntable rhythm games by konami 13:26:00 the song is kirby dirge by fether 13:27:04 no wait, kirby dirge is the genre, the song name is actually something like Piano Concerto No. 1 "Scorpion Fire" (For Kirby) 13:27:14 and the chart is the overjoy**7 which is one of the hardest in existence 13:27:19 and it's being played by che. it's not a fail but it's an A grade 13:28:16 that should give you enough information to google further anything you're curious about 14:10:13 -!- Phantom_Hoover has quit (Quit: Leaving). 14:21:05 -!- copumpkin has quit (Remote host closed the connection). 14:21:30 -!- copumpkin has joined. 14:49:55 -!- foocraft_ has joined. 14:53:14 -!- foocraft has quit (Ping timeout: 240 seconds). 15:07:54 Patashu: huh, i never thought that the human being can pass it even with an easy gauge. 15:09:21 it's on the limit of human possibility. che can't pass it 15:09:36 ...oh wait, he did not pass. 15:09:39 yes 15:11:47 it never gets above 200 bpm jacks per column, which a few people can vibrate at with impeccable control. but doing it for 7+1 columns all at once is asking a lot 15:14:43 that's ~1900 notes per minute. crazy enough. 15:16:05 http://www.youtube.com/watch?v=zDppGonwmb4 15:16:09 for academic interest 15:16:21 in the past i did play such a game, but i never managed above 600 notes per minute. 15:16:34 this chart is roughly equivalent density but half as many columns 15:17:02 safe mode triggered XD, but i suppose it a stepmania session 15:17:18 lol, safe mode? 15:17:49 (i have no youtube account) 15:18:07 wait, the video I linked you to is considered mature? 15:19:06 looks like so. 15:19:12 It didn't ask me anything, and I'm not logged in to the tube. 15:19:22 huh, 15:19:24 there's 'fucking' in the description 15:19:25 would that do it? 15:19:31 http://www.youtube.com/user/geniusleonid#p/a/u/1/zDppGonwmb4 maybe try this link 15:19:32 possibly. 15:19:58 still blocked. 15:20:12 Hmmmm 15:21:27 I bet if I could link you directly to the video it'd work thn 15:21:44 http://www.youtube.com/v/zDppGonwmb4?version=3 15:23:17 Patashu: indeed... maybe a safe mode is not for embedded videos then? 15:23:45 Well, if you don't load the description your naughty words filter won't see the word 'fucking' 15:24:08 or it is possible that this block is specific to South Korea 15:37:54 -!- Patashu has quit (Ping timeout: 264 seconds). 16:05:38 -!- Vorpal has quit (Quit: ZNC - http://znc.sourceforge.net). 16:06:36 -!- monqy has joined. 16:36:39 http://i53.tinypic.com/2m68ghk.png 16:36:40 ... 16:36:43 The game's threatening me 16:39:02 you're about to drown? 16:39:54 you know what would be awesome? someone should recreate that scene from the shining, but use lava instead of blood 16:41:46 quintopia, look what's on the ground. 16:48:37 i kind of like "computing theorist" but it sounds really pretentious :D 16:48:45 The problem is that still includes the word prefix "comput" 16:48:49 That's what needs to be avoided. 16:49:18 Gregor: No, because it is computing theory 16:49:28 it is the theory of computation 16:49:43 just point out to people that it's called computer /science/ 16:49:45 coppro: The idea here is to make it so idiots don't say "CAN YOU FIX MY COMPUTER?" 16:50:07 Gregor: tell them to go ask a biologist what cold medicine they should take 16:50:26 coppro: Yeah, that works REALLY well. 16:50:31 Seeing as that they don't know what a biologist is either. 16:51:31 alternatively, just get the shirt 16:51:44 Conflicts with my glorious neckties. 16:51:52 true 16:57:07 -!- fALSO has left. 17:07:14 -!- oerjan has joined. 17:08:22 an intriguing topic indeed 17:09:46 it's prolly a pretty common problem, i should check the bulleting board downstairs 17:10:00 that's probably a bit narrow, but try checking for subreddits. 17:18:35 * oerjan hates it when logreading and all the people he wants to respond to are offline 17:20:11 -!- ais523 has quit (Remote host closed the connection). 17:20:14 kind of surprised mplus isn't ++ 17:20:27 it _was_ in haskell 1.4 17:20:50 http://www.mat.uc.pt/~pedro/cientificos/funcional/haskell-report-1.4-html/standard-prelude.html 17:20:51 oerjan: well I'M not offline 17:21:05 which is why i responded to you 17:21:17 patashu and phantom_hoover, on the other hand... 17:22:03 mind you people who are online but have idled for hours are also somewhat annoying 17:22:45 clearly the only polite thing to do is to be awake and on irc always 17:23:15 well i just came 17:28:15 -!- Vorpal has joined. 18:15:53 -!- MigoMipo has joined. 18:29:32 -!- Lymia has joined. 18:29:53 -!- Lymee has quit (Disconnected by services). 18:29:54 -!- Lymia has changed nick to Lymee. 18:37:04 -!- elliott_ has joined. 18:46:37 elliott_: party! 18:47:19 oklofok just came 18:48:40 taupe 18:50:32 -!- jix has quit (Quit: leaving). 18:50:46 -!- jix has joined. 18:59:59 10:45:53: i never understood minecraft 19:00:00 10:46:06: and why people pay for a game that looks like its been made in 1985 19:00:00 10:47:13: and whats all the hype about 19:00:03 oh, he's gone 19:01:17 -!- Lymee has quit (Ping timeout: 240 seconds). 19:02:16 12:35:30: kind of surprised mplus isn't ++ 19:02:16 12:36:06: or, at least, I'm surprised ++ isn't a method. 19:02:16 12:36:16: of any typeclass. 19:02:22 CakeProphet: all the list stuff is list-specific, unfortunately 19:02:24 ?hoogle Foldable 19:02:25 module Data.Foldable 19:02:25 Data.Foldable class Foldable t 19:02:28 ?hoogle fold 19:02:29 Data.Foldable fold :: (Foldable t, Monoid m) => t m -> m 19:02:29 Data.IntMap fold :: (a -> b -> b) -> b -> IntMap a -> b 19:02:29 Data.IntSet fold :: (Int -> b -> b) -> b -> IntSet -> b 19:02:59 CakeProphet: list comprehensions used to be full monadic comprehensions too, but they were downgraded in haskell ninetyeight to make errors simpler 19:04:16 Blargh. 19:06:53 15:17:49: (i have no youtube account) 19:06:59 lifthrasiir: you do, if you have a google account 19:07:00 Gregor: ? 19:07:21 elliott_: technically yes, but i never logged on youtube using a google account 19:07:45 17:20:14: kind of surprised mplus isn't ++ 19:07:45 17:20:27: it _was_ in haskell 1.4 19:07:49 oerjan: oh it was?? 19:07:53 what did ninetyeight add again 19:07:55 and can we go back 19:08:30 class Eval a where 19:08:30 seq :: a -> b -> b 19:08:30 strict :: (a -> b) -> a -> b 19:08:30 strict f x = x `seq` f x 19:08:35 wowv 19:08:36 wow! 19:09:12 hmph, map was generic but fold wasn't 19:09:31 elliott_: Just Blargh. 19:09:37 elliott_: Also, what's with your underscore? :P 19:09:44 It's been there for days ... 19:12:16 Gregor: Hmm 19:12:25 -!- elliott_ has quit (Quit: Leaving). 19:12:32 Well, the underscore is gone. 19:12:38 -!- elliott has joined. 19:12:46 Gregor: I've no idea to what you refer. 19:12:57 Neither do I. 19:13:00 Must have been delusional. 19:14:46 -!- elliott_ has joined. 19:14:50 Gregor: You fucking asshole, my router disconnected me for assuming that name. 19:14:54 I am deadly serious. 19:14:56 -!- Lymee has joined. 19:14:59 It just power cycled. 19:15:04 ... lul 19:15:08 I... can never be elliott again. 19:15:13 elliott: the Eval class was removed because it was horrible to have to include which types seq was used on in each function type 19:15:47 elliott_: You can be ehird :P 19:15:56 come to think of it, it may have been haskell's equivalent to java's checked exceptions :P 19:16:47 elliott: the Eval class was removed because it was horrible to have to include which types seq was used on in each function type 19:16:48 haha 19:16:49 (of course some may think monads still are) 19:16:59 oerjan: erm, wait, why? 19:17:02 if the type is not a variable 19:17:04 and there's an instance 19:17:07 you should not have to name (Seq T) => 19:17:15 well true 19:17:19 or do you mean like polymorphic things 19:17:28 but presumably for polymorphic things 19:17:28 in which case, sequencing them _should_ require an annotation if not everything is seqable 19:17:30 but yeah okay 19:17:30 -!- elliott has quit (Ping timeout: 264 seconds). 19:18:53 HEY ELIOT WHATS WITH UR NICK 19:19:51 -!- elliott_ has quit (Quit: Leaving). 19:20:10 -!- elliott has joined. 19:20:12 -!- elliott has quit (Changing host). 19:20:12 -!- elliott has joined. 19:29:13 -!- Phantom_Hoover has joined. 19:29:28 Hamsters are clearly not TC. 19:29:30 Also GTG. 19:29:44 -!- oerjan has quit (Quit: Good night). 19:30:08 http://en.wikipedia.org/wiki/File:NorAdder.svg 19:30:11 well this is clear as mud 19:34:31 fulladd a b cin (s,cout) = do 19:34:31 [n] <- vars ["N"] 19:34:31 n <== a `xor` b 19:34:31 s <== n `xor` cin 19:34:31 cout <== (a `and` b) `or` (n `and` cin) 19:34:32 oh well, there's this 19:34:45 -!- Phantom_Hoover has quit (Ping timeout: 276 seconds). 19:48:46 Vorpal: uh, do ripple carry adders take a carry as an input? http://en.wikipedia.org/wiki/File:4-bit_ripple_carry_adder.svg suggests so, but the article says you can replace the first full adder with a half adder 19:48:51 which wouldn't work if it can take a carry 19:59:03 If you use a full adder then it can take a carry, otherwise it can't. :) 19:59:28 that's not helpful :P 19:59:34 do full adders generally take a carry 20:00:49 isn't that what differentiates full- and half-adders 20:01:19 erm 20:01:20 i mean 20:01:23 do full-full adders generally take a carry 20:01:24 that full-s take a carry and half-s don't 20:01:24 as in 20:01:28 multiple-bit adders 20:01:31 ripple carry or whatever 20:01:34 oh 20:01:38 if you want them to???? 20:02:25 NOT HELPFUL >:( 20:03:36 lmao i am reinventing half of York Lava 20:03:40 gj elliott gj 20:06:36 I should rename Var to Bit just to reinforce how much I'm ripping it off 20:06:39 (unintentionally) 20:06:55 http://hackage.haskell.org/packages/archive/york-lava/0.2/doc/html/src/Lava-Vector.html#N0 rip this part off too 20:08:13 elliott, you could do either 20:08:23 how unhelpful 20:08:32 elliott, on x86 I think you have a carry from the eFLAGS register already perhaps 20:08:39 or is that ADC as opposed to ADD perhaps 20:08:50 (add with carry, or add without using carry flag) 20:10:04 monqy: that's type-level nats :P 20:10:05 elliott, Add with carry is useful to do a fast 64-bit add on a 32-bit system for example 20:10:12 elliott, so you just reuse carry from lower half 20:10:17 Vorpal: right, it's just a bigger circuit :D 20:10:22 elliott, slightly 20:10:26 yeah 20:10:27 elliott: and then, a few hundred lines down, values for each of them 20:10:28 but this is minecraft 20:10:31 everything has to be tiny 20:10:34 elliott, in minecraft it is going to be fucking large anyway 20:10:45 monqy: its not like you can do better without TH 20:10:45 elliott, anyway you should do carry-lookahead XD 20:10:51 Vorpal: what, a ripple adder? 20:10:59 Vorpal: a four-bit one should be of acceptable size. 20:11:17 how obscenely slow will ripple-carry be in minecraft 20:11:20 elliott, ripple added means you have to wait for the carry to ripple through all 128 bits or whatever 20:11:21 Vorpal: remember -- humans construct generally flat circuits in MC 20:11:22 I support using a fancier adder, as well 20:11:29 Vorpal: one hundred twenty eight bits? 20:11:30 dude 20:11:32 why would you need that many 20:11:33 elliott, carry lookahead is a way to reduce that time 20:11:36 elliott, okay 32 bit 20:11:37 still 20:11:40 why would you need that many 20:11:41 going to take ages 20:11:46 why would you need that many 20:11:48 elliott, IPv6 router! 20:11:53 (no I don't know) 20:12:01 you're not going to construct a fucking CPU beyond something eight or MAYBE sixteen bit 20:12:06 elliott, point is, even for much much smaller sizes it helps 20:12:10 read up on it 20:12:23 bigger circuit dude 20:12:36 speed is irrelevant, redstone is fast enough for a small enough number of bits 20:12:41 what matters is getting it small enough 20:12:50 you realise that redstone transmits instantly right? 20:12:55 it doesn't take a tick for things to travel along a wire 20:12:55 -!- Lymee has quit (Ping timeout: 252 seconds). 20:13:04 so OR is actually completely free. 20:23:21 so OR is actually completely free. 20:23:22 elliott, yes 20:23:30 unless current flowing back into inputs is an issue 20:23:37 elliott, say you have A or B and B or C 20:23:48 then if A is true and you wire it stupidly, B OR C will give true 20:25:33 -!- Lymee has joined. 20:26:05 Vorpal: yeaaah, im not sure whether I should make OR use a repeater to avoid that, or whether to just solve it with wiring? 20:26:10 I guess if you have like a door as an input 20:26:14 then that could fuck things up 20:32:07 -!- boily has quit (Read error: Operation timed out). 20:36:53 Vorpal: that makes things even uglier though :( 21:00:51 add4 (a0,a1,a2,a3) (b0,b1,b2,b3) c0 ((s0,s1,s2,s3),c4) = do 21:00:51 [c1,c2,c3] <- vars ["C1","C2","C3"] 21:00:51 (s0,c1) <== fulladd a0 b0 c0 21:00:51 (s1,c2) <== fulladd a1 b1 c1 21:00:51 (s2,c3) <== fulladd a2 b2 c2 21:00:52 (s3,c4) <== fulladd a3 b3 c3 21:00:54 wait, this is just a monadic fold, isn't it... 21:01:00 time to copy another piece of york-lava 21:06:20 -!- foocraft_ has changed nick to foocraft. 21:07:54 Vorpal: yeaaah, im not sure whether I should make OR use a repeater to avoid that, or whether to just solve it with wiring? <-- add a repeater if it is needed 21:07:55 :P 21:08:02 elliott, do path analysis or something 21:08:09 Vorpal: >_< 21:08:15 -!- oklopol has joined. 21:08:16 elliott, I mean follow inputs back from from OR gates, check if they are safe 21:08:20 Vorpal: i don't even know how to write a synthesiser, shut up :D 21:08:34 elliott, this is *relatively* simple 21:09:08 Vorpal: that affects timing though :( 21:09:13 I really need to figure out how to handle timing properly 21:09:56 elliott, yes indeed, that is one of the more complex bits 21:10:20 elliott, you will need to add repeaters sometimes anyway 21:10:37 -!- oklofok has quit (Ping timeout: 240 seconds). 21:11:23 Vorpal: im distracting myself by making a generic adder-creator 21:11:29 just give it the number of bits and ~VOILA~ 21:11:52 elliott, 256 21:12:00 also: currently every time you use the adder it embeds the entire adder into your circuit, I guess I really need some way to assemble separate components and wire them together... 21:12:05 this is hard 21:12:52 elliott, then you need to do CSE between adders and so on 21:12:58 Vorpal: no 21:13:08 elliott, actually MC is more like ASIC than FPGA 21:13:09 Vorpal: i just need a way to synthesise adders separately and give them input and output wires 21:13:15 so that you can plug other components in 21:13:33 elliott, make it a module in your vhdl-esque 21:13:43 its ok, just means that a "design" can contain more than one circuit 21:13:48 elliott, with a "binary" implementation 21:13:55 so you can do tricks 21:13:59 what does that mean 21:14:33 elliott, well what I mean is, that you can give it a special hardwired redstone implementation that it can route, but it possibly can't synth on it's own from the language 21:14:48 elliott, making it is a sort of "primitive" or whatever 21:14:51 -!- BeedaWeeda has quit (Ping timeout: 276 seconds). 21:14:53 well special component 21:15:03 elliott, think like __builtin_foo in gcc or such 21:15:12 lame :( 21:15:29 elliott, except users could supply those as well 21:15:39 i don't want anything unsynthesisable to be specifiable :) 21:15:45 elliott, anyway you might need a few of those anyway for the basics, AND OR NOR etc 21:15:56 I already have those 21:16:00 Primitives, I mean 21:16:01 elliott, it can be synthed, just you can't describe it in your HLL 21:16:04 I'm considering removing NOR 21:16:11 elliott, okay better analogy, like asm() in gcc 21:16:11 since it's literally just OR with NOT applied to it 21:16:13 smushed into one block 21:16:27 elliott, allow you to do stuff that can be synthed but the normal language can't /quite/ capture 21:16:33 Vorpal: shrug -- maybe, but this should generate a small adder 21:16:44 it's just a bunch of xor, and, and ors chained together :) 21:16:51 since it's literally just OR with NOT applied to it <-- different if you do it on a raised block *and don't put redstone on top of it* 21:16:56 because then the inputs will be isolated 21:17:07 Vorpal: augh 21:17:08 if you put redstone on top of the block the torch is on, it isn't 21:18:00 -!- Phantom_Hoover has joined. 21:18:10 -!- BeedaWeeda has joined. 21:18:33 * Phantom_Hoover (~phantomho@unaffiliated/phantom-hoover/x-3377486) has joined #esoteric 21:18:33 * BeedaWeeda (~port72.c@unaffiliated/beedaweeda) has joined #esoteric 21:18:35 draw your own conclusions 21:19:16 elliott, ... 21:23:09 Vorpal: what 21:23:16 hmm i should expand my thing to support simulation 21:23:17 :P 21:23:24 its just that itll be a pain 21:23:25 elliott, that is probably easier 21:23:30 than synth 21:23:41 elliott, unless you mean cycle accurate simulation 21:23:44 yeah, its just that i keep wanting to do it like york lava, but i cant, because my model is imperative :D 21:23:48 in which case you can add that after 21:23:50 hmmm unless... hmm 21:23:59 elliott: are you saying i'm Phantom_Hoover ? 21:24:03 elliott, wait imperative? 21:24:04 Wait. 21:24:06 Crap. 21:24:08 Phantom_Hoover, XD 21:24:09 Wrong window. 21:24:11 Phantom_Hoover: :D 21:24:17 :D 21:24:20 :D 21:24:24 :D 21:24:24 Vorpal: york lava taught me that cycle-accurate simulation is easy! 21:24:25 :P 21:24:29 elliott, VHDL isn't imperative... it is kind of event driven 21:24:33 elliott, wait imperative? 21:24:33 well 21:24:35 elliott, with an imperativish syntax 21:24:36 VHDL-style imperative 21:24:41 elliott, vhdl is not imperative 21:24:47 elliott, event driven kind of 21:24:52 it's more imperative than Lava-style transformations 21:25:00 possibly 21:25:08 i.e. 21:25:11 Lava> simulateN 3 $ map inv [low, high, low] 21:25:12 [[high,low,high],[high,low,high],[high,low,high]] 21:25:18 halfAdd :: Bit -> Bit -> (Bit, Bit) 21:25:18 halfAdd a b = (sum, carry) 21:25:18 where 21:25:18 sum = a <#> b 21:25:18 carry = a <&> b 21:25:25 elliott, I don't know how to read that 21:25:32 first two lines are ghc repl 21:25:35 Lava> is prompt 21:25:40 lines after that are regular .hs haskell code 21:25:52 that is 21:25:53 --ghci-- 21:25:53 Lava> simulateN 3 $ map inv [low, high, low] 21:25:54 [[high,low,high],[high,low,high],[high,low,high]] 21:25:54 -- 21:25:58 --haskell file-- 21:25:59 halfAdd :: Bit -> Bit -> (Bit, Bit) 21:25:59 halfAdd a b = (sum, carry) 21:25:59 where 21:26:01 sum = a <#> b 21:26:03 carry = a <&> b 21:26:05 -- 21:26:06 elliott, I'd say VHDL is more functional, TBh. 21:26:19 Phantom_Hoover: Umm... no? 21:26:19 You're just specifying multiple functions in one. 21:26:26 Huh? 21:26:31 elliott, ah 21:26:40 Vorpal: Anyway, Lava does simulation like this: 21:26:40 -- | Logic '0'. 21:26:41 low :: Bit 21:26:41 low = makeComponent "low" 21:26:41 {- Inputs: -} [] 21:26:41 {- Outputs: -} 1 21:26:43 {- Simulate: -} (\[] -> [repeat False]) 21:26:45 {- Params: -} [] 21:26:47 {- Continue: -} (\[o] -> o) 21:26:49 and 21:26:51 -- | Inverter. 21:26:53 inv :: Bit -> Bit 21:26:55 inv a = makeComponent "inv" 21:26:57 {- Inputs: -} [a] 21:26:59 {- Outputs: -} 1 21:27:01 {- Simulate: -} (\[a] -> [map not a]) 21:27:03 {- Params: -} [] 21:27:05 {- Continue: -} (\[o] -> o) 21:28:03 Vorpal: i.e. since everything is just functional transformation on (symbolic) bits, it can literally just do the logical operation on its inputs 21:28:07 for each cycle 21:28:41 Phantom_Hoover: how is VHDL more functional than York Lava? 21:28:52 halfAdd a b = (a <#> b, a <&> b) 21:28:53 compare to 21:28:55 (pseudoVHDL) 21:29:01 halfAdd(a,b,s,c) 21:29:03 begin 21:29:12 s <= a and b; 21:29:14 erm 21:29:15 xor 21:29:18 c <== a and b; 21:29:19 end 21:29:24 -!- Sgeo has quit (Ping timeout: 255 seconds). 21:29:25 you get the idea 21:29:33 I'm not saying that VHDL is imperative 21:29:42 But you have to declare all the wires 21:29:50 It's not /compositional/ 21:30:13 elliott: havenworks.com Not Available :((((( 21:30:20 quintopia: been like that for months 21:30:36 i didn't know til now 21:30:40 sad day 21:30:57 did you download a copy while it was up? 21:31:05 I think I did, but I might have trashed it since 21:31:07 ask Gregor :P 21:31:45 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds). 21:32:30 -!- foocraft has quit (Quit: if you're going....to san. fran. cisco!!!). 21:34:33 -!- Phantom_Hoover has joined. 21:34:54 OK, my fonts are all messed up. 21:36:07 -!- Sgeo has joined. 21:36:20 Can someone get testBit removed from Data.Bits.Bits for me? thx. 21:36:39 -!- Phantom_Hoover has quit (Remote host closed the connection). 21:39:01 -!- Phantom_Hoover has joined. 21:39:38 *sigh* 21:39:50 What is it with people *celebrating* over the closure of NotW? 21:41:01 It's like they don't realise it's an extremely dirty tactic by News Corp. 21:41:35 Phantom_Hoover, NotW? 21:41:45 Vorpal, News of the World. 21:41:47 ah 21:41:50 heard about that 21:42:57 People just hear the news and thing "yay it's gone!" without realising that it allows NC to distance those responsible. 21:43:25 i see nothing good about the move 21:43:54 What is it with people *celebrating* over the closure of NotW? 21:44:06 It may be a dirty tactic, but it still results in the NotW no longer being published or made, which is a Good Thing. 21:44:12 Except no. 21:44:13 -!- Lymee has quit (Ping timeout: 252 seconds). 21:44:27 They're making the Sun come out 7 days instead of 6. 21:44:37 they actually had no real choice 21:44:38 i.e. they're renaming NotW to the Sunday Sun. 21:44:55 obviously they're just trying to cover their asses here 21:45:12 but they aren't trying to make everyone forget 21:45:17 they're trying to make the advertisers forget 21:45:21 Phantom_Hoover: Well, sure, but then we just have to destroy the (Green) Sun, rather than the Sun /and/ NotW. 21:45:32 elliott, ahahahahahahahahaha 21:45:48 (OK that was a joke I know.) 21:46:26 I like the way that they warned Andy Coulson that they were going to arrest him, though. 21:46:33 Phantom_Hoover: It was... a half-joke. It /does/ reduce our number of targets by one. :p 21:46:49 elliott, that... doesn't even make sense. 21:46:53 -!- karlmoore has joined. 21:47:07 There's no way the Sun is going to stop being published. Full stop. 21:47:16 Phantom_Hoover: It would, if we were crusaders with the power to blow up newspapers' platonic existence. 21:47:23 Phantom_Hoover: Depressing, isn't it? 21:47:42 Anyway, we just need to expose every single person involved in the Sun as a paedophile. 21:47:50 Clearly it is the only way. 21:47:54 elliott: obviously 21:47:58 -!- karlmoore has quit (Remote host closed the connection). 21:48:04 Hope karlmoore enjoyed that. 21:48:10 this is probably not too hard given News Corp's apparent security level 21:48:11 (diff) (hist) . . N Category:Declarative paradigm‎; 12:57 . . (+223) . . Timwi (Talk | contribs) (New page: The '''declarative paradigm''' is where a program consists of declarations that define its structure/functionality. This is the opposite of the ''imperative paradigm'' in which programs co...) 21:48:14 coppro, the problem is that people think that NotW being closed will mean that idiocy will vanish overnight. 21:48:16 hnnnnng 21:48:30 Phantom_Hoover: oh dear 21:49:10 -!- MigoMipo has quit (Read error: Connection reset by peer). 21:49:16 Rather than realising that the only upshot of the closure is that the people responsible for the phone hacking will be that much better protected. 21:50:10 then people will just have to try harder to find more scandal 21:50:15 I wish this continent worked like yours 21:50:28 Why, how does yours work. 21:50:47 nobody cares about scandals like that 21:51:22 ...tampering with evidence in a murder case? 21:51:30 I'd've though that's a major scandal anywhere. 21:52:51 it would have seen a little bit of news 21:52:57 and probably prosecution 21:53:07 but no real serious outrage like that, I don't think 21:54:49 of course it would, it involves a dead kid 21:56:47 -!- Lymee has joined. 21:58:22 And they destroyed evidence, rather than just tampering. 21:59:14 elliott: you'd be surprised 21:59:18 Phantom_Hoover: so? 22:15:34 -!- Lymee has quit (Ping timeout: 260 seconds). 22:15:56 `quote wtf 22:16:00 131) alise: why internet is like wtf \ 136) And... WTF is it doing. :( Is it sexing? \ 197) pikhq, Okinawan? Wtf is that \ 236) elliott: just to bring you up to speed, you are now my baby nephew. wtf, elliott is a nephew and his uncle is here? what 22:16:26 elliott: by the way, you're now almost capable of crawling. 22:16:47 tswett: It's so much harder than the walking I'm accustomed to. 22:16:58 `addquote elliott: by the way, you're now almost capable of crawling. 22:16:59 488) elliott: by the way, you're now almost capable of crawling. 22:28:07 -!- Lymee has joined. 22:32:05 -!- pumpkin has joined. 22:32:06 -!- pumpkin has quit (Changing host). 22:32:06 -!- pumpkin has joined. 22:34:58 -!- copumpkin has quit (Ping timeout: 258 seconds). 22:38:03 -!- GreaseMonkey has joined. 22:38:04 -!- GreaseMonkey has quit (Changing host). 22:38:04 -!- GreaseMonkey has joined. 22:55:46 -!- azaq23 has joined. 22:55:56 -!- BeedaWeeda has quit (Ping timeout: 258 seconds). 22:57:27 -!- BeedaWeeda has joined. 23:02:41 -!- Sgeo_ has joined. 23:03:54 -!- Sgeo has quit (Ping timeout: 255 seconds). 23:07:31 http://www.techrepublic.com/blog/10things/10-types-of-programmers-youll-encounter-in-the-field/262 23:07:36 this is a shitty post 23:07:48 "The Theoretician knows everything there is to know about programming. He or she can spend four hours lecturing about the history of an obscure programming language or providing a proof of how the code you wrote is less than perfectly optimal and may take an extra three nanoseconds to run. The problem is, The Theoretician does not know a thing about software development. When The Theoretician writes code, it is so “elegant” that mere mortals ca 23:07:48 make sense of it. His or her favorite technique is recursion, and every block of code is tweaked to the max, at the expense of timelines and readability. 23:07:50 The Theoretician is also easily distracted. A simple task that should take an hour takes Theoreticians three months, since they decide that the existing tools are not sufficient and they must build new tools to build new libraries to build a whole new system that meets their high standards. The Theoretician can be turned into one of your best players, if you can get him or her to play within the boundaries of the project itself and stop spending ti 23:07:52 rking on The Ultimate Sorting Algorithm." 23:07:54 LOL THOSE HASKELL PROGRAMMERS 23:07:56 SO USELESS 23:10:29 I'm not allowed to talk about antiïntellectualism, am I? 23:10:36 NEVER 23:19:11 that guy Elliott Hird is a sex offender, i found him on englands sex offender registry 23:19:16 rape by force 23:19:19 on a minor 23:20:13 BeedaWeeda: Were I not underage, I would be out for your fucking head. 23:20:21 As it is I'll just wait for your inevitable ban. 23:20:59 BeedaWeeda: btw, you're a piece of shit, die in a fucking fire 23:28:31 * Phantom_Hoover → sleep. 23:28:39 -!- Phantom_Hoover has quit (Quit: Leaving). 23:31:26 elliott: now is the best time to be out for his head. better to be tried as a juvenile. 23:32:10 quintopia: I suppose it's fairly likely he'll be a repeat offender 23:32:19 Maybe he'll actually find someone who's an adult next time 23:34:45 also, re: theoretician. calling that type of programmer a theoretician is offensive to theory folk. whoever wrote this is gay. 23:36:01 * BeedaWeeda laughs 23:36:22 youre just taking what i used on you and your trying to spin it around and use it on me 23:36:26 how pathetic 23:36:56 *sigh* 23:39:24 Trying to use what? Bludgeoning? 23:39:44 But seriously, that is one of the absolute worst things you can say about a person, you are a worthless piece of shit. 23:41:00 lol 23:41:28 You realise what kind of shit that would put a person in if (a) everyone in here didn't already know you were a piece of shit and (b) I wasn't a minor? 23:41:37 Of course you do, or you wouldn't have done it. 23:42:21 elliott: also, no one in this article looks like the average hacker. i don't get it. 23:42:45 quintopia: probably because the author considers themselves one 23:42:53 otoh, anyone who identifies as an "average hacker" is probably really annoying 23:42:59 you getting upset like that makes me smile 23:43:03 yeah 23:43:06 like the author of the article 23:43:44 BeedaWeeda: You're really bad at reading emotions; I'm not upset at all, I just think you're a worthless human being. 23:44:23 There is absolutely no way what you did will affect me in any way, so I don't give a shit that you did it from a personal perspective; it's just a really terrible thing to do and you are a terrible piece of shit. 23:45:08 i have provoked hatred and anger within you and thats very obvious by the way your typing 23:45:11 BeedaWeeda: Fuck off and die in a fire. 23:45:14 i agree with elliott. you are the least amusing troll i have ever witnessed. 23:45:19 23:45:32 if you're gonna troll, make me laugh. geez. 23:45:37 lol 23:46:29 BeedaWeeda: I'm angry in the sense that you should be made to realise how terrible that was, maybe by experiencing what people who have been falsely accused of child molestation have experienced, but I'm not angry at all. You realise that it takes no emotional investment to type words on IRC? 23:46:29 look at that anger 23:46:36 i won that im making you guys so angry 23:46:46 quintopia: YOU ARE A FUCKING TERRIBLE PERSON DIE 23:46:48 take a victory lap please 23:46:51 That took approximately 0 units of angry. 23:46:54 monqy: off a short pier? 23:46:57 sure 23:47:17 im so angry im typing in lowercase without any punctuation look at me go 23:47:26 beedaweeda what have you done 23:47:27 this guy takes his online reputation seriously 23:47:29 monqy: TYPING IN LOWERCASE IS FUCKING UNACCEPTABLE 23:47:32 DIEEEEEEEEEEEEEEEEEEEEEEEEEEEE DIEEEEEEEEEEEE 23:47:56 BeedaWeeda: conversely, you want someone to dig up your real name and let everyone know you're a child molester? 23:48:07 fizzie: btw he needs banning 23:48:16 ive been convicted before but never a sex offense lol 23:48:16 ^ 23:48:22 =D 23:48:49 If I was an eye for an eye kind of guy, I would imply that BeedaWeeda is saying he got away with all _his_ child molestations. 23:49:00 =/ 23:49:09 HAHA LOOK AT THAT ANGER 23:49:13 your just trying to spin around what i used on you originally 23:49:17 lame 23:49:29 surely to hide your fury no less 23:49:33 LAME 23:49:34 BORING! 23:50:08 HRRR SO BORING BEEDAWEEDA SO ANGRY 23:50:42 don't hurt him elliott. i know he wouldn't like you when you're angry :P 23:51:19 I'm perpetually angry at everything, but BeedaWeeda's permanent ruination of my reputation has caused me to enter DOUBLE ANGER. 23:52:48 -!- BeholdMyGlory has quit (Remote host closed the connection). 23:54:15 Who the fuck is BeedaWeeda? 23:54:35 a really cool dude that's who 23:54:47 s/ol/ntemptible/ 23:56:13 Sgeo_: He came in here to prove that aliens exist and talked about UFOs and holes in megalithic structures for a while, then we got bored of prodding him and I told him he was an idiot, he got upset because we HURT HIS FEELINGS WITH CLOSED-MINDEDNESS, came back, and has since really lamely trolled for a few days. 23:56:40 Although the progression from talking about wanting to have sex with Casey Anthony to accusing me of child molestation is rather swift one. 23:57:10 absolutely 23:58:03 this guy cares about his internet rep so much that he will start yelling in caps over an IRC chat room 23:59:40 hahaha 23:59:42 I use caps all the time 23:59:51 no bold on IRC, well there is, but +c is on so I can't use it 2011-07-08: 00:00:08 you realise that "HURT HIS FEELINGS WITH CLOSED-MINDEDNESS" was capitalised for deliberate theatricality right 00:00:17 it's good to know that it's so easy to upset you, though :) 00:00:20 even easier than with me apparently 00:00:30 how to anger elliott: accuse him of child molestation w/ surname 00:00:37 how to anger BeedaWeeda: tell him he's a gullible idiot for believing in UFOs 00:00:54 damn, you must be REALLY upset actually, to stay in the channel for so many days trolling us :( 00:00:58 BeedaWeeda: do you need some emotional support? 00:04:46 -!- pumpkin has changed nick to copumpkin. 00:13:52 -!- FireFly has quit (Quit: swatted to death). 00:14:05 lol 00:14:31 you probably believe everything the media tells you 00:14:37 you already said that 00:14:40 a few days ago was it 00:14:50 yeah 00:14:52 lol 00:15:19 so... 00:15:26 BeedaWeeda, on the other hand, is in charge of the Daily Mail's Paedophile Division 00:15:37 sure dreading the paper tomorrow 00:16:31 the daily mail has a paedophile division? 00:16:32 fancy that 00:17:27 monqy: where else do you think they get all their accusations 00:42:00 -!- Lymia has joined. 00:45:15 -!- Lymee has quit (Ping timeout: 276 seconds). 00:45:39 -!- Patashu has joined. 01:26:34 Vorpal: would it be weird to call a vector of bits in a VHDL-type environment "Word" 01:26:39 i.e. Word 9 being bit[9] 01:26:45 i forget the long VHDL name :P 01:26:48 for bit, I mean 01:31:35 Why does "autodidact" have a Wikipedia entry, and why is there a list of "notable autodidacts". Is it rare? 01:31:37 * Sgeo_ mindboggles 01:31:50 Vorpal: would it be weird to call a vector of bits in a VHDL-type environment "Word" <-- yeeeeeees 01:32:01 kind of 01:32:13 I would call it an array of std_logic :P, I don't use bits 01:34:16 Please tell me that most people try to learn things on their own at least on occasion 01:35:55 Are you a notable audodidact? 01:36:41 Not notable... 01:36:59 And if "autodidact" means what Wikipedia says it means, then why isn't everyone an autodidact 01:37:00 Now you know what the list is for 01:37:02 im totally a notable autodidact 01:37:11 Vorpal: would it be weird to call a vector of bits in a VHDL-type environment "Word" <-- yeeeeeees 01:37:12 why :( 01:37:17 it's basically a word 01:37:21 Are you a notable audodidact? 01:37:25 no but he's a famous bisexual 01:37:41 std_logic isn't a bit so an array of std_logic isn't a word 01:37:43 elliott, hmm? Someone with my name is a famous gay DJ, but... 01:38:00 Sgeo_: I understand that it may be hard to come to terms with your famous bisexuality. 01:38:03 Patashu: Yeah, but my bits are bits. 01:43:10 Vorpal: OK so I guess "vector" is a better choice than "word"? 01:43:21 Bearing in mind that they're actual bits. 01:43:52 does it really matter though? 01:44:32 elliott, yes 01:44:43 Patashu: what does? 01:44:47 Vorpal: :< 01:45:01 elliott, unless you use it to implement a vector CPU, in which case it will be confusing 01:45:02 ;) 01:45:39 Har har :P 01:45:46 But seriously, Word is a nicer name than Vec :( 01:45:55 elliott, but do that in redstone logic and I will laugh in scorn (but also be really amazed) 01:46:48 Vorpal: Dude, ideally this will make redstone engineering as "simple" as using VHDL :P 01:46:55 Maybe simpler, it's all bits and no stupid syntax :P 01:47:08 elliott, wait a second 01:47:11 vhdl? simple? 01:47:21 elliott, I don't quite understand what you are talking about 01:47:32 simpler than redstone :D 01:47:33 elliott, vhdl is simpler than wiring up by hand... 01:47:35 that is about it 01:47:42 precisely, which is what we're talking about here 01:47:53 but really, it's not hard to implement a simple cpu :P i base this on a single york lava example 01:48:00 elliott, writing something that would be like 5 lines in C would take some 30 lines of *non-boilerplate* vhdl quite often 01:48:03 it'd be quicker to make an integrated circuits mods for minecraft 01:48:03 again 01:48:10 elliott, add another 20 lines of boilerplate to that 01:48:20 poly :: Poly -> Recipe 01:48:21 poly s = 01:48:21 let instr = s!code!top in 01:48:21 Seq [ Tick 01:48:21 , While (instr!isHALT!inv) $ 01:48:21 Seq [ isLIT instr |> s!rtop <== getLIT instr 01:48:23 , isDUP instr |> s!stack!push (s!rtop!val) 01:48:25 , isREV instr |> 01:48:27 Seq [ s!rtop <== s!stack!top 01:48:29 , s!stack!pop 01:48:32 , s!stack!push (s!rtop!val) 01:48:34 ] 01:48:38 , isADD instr |> 01:48:39 Seq [ s!rtop <== s!rtop!val + s!stack!top 01:48:42 , s!stack!pop 01:48:44 ] 01:48:45 , isMUL instr |> 01:48:48 Seq [ s!mult!multiply (s!rtop!val) (s!stack!top) 01:48:49 , s!rtop <== s!mult!result!val 01:48:52 , s!stack!pop 01:48:53 ] 01:48:55 , s!code!pop 01:48:57 , Tick 01:49:00 ] 01:49:01 ] 01:49:03 see, easy 01:49:07 also long, whoops 01:49:16 spammer 01:49:23 child molester _and_ a spammer? 01:49:26 these accusations. 01:49:30 reporting to server ops 01:49:35 ban 01:49:49 im sure 01:50:41 > fmap (const 4) ((,) 3) 01:50:42 Overlapping instances for GHC.Show.Show (b -> t) 01:50:42 arising from a use of `... 01:51:08 :t fmap 01:51:09 forall a b (f :: * -> *). (Functor f) => (a -> b) -> f a -> f b 01:51:09 Vorpal: can you construct RAM in VHDL? it seems that everyone just uses the provided memory interface 01:51:11 whcih is SOOO BORING 01:51:15 well 01:51:18 i suppose you obviously can 01:51:23 isn't RAM just a shitload of latches 01:51:30 and a big multiplexer/demultiplexer 01:51:34 im gonna have to ask pikhq about his repeater ram :P 01:51:43 fmap fst (1,2) 01:51:53 > fmap (+1) (1,2) 01:51:54 > fmap fst (1,2) 01:51:54 (1,3) 01:51:55 (1,2) 01:52:01 wtf 01:52:02 :t fmap fst 01:52:03 forall a b (f :: * -> *). (Functor f) => f (a, b) -> f a 01:52:04 lol 01:52:13 :t fmap fst (?x,?y) 01:52:14 forall a b t. (?x::t, ?y::(a, b)) => (t, a) 01:52:21 Vorpal: can you construct RAM in VHDL? it seems that everyone just uses the provided memory interface <-- you can do random access memory 01:52:22 > let ?x = 0; y = 9 in fmap fst (?x,?y) 01:52:23 : parse error on input `y' 01:52:25 probably only SRAM 01:52:25 elliott: I'm guessing f is a different instance in this case. 01:52:27 > let ?x = 0; ?y = 9 in fmap fst (?x,?y) 01:52:28 (0,9) 01:52:32 elliott, DRAM I don't think would be feasible 01:52:35 > let ?x = 0; ?y = 9 :: Int in fmap fst (?x,?y) 01:52:36 Couldn't match expected type `GHC.Types.Int' 01:52:36 against inferred type ... 01:52:38 at least not on usual FPGAs 01:52:39 grr 01:52:46 Vorpal: whats the difference :) 01:52:55 elliott, actually what you create will be pretty much a register file 01:52:56 > fmap show (1,2) 01:52:57 (1,"2") 01:53:03 not proper SRAM 01:53:07 Vorpal: well sure registers are the same thing as ram 01:53:08 obviously 01:53:18 elliott, nope, probably based on d-latches 01:53:25 Vorpal: ram is a thing not an implementation 01:53:30 its random access and its memory ergo its ram 01:53:38 rather than capacitance as in DRAM (definitely unfeasible on a FPGA) 01:53:43 or whatever it is SRAM uses 01:53:51 (I forgot how SRAM works exactly) 01:54:02 elliott, just pointing out memory density will be rather bad 01:54:17 elliott, same reason your "ram" in your computer isn't all register file type ram 01:54:45 Vorpal: I don't think he cares that much — he's generating *redstone logic* here. 01:54:46 yes but this is minecraft 01:54:52 register style ram is all you can do 01:54:53 :P 01:55:00 pikhq, oh right 01:55:09 elliott, there is delay line in mc too 01:55:12 that is pretty compact 01:55:21 elliott, basically repeaters chained up 01:55:28 of course that is not *random* access 01:55:30 elliott: I'm willing to bet driving the delay line would be a PITA. 01:55:31 pikhq made that 01:55:34 apparently his is actually usable though 01:55:39 rather than the one on the wiki 01:55:41 heh 01:55:48 pikhq, how does your differ 01:55:52 Vorpal: well you can just construct a bunch of delay lines duh 01:55:53 It's clocked! 01:56:00 pikhq, how? 01:56:53 Signals coming into the delay line are anded with a clock. :P 01:57:01 is minecraft a hamster? 01:57:32 what is a 'delay line'? time multiplexing? 01:57:46 it is a line that is delayed... 01:57:48 I also set up some other and gates to make it have a set and reset line. 01:59:45 what a baffling youtube account http://www.youtube.com/user/freetroutfish?email=comment_received (look at recent activity) 02:00:09 elliott: If you're feeling awesome, you could set up a tape with pistons. 02:00:26 Patashu: MWAHAHA NOW I KNOW YOU RECEIVED A COMMENT 02:00:29 LOOK AT MY URL POWER 02:00:30 (reading = easy, writing = motherfucking PAIN) 02:00:35 pikhq: An infinite tape? :P 02:00:38 lol OH NO 02:00:54 elliott: Not with Minecraft limits, sadly. 02:01:11 pikhq: I mean, infinite as far as Minecraft goes 02:03:23 So, within the surrounding 16 chunks? :P 02:03:32 Erm, less than that. Anyways. 02:04:07 if it's in multiplayer 02:04:11 you can have more people load in every chunk 02:10:34 More spam time: 02:10:35 add4 02:10:35 :: (Fun2 Bit (t3 -> t4 -> t1), 02:10:35 Fun2 Bit (t7 -> t8 -> t6), 02:10:35 Fun2 Bit (t14 -> t15 -> Bit -> Gen ()), 02:10:37 Fun2 Bit (t13 -> (Bit -> Gen ()) -> t12 -> Gen ()), 02:10:39 Fun2 Bit (t10 -> t11 -> Bit -> Gen ()), 02:10:41 Fun2 Bit (Bit -> t5 -> t2), 02:10:43 Fun2 Bit (Bit -> t5 -> t -> Gen ()), 02:10:44 Fun2 Bit (t1 -> t2 -> Bit -> Gen ()), 02:10:46 Fun2 Bit (t6 -> (Bit -> Gen ()) -> Bit -> Gen ()), 02:10:48 Fun2 Bit (t10 -> t11 -> t9), 02:10:50 Fun2 Bit (t14 -> t15 -> t13), 02:10:53 Fun2 Bit (t9 -> (Bit -> Gen ()) -> Bit -> Gen ()), 02:10:55 Fun2 Bit (t7 -> t8 -> Bit -> Gen ()), 02:10:56 Fun2 Bit (t3 -> t4 -> Bit -> Gen ())) => 02:10:58 (t3, t7, t10, t14) 02:11:00 -> (t4, t8, t11, t15) 02:11:02 -> t5 02:11:04 -> ((t, Bit, Bit, Bit), t12) 02:11:09 -> Gen () 02:11:11 good type for an adder 02:11:12 I like how it's inexplicably specialised some types to Bit and not others 02:12:20 wtf, it's actually decreased in size by adding declarations :D 02:12:23 as in 02:12:24 umm 02:12:25 generalisations 02:13:17 fizzie: not-here-lament: not-here-oerjan: 02:13:18 Choms, Channels that don't follow it are sometimes moved to their proper namespace 02:13:18 Expect the # channels that do not have approved group registrations to be moved when the GMS is in place. 02:13:26 fizzie: You guys should, uh, really get on that. 02:13:38 Or we'll end up forced into ##esoteric. 02:13:44 Which exists, heh. 02:32:13 :t showIntAtBase 02:32:13 forall a. (Integral a) => a -> (Int -> Char) -> a -> String -> String 02:32:36 > showIntAtBase 2 ("OI"!!) 99 "" 02:32:37 "IIOOOII" 02:32:54 > foldr (\x r -> x ++ " (" ++ r ++ ")") "" (showIntAtBase 2 ("OI"!!) 99 "") 02:32:55 Couldn't match expected type `[GHC.Types.Char]' 02:32:55 against inferred ty... 02:33:10 > foldr (\x r -> x : " (" ++ r ++ ")") "" (showIntAtBase 2 ("OI"!!) 99 "") 02:33:12 "I (I (O (O (O (I (I ()))))))" 02:33:16 > foldr (\x r -> x : " (" ++ r ++ ")") "Z" (showIntAtBase 2 ("OI"!!) 99 "") 02:33:18 "I (I (O (O (O (I (I (Z)))))))" 02:33:44 > let n = 99 in "type N" ++ show n ++ " = " ++ foldr (\x r -> x : " (" ++ r ++ ")") "Z" (showIntAtBase 2 ("OI"!!) n "") 02:33:46 "type N99 = I (I (O (O (O (I (I (Z)))))))" 02:33:51 elliott: line noise. 02:33:52 :P 02:33:59 what part of it? 02:34:01 that whole function is trivial to read 02:34:11 oh it's trivial to read. 02:34:21 I'm just saying it looks like line noise. 02:34:34 no it doesn't :) 02:35:13 line noise with some words thrown in. 4 of them to be exact. 02:35:20 er, 5... 02:35:40 let, type, show, fold(right), int, at, base 02:35:50 that's six to eight words 02:36:00 I was counting showIntAtBase as one. 02:36:07 cheater :) 02:36:12 but sure, whatever makes it less like line noise. :P 02:36:30 MIGHT AS WELL WRITE IT IN PERL OOOOH SNAPPP 02:38:43 elliott: oh hey, I forgot in 02:38:49 *Redsynth.Vec Data.List Numeric> n128 02:38:49 N1 02:38:49 no... 02:39:17 huh, it is broken 02:39:17 that is 6 words by the CakeProphetian anti-line-noise quantification metric. 02:39:33 what the fuck... 02:39:42 are you writing a synthesizer? 02:39:48 We've already estabilished that the CakeProphetian metrics have negative value. 02:40:05 CakeProphet: Yes. 02:40:18 pikhq: nonsense, they are intuitive and beautiful. 02:40:27 elliott: are you using a filter by chance? 02:40:45 filters = good synthesis. 02:40:49 CakeProphet: Why would I use a filter for synthesising? 02:41:01 because they produce rich timbres. 02:41:20 whereas additive synthesis is tedious, time-consuming trial-and-erorr 02:41:26 lol *error 02:41:47 CakeProphet: I'm probably doing it with a hill-climb or genetic algorithm of some sort following a random layout. 02:41:52 Do you know a better way? 02:42:44 CakeProphet: ? 02:44:09 nope. but filters are good. That is all. 02:44:24 but I will eat my newly acquired Cap'n Crunch and ponder this. 02:44:41 CakeProphet: Ponder what? 02:45:04 different synthesis techniques. 02:45:22 a hill-climb does sound interesting though. 02:45:55 any idea what exactly you're synthesizing? 02:46:07 CakeProphet: I'd be interested in knowing the basic filtering synthesis algorithm. ais said that all the major shops basically use what I said, but it sounds really crappy and a pain to code to boot. 02:46:14 Oh, redstone. Why? 02:46:27 ...wat 02:46:38 I don't believe I said anything about /sound/ synthesis. 02:46:47 ... -_- 02:46:49 LOL 02:46:54 * Patashu rimshot 02:47:20 assholes. 02:48:13 that was great 02:49:07 elliott: nope, I will never teach you how to filter good-sounding redstone. 02:49:24 OH NOES 02:49:44 you will be left in the dark forever, as I am the only source of information on this subject. 02:50:49 :D 02:51:15 * CakeProphet impatiently waits for PayPal to confirm his bank account so he can begin a spree of compulsive online spending. 02:51:50 How do you not already have a PayPal account I am fifteen and even I have one. 02:51:55 this is an important rite of passage in the US. 02:51:58 Actually I've had one for years but. 02:52:04 elliott: I have one, but I didn't have a bank account until now. 02:52:32 Weeeeell, I believe mine is technically called a savings account, but I put money in, get interest, can take it out, and have a Visa debit card, so "what's the difference" :P 02:52:40 Not savings account. 02:52:42 What is it called. 02:52:43 Argh. 02:52:46 Well it's something other than "bank". 02:52:57 But they transmogrify it into a banque account once you become SUFFICIENTLY OLD TO BEAR THE RESPONSIBILITY :p 02:53:13 elliott: must savings accounts have a limit on how many withdrawals you can make in a month. 02:53:25 ...oh god, that was horrible. 02:53:25 Hmm, I might have such a limit, but I dunno what it is 02:53:26 they terminated elliotts PayPal account after discovering several large orders of male child pornography 02:53:37 I'm not sure it applies to debit cards. 02:53:51 BeedaWeeda: I realise I hurt your precious little feelings by saying that UFOs aren't real, but seriously, fuck off. 02:54:00 which he ordered to his moms house 02:55:21 * BeedaWeeda chuckles 02:55:25 begin 02:55:26 w1_0 <= '1'; 02:55:26 w3_0 <= '0'; 02:55:26 c2 : fd generic map (INIT => '0') port map (w2_0,clock,w0_0); 02:55:26 c0 : fd generic map (INIT => '1') port map (w0_0,clock,w2_0); 02:55:26 x <= w0_0; 02:55:28 end structural; 02:55:30 23,1 Bot 02:55:32 Vorpal: What does this even mean. 02:55:42 what language is that 02:55:46 elliott, that looks generated 02:55:55 Vorpal: Yes, it is. 02:55:56 CakeProphet: VHDL. 02:56:02 Vorpal: I did 02:56:02 Prelude Lava> writeVHDL "Yeah" (let x = delayBit high (delayBit low x) in x) (name "x") 02:56:05 not expecting it to work. 02:56:12 UFO's have feelings too y'know 02:56:36 elliott, but it maps inputs and outputs from some component to inputs and outputs (or signals) in the own module 02:56:53 Vorpal: It's all that's generated; there is no more. 02:56:53 the c2 and c0 lines I mean 02:56:54 oh hey, I don't have to wait for my bank account to be linked, I can go ahead and make transfers manually. 02:56:59 elliott, okay... 02:57:01 CakeProphet: Durr 02:57:12 Vorpal: You already know that everything Lava generates is structural 02:57:13 elliott: look I've never used PayPal I didn't have a bank account until now. 02:57:17 this is all new to me. 02:57:19 [[ 02:57:20 entity Yeah is port ( 02:57:20 x : out std_logic; 02:57:20 clock : in std_logic 02:57:20 ); 02:57:20 end entity Yeah; 02:57:21 architecture structural of Yeah is 02:57:23 elliott, right. Well I can't explain what it *does* 02:57:24 signal w1_0, 02:57:25 w3_0, 02:57:27 w2_0, 02:57:29 w0_0 : std_logic; 02:57:31 attribute INIT: string; 02:57:33 elliott, anyway it generates using primitives 02:57:33 attribute INIT of c2: label is "0"; 02:57:37 attribute INIT of c0: label is "1"; 02:57:39 ]] 02:57:40 from some vendor specific library iirc 02:57:41 Spam, but eh 02:57:43 That's what's above that 02:57:45 Vorpal: It's meant to generate low and then high forever :P 02:57:47 CakeProphet: Why not, surely you had a debit card or something before 02:57:49 Vorpal: Xilinx, yeah 02:57:54 elliott, what is c2 and c0? 02:58:04 elliott: ...no. I had no bank account so why would I have a debit card? 02:58:04 you gave attributes for them 02:58:07 but nothing else 02:58:13 http://hackage.haskell.org/packages/archive/york-lava/0.2/doc/html/src/Lava-Vhdl.html wow, this is short 02:58:24 CakeProphet: Uhh, do people in the US not get any sort of account before a bank account? 02:58:30 CakeProphet: PayPal accepts cheques I think actually 02:59:04 elliott: not as like... a law or anything. o_o if you have fiscally responsible parents, then possibly. 02:59:13 elliott, err.. what would you get before a bank account? 02:59:24 Vorpal: A I-can't-bloody-remember-the-name account 02:59:43 I keep wanting to say savings account but I don't think it is a savings account, but anyway it's functionally identical to a bank account :P 02:59:49 I got a bank account when I was like 10 I think, maybe somewhat earlier. Saved money on it from the start 02:59:50 Maybe it has a limited number of withdrawals per month like CakeProphet said, dunno 02:59:56 hm 03:00:02 oh yeah I had a savings account 03:00:03 right 03:00:13 Well you can't get bank accounts when you're ten here or presumably in the US 03:00:17 I don't think 03:00:23 yeah see... my parents didn't give me any kind of savings account. 03:00:38 But I have a debit card and it works online, so, woo, good enough for irrational online spending binges that I don't have 03:00:42 I've been using cash for the past 5 years or so. 03:01:25 well, all I'm really going to buy is a hookah. I was joking about the compulsive spending part. 03:01:51 That's just a really tiny compulsive spending spree. 03:03:12 yes, it's pretty much negligible. 03:08:39 * CakeProphet is actually pretty good about saving money. 03:14:10 Vorpal: I take it it's inaccurate to refer to low and high as "false" and "true"? :p 03:14:14 (True bits, as always.) 03:14:18 (As in: not std_logic.) 03:14:34 elliott, I haven't ever used plain bits. Always std_logic 03:14:40 but true is what you decide it is 03:14:45 for your application 03:14:49 now, night → 03:15:18 Vorpal: >:( 03:15:24 Vorpal: Zero or one, then :P 03:15:37 "inv low" is just so much less nice than "not false" :( 03:15:47 okay I hasn't turned off the monitor yet 03:15:53 elliott, inv low makes more sense 03:16:02 Vorpal: Why >:( 03:16:14 elliott, you can save gates sometimes by inverting the meanings of true and false in part of a circuit 03:16:15 (Hmm, how is "inv" less accurate than "not"? It's called a NOT gate, after all.) 03:16:23 not low works too 03:16:45 Vorpal: Blargh, fine :P 03:16:48 elliott, but representing high as 1 is common 03:16:49 What about "zero" and "one"? 03:16:53 Are those ok? 03:16:57 elliott, look at an std_logic array in vhdl 03:17:06 elliott: use -0.5 and 0.5 03:17:10 "10001" as std_logic 03:17:14 what do you think THAT is? 03:17:20 Vorpal: OK so what you are saying is zero and one are OK. 03:17:23 (note "as std_logic" was not code) 03:17:29 elliott, I'm saying zero is low 03:17:35 I'm not saying zero is false 03:17:39 Yes, I understand. 03:17:58 → 03:17:58 Vorpal: Ha, but wait, my simulation returns [Bool] :P 03:18:00 And so does Lava's. 03:18:20 instance Show Bit where 03:18:20 show b = if bitToBool b then "high" else "low" 03:18:26 Vorpal: OH SNAP LOOKS LIKE SOMEONE'S ALREADY TAKEN AN OPINION 03:36:31 hmm, to use Data.Bits or to roll my own 03:37:03 -!- azaq23 has quit (Ping timeout: 255 seconds). 03:47:40 CakeProphet: BURNING IN HELLFIRE IS A BAD EXPERIENCE 03:50:58 -!- DocHerrings has joined. 03:51:04 elliott: oh really? 03:51:20 I will remember that? 03:51:49 Quick question - is it possible to reduce an arbitrary BF loop into any two smaller BF loops? 03:52:53 DocHerrings: No. [+] and [] cannot be reduced into two smaller BF loops. 03:52:56 For instance. 03:53:37 -!- azaq23 has joined. 03:54:11 elliott: Makes sense, but more specifically, I am writing an esolang where loops have a max number of commands, and I wanted to know if that would affect turing-completeness. 03:55:05 Well... you only need two nested loops to implement BF in BF, and they're of finite, short length, but this is the ℒ debacle all over again. 03:55:41 Basically: There's a very good chance you'll be TC by one definition, because an interpreter of a TC language will exist; on the other hand, it may affect your Turing-completeness by the better standard. (Or it may not; I honestly have no idea.) 03:55:46 (It depends on your language.) 03:55:49 (See http://esolangs.org/wiki/%E2%84%92.) 03:56:45 Man that's a pretty interesting article. This is why I love esolang. 03:57:40 Well, I suppose I will ask the general public for ideas - what is the most creative looping or conditional construct you can think of? 03:58:09 Not requiring looping or conditionals at all? I mean, they'll be there at some level, but you can make them implicit. 03:58:42 For instance ///, one of my favourite languages (http://esoteric.voxelperfect.net/wiki/Slashes) doesn't have a conditional, it just has string replacement -- which is implemented as a loop with a bunch of conditionals, but they're hidden from the actual semantics. 03:58:59 Hold on, I'll just put the rough specs on pastebin. And I love /// too. 03:59:29 lambda/combinator calculi do no-loop/conditionals, as another example 03:59:37 self-modifying/extending languages are nifty too 04:00:13 Right, the lambda calculus is a good example, of course 04:00:16 Why didn't I think of that 04:00:48 And with that, the interpretation as a loop of substitutions feels way more unnatural than the obvious semantics, whereas with /// the semantics are pretty loop-esque 04:01:50 http://pastebin.com/hL2tUw7S link. Anyways, there are two data structures - a track and a drum. The drum consists of 8 tumblers, which all hold 8 binary cells. The track is essentially 8 tapes side-by-side. 04:02:17 I'm afraid I'm too tired to understand that spec :) 04:02:36 You did misspell "accessor", though. Aren't I useful! 04:02:48 Mostly because it was whipped up in a hour. 04:02:57 :) 04:03:27 There are 256 viable commands - it takes a lot out of ya. 04:03:39 All for the sake of being able to read data as code. 04:04:38 Where's Vorpal and/or ais when you need one of them 04:04:43 I don't see how data as code implies 256 commands 04:04:48 DocHerrings: That's easy, just use a binary alphabet 04:04:57 http://esolangs.org/wiki/Bitwise_Cyclic_Tag#Self_BCT 04:05:13 I am - everything is in terms of 8 bits. 04:05:27 Right 04:05:28 . 04:05:34 But that could just be two commands. 04:06:26 -!- kwertii has joined. 04:06:55 All the commands have three parts - (OPERATOR TYPE) (FUNCTION) (DATA) - Which boils down to... 00000000 for instance, which would rotate tumbler no 1 to the right. 04:08:11 Blah. I need to rethink this. 04:08:44 Just desperately trying to avoid something resembling BF, as usual. 04:09:42 a noble goal 04:12:34 hmm, this is a pain 04:12:37 deep thoughts w/ elliott 04:12:42 I'm having a bit of trouble understanding this spec :( 04:13:39 Sorry. If it helps, MSP => Most Significant Bit, whereas LSP => Least Significant Bit. 04:15:00 "VHDL has file input and output capabilities, and can be used as a general-purpose language for text processing" 04:15:05 DocHerrings: p = bit? 04:15:23 elliott: Oh lord I need to sleep. 04:15:38 :) 04:15:44 -!- Slereah has quit (Ping timeout: 258 seconds). 04:15:50 whenever you enter here i am tired and you are tired 04:15:52 i blame you 04:16:24 sometimes im tired but then i sleep and everything is better 04:16:31 I plead the 5th. 04:18:04 monqy: its hard to sleep 04:18:10 you have to lie down and wait a long time 04:18:15 and then a lot of hours pass 04:18:16 :( 04:18:24 but theres a chance of nifty dream 04:18:35 Certainly when you have an esolang idea in your head. 04:18:46 i have not remembered dreams in a very long time, i dreamt yesterday but it was not a very exciting dream 04:18:54 sometimes i have esolang dreams 04:19:04 last night included 04:19:12 oh tell us tell us 04:19:18 i cant remember anything :( 04:19:43 I once had a dream where /// was the only programming language. 04:19:48 It was beautiful 04:19:54 the most recent dream I remember was one where everything was dark and I had to go to a restaurant and there was just a big dark room with a big table with a shark on it 04:20:04 Although you needed a crap-ton of libraries. 04:20:10 and people tore parts off of the shark (and optionally cooked them) and ate them 04:20:16 DocHerrings: oh that sounds nice /// is a good basis for everything 04:20:30 monqy: then how do you know it was an esolang dream :OOOO 04:20:33 I had a dream where your mom was /// in bed. 04:20:44 sometimes i remember things about dreams without remembering the details 04:21:14 monqy: do you ever remember like 04:21:21 "that was the best dream ever and no dream will ever hold a candle to it" 04:21:24 but nothing about the dream itself 04:21:25 and cry 04:21:51 no i actually remembered that dream 04:21:53 it was a wonderful dream 04:21:57 what was it 04:22:00 was it about death 04:22:02 yes 04:22:07 i died in it 04:22:07 all the good dreams are 04:22:09 that's how it started 04:22:20 `addquote it was a wonderful dream i died in it that's how it started 04:22:21 489) it was a wonderful dream i died in it that's how it started 04:22:25 One day after reading a book about the discovery of the structure of benzene (the chemist saw it in his dream) I tried to dream up the perfect sorting algorithm. When I woke up, I was only extremely confused. 04:22:39 DocHerrings: that's the warning signal from your brain 04:24:12 Then I designed the 2nd worst sorting algorithm I could (what could be worse than quantum sort?)) 04:25:19 It was picking a pivot, splitting the list into pairs, sorting each pair, sorting ala quicksort using the smallest element in each pair, and rinse and repeat. 04:27:10 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 04:28:00 -!- DocHerrings has quit (Quit: ChatZilla 0.9.87 [Firefox 5.0/20110615151330]). 04:31:26 how does an works????????????????? 04:31:30 theses are questions 04:32:30 an umber 04:33:13 -!- Slereah has joined. 04:40:46 ?hoogle index 04:40:47 Data.ByteString index :: ByteString -> Int -> Word8 04:40:47 Data.Ix index :: Ix a => (a, a) -> a -> Int 04:40:47 Data.Sequence index :: Seq a -> Int -> a 04:40:49 ?hoogle indexOf 04:40:49 No results found 04:40:54 ?hoogle [a] -> a -> Int 04:40:55 Data.List elemIndex :: Eq a => a -> [a] -> Maybe Int 04:40:55 Data.List elemIndices :: Eq a => a -> [a] -> [Int] 04:40:55 Network.BufferType buf_concat :: BufferOp a -> [a] -> a 04:57:42 Lava> (13 :: Word N4) `vat` n2 04:57:42 low 04:57:44 HAHA VORPAL 04:57:45 IT DOES IT 04:57:46 IT DOES 04:57:48 HAAHAHAHAHAHAHAHAHAH 04:57:49 WELL SORT OF 04:57:51 HAHAHAJHJAOHIJAIHOJIOFJDIOJGOIFDJGIOFDJGOIDFJGOIFDJGOFDG 04:57:53 OIJHSEFIODHGIDSJFIGREGJREG 04:57:54 EGRJRGOJGREOIJGREOIJGERIOJEGORJI 05:01:30 elliott had an orgasm whacking off to some computer software and complex algorithms 05:02:37 yeah, and they were underage too 05:05:58 what a creep, that elliott 05:06:48 oh no my REp;TUATION 05:14:04 -!- Lymia has changed nick to Lymee. 05:34:08 so I wonder what >λ= does. 05:35:01 лол 05:35:02 what does >λ= do? 05:35:41 it's the Haskell logo, I was just wondering what it would do as a function. :) 05:36:57 well for one it's a syntax error 05:37:20 unless it doesn't work like that 05:37:29 in which case it does whatever you want it to 05:37:44 I'm surprised Haskell doesn't have unicode support.. 05:38:07 or is it that lambda isn't an operator character? 05:40:31 GHC has that UnicodeSyntax extension, but presumably λ counts as a regular letter maybe. 05:40:53 -!- kwertii has quit (Quit: bye). 05:46:18 fizzie: do modules that import Unicode modules have to have that extension enabled? 05:46:55 probably not. It probably just makes the unicode names unavailable. 05:48:41 I think the extension just enables Unicode alternatives for some ASCII syntax (::, =>, forall, ->, <-, -<, >-, -<<, >>- and *); it seems completely separate from things like that base-unicode-symbols package which provides modules like Prelude.Unicode containing things like ≠ for /= and so on. 05:49:11 I also think the topic has been discussed on-channel before too. 05:52:00 So to put it differently, the extension is just to get those Unicode variants for those built-in syntax bits; you don't need anything special to use Unicode in general for your own names. 05:52:08 :t (/) 05:52:08 forall a. (Fractional a) => a -> a -> a 05:52:57 (Fractional a, Num b) => b -> b -> a 05:53:00 would be swanky. 05:53:43 The Haskell 98 lexical bits seem to say so too. symbol -> ascSymbol | uniSymbol, uniSymbol -> "any Unicode symbol or punctuation". 05:54:00 But of course λ is not a symbol or punctuation but a letter. 05:54:06 right, 05:54:12 > 3 / 3 05:54:13 1.0 05:54:47 I guess with numeric literals being overloaded to Num, everything is fine... 06:19:22 hmm, my Gen thing is actually stupid... 06:19:28 almost as stupid as my life :((((((((((((99999999999999999999999999999 06:19:45 oh, doubly stupid actually 06:19:50 livin' the stupid life 06:20:21 > > > > > > > > > > 06:20:22 : parse error on input `>' 06:20:53 > 3 > 4 < 4 > 3 06:20:54 Precedence parsing error 06:20:54 cannot mix `GHC.Classes.>' [infix 4] and `GHC... 06:20:55 wait, what................... 06:21:37 argh, this is a stoopid 06:22:41 no u. 06:22:48 u stoopuid 06:27:46 CakeProphet: ur terible 06:28:28 NONE OF THIS MAKES ANY SENSE MAYBE ILL KILL MYSELF TO DEATH ............... 06:28:55 -!- CakeProphet has quit (Ping timeout: 264 seconds). 06:32:30 i wouldn't recommend that elliott 06:32:45 think of all those chinese babies that died so you could have a high standard of living 06:32:52 are you really going to waste that sacrifice? 06:33:17 -!- oerjan has joined. 06:33:32 Is it just me, or does everyone hate FF13? 06:34:24 We polled 6 billion people and all of them said 'yes' 06:36:51 83/100 like it, says metacritic, so... 06:37:49 Oh, huh 06:38:05 I keep getting the impression that people consider it to me more of a movie than a game 06:38:35 Pretty much everyone seems to dislike the linearity of it, but apparently it's not enough to completely ruin it. 06:46:17 fizzie: On the other hand, 7/10 is given out for games that aren't even *playable*. 06:46:40 fizzie: 06:46:41 19:10:43 Choms, Channels that don't follow it are sometimes moved to their proper namespace 06:46:44 19:10:44 Expect the # channels that do not have approved group registrations to be moved when the GMS is in place. 06:46:48 Indeed, the range seems to be 7-10. 06:46:52 19:10:43 fizzie: not-here-lament: not-here-oerjan: 06:47:23 I saw those lines, but I do not know what they mean. 06:47:43 they mean that #esoteric might get an # prepended soon? 06:47:47 i _assume_ it means ... right 06:47:53 Yeah. 06:47:59 Unless you do the group registration thing. 06:48:05 lament looked into it but stopped because it was a pain, apparently. 06:48:13 BUT THAT WAS BEFORE THE THREAT TO OUR GREAT NAME. 06:48:29 (FSVO great) 06:48:37 pikhq: On the third hand, they had sold 5.5 million copies a ~year ago, so that's a lot of disappointed people if *everyone* hates it. 06:48:47 i vote: who gives a shit. anyone else? 06:48:56 fizzie: Shit sells. 06:49:22 This is one of the most depressing facts of life. 06:49:43 I'm more annoyed by the fact that they're super-slow at group registrations 06:49:43 quintopia: On the #? But this is a _national institution_ exclamation mark 06:49:47 And ##esoteric already exists, anyway 06:49:55 ...also we could get esoteric cloaks? 06:49:56 wait what 06:49:59 elliott: yes 06:50:00 The point is we must protect this glorious nation. 06:50:03 if we had group registration 06:50:12 http://freenode.net/group_registration.shtml Oh, this doesn't look hard at all. 06:50:19 elliott: The problem is we don't have a claim to the name 06:50:31 coppro: cpressey has argued that we do. 06:50:42 And he's one of the popularisers of the term "esoteric" as it relates to programming languages. 06:50:51 Something like "esolangs" I could see happening 06:51:07 but Deewiant! 06:51:19 but then we won't get confused people who think it's about religion or hip hop 06:51:23 then we wouldn't get the entertaining randoms looking for magick-lovers all the time! 06:51:25 :'( 06:51:27 how depressing! 06:51:30 i'd cry 06:51:31 I'm pretty sure we could get #esoteric 06:51:36 coppro: You must remember we're also associated with esolangs.org. 06:51:39 (And I would rather just try and stay under the radar if we couldn't) 06:51:46 pikhq: that's "esolangs" though 06:51:49 pikhq: so we could get #esolang probably 06:51:59 elliott: esoteric.voxelperfect.net 06:52:01 Too. 06:52:13 i can set up justinbieber.domainname.com 06:52:15 #esoteric-voxelperfect 06:52:15 doesnt mean im justin bieber 06:52:16 (yes it does) 06:52:23 and it is called esoteric wiki 06:52:28 no, it's called Esolang 06:52:38 well you know what 06:52:47 i'd be okay with #esolang 06:52:55 * quintopia shrugs 06:53:14 #esolang? that's ugly 06:53:23 If nothing else, our having been here for ages would be an argument in favor. 06:53:24 But anyway, we've had this name for almost a decade, the term "esoteric" as it relates to programming languages is exclusively used to refer to our topic, we are the only active IRC channel for this topic, and we are associated with the main wiki for it; we've also had at least one populariser of the term "esoteric" as it relates to programming languages here. And it's hard to come up with another meaning of "esoteric" such that #esoteric would be 06:53:24 pic for freenode. 06:53:37 And lament /did/ talk to people about getting a group registration. 06:53:48 So obviously it wasn't dismissed immediately, although I dunno if he told them the channel name. 06:54:50 Creative Commons has cc, it looks like 06:54:58 That's pretty generic :P 06:55:25 http://freenode.net/primary_groups.shtml It seems that having a software project named that is completely sufficient, and I think we have a stronger tie to our name than some random software project 06:57:40 Yes, but software projects are what they prioritize. ("-- giving priority to trademark owners and peer-directed project groups --") 06:58:34 I don't really have an onion of the number of #s in front of the channel name. Though perhaps to be contrary we should try to get ###esoteric? 06:58:50 And register as a group. 06:58:51 Well, we're a peer-directed project group. Sort of. :p 06:59:13 But really, the group registration Might As Well Be Tried; what are they going to do, kick us out SLIGHTLY SOONER if they decide against it? 06:59:13 "Yes, we call ourselves ##esoteric. Therefore we should get ###esoteric." 07:00:03 OH HM how do temporary variables work i WONDER... 07:00:14 Let's go for #, ## and ### 07:00:14 oh god have i just lead myself into a world of CSE 07:00:28 ..? 07:00:36 Creation Science Evangelism 07:00:45 # has 32 people in it 07:00:45 *wince* 07:00:48 common subexpression elimination 07:01:01 33 07:01:09 what 07:01:10 ### unable to join channel (invite only) 07:01:11 NOOOOOOO 07:01:14 :'( 07:01:15 heh 07:01:35 OH GODDAMMIT YORK LAVA ILL EAT YOUR SOUL AND TEAR OUT YOUR ENTRAIL 07:01:37 s 07:01:53 what did york lava ever do to you 07:01:58 Ah, ##esoteric exists, is registered by ihope, is a redirect here, *and* is invite only. 07:02:00 Have they said whether they want everyone (who want to keep a non-grouped "#foo" channel) to apply for group thingies now or immediately after they've got that new system in place? (I think I've seen them complain about how horrible their current system is.) 07:02:16 "Due to the current backlog, priority is given to groups requiring approval in order to re-gain access/control of their group namespace." 07:02:29 They were talking about that new GMS thing 07:02:30 Don't know what that means. 07:02:38 So I guess we should try that when it happens. 07:02:51 fizzie: Groups wanting to steal a channel name. 07:02:55 It was in the context of some idiot demanding that they reassign eir foundership even though eir request was backlogged 07:03:10 And generally being a jerk about it 07:05:24 -- For observable sharing. (Pass "outSigs" to prevent full-laziness.) 07:05:25 {-# NOINLINE ref #-} 07:05:25 ref = newRef outSigs Nothing 07:05:29 NO YORK LAVA WHY 07:05:33 -- Use of unsafePerformIO to implement Observable Sharing 07:05:33 {-# NOINLINE newRef #-} 07:05:33 newRef :: a -> Maybe InstanceId -> IORef (Maybe InstanceId) 07:05:34 newRef s x = unsafePerformIO (newIORef x) 07:05:36 NOooooOOOOOOooooooOOOOOooooOOOooooOoooOoooOOooOOoooOooOOoooooooo 07:05:40 I HATE YOU 07:06:15 ... What the *fuck*. 07:06:23 what 07:06:40 unsafePerformIO . newIORef 07:06:43 The fuck. 07:06:46 uhh 07:06:51 you realise thats a common idiom 07:06:58 I don't want it to be. 07:07:08 -!- CakeProphet has joined. 07:07:08 -!- CakeProphet has quit (Changing host). 07:07:08 -!- CakeProphet has joined. 07:07:12 in this case its implementing something ghc cant do sOoooOOOOOOOooooOOOoooOOooooo 07:09:23 or is it that lambda isn't an operator character? 07:09:37 yeah they don't want to make greeks unable to use their language 07:10:56 they _could_ make it a reserved word, i guess, but that would still make λx->x not work (because λx is one word, not a keyword + a word) 07:12:03 Clearly, Unicode should distinguish between alphabetic and mathematic lambda. :P 07:12:24 fullAdd :: Bit -> Bit -> Bit -> (Bit, Bit) 07:12:24 fullAdd cin a b = (sum, cout) 07:12:24 where sum' = a <#> b 07:12:24 sum = xorcy (sum', cin) 07:12:24 cout = muxcy sum' (a, cin) 07:12:29 noooooooooooOOOOOooooooooOOooooOOooooooooooOOoooooooooOOOOOoooooooOOOOOOOOooooooooOOOOOOOOOOooooooooOOOOOOOOOoooooOOOOOOOOOooooOOOOOoooOOO 07:12:40 who what 07:12:44 what am I looking at 07:13:38 nooo its using 07:13:39 sharing 07:13:40 thing 07:13:40 so 07:13:43 its 07:13:44 like 07:13:48 if ghc inlines sum' 07:13:50 it will break i think 07:13:51 :( 07:13:52 i mean 07:13:57 yeah i could like 07:13:59 cse mylesf 07:13:59 but like 07:14:00 ffffff 07:14:03 why internet is like wtf 07:14:08 calm down 07:14:12 haha cse 07:14:22 Patashu: why hdl is like wtf :( 07:15:05 `wtf hdl 07:15:07 why hdl is like wtf 07:15:19 ... Waitwaitwait, it's relying on GHC's *precise* inlining semantics to work right? 07:15:26 :( 07:15:40 well hmm............................................... 07:15:46 oerjan: yes good 07:15:55 `quote like wtf 07:15:57 131) alise: why internet is like wtf 07:15:59 still best thing ever said 07:16:41 ♥ fungot 07:17:18 fizzie: WE'LL BAN YOU IF YOU DON'T FIX FUNGOT SOON. Oh wait, darn... 07:17:42 17:14:42: anyway, I still need ais, for a VHDL question 07:17:43 synchronicity 07:17:51 same day as why internet is like wtf 07:18:15 elliott: maybe it was part of why fungot though it was wtf 07:18:25 no that was after 07:19:49 -!- BeedaWeeda has quit (Ping timeout: 255 seconds). 07:19:56 fungot is a future psychic 07:20:38 fungot was clearly too good for this wretched mortal world 07:21:40 -!- monqy has quit (Quit: hello). 07:22:51 I'll just go right ahead and link to some swedish humor: http://www.youtube.com/watch?v=VOfPnKkS4PM#t=2m03s 07:24:09 why percy tarar is like wtf 07:24:54 (one of the funny things is that this show (from 1996) is constantly making fun of christer fuglesang never getting sent into space - but it took another 10 years for him to actually get up there) 07:26:12 astrowaiting 07:27:55 oerjan: why is åke sick? http://www.youtube.com/watch?v=xltu4RW8Whw 07:28:03 IM CARBON DIOXIDE MASTER 07:28:39 um i rarely click youtube links 07:28:54 probably a good strategy in general 07:29:20 -!- Phantom_Hoover has joined. 07:29:21 and at the moment my laptop is thrashing due to something probably insisting on upgrading (i suspect avg) 07:30:33 check task manager then 07:30:43 carbon bioxide 07:30:48 oerjan: lol who uses avg 07:30:59 elliott: it came with the laptop 07:31:04 lol who uses laptops 07:31:06 23:41:28: You realise what kind of shit that would put a person in if (a) everyone in here didn't already know you were a piece of shit and (b) I wasn't a minor? 07:31:16 elliott: people who get them as presents 07:31:23 -!- azaq23 has quit (Quit: Leaving.). 07:31:27 And c) it's clearly false? 07:31:59 Phantom_Hoover: OK, that list of conditions was bullshit, but the point is that making child molestation allegations is... never OK. 07:32:08 (Well, unless they're true.) 07:32:12 elliott, sure, but it's easy to refute. 07:32:42 indeed 07:32:53 Phantom_Hoover: Doesn't change that it's a dick move. 07:33:08 one way to refute it is by beating up the slanderer in a round of fisticuffs 07:42:39 observable sharing scares me 07:43:33 -!- ChanServ has set channel mode: +o oerjan. 07:43:56 unaffiliated/beedaweeda cloak might be useful 07:44:12 BeedaWeeda!~port72.c@50.8.174.68 is full uncloaked address though 07:44:20 -!- oerjan has set channel mode: -b *!*@*. 07:44:23 argh 07:44:27 xD 07:44:30 A+ opping 07:45:08 -!- oerjan has set channel mode: -b *!unaffiliat@*. 07:45:12 wtf 07:45:34 hm something wrong 07:45:37 haha, wtf 07:45:46 /mode #esoteric +b foo!bar@baz 07:45:49 ah 07:46:04 -!- oerjan has set channel mode: +b *!*@unaffiliated/beedaweeda. 07:46:13 STUPEED SYNTACS 07:46:37 lol 07:46:49 we have very well-trained ops here at #esoteric 07:46:59 well oerjan wouldn't know, he never uses the thing 07:46:59 EVER 07:47:49 -!- oerjan has set channel mode: +b BeedaWeeda!~port72.c@50.8.174.*. 07:48:02 something like that 07:48:08 -!- oerjan has set channel mode: -o oerjan. 07:48:29 oerjan: methinks the point of a bigger ban is to get _around_ him using another name... 07:51:18 hm... 07:51:19 -!- ChanServ has set channel mode: +o oerjan. 07:51:33 -!- oerjan has set channel mode: -b BeedaWeeda!~port72.c@50.8.174.*. 07:51:51 -!- oerjan has set channel mode: +b *!*port72.c@50.8.174.*. 07:52:09 we have ops here? 07:52:16 :D 07:52:18 you wouldn't know it 07:52:21 should i remove the port72.c part as well? 07:52:39 oerjan: should be safe; there won't be many people with that IP 07:52:46 and anyway it can be removed after a week or so, presumably even he gets bored 07:52:57 [asterisk]that prefix 07:53:03 -!- oerjan has set channel mode: -b *!*port72.c@50.8.174.*. 07:53:11 -!- oerjan has set channel mode: +b *!*@50.8.174.*. 07:53:32 -!- oerjan has set channel mode: -o oerjan. 07:53:34 Blocking plain IP ranges is a bit rude 07:53:56 dammit 07:54:03 -!- ChanServ has set channel mode: +o oerjan. 07:54:15 -!- oerjan has set channel mode: -b *!*@50.8.174.*. 07:54:25 -!- oerjan has set channel mode: +b *!*port72.c@50.8.174.*. 07:54:34 -!- oerjan has set channel mode: -o oerjan. 07:54:47 Deewiant: It's a pretty specific range, and it's only for ~a week 07:54:54 "Rude" doesn't seem to be a very good argument against 07:55:09 It's still up to 254 completely unrelated people getting blocked 07:55:13 let's just assume until further notice he's not smart enough to get around that (and if he is, he can probably get another IP if he wants) 07:55:43 Deewiant: Out of millions upon millions upon millions 07:55:50 I'd ban the most specific thing possible at first and go wider only if he circumvents it :-P 07:56:00 Deewiant: Now you see why NAT and DHCP suck. 07:56:01 :) 07:56:10 Deewiant: He's clearly dedicated enough to keep "trolling" us for days solely because we told him UFOs aren't real 07:56:27 elliott: Rather, that UFOs most probably aren't aliens. 07:56:35 Yeah yeah, shut up 07:56:39 Host Name:50-8-174-68.sfo.clearwire-wmx.net 07:56:39 IP Address:50.8.174.68 07:56:39 Country: 07:56:45 Hmm, why's GeoIP failing 07:56:49 The distinction matters. 07:56:58 No it doesn't, UFO means alien ship and you know it 07:56:59 pikhq: TBH I don't see how they matter here 07:57:15 elliott: I dislike terms defined by derp. 07:57:19 Deewiant: because pikhq is a pedant 07:57:26 $ geoiplookup 50.8.174.68 07:57:26 GeoIP Country Edition: US, United States 07:57:28 pikhq: hi prescriptivist 07:57:35 Deewiant: NOT NEARLY SPECIFIC ENOUGH 07:57:35 we have very well-trained ops here at #esoteric <-- it's just so much easier when they are present and the client can mangle the ban automatically from the nick 07:57:39 It seems to be some mobile internet thing 07:57:41 I have a pedant license and everything. :) 07:58:16 pikhq, you own the universe now? 07:58:34 Sgeo_: Yes. Yes I do. 07:58:50 Which is why everyone is getting a free unicorn. 08:00:13 pikhq: i wish to complain, my free unicorn appears to be invisible. as well an awful shade of pink. 08:00:17 *as an 08:00:34 ©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© 08:00:50 oerjan: Dem's the breaks. 08:00:56 CakeProphet: why this spamming of evil symbols? 08:01:00 pikhq: Can I have a tardis? 08:01:15 coppro: Time lords only, sorry! 08:01:22 pikhq: damn 08:01:26 Can I get a pet time lord then 08:01:27 However, you can be made a time lord. 08:01:28 oerjan: no reason 08:01:29 pikhq: you mean coppro isn't retarded enough? 08:02:09 I'm afraid I'm contractually obligated to let the Daleks know of your whereabouts after doing so, though. 08:03:09 pikhq: just trick them into ex-terminating the contract 08:03:32 pikhq: hrm 08:03:48 pikhq: solution: make the daleks into time lords and give me a pet one 08:04:10 coppro: ... Do you know what havoc this would cause? 08:04:10 coppro: i foresee no problems with that solution 08:04:24 coppro: you should write doctor who 08:04:34 Hmm, why's GeoIP failing 08:04:35 pikhq, while you're at it, run rm -rf / on the universe. Seems gentler than coppro's solution 08:04:43 BeedaWeeda is on a UFO. 08:04:50 Sgeo_: Meh. 08:05:22 Phantom_Hoover: :D 08:05:38 Sgeo_: dd if=/dev/urandom | tee /dev/* >/dev/null 08:06:54 Especially nasty, /dev/mem. 08:07:20 How is that that nasty? If it were only /dev/mem, wouldn't a reboot fix it? 08:07:29 Um, probably need a physical reboot 08:07:36 see "tee" 08:07:45 Uh, that would be writing to every device. 08:08:04 Oh, especially nasty since it includes /dev/mem 08:08:08 Yes. 08:08:11 oh hey 08:08:13 netlists are blimps 08:08:13 :D 08:08:14 What does the >/dev/null part do 08:08:30 Patashu: Stops it from spamming your TTY. Uselessly, because your TTY is in /dev. :) 08:08:40 Aaah 08:08:50 ... Also your framebuffer. 08:09:02 pikhq: BTW, the observable sharing thing is actually "safe" ish 08:09:09 pikhq: Because the functions that observe it are all in IO 08:09:11 and IO functions can do anything 08:09:18 including giving different results for identical values 08:09:20 Well 08:09:26 IO functions must be referentially transparent 08:09:28 IO /actions/ can do anything 08:09:54 (i.e. getLineButFirstPrintThisPrompt s == getLineButFirstPrintThisPrompt t if s == t, but the actions they represent can give wildly different results.) 08:13:57 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds). 08:14:09 elliott: I haven't got the accent to write for Doctor Who, sadly/ 08:14:45 David Tennant, Hugh Laurie, you could be the next in a long line of successful acecnt-fakers 08:14:47 accent-fakers 08:15:26 elliott: it doesn't work that way for writers 08:15:39 OH MY GOD KANSAS LAVA: GO AWAY: JESUS 08:15:41 because you can't slip up 08:15:43 STOP INVENTING: NEW LAVA: VARIANTS 08:15:49 THERE ARE: ENOUGH 08:15:50 actors can just redo the take 08:15:57 coppro: just redo ur life 08:15:58 writers get no such leeway 08:16:06 elliott: are you talking about minecraft or something? 08:16:07 every time i make a mistake i reset 08:16:14 coppro: lol yes and no 08:16:18 coppro: im talking about circuit synthesis 08:16:30 i happen to be writing a circuit Haskell HDL DSL and synthesiser for Minecraft redstone 08:16:38 ... ah 08:16:40 but everything im reading is about hardware design software 08:16:54 lava is what FUCKING EVERYONE calls their Haskell HDL DSLs 08:17:03 YOU CANT JUST TOTALLY REDESIGN IT AND THEN KEEP THE NAME YOU FUCKS 08:17:05 ITS NOT EVEN A FORK 08:17:13 -!- CakeProphet has quit (Ping timeout: 276 seconds). 08:17:18 theres Lava, Chalmers Lava, York Lava, fucking KANSAS LAVA 08:17:36 NEXT THERE'LL BE ALASKA LAVA AND THERE ISN'T EVEN ANY LAVA IN ALASKA!!!!!! 08:18:30 The definition is wrong. Declarative programming is about data flow, not about declarations. For example, Yahoo Pipes is declarative programming. --TehZ 08:12, 8 July 2011 (UTC) 08:18:32 oerjan: i really want to kill tehz 08:18:36 can i plz 08:19:14 STOP INVENTING: NEW LAVA: VARIANTS <-- NEXT: BAKLAVA AND BALACLAVA 08:20:04 elliott: Is there lava in Chalmers/York/Kansas? 08:20:22 Deewiant: yes its a hardware description language 08:20:30 * elliott graduates from school of logic 08:20:44 .... fine 08:21:12 First known instance of Deewiant backing down when faced with nonsense. 08:25:18 elliott: ... Yahoo Pipes, *declarative*? 08:25:25 That's graphical programming. 08:25:50 ... And somewhat imperative, actually. 08:27:48 um its dataflow isnt it 08:27:56 http://upload.wikimedia.org/wikipedia/en/3/3c/Yahoo_Pipes_screenshot.png 08:27:56 yeah 08:27:58 so not imperative 08:28:07 Sorry, that was a misthink. 08:28:08 but its not the only kind of declarative obviously 08:28:11 It's late and I should sleep. 08:28:47 Claiming that declarative programming is not about declarations is very confusing, though. 08:29:16 Well it's hard to define declarative programming and maybe the definition is bad, but not for the reason TehZ says at all :P 08:29:29 I just wish he wouldn't act so authoritative while being such an idiot. 08:29:46 In order to observe sharing on nodes of types that are Typeable, 08:29:47 and share a graph representation type, we refine the type of 08:29:47 mapDeRef. The refined MuRef class has the following definition. 08:29:47 class MuRef a where 08:29:47 type DeRef a :: * -> * 08:29:47 mapDeRef :: (Applicative f) 08:29:49 => (forall b . 08:29:51 ( MuRef b 08:29:53 , Typeable b 08:29:55 , DeRef a ~ DeRef b 08:29:57 ) => b -> f u) 08:29:59 -> a 08:30:01 -> f (DeRef a u 08:30:03 ) 08:30:07 WHY ARE YOU DOING THIS TO ME 08:30:25 hey this stuff will actually let me produce a circuit graph, cool 08:30:45 elliott: You should call this Minecraft Lava. 08:30:47 >:D 08:31:39 How are you going to deal with connections being unable to be longer than 15 tiles without needing a repeater thus making that connection take one extra tick 08:35:14 "painfully." 08:35:25 I suspect so 08:35:31 (what do you _mean_ i'm just guessing?) 08:35:47 Patashu: He'll run the whole thing on a 300-clock to avoid sync issues! 08:35:48 You just make your master clock for the actual circuit slow enough so that signal propagation delays like that aren't a problem, right? 08:35:54 So 30 seconds per tick? 08:35:55 Sounds good to me 08:36:00 elliott: You should call this Minecraft Lava. 08:36:01 :D 08:36:03 How are you going to deal with connections being unable to be longer than 15 tiles without needing a repeater thus making that connection take one extra tick 08:36:06 Don't repeaters work? 08:36:12 Yeah 08:36:19 Well, I just have to account for that during synthesis 08:36:21 yeah but 08:36:26 It's no harder than the physical problems real-world synthesisers take :) 08:36:27 elliott: It's just that they're a hell of a lot of propogation delay in most contexts is all. 08:37:05 Yeah, but human-built shit suffers this too 08:37:14 And human-built shit generally doesn't use the vertical dimension much 08:37:18 pikhq: Perhaps he can then do the clock-setting time-speedup thing to actually run the universe at higher speed. 08:37:21 I have the advantage there, i.e. building pain isn't an issue :P 08:37:52 (Does that still work?) 08:38:25 Heh. 08:38:27 I dunno. 08:38:49 It's kind of surprising that redstone only runs at 10 fps to begin with 08:38:53 Is it really so computationally intensive? 08:38:56 A traditional way of observing functions is to apply a function to a 08:38:56 dummy argument, and observe where this dummy argument occurs 08:38:56 inside the result expression. At first, it seems that an exception can 08:38:56 be used for this, but there is a critical shortcoming. It is impossible 08:38:56 to distinguish between the use of a dummy argument in a sound 08:38:57 way and examining the argument. For example 08:38:59 \ x -> (1,[1..x]) 08:39:01 gives the same result as 08:39:03 \ x -> (1,x) 08:39:07 when x is bound to an exception-raising thunk. 08:39:09 haha WOW 08:39:11 someone else had that idea???? 08:40:07 Patashu: Actually, Notch is t3h lazy. 08:40:21 instance ( MuRef a, Typeable a, NewVar a, 08:40:21 MuRef b, Typeable b, 08:40:21 DeRef a ~ DeRef (a -> b), 08:40:21 DeRef b ~ DeRef (a -> b) ) 08:40:21 => MuRef (a -> b) where 08:40:22 type DeRef (a -> b) = Node 08:40:24 mapDeRef f fn = let v = mkVar $ toDyn fn 08:40:26 in Lambda <$> f v <*> f (fn v) 08:40:33 Same reason for the 16 block limit. 08:41:52 um no that's for performance reasons IIRC 08:41:59 and memory-hogging reasons 08:42:03 How performance intensive is it to do some boolean arithmetic 08:42:26 Patashu: Well, you must remember, this is Java. 08:42:34 aaah 08:43:01 Where people love that their JVM is uberfast, so they can put 10 trillion poorly done abstraction layers in place so it's sufficiently slow. 08:43:11 Mmm, abstraction 08:43:14 I still love the xkcd comic about that 08:43:33 Flash movie on flash on web browser on kernel on CPU on hardware or something 08:43:56 I think the best kind of abstraction is simulating a CPU on circuitry on your computer on your CPU on your circuitry 08:44:39 Like that dwarf fortress computer one guy made 08:44:46 Then you inevitably get someone saying to emulate dwarf fortress on that computer 08:44:51 Strangely no one ever goes that far 08:47:10 ok, I go to bed after this 08:50:37 http://www.ittc.ku.edu/csdl/fpg/sites/default/files/Gill-09-TypeSafeReification.pdf god this is sdojfisdf 08:50:53 Patashu: you might like the eigenvalues blog :p 09:25:19 -!- cheater_ has joined. 09:26:29 -!- cheater_ has quit (Client Quit). 09:27:21 -!- cheater_ has joined. 09:29:40 -!- ais523 has joined. 09:30:35 hi ais523 09:30:47 hi elliott 09:30:50 -!- cheater_ has quit (Client Quit). 09:30:58 my sleep pattern atm is unusually sane, I'm worried 09:31:04 I'm going to sleep about 9pm and waking up about 5am 09:31:12 consistently 09:31:15 -!- cheater_ has joined. 09:31:16 ais523: can you use your industry connections to tell everyone not to name every single Haskell HDL library Lava just because they originally based it on something called Lava and then totally rewrote it and changed the API 09:31:17 thx 09:31:30 elliott: heh 09:31:38 I can mention it to them if necessary 09:31:59 i read a paper about observable sharing using Kansas Lava as an example, got to the end, looked at the type signature, and used the hackage library instead of rewriting it 09:32:04 i never use libraries, something is WRONGGG 09:32:23 class MuRef a where 09:32:23 mapDeRef :: 09:32:23 Applicative f => 09:32:23 (forall b. (MuRef b, DeRef a ~ DeRef b) => b -> f u) 09:32:23 -> a 09:32:24 -> f (DeRef a u) 09:32:27 seriously. that signature. 09:33:45 anyway, 09:33:47 add :: (Bit,Bit,Bit,Bit) -> (Bit,Bit,Bit,Bit) -> ((Bit,Bit,Bit,Bit),Bit) 09:33:47 add (a,b,c,d) (e,f,g,h) = ((oa,ob,oc,od),cd) 09:33:47 where (oa,ca) = halfadd a e 09:33:48 (ob,cb) = fulladd b f ca 09:33:48 (oc,cc) = fulladd c g cb 09:33:48 (od,cd) = fulladd d h cc 09:33:51 woop woop 09:34:13 but now I just need to make that _generic_ 09:34:16 -!- cheater_ has quit (Client Quit). 09:34:27 -!- cheater_ has joined. 09:34:50 ais523: and before you ask, yes, yes i am just reimplementing york lava wholesale 09:34:54 heh 09:35:00 what are you going to call it? 09:35:09 hexham lava 09:35:21 :) 09:35:29 (not really, but it's tempting) 09:35:33 maybe i'll just call the actual DSL hexham lava 09:36:07 so yeah, when i was surprised by "let x = delay low (delay high x) in x" working in York Lava 09:36:09 i shouldn't have been 09:36:11 do you still live in an insignificant village vaguely near Hexham? 09:36:15 oh god the horrors that go into making that work 09:36:28 ais523: no, I've been in Hexham proper since late last year 09:36:35 ah, OK 09:36:38 and I'm putting you down in my book as an exceptionally bad stalker 09:36:42 heh 09:36:50 don't worry, I'm sufficiently bad at stalking that you have nothing to fear from me 09:36:54 hmm, was it even late, or was it just mid 09:37:07 ais523: that's exactly what a master stalker would say 09:37:18 * elliott EYES SUSPICIOUSLY...... 09:37:45 wow, the News of the World is actually going to shut down as a result of the phone hacking scandal 09:37:52 yeah 09:38:04 so just to scare ais523, I would now like to state the fact that my code can tell 09:38:05 fulladd :: Bit -> Bit -> Bit -> (Bit,Bit) 09:38:05 fulladd a b cin = (n `xor` cin, (a `and` b) `or` (n `and` cin)) 09:38:07 where n = a `xor` b 09:38:09 from 09:38:17 fulladd :: Bit -> Bit -> Bit -> (Bit,Bit) 09:38:17 fulladd a b cin = ((a `xor` b) `xor` cin, (a `and` b) `or` ((a `xor` b) `and` cin)) 09:38:46 that sort-of defeats the point of Haskell, I fear 09:38:47 well done 09:39:09 ais523: not really; the only change is that the outputted redstone will be /slower/ if you do that 09:39:21 and it's hardly unHaskelly for shuffling equivalent code to result in a /speed/ change 09:39:27 otherwise optimising Haskell code would be impossible 09:39:34 I suppose so 09:39:40 ais523: and you can only tell them apart in IO, which can do anything 09:39:48 ais523: anyway, York Lava does it too 09:39:55 and so does Kansas Lava, but in a nicer way that I copied :) 09:39:59 hmm, I fear that there's far too much magic in IO 09:40:00 ((by using their library)) 09:40:05 nobody likes IO 09:40:17 it is literally State RealWorld :P 09:40:25 it's a big ol' heap 09:41:27 hmm, based on wiki discussion, I'm vaguely tempted to try to write a language where it's far from obvious (preferably undecidable) whether it's computable or not 09:41:29 but I have no idea how 09:45:30 elliott: State#, a rather different beast 09:45:40 do you still live in an insignificant village vaguely near Hexham? <-- wait, hexham isn't an insignificant village? 09:46:01 oerjan: it's major enough for me to have heard of it before elliott claimed to live nearby 09:46:08 although not major enough for me to know why I'd heard of it 09:46:18 Deewiant: By "literally", I meant "figuratively". 09:46:38 Deewiant: And it's not State# RealWorld, it's State# RealWorld -> (# State# RealWorld, a #). 09:46:39 Don't do that. 09:46:41 TO BE PRECISE. 09:47:03 Deewiant: Have you got any other prescriptivist-pedant requests to make? (would you like fries with that?) 09:47:38 Not right now. 09:47:46 Duly noted. 09:48:49 -!- oerjan has quit (Quit: Later). 09:50:25 ais523: Is Vorpal right in saying that calling a vector of n HDL-bits a word wrong? :'( 09:50:34 As opposed to "array of bits" which is just SILLY. 09:50:54 elliott: calling it a word is correct iff it corresponds to some sort of native wordlength in what you're producing 09:51:03 I think it'd be wrong to have, say, both 9-bit words and 11-bit words in the same program 09:51:07 but either is plausible in the abstract 09:51:18 ais523: But x86 words aren't even the native wordlength! 09:51:20 std_logic_vector, the "official" VHDL name, is incidentally also just SILLY 09:51:27 elliott: because x86 is wrong 09:51:32 ais523: Anyway, you're just a meanie, York Lava does it. 09:51:53 type Word n = Vec n BitSource 09:51:54 Notably, an instance of the Num class. 09:51:59 :p 09:52:09 York Lava: literally god? 09:52:10 that's dangerous, as you run into signed/unsigned arithmetic problems 09:52:17 ais523: It has a separate Signed type 09:52:19 aha 09:52:33 "one-hot" <-- I love this terminology 09:52:43 I know for my compiler, I decided to use signed/unsigned operators rather than signed/unsigned data types, I think that's a much more mature and sensible way to handle the issue 09:52:59 ais523: By "much more mature and sensible", do you mean "less effort"? 09:52:59 elliott: the inefficient small-integer encoding that is nevertheless sometimes useful? 09:53:08 elliott: no, it's about the same amount of effort 09:53:12 How's it inefficient 09:53:15 but it removes classes of subtle bugs 09:53:20 ais523: It's just the OCaml solution, i.e. not a solution 09:53:32 elliott: well, if you're encoding 1,2,3,4,5 as 10000 01000 00100 00010 00001 09:53:45 you'd probably be better off using 001 010 011 100 101 if you wanted to save memory 09:53:53 one-hot just makes for a useful intermediate sometimes 09:54:00 Oh, is that what one-hot means? 09:54:08 I assumed it just meant one = one binary 09:54:11 Rather than inverting them 09:54:27 Which cheap plastic imitation of ais523 (Vorpal) tells me is sometimes a good idea 09:54:46 the thing about modern semiconductor design is, 0s are more powerful as 1s 09:54:55 *than 1s 09:54:55 `addquote the thing about modern semiconductor design is, 0s are more powerful as 1s 09:54:57 490) the thing about modern semiconductor design is, 0s are more powerful as 1s 09:55:02 Oh, I mentally corrected that 09:55:05 as in, you can sink more current from a 0 than you can source from a 1 09:55:07 But hey, it makes the quote more confusing, let's go with that 09:55:16 the difference is almost an order of magnitude, it's quite large 09:55:20 Heh 09:55:33 often you have to use 0=true as a result, say if you're powering LEDs 09:55:40 ais523: Doesn't apply in redstone, mind you :) 09:55:48 I have to keep reminding myself I'm not writing an /actual/ synthesiser. 09:58:24 it's not a real problem in practice, as you can just add an inverter at the end 09:58:31 except when you're designing the internals of an IC 10:01:51 hmm, at least I can say I've improved on this particular module of York LAva 10:01:51 Lava 10:02:00 I've made the type-level nats binary to avoid context stack overflows 10:03:32 -!- FireFly has joined. 10:08:48 wow, how does less-than work on binary numbers again 10:11:46 Same way it works on decimal numbers 10:12:01 badly? 10:12:12 0 < 1 10:14:05 Deewiant: no that s wrong 10:15:07 If the bits're equal, recurse, otherwise 0 < 1, if no more bits are left then the numbers are equal 10:16:24 you are an scholars... 10:17:30 god dammit ghc 10:17:34 i turned on scoped type variables 10:17:36 scope'em 10:17:52 Your question provided no context to assume rhetoricalness so I answered it 10:18:42 it wasnt rhetorical 10:18:47 that was sincere thanks, i cant handle binary right now 10:18:49 too many numbers 10:19:12 heh 10:31:26 ?ty foldl 10:31:27 forall a b. (a -> b -> a) -> a -> [b] -> a 10:31:30 good 10:33:26 why don't you want to work with squid 2, google instant? 10:33:37 why? 11:03:06 -!- GreaseMonkey has quit (Quit: The Other Game). 11:05:35 Man, are there really no decent fixed-length vector libraries on Hackage that encode the vector as a natural in the type rather than making the type grow in the number of conses or whatever? 11:08:12 NOT A RHETORICAL QUESTION, PEOPLE 11:09:17 hah 11:09:22 high level o2jam charts are the perl of rhythm gaming 11:09:26 http://www.youtube.com/watch?v=8l7XLN7tFRI&feature=related 11:09:34 rhythm gaming is the perl of rhythm gaming 11:10:21 column noise :D 11:27:07 qwer 11:31:18 xD 11:31:49 oklopol how does a flower 11:32:21 well obviously it could just 11:42:36 -!- copumpkin has joined. 11:42:37 -!- copumpkin has quit (Changing host). 11:42:37 -!- copumpkin has joined. 11:45:36 -!- boily has joined. 12:34:18 Tim Bednar 8 years ago 12:34:18 Will Google be around? I think it will be more interesting to see if Google will be around in five years? Or better yet will we still be searching for information using search engines and keywords? 12:40:13 “Large Hadron Collider will destroy Earth.” DETAILED TERMS » 12:40:14 PREDICTOR 12:40:14 Joe Keane 12:40:14 CHALLENGER 12:40:14 Nick Damiano 12:40:14 STAKES $1,000 12:40:16 will go to National Rifle Association if Keane wins, 12:40:18 or Save the Children if Damiano wins. 12:40:20 oh i wonder what political affiliation mr. keane has 12:40:41 "Prediction is correct if Earth is, as a result of operation of the collider, annihilated, reduced to much smaller volume than previously, vaporized, broken into large pieces, converted into photons, neutrinos, or other radiation, converted into exotic matter, or just unable to support life. For the purpose of the bet, Earth should be considered "destroyed" if, at the end of the term of this bet in 2018, zero human beings reside on the surface of t 12:40:41 anet. Damage caused by attack of hostile beings is included if it is a causal result of operation of the collider. Teleporting Earth to another location or alternate universe where it is still able to support life is specifically excluded. Bet is won if whatever scientific community remains at this time, whether human, machine, or extraterrestrial, acknowledges that the "destruction" of Earth most likely resulted from the Large Hadron Collider or a 12:40:42 uct thereof (e.g. strangelet, micro black hole, etc)." 12:41:16 heh 12:41:28 At least they're thorough 12:41:48 Deewiant: I like how Keane thinks we're going to colonise other planets before the LHC blows everything up 12:41:57 Or maybe the "international scientific community" will consist of the people on the ISS 12:42:08 "That Earth look blown up to you?" "Yep." "LHC?" "Prob'ly." 12:42:28 "Teleporting Earth to another location or alternate universe where it is still able to support life is specifically excluded." <-- this is the best part though, i hope the lhc does this 12:43:04 Well, it did specify "human, machine, or extraterrestrial" 12:43:37 And "whatever scientific community remains at this time" 12:43:48 "Secondly, the concept of "unitlessness" was invented (AFAIK) by some academic to scare students a long time ago and is not taken seriously by modern scientists. I first heard of it in an early lecture in my college physics class and decided to drop it (the lecturer's accent was also really bad). Even more strange, I logged onto OpenCourseWare and Walter Lewin talked about it as well! I had heard that MIT was a good school, but I am now teaching my 12:43:48 physics from better books such as the Emperor's New Mind." 12:44:00 This is the best web page + comment section I have ever read. 12:45:33 -!- foocraft has joined. 12:45:47 elliott: if the LHC destroyed the world, collecting on the bet would be a little difficult 12:46:07 ais523: :slowpoke: 12:46:28 elliott: you can't slowpoke me if I haven't been looking at the chat for ten minutes and that's my reaction upon catching up 12:46:33 well, you can, but it isn't very effective 12:46:54 I can slowpoke ANYONE. 12:47:04 besides, Dream World slowpoke is actually very good 12:47:19 well, better after evolving 12:47:22 Yes but it's still slow and a poke. 12:52:03 -!- BeholdMyGlory has joined. 13:00:06 -!- CakeProphet has joined. 13:00:06 -!- CakeProphet has quit (Client Quit). 13:00:26 -!- CakeProphet has joined. 13:13:17 -!- boily has quit (Quit: WeeChat 0.3.5). 13:24:22 *Redsynth.Test> add (one,zero,zero,one) (zero,zero,zero,one) 13:24:22 ((one,zero,zero,zero),one) 13:24:23 no 13:24:46 -!- copumpkin has quit (Remote host closed the connection). 13:25:15 -!- copumpkin has joined. 13:25:16 -!- copumpkin has quit (Changing host). 13:25:16 -!- copumpkin has joined. 13:30:24 *Redsynth.Test> add (one,zero,zero,one) (one,zero,zero,zero) 13:30:24 ((zero,one,zero,one),zero) 13:30:25 oh right 13:30:27 its little-endian 13:31:12 Gross 13:34:54 Deewiant: what 13:35:02 Deewiant: little endian is the best 13:35:33 Why 13:35:56 Deewiant: downcasting is nop 13:36:14 also, it's the obvious ADT expression of binary :) 13:36:56 Fair enough 13:37:11 I'd still make I/O big-endian :-P 13:37:15 Conversely, why's it gross? 13:37:32 And that's hardly I/O, that's simulating a ripple adder by literally giving it bits :P 13:37:49 Just from the I/O perspective in that it's unlike (almost?) all natural languages 13:38:11 Deewiant: You realise this is a circuit that would be used internally in a CPU? 13:38:12 I guess with Read and Show you have to have it like that, meh 13:38:16 It's not "I/O" :P 13:38:28 Deewiant: When I'm simulating something that looks like 13:38:32 add :: (Bit,Bit,Bit,Bit) -> (Bit,Bit,Bit,Bit) -> ((Bit,Bit,Bit,Bit),Bit) 13:38:33 add (a,b,c,d) (e,f,g,h) = ((oa,ob,oc,od),cd) 13:38:33 where (oa,ca) = halfadd a e 13:38:33 (ob,cb) = fulladd b f ca 13:38:33 (oc,cc) = fulladd c g cb 13:38:33 (od,cd) = fulladd d h cc 13:38:35 It's I/O in the sense that you I (one,zero,zero,one) and it Os (zero,one,zero,one) 13:38:37 I don't want it to print in opposite order. 13:38:55 Deewiant: How many times do I have to say that I'm simulating an adder circuit directly :P 13:39:46 -!- Patashu has quit (Ping timeout: 252 seconds). 13:40:18 To preserve my sanity I'd write a String -> (Bit,Bit,Bit,Bit) that turns "1000" into (zero,zero,zero,one) or (zero,one,zero,zero) or whatever it should be 13:40:35 Or Int -> if you prefer 13:40:55 Deewiant: It's going to be Vec N4 Bit, or maybe even Unsigned N4 13:40:58 And that'll have a Num instance 13:41:16 Not that Haskell has binary literals, but 13:41:29 You found a Vec library? :-P 13:41:57 Deewiant: I've already written my own, it's just crap :P 13:42:09 Deewiant: I tried to use binary type-level nats to avoid context stack overflows 13:42:22 But it turns out that it's way harder to "prove" stuff about them to get your functions to type, woo 13:42:31 So fuck that, I'm going back to unary and forcing ugly compiler flags on everyone 13:42:42 Deewiant: I suppose I could depend on York Lava and just "import Lava.Vec" :P 13:43:30 Ugly compiler flags? 13:43:43 elliott, on a development board I used, that had a row of buttons and leds, for buttons 0 = pressed, and for the leds 0 = emitting light. 13:43:49 (wrt that discussion above) 13:44:22 Deewiant: -fcontext-stack=9999 13:44:23 Or whatever it was 13:44:34 Ah, heh 13:44:52 It's set at twenty-one by default, which means that if you have a twenty-four bit word, the compiler will refuse to admit it's a member of any typeclasses where your instance recurses 13:45:06 A really stupidly low value; what harm would there be in setting it to e.g. five hundred twelve 13:45:16 Vorpal: Nice :P 13:45:32 elliott, one-hot coding can be used on a port on a SOC for example if you connect one LED or button to each pin on that port 13:45:42 I mean, it has it's uses 13:46:57 SOC? 13:47:11 elliott, System On a Chip 13:47:53 Bah, who needs chips, lay it on the rough grass, this is Minecraft! 13:48:06 elliott, well it was just an example 13:48:09 Fish is all you need, the chips are just extra 13:48:36 Like you guys have chips in Finland. 13:49:00 Hence only fish 13:49:20 You probably don't even know what "fish" means 13:49:43 http://www.kalakerho.net/tiedostot/ahven24.jpg 13:52:31 Deewiant, what sort of fish is it? 13:52:57 Perch 13:53:08 (fi:ahven) 13:53:27 oh sv:abborre 13:53:32 right 14:25:55 the funny thing is, that although most Brits know a perch is a sort of fish, they have no idea what specifically it is 14:25:59 I know I don't 14:26:09 I wouldn't be able to tell one from another random species of fish I didn't know 14:26:47 GOD DAMMIT HASKELL 14:27:04 IF A PARAMETER OF A GADT HAS AN INSTANCE FOR A GIVEN TYPECLASS FOR EACH CONSTRUCTOR 14:27:07 THEN IT DOES NOT NEED TO BE STATED 14:27:08 IN EVERY 14:27:09 SINGLE 14:27:10 FUCKING 14:27:11 FUNCTION 14:27:15 IM GOING TO RIP YOUR SOUL APART 14:32:57 hmm, this makes me want to work more (as in, at all) on Anarchy 14:33:02 even if it probably wouldn't solve that problem 14:33:23 "Property is theft! Uh, also, GADT typeclass contexts." 14:34:16 it's, umm, an esolang 14:34:23 intended for writing compilers 14:34:38 it's, umm, an esolang 14:34:40 never a good line to hear 14:34:50 well, it's not as eso as most esolangs 14:34:59 it's just that I can't consider anything I write a real language :) 14:35:03 :D 14:35:27 one day ais523 will release the Common Practicality-Oriented Boring Language, and talk about HOW ESOTERIC it is; you guys, it organises statements into blocks and has mutable variables!! 14:35:39 and we'll all believe you cuz we're gullible hero-worshipping idiots 14:35:56 heh 14:36:01 and it will become world famous 14:36:05 and we will declare mission successful 14:36:19 -!- foocraft has quit (Ping timeout: 255 seconds). 14:36:20 Anarchy effectively has mutable types, does that count? 14:36:31 as in, the types themselves, not variables of that type 14:36:40 except it's done statically at compile time 14:37:10 heh 14:37:25 * elliott realises he should have more of an aversion to the phrase "statically at compile time" than he does 14:38:16 it's also one of those languages where I have to reign it back a bit to stop it becoming uncomputable 14:38:25 that's all your languages 14:38:28 except sometimes you don't even bother 14:38:31 well, apart from the sub-TC ones 14:38:45 nah, Underload hit exactly TC pretty much without trying 14:38:54 although it turned out to have quite a few redundant commands for that purpose 14:39:03 After Overload collapsed under its own weight 14:39:12 yep 14:39:14 it had goto 14:39:25 What I'm saying is, Underload is the reigning-in of Overload :P 14:39:29 and you could jump into bits of program that were still on the stack, etc 14:39:36 I don't believe Overload was super-TC, though 14:39:40 just really hard to get your head around 14:39:48 and, fwiw, to implement 14:39:50 I wonder what happens if you take something like Overload, and just don't stop adding to it 14:39:59 Can languages collapse into a black hole? 14:40:08 do you know of MAGENTA? 14:40:13 Will adding ONE MORE FEATURE suddenly make your language uncomputable in conjunction with the others? 14:40:27 ais523: Yeah, but that's more "a really silly imperative-ish language" than "EVERY PARADIGM POSSIBLE SMUSHED TOGETHER". 14:40:31 yep 14:40:34 and even so, it's cursed 14:40:45 smushing every paradigm possible together would be worse 14:40:52 admittedly, Overload was getting that way 14:41:22 "Perfection is achieved, not when there is nothing left to take away, but when there is nothing more to add."--Saint-Exupery de Antoine 14:41:29 s/"-/" -/ 14:41:33 is that a genuine attribution? 14:41:46 (quote from foreword of The Kind-of-Algorithmic Language Overload) 14:41:51 ais523: No :P 14:41:55 actually, if you think about it, it's correct that way round 14:41:58 It's "Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away." --Antoine de Saint-Exupery 14:42:13 if there's nothing more to add, it means that you don't need anything else for it to be perfect, along the lines of BF 14:42:18 ais523: Argh, I swapped too much. 14:42:35 "Perfection is achieved, not when there is nothing more to take away, but when there is nothing left to add." --Saint-Exupery de Antoine 14:42:39 if there's nothing more to take away, it means you have a horrific mess where you can't take out anything and leave it still viable 14:42:45 see, I fixed it 14:42:56 yes, that's worse 14:43:05 you misspelled better 14:43:14 I mean, it's meant to be a bad quote, right? 14:43:16 so being worse is better 14:44:18 that was intentional, right 14:45:04 ais523: what should i call... a bit vector... if not a word... :( 14:45:09 i need something to call the module :P 14:45:13 im thinking of just using Unsigned/Signed for the actual types 14:45:18 semi-intentional, I caught it as soon as I wrote the sentence, and left it in 14:45:19 then there can be NO ARGUMENT 14:45:39 -!- foocraft has joined. 14:46:16 what about SomeBitsOfThisAreSignedAndSomeAreUnsignedBecauseVHDLDoesntHaveVarargsButItDoesHaveArraysWithLengthSpecifiedByATemplateParameterSoIFakedThemWithAnArrayAfterAllEverythingIsJustBitsRight 14:46:34 I've actually done that on two different projects... 14:46:43 ais523: that exact name? 14:46:54 err, I didn't actually name them that 14:47:01 GO RECTIFY THAT 14:47:02 the type was called std_logic_vector, as always 14:47:16 ais523: amusingly, Haskell doesn't have varargs either 14:47:18 but it has [], which is the same thing 14:47:22 but I mean, it's a use for a std_logic_vector that isn't interpreted either as a signed or an unsigned variable 14:48:01 UNLIKE YORK LAVA, I'm planning to keep the numbery types separate from the vectors by newtypes 14:48:16 York Lava just keeps signed separate (for typeclasses); vectors of bits are identical to unsigned numbers 14:48:20 Which seems Wrong 14:48:25 Especially as it stops you making a nice Show instance 14:48:37 Unless you want all your vectors to show like that I suppose 14:49:11 VHDL's method of doing things is really amusing 14:49:29 by default, + on vectors is an error, you have to import an arithmetic library 14:49:38 heh 14:49:44 and signed and unsigned arithmetic are in two separate libraries, so originally you just imported one or the other 14:50:00 after a while, they decided that was stupid, so imported a third which had signed() and unsigned() casts you could put around the vectors 14:50:03 I kind of feel bad about writing a Num instance, because dammit, you should have to write your own ripple carry adder 14:50:25 ripple carry? so slow 14:50:31 although at least it's easy 14:50:33 ais523: So small 14:50:53 ais523: Remember, my electronics have very limited size :P 14:50:57 yep 14:51:04 And the bigger they get the smaller they get (= repeater) 14:51:06 ideally, you'd let the user select their own implementation of addition 14:51:13 They can do that by using another function :P 14:51:20 Or making their own instance and not importing mine 14:51:38 ais523: Almost any adder will require being assembled as a separate circuit and hooked up to the rest of the system, anyway 14:51:50 Because, like I said, my circuits are tiny 14:51:54 Can't afford to duplicate anything :P 14:52:27 ais523: So in RL circuits, do OR gates flow the result back to their input too? 14:52:38 depends on the architecture 14:52:39 i.e. (A or B) where A is low and B is high flow... highness to A. 14:52:43 (I'm good at terminology.) 14:52:56 a "wired-OR" does, that's when you connect two outputs together, using logic levels that make that possible 14:52:58 This is kind of a problem in Minecraft since it saves space and time most of the time but fucks up some circuits :P 14:53:01 but it has all sorts of undesirable characteristics 14:53:11 so people nearly always use gates which have explicit inputs and outputs 14:53:26 ais523: In redstone, OR is literally just connecting two wires together, yeah 14:53:27 note that if you flow a signal to an output in real life, you either get nothing happening, very high power drain, or a fire 14:53:29 depending on various things 14:53:35 And it's the most common type of OR because... repeaters take up a block and a tick 14:53:49 alternatively, you could use diodes, but that has problems of its own 14:53:50 (You need to put a repeater on one input to stop it flowing backwards) 14:57:38 ais523: BITVECTOR IS SUCH AN UGLY NAME DO YOU HAVE ANY IDEA 14:58:16 just call it Std_logic_vector 14:58:50 * ais523 runs 15:07:05 ais523: :D 15:07:09 ais523: but it isn't even std_logics 15:07:16 I deal in finest pure bits 15:07:32 also, VHDL's array declaration syntax is really really weird 15:07:39 first, you have to define an array type 15:07:50 and the definition looks something like this (/me looks it up because it's so crazy): 15:08:23 ugh, seems I don't use it in any of my programs 15:08:33 * ais523 looks it up in the stdlib 15:08:56 ais523: LITTLE OR BIG ENDIAN 15:09:08 depends on whether you declare the indexes as 0 to 7 or 7 downto 0 15:09:15 ais523: no i mean which do you do 15:09:26 lsb is 0 15:09:35 ais523: so little 15:09:40 orw ait no 15:09:51 type std_logic_vector is array (natural range <>) of std_logic 15:09:59 *type std_logic_vector is array (natural range <>) of std_logic; 15:10:16 as opposed to real or complex range 15:10:18 yep 15:10:21 wait 15:10:22 srsly? 15:10:33 I'm not sure what happens if you put something other than an integral type there 15:10:46 I suppose I should try string range <> sometime to see how the compiler reacts 15:10:52 also, I still don't know what the <> is for 15:11:06 its the hole that the indices go into 15:11:13 where else would they fit 15:12:16 VHDL is really finicky about semicolons, btw 15:12:29 hmm, I should parameterise my integer types on little/big endian 15:12:31 good idea y/n 15:12:34 and the rules for where they go are vaguely consistent but unintuitive 15:12:46 elliott: well, VHDL effectively does 15:12:53 yes but i'm not vhdl :) 15:13:06 if you go down that route, you should parameterise signed integers on whether they're two's complement, one's complement, or signed-magnitude 15:13:10 and have a thousand different sorts of floats 15:13:13 hahaha no 15:13:23 floats in minecraft LMAO i want to make an fpu now 15:13:25 the most useless fpu. 15:14:04 someone wrote one in INTERCAL 15:14:39 admittedly, I don't think anyone wrote one in Malbolge 15:14:44 and redstone is somewhere in between 15:20:48 ais523: but seriously 15:20:57 LITTLE OR BIG ENDIAN i need to know what opinion you have so i can correct it 15:21:05 heh 15:21:06 Middle endian 15:21:10 I'm not sure which term refers to what 15:21:16 middle endian is unmistakably wrong, though :) 15:21:25 ais523: little endian = numbers done get bigger as you go right 15:21:27 big endian = not that 15:21:31 xeightsix is little 15:21:34 sparc is big 15:21:37 which end's left, and which end's right? 15:21:45 anyway, it depends on what you're doing 15:21:46 wait, sparc is bi-endian 15:21:47 lol 15:21:56 ais523: oh come on, you know what end's left 15:22:00 gcc-bf uses least significant byte has lowest address 15:22:05 little: lowest address = least significant 15:22:08 X endian = the most X significant bit is at the start 15:22:09 because that way, casting int to short or short to char is a no-op 15:22:10 big: lowest address = most significant 15:22:21 ais523: right, that's the sole reason for little-endian being good 15:22:26 as opposed to the zero reasons for big 15:22:52 Big endian discourages casting, thus is good 15:24:10 Deewiant: What does that even mean 15:25:41 Because downcasting big endian integers isn't a no-op, you're less likely to cast with big endian, and because blindly casting is generally bad, this is a good thing, thus big endian encourages good practices, thus it is good 15:27:02 Deewiant: You... are joking, right? 15:27:06 Yes 15:27:09 Thank god 15:29:52 The space shuttle countdown clock on nasa.gov is counting up :P 15:30:04 elliott: big-endian works better for fixedpoint, for much the same reason little-endian works better for integers 15:30:18 because you can truncate it as a no-op 15:30:25 Gregor: Heh 15:30:26 ... 15:30:27 ais523: Heh 15:30:30 But you can have a heh too 15:33:20 http://codepad.org/9txI7dcT recent project: code golfing a text-to-number program.f 15:33:37 s/f$// 15:34:56 as in "one hundred" => ...? 15:35:12 Yep 15:35:39 yes 15:36:45 Now make it reject invalid input 15:37:37 Deewiant: the first approach i tested indeed did so, using a perfect hash. too huge for golfing however. 15:38:30 it nevertheless handles "thousands" vs. "thousand" correctly, and also correctly ignores "and". 15:38:51 one bug is that it treats "a" as like "zero"... :p 15:40:23 hmm, type families and typeclasses, tricky 15:49:10 qntm: SPAAAAAAAAAAAAAAAAAAAAAAAAAAAAACE 15:53:13 -!- monqy has joined. 16:01:39 monqy: how do type families 16:02:47 when a boy type loves a girl type very much 16:03:46 https://github.com/mozilla/narcissus/blob/master/lib/jslex.js#L538 BEHOLD 16:04:03 My BRILLIANT metacircular code is now a part of Narcissus. 16:04:05 <-- winner 16:04:37 how did that happen 16:09:53 when a boy type loves a girl type very much 16:09:54 but my types arent class 16:10:02 the POVERTY types are having CHILDREN...... 16:11:16 eh theyve gotta do something when they arent watching tv or collecting their check... :P 16:12:13 -!- Phantom_Hoover has joined. 16:14:31 -!- aloril has quit (Ping timeout: 252 seconds). 16:26:55 -!- aloril has joined. 16:31:52 -!- MigoMipo has joined. 16:50:16 -!- aloril has quit (Ping timeout: 240 seconds). 16:54:01 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds). 16:58:52 -!- Phantom_Hoover has joined. 16:59:19 OK guys come on I need a really long, 'boring', academic YouTube video. 16:59:19 Phantom_Hoover: You have 3 new messages. '/msg lambdabot @messages' to read them. 16:59:35 Where 'boring' == boring for normal people but not actually boring for me. 17:03:17 -!- aloril has joined. 17:09:13 -!- foocraft has quit (Ping timeout: 258 seconds). 17:52:45 http://www.haskell.org/pipermail/haskell/2005-May/015815.html 17:52:49 this is cool exclamation mark 17:52:50 s 17:55:19 "Note that we can't type "vfoldr Cons Nil", because the result type of 17:55:19 Cons does not match the second argument." 17:55:28 well the cool part 17:55:32 is the NatCase thing 17:55:33 that can be done, with some minor pain 17:55:36 which I inexplicably haven't seen before 17:55:48 elliott: I like http://www.haskell.org/pipermail/haskell-cafe/2009-June/062690.html 17:55:49 * elliott is running into stupid errors like 17:55:52 vat :: (i `LT` n) => Vec n a -> Nat i -> a 17:55:52 vat (x :+> _) Z = x 17:55:52 vat (_ :+> xs) (S n) = xs `vat` n 17:55:53 --> 17:55:58 Redsynth/Vec.hs:39:27: 17:55:58 Could not deduce (LT n2 n1) arising from a use of `vat' 17:55:58 from the context (LT i n) 17:55:58 bound by the type signature for 17:55:59 vat :: LT i n => Vec n a -> Nat i -> a 17:56:01 at Redsynth/Vec.hs:(38,1)-(39,33) 17:56:03 blah blah blah 17:56:20 http://hpaste.org/41453/foldl_on_vec?pid=41453&lang_41453=haskell 17:56:28 > class Nat n where 17:56:28 > caseNat :: forall r. n -> (n ~ Z => r) -> (forall p. (n ~ S p, Nat p) => p -> r) -> r 17:56:29 : parse error on input `class' 17:56:29 Not in scope: type variable `n'Not in scope: type constructor or class `Z'N... 17:56:30 coq flashback 17:56:50 that paste of mine shows more useful foldr and foldl on Vec 17:56:50 copumpkin: also coq flashback 17:58:26 in coq or agda you wouldn't have to do some of the acrobatics I do there 17:59:17 coppro: I note that the "n ->" parameter to caseNat is not _technically_ necessary :) 17:59:35 copumpkin: 18:00:12 copumpkin: The problem, I think, with natCase is that it basically forces you to write your case statements in an ugly manner :) 18:00:18 Is there a way to make it spit out an equivalent GADT? 18:00:36 spit out? nope :/ 18:00:42 you can probably do it all with SHE 18:00:51 I had a module that did that somewhere 18:01:19 copumpkin: I just mean "spit out" as a return value 18:01:42 oh, sure 18:02:13 data NatCase where IsZero :: Z -> NatCase; IsSucc :: (n ~ S p, Nat p) => n -> p -> NatCase 18:02:14 Or something 18:02:18 Hmm 18:02:34 Oh wait, it's simpler than that even 18:02:36 data Nat n where Zero :: Nat Z; Suc :: Nat n -> Nat (S n) 18:02:39 :P 18:02:51 then use induction 18:03:03 coppro: Yeah yeah, but that's just the GADT solution all over again 18:03:09 Although I suppose 18:03:10 data NatCase n where 18:03:10 IsZ :: (n ~ Z) => NatCase n 18:03:10 IsS :: (n ~ S p, Nat p) => p -> NatCase n 18:03:12 is too, just in disguise 18:03:16 Although it's not 18:03:20 Because the p isn't GADT's 18:03:31 point is, with "natCase :: n -> NatCase n", you can use a case statement 18:03:33 rather than two ugly functions 18:04:10 value :: (Nat n) => n -> Int 18:04:11 value n = 18:04:11 case natCase n of 18:04:11 IsZ -> 0 18:04:11 IsS n -> value n + 1 18:04:46 IsZ :: (n ~ Z) => NatCase n 18:04:58 Onto another project already? 18:05:04 What? 18:05:30 Is that for the synthesiser or...? 18:05:44 Yes. 18:06:26 elliott: now you need finite sets 18:06:35 copumpkin: Why? 18:06:45 you have vectors, but you can't index into them! 18:07:00 Oh right, the entire problem I was trying to solve 18:07:05 I guess a typeclass just won't work for that, SIGH 18:07:25 a Fin type gives you safe indexing into Vec 18:07:41 Yes, but so does a nat with an LT constraint 18:07:44 If it works 18:07:58 LT on type nats is a horrible hack that relies on weird behavior 18:08:10 It's... just a typeclass 18:08:16 you have it? 18:08:29 class (N m, N n) => m `LT` n 18:08:29 instance (N n) => Z `LT` S n 18:08:30 instance (N m, N n, LT m n) => S m `LT` S n 18:08:37 Modulo I'm-really-tired errors. 18:08:54 how do you write 0 < 5 with that? 18:09:14 Z `LT` S$S$S$S$S Z 18:09:22 Thanks Deewi 18:09:22 I mean, prove 18:09:31 You don't prove anything, this isn't Agda 18:09:37 I'm not looking to prove anything :P 18:09:37 instances are proofs 18:09:38 my point 18:09:44 is that those instances don't cover 0 < 5 18:09:58 Yes... yes it does. 18:10:02 instance (N n) => Z `LT` S n 18:10:09 oh, okay 18:10:21 fair enough then :) 18:10:23 I'm not sure why this typeclass is meant to be difficult and hacky :P 18:10:33 there's a couple of ways of doing it 18:11:03 either way, a Fin is a more "natural" way of indexing into a vec :P 18:11:27 elliott, so wait, how did you end up down this route? 18:11:30 But less convenient to use, since now you have two problems caret doubleyou type-level number-ish types 18:11:41 Phantom_Hoover: I want static-length vectors to represent integers. 18:12:05 How do you define N? 18:12:26 ... 18:12:31 Do you want me to pastebin all my code? 18:12:33 elliott: you're going to have to do the same amount of work 18:12:36 Because none of it currently works, y'see. 18:12:39 That'd be nice. 18:12:50 None of it at all? 18:13:02 elliott: convincing the compiler you have an instance for an arbitrary natural is just as hard as using Fin for indices :P 18:13:19 Phantom_Hoover: Very little of this part. 18:13:23 copumpkin: Yeah yeah :) 18:13:34 I warn you 18:13:36 copumpkin: I just feel this little twinge in my heart every time I deviate from York Lava 18:13:39 this way lie many proofs 18:13:53 I've done a fair amount of fooling around like this in haskell 18:14:06 and convincing the compiler of things that should be "obvious" is a real pain 18:14:16 you can do it, but haskell is a pretty shitty proof language 18:15:01 O'course 18:15:06 And all I'm tryina' do is generalise tuples :( 18:15:10 aw 18:15:12 Doubt GHC likes thirty-two element tuples 18:15:26 oh, homogeneous? 18:15:46 otherwise you can bury yourself deeper and go for heterogeneous vector-like things 18:15:52 indexing into those is fun 18:16:11 Homogeneous, yes 18:16:16 I'm writing an HDL 18:16:22 HDL? 18:16:27 Hardware description language 18:16:42 Think VHDL, Verilog, and also the damned interminable series of Haskell DSLs named " Lava". 18:18:58 ah 18:19:08 I've wanted to do something like that in agda 18:19:49 copumpkin: ...mine's for Minecraft redstone though :) 18:20:09 I'm basically ripping off various Lavas...Lavae... wholesale, because dem people be smarter than me. 18:20:15 I've yet to actually write a line of synthesis code. I'm scared. 18:20:44 :O 18:22:35 elliott: in my hardware compiler, the type inference code is much much longer than the actual synthesis code 18:22:53 ais523: Yeah, but that's done for me :P 18:23:00 ais523: And anyway, doesn't yours spit out VHDL? 18:23:01 also, slower to run, but I think that's because there are quadratic algos in it 18:23:02 That does not count 18:23:13 actually, it spits out connections 18:23:18 which happen to be in VHDL, but that's irrelevant 18:23:26 it's doing nothing but connecting together premade units from libraries 18:24:02 see, the problem with what I'm doing is that once I infer the type, I might discover it's wrong 18:24:07 and have to fix the program to comply 18:24:28 noot :: Nat n -> (forall p. (n ~ p, N p) => Nat p -> r) -> r 18:24:28 noot n f = foo n (f Z) (\p -> noot p (\q -> noxs q f)) 18:24:33 copumpkin: proofs.jpg 18:24:37 actually here is my whole proof 18:24:40 foo :: Nat n -> ((n ~ Z) => r) -> (forall p. (n ~ S p) => Nat p -> r) -> r 18:24:40 foo Z z _ = z 18:24:40 foo (S n) _ f = f n 18:24:40 noxs :: (N n) => Nat n -> (forall p. (p ~ S n, N p) => Nat p -> r) -> r 18:24:40 noxs n f = f (S n) 18:24:41 noot :: Nat n -> (forall p. (n ~ p, N p) => Nat p -> r) -> r 18:24:42 noot n f = foo n (f Z) (\p -> noot p (\q -> noxs q f)) 18:24:54 this is me saying "fuck you world, every value of (Nat n) has (N n) and i'm going to prove it" 18:25:19 :) 18:25:22 woot, can be simplified to 18:25:24 noot :: Nat n -> ((N n) => Nat n -> r) -> r 18:25:43 nooot :: Nat n -> ((N n) => Nat n) 18:25:44 Woot 18:25:46 Nooot 18:25:54 that isn't the same though 18:26:18 oh, you're reusing variables 18:27:19 no im just expanding their names with more os 18:27:34 *Redsynth.Nat> :t nooot 18:27:34 nooot :: N n => Nat n -> Nat n 18:27:35 heh oops 18:27:37 copumpkin: ur rite 18:28:08 nooot :: Nat n -> (forall p. (p ~ n, N p) => Nat p) 18:28:09 there 18:28:17 ugh what 18:28:22 it got turned into 18:28:24 nooot :: N n => Nat n -> Nat n 18:28:25 again 18:28:37 monomorphism restrction?? 18:28:46 nope 18:29:23 copumpkin: now the question is, how do I make GHC automatically apply this everywhere :P 18:31:37 copumpkin: btw... the reason I'd rather use nats rather than fin is that I can use "n99" as a type-nat literal and it'll cause a type error immediately if it's too large; either I define a whole other set for fins which is really ugly, or I rely on fromInteger, which only fails at runtime... 18:34:38 ah 18:34:43 just use a real language 18:34:45 like agda! 18:35:18 copumpkin: yes definitely 18:35:23 copumpkin: how slow is 9 + 9 in Agda again 18:35:31 copumpkin: Anyway I can't use Agda, I use observable sharing :-) 18:35:57 boo 18:36:10 copumpkin: Hey, I use the _type-safe_ in-IO observable sharing. 18:36:11 9 + 9 isn't noticeably slow, even when normalizing 18:36:17 I'm not a bad person! 18:36:20 when compiled, it's just using Integer 18:36:36 The topic is now me rationalising my use of observable sharing. 18:37:32 -!- ais523 has set topic: elliott rationalising his use of observable sharing | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 18:38:15 Yes. 18:43:28 -!- oerjan has joined. 18:44:55 copumpkin: Heh, and any such fin literal type thing would have to use LT/GT 18:45:05 not really 18:45:12 What type would f9 have then 18:45:15 zero :: Fin (S n) 18:45:19 Oh, Fin (S (S (S (S (S (S (S N)))))))))))))))))))000000000000000 18:45:20 one :: Fin (S (S n)) 18:45:20 right 18:45:24 :) 18:45:30 Hmm, I could have a typeclass 18:45:38 instance Lit Fin n where ... 18:45:41 instance Lit Nat Z where ... 18:52:53 > 2 `2` 2 18:52:54 : parse error on input `2' 18:53:02 boring 18:53:13 > 2 `(+)` 2 18:53:14 : parse error on input `(' 18:53:15 also boring 18:53:21 oh wait that wasn't what elliott meant with binary literals 18:53:31 oerjan: ? 18:53:39 copumpkin: You're insufficiently horrified :( 18:53:42 Not that Haskell has binary literals, but 18:53:43 C++11 lets you define your own literal syntaxes 18:56:38 elliott: oh sorry, doing work 18:56:47 elliott: not sure how that would work, but I'll be interested to see it 18:56:51 Work is no excuse for horrorslacking 18:56:55 could you make a literal which is actually a language? 18:57:04 and define code with it 18:57:11 could you make a horse that's the sky 18:57:17 and embed something in C++ 18:57:33 elliott, yes 19:04:04 elliott: pancreas 19:08:17 -!- KingOfKarlsruhe has joined. 19:12:12 -!- oerjan has set topic: elliott using his observation of shareable rationality | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 19:17:52 -!- calamari has joined. 19:38:25 -!- KingOfKarlsruhe has quit (Quit: ChatZilla 0.9.87 [Firefox 5.0/20110615151330]). 19:45:18 oerjan changing his topic of shareable elliott 19:46:00 -!- foocraft has joined. 20:28:33 -!- zzo38 has joined. 20:29:43 I made program in TeX for PBM picture to output. http://sprunge.us/VGgZ 20:47:07 -!- oerjan has quit (Quit: Good night). 20:49:25 -!- azaq23 has joined. 20:53:34 -!- Phantom_Hoover has quit (Remote host closed the connection). 20:56:46 -!- Phantom_Hoover has joined. 21:06:06 -!- calamari has quit (Quit: Leaving). 21:09:37 -!- FireFly has quit (Read error: Connection reset by peer). 21:11:51 -!- FireFly has joined. 21:48:01 -!- hagb4rd has joined. 21:51:56 -!- cheater_ has quit (Ping timeout: 255 seconds). 21:54:18 -!- pumpkin has joined. 21:54:18 -!- pumpkin has quit (Changing host). 21:54:18 -!- pumpkin has joined. 21:55:16 -!- elliott has quit (Ping timeout: 240 seconds). 21:56:37 -!- copumpkin has quit (Ping timeout: 240 seconds). 22:03:20 -!- cheater_ has joined. 22:10:43 Why does MiKTeX include so much junk? 22:37:21 -!- MigoMipo has quit (Read error: Connection reset by peer). 22:41:28 -!- pumpkin has changed nick to copumpkin. 22:54:11 <3 "Frost" 22:59:51 The Homestuck track? 22:59:53 -!- hagb4rd has quit (Ping timeout: 255 seconds). 23:01:33 OK so basically I now have to spend two days hanging around museums. 23:01:36 Yaaaaaaay. 23:02:36 Why do you have to hang around museums? 23:11:59 Phantom_Hoover, yes 23:12:58 My ear is bubbling 23:13:28 Ok, that's not as amusig as i thought 23:13:57 You should probably do something about that. 23:14:18 I think it 23:14:23 's fine 23:14:55 hmm, I wonder what this bag from burger king is doing on my desk and what it might contain 23:16:45 should I ... open it? 23:17:07 Yes open it carefully in case it smell too bad or something 23:17:41 itchy tickly 23:18:21 itckly tichy 23:19:41 Sgeo_ is going mad from an ear infection which spread. 23:19:46 Soon he will die. 23:20:36 It's just H2O2 23:21:08 Sgeo_ 23:21:15 Sgeo_, do you have a perforated ear drum 23:21:16 Why are you pouring peroxide in your ear 23:21:31 hmm, on the subject of unlikely flamewars that I've got into not on the Internet: I'm currently in a Takeshi's Castle vs. Ninja Warrior flamewar 23:21:46 cheater_, not that I know of, dad says I'd be in pain if I did' 23:22:08 Sgeo_, that is wrong, a perforated ear drum does not hurt 23:22:22 ... 23:22:37 why would you pour hydrogen peroxide in your ear anyway? 23:22:42 well take it from someone who's had that and it didn't hurt 23:23:33 Sgeo_, did you pour peroxide in your ear and it sounds like the water is flowing into a hole of some sort - like it's going further than usually when you have water in your ear? 23:23:54 either way if it's itchy it's probably just a lot of ear wax :p 23:24:03 ais523, try to clean it out because I can barely hear from it 23:24:22 cheater_, would it be noticable? I notice no such thing 23:25:18 would what be noticable - the perforation, or the earwax? 23:25:41 Sound of H2O2 flowing into perforation 23:25:53 hmm, elliott's lucky he isn't here, he'd have facepalmed to death 23:25:56 yeah it sounds very different than usual 23:25:58 I should possibly email him a warning not to logread 23:26:00 try with the other ear 23:26:02 for comparison 23:26:30 cheater_: we've had enough of trying to get Sgeo to kill his girlfriend (/me waits for NOT ACTUALLY GIRLFRIEND rant) 23:26:35 stop trying to get him to kill himself too 23:26:39 Medical advice from cheater vs. medical advice from Sgeo's dad. 23:26:52 I'm really not sure which side of the fence I'm on here, 23:26:57 Phantom_Hoover: well, I'd probably phone the NHS if in doubt 23:27:11 but the US doesn't have a national health service 23:27:44 ais523, what? 23:28:01 cheater_: what are you whating at? 23:31:16 I did survive doing the same thing yesterday 23:31:28 But I just told my dad that I want to see a doctor, and I don't mean him 23:31:53 was your ear having hearing problems before you did it the first time? 23:32:00 Yes 23:32:19 It's been having problems for a while now 23:32:26 Cleared up some time ago, but then came back 23:32:33 TbH, I suspect pouring peroxide into a perforated eardrum would hurt like hell, but IANAD. 23:33:15 hydrogen peroxide can explode on contact with all sorts of things, and the most potent is quite common in the human body 23:33:26 because H2O2 badly messes up a range of reactions and it gets rid of it by any means possible as a result 23:35:15 * Sgeo_ vaguely hopes that Phantom_Hoover is right 23:36:26 ais523, you refer, I assume, to the catalytic breakdown of peroxide into water and oxygen. 23:36:35 yep 23:36:40 in a confined space, it's an explosion 23:36:49 Which is not particularly dangerous, what with peroxide having been used in the past as a topical antiseptic on wounds. 23:36:51 I've done it in the lab 23:37:06 and yep, not generally in the human body, it's so dangerous that the body is good at dealing with it 23:37:14 -!- cheater_ has quit (Ping timeout: 255 seconds). 23:37:30 Phantom_Hoover, in the past? 23:37:37 People don't do that anymore? 23:37:59 TIL: #! is not POSIX. 23:38:14 pikhq: omg!! 23:38:18 Sgeo_, it releases oxygen, so if it gets into the bloodstream there's a risk of an air embolism. 23:38:27 pikhq: I learnt that recently, looking it up 23:38:33 WHY 23:38:37 Phantom_Hoover, um, that's scary 23:38:38 however, POSIX does mention it as a common convention in a footnote somewhere 23:38:45 Sgeo_: also very noticeable 23:38:49 Sgeo_, why, do you have any open blood vessels in your ear? 23:38:50 so posix basically says nothing at all about executable formats? 23:38:55 so it probably didn't happen 23:38:57 makes a lot of sense though, really 23:39:08 There *is* a portable way to do shell scripts, though. 23:39:09 Phantom_Hoover, no, not in my situation particularly, just in general 23:39:15 pikhq: orly? 23:39:22 pikhq: load them from inside the appropriate shell? 23:39:24 execvp passes invalid executables to the shell. 23:39:42 but what if your portable shell script is also a valid executable on the system in question? 23:40:28 Have fun. :) 23:41:06 perhaps I should write a shellscript/.COM format Windows executable polyglot 23:41:17 In practice, adding #!/bin/sh should fix that. 23:41:20 it's reasonably easy to make an entirely printable one of those, although it has to be selfmodifying because the flow control commands are unprintable 23:41:35 (it's very unlikely that #!/bin/sh is the magic for an executable format) 23:41:56 and I think it's invalid x86 machine code, too 23:42:01 IIRC the lowercase letters are all invalid commands 23:42:26 "invalid" x86 machine code, as if there are any byte values left to treat as invalid :P 23:42:43 there were quite a lot back on the 8086 23:43:09 that was... more than a life time ago, I believe 23:43:21 Oh, *right*, .COM didn't even have header magic. 23:43:33 well, I was working from the developer's manual for DOS 3 back when I did the printable machine code stuff 23:43:37 pikhq: indeed 23:43:49 because I found it in the library 23:50:18 -!- cheater_ has joined. 23:53:31 * Phantom_Hoover → sleep 23:53:33 -!- Phantom_Hoover has quit (Quit: Leaving). 2011-07-09: 00:12:31 -!- Patashu has joined. 00:16:30 -!- pikhq has quit (Ping timeout: 240 seconds). 00:16:38 -!- pikhq has joined. 00:16:56 What exactly are the probabilities related to DARK CLEFABLE [Lv33]? Is it just 1/3? 00:18:45 zzo38: you're unlikely to find out without testing the game a lot 00:18:51 as it isn't a real card, it doesn't say on the card 00:18:54 but you could work it out by experiment 00:19:26 Such experiment would be difficult for many reasons though. Although, maybe there are some cheat codes that can help 00:20:06 It is possible though, to make a probability of 1/3 (as well as other numbers) with coins. I know a few methods to do so. 00:42:56 It is if you accept that your method may never terminate 00:43:13 although the same is technically true for a simple flip as well 00:43:30 since there is always the possibility, however remote, of edge 00:49:24 There is also the possibility that I will teleport to the moon, but we don't usually discuss this. 01:01:29 Gah, there are moths in this apartment too 01:01:35 -!- FireFly has quit (Quit: swatted to death). 01:01:35 One of them flew into my cooking pasta 01:01:44 Better than your rotting pasta 01:08:08 -!- cheater_ has quit (Ping timeout: 255 seconds). 01:19:51 -!- cheater_ has joined. 01:37:14 -!- CakeProphet has quit (Ping timeout: 276 seconds). 01:39:12 Now you should be more careful. Unless you are trying to make moth pasta. 01:40:06 -!- hagb4rd has joined. 01:43:09 ARRRRRRRRRRRRRGH 01:43:20 I've been on Google+ for TWO DAYS and already I'm getting added by people that I don't know if I know >_< 01:44:22 Here, let me help! 01:46:04 NOOOOOOOOOOOO 01:46:30 Is google+'s privacy better 01:47:02 Patashu: It actually exists. :P 01:47:11 Patashu: it's designed better but IIRC is buggy atm 01:48:41 Gregor, I assume that you know if you know me? 01:49:05 Sgeo_: That's quite the name. 02:03:56 -!- cheater_ has quit (Ping timeout: 255 seconds). 02:07:25 -!- BeholdMyGlory has quit (Remote host closed the connection). 02:16:06 Now I made a program overlaying PBM pictures in TeX documents, it is one which is 100% compatible with TeX. I can use it later if I have something that I will want to add pictures into the spare spaces of the document. 02:16:58 -!- cheater_ has joined. 02:21:13 Is there program or algorithms to automatically layout a block diagram or similar diagrams? 02:33:41 so I did the unthinkable. I got google+. No idea why. I think google betas are somehow addicting. Maybe because they are hard to get? 02:36:10 I still don't care for social networks 02:36:17 whether or not they're less evil than Facebook 02:41:09 I don't need social networks. Although if decentralized it might be an improvement in some ways. 02:41:22 -!- jcp|other has joined. 02:42:19 -!- javawizard has quit (Ping timeout: 240 seconds). 02:43:04 -!- jcp has quit (Ping timeout: 258 seconds). 02:46:11 -!- jcp has joined. 02:56:01 Do you know who "Sachiru" is? On this log? http://zzo38computer.cjb.net/irc_log/GAMESESSION/1307961179 02:59:39 -!- variable has changed nick to Cthulhu]. 02:59:47 -!- Cthulhu] has changed nick to variable. 03:25:43 Do you like the PBM overlay program in TeX? 03:28:24 Why is it trying to be everything with Google now? 03:30:53 -!- zzo38 has quit (Quit: {). 03:35:48 -!- azaq23 has quit (Ping timeout: 252 seconds). 03:39:05 !c printf("%x",11656948); 03:39:10 b1def4 03:40:42 !c printf("%p", malloc(4)); 03:40:44 0x7fe8070ae010 03:40:51 heh, 64-bit 03:53:37 It's not exactly a secret that it's 64-bit :P 03:53:48 !c printf("%d", sizeof(void *)) 03:53:50 8 03:55:50 I know, it just surprised me 03:55:56 I run 32-bit OSes even on 64-bit hardware 03:56:18 because narrower pointers normally save more time than narrower arithmetic loses 03:57:01 how? 03:57:22 That may (or may not) be true on MIPS vs MIPS 64-bit, but on x86 you have to consider the fact that you're weighing 1 vs 9 general purpose registers. 03:57:44 coppro: memory bandwidth 03:57:54 ah 03:58:01 it's the major bottleneck for the majority of programs nowadays 03:58:30 Except that x86_64 then removes a memory bottleneck. 03:58:31 in fact, the main advantage of FPGAs vs. CPUs is that they can be designed with a separate memory for each variable, thus having no similar bottleneck 03:58:56 Do you have some actual numbers to back that up? I recall seeing some 32-bit/64-bit benchmarks on Ubuntu old.old a year or two ago, and 64 bits was a win in (at least a large majority of) their tests. 03:59:08 no, it's a guess 03:59:17 fizzie: That's not because of being 64-bit, but because x86_64 adds more general-purpose registers. 03:59:19 It's a guess that happens to be WILDLY incorrect for x86_64. 03:59:25 fair enough 03:59:29 pikhq: Well of course. 03:59:43 But like pikhq said, probably not much to do with the bitwidth, more to do with 1-vs-9 GP registers :P 03:59:52 There's *very* few cases where 64-bit arithmetic is a win. 04:00:05 But holy fuck only 1 general-purpose register is lose. 04:00:33 yep, that's a bit of a silly design 04:00:57 (Which one that is depends enormously on situation, since of course there are no truly general purpose registers, just some "common purpose" and some "less common purpose" registers) 04:02:25 You can treat EBX as general-purpose. 04:03:05 pikhq: Not if you're in a shared library on UNIX. 04:03:37 Except when doing PIC. 04:03:40 Gregor: Yeah. 04:03:51 why can't you use CX as general-purpose? 04:03:52 In which case there does not exist a general-purpose register. 04:04:07 ais523: The count register is firmly not general-purpose. 04:04:13 fair enough 04:04:24 it does work in a wide range of commands, though, and you often aren't using it for anything else 04:04:42 ais523: The thing is, that's the status of EVERY x86 register. 04:04:50 With varying degrees of "often" 04:04:56 That's what makes it such a minefield. 04:05:19 this reminds me of the PIC microcontroller architecture, where more than half of the registers are special purpose and there's no other RAM, and the documentation pretty much says "if the register's writable and readable and whatever you're putting there isn't going to have undesirable side-effects, feel free to use it as general-purpose" 04:05:35 Including EBX. It just so happens to not be commonly used for its purpose in non-PIC 32-bit code. 04:06:35 -!- Sgeo has joined. 04:06:48 -!- Sgeo has quit (Client Quit). 04:06:55 -!- Sgeo_ has changed nick to Sgeo. 04:10:18 -!- azaq23 has joined. 04:10:28 -!- derrik has joined. 04:18:43 -!- oerjan has joined. 04:21:15 hmm, on the subject of unlikely flamewars that I've got into [...] <-- I SENSE REDUNDANT STATEMENT 04:21:34 oerjan: I don't see the redundancy 04:21:41 we weren't on that subject beforehand 04:22:01 i don't see you as a person who gets into flamewars, thus the "unlikely" is redundant. 04:22:03 nor afterwards 04:22:11 I get into VCS flamewars on occasion 04:22:23 ooooh 04:22:26 but I meant that the flamewar was unlikely to exist at all, and me having gotten into it was independent 04:22:43 -!- zzo38 has joined. 04:25:48 Yes! 04:25:49 No! 04:25:59 how indecisive 04:27:01 DO YOU WANT TO PLAY AGAIN? (PLEASE TYPE 'YES SIR!' OR 'NO SIR!') 04:27:37 NO SIR! 04:40:38 This is stupid some people do not even have a landline anymore. 04:41:42 And I cannot find many payphones anymore. 04:42:19 * oerjan doesn't have a landline 04:48:19 Do you have a telephone at all? 04:48:52 i have a cellphone yes 04:49:39 Do you have software on your cellphone for receiving faxes? 04:50:02 If not, do you know how to write such a software? 04:50:14 no it is an old model :P 04:52:16 I do not want a cellphone I prefer landline phone. 04:52:50 ok 04:53:09 Someone said they will take them away? Who did that? 04:53:32 Will it become illegal or something like that? 04:54:48 i would expect if they disappear it would be because the market for them became too small to support 04:55:25 because afaik most young people _do_ prefer cell phones 04:57:34 In Finland the percentage of homes with a landline contract has gone from 94% in 1995 to 33% in 2007; it's probably <30% already, though the speed at which it's dropping has understandably slowed. 05:00:04 How many offices have a landline, though? 05:00:26 20% of homes at the beginning of this year, apparently. 05:01:46 I don't know if they publish statistics about offices; at least large ones (>10 people or something) are quite likely to have some sort of fixed telephone system, I'd guess. But that's just a guess. 05:03:23 Heh, this link to a "report on the use of telecommunications services" on the communications regulatory authority site points at the server "pub.laru.local". 05:04:53 fizzie: I take it that doesn't resolve from public internet? 05:05:00 it's just about stupid enough that I could imagine it either way 05:05:19 Well, no. I don't think anyone's bought the ".local" TLD yet. (I wonder if ICANN would even sell it.) 05:05:38 They'd catch probably quite a lot of misconfigurations with a public *.local wildcard entry. 05:05:41 there have been people registering it, I think 05:05:46 possibly with CAs 05:07:06 At least zeroconf uses .local and multicast-DNS, might be problematic if it also existed as a "regular" TLD. 05:07:40 In my opinion a lot of TLDs exist that shouldn't. 05:08:04 And some should be named a bit differently. 05:10:21 They'll start actually accepting applications for pretty much any name starting from January 12th next year. Costs $185000 to apply, and then €25000/year to keep it. 05:10:28 s/€/$/ 05:12:28 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 05:14:49 I have one suggestions for a TLD called ".opts" although to work properly it MUST NOT be registered by anyone. Instead it must be dealt with by the driver. It can be used to set options on DNS and timeouts and various other things, including use of IPv6 vs IPv4, and so on. 05:17:00 `factor 209 05:17:03 209: 11 19 05:17:31 And then allocate one range of the "invalid" IPv4 addresses for use of driver specific things. 05:18:22 Now all IPv4 programs automatically work with IPv6 as well. And even if a program specifies "IPv6 only", you can still use IPv4 as well, too. 06:02:37 Are there computers with many bit hacking operations built in? Which ones? 06:08:41 What are "bit hacking operations"? 06:09:31 Intel and AMD both have recently added opcodes POPCNT (count of set bits) and LZCNT (number of leading zeros), if that's the sort of thing you mean. 06:10:59 Or actually LZCNT seems to be AMD-only. 06:12:12 And of course x86 has long had BSF/BSR which locate the first/last set bit in a register. 06:12:25 (Since 80386.) 06:14:33 And Z80 has a rather silly nybble-rotating operation, RRD. I think it might be intended for doing things on BCD values. 06:19:11 I mean other things too, including rearranging bits in a value, and even INTERCAL's "select" operation, and a lot of other stuff including the things you have mentioned, too. 06:21:16 -!- monqy has quit (Quit: hello). 06:21:36 I seem to recall that the SIMD instruction sets can do shuffling and INTERCAL-style select but only on byte level. 06:22:17 Or actually I guess shuffling only shuffles 16-bit words. 06:25:44 The EXTRQ instruction introduced in SSE4a can extract a contiguous sequence of bits; you give it (as immediate arguments) offset and the number of bits, and it selects those, puts them to the least-significant positions, and clears rest to zero. 06:26:14 It's sort of a general-purpose "select one field out of a SIMD register" op. 06:27:04 (And INSERTQ is the reverse operation of that.) 06:27:24 "contiguous"? boring 06:27:29 how do you do an unmingle with that? 06:27:57 I doubt they had INTERCAL efficiency in mind when designing SSE things. 06:29:42 I think I read somewhere that PDP-10 allows accessing a contiguous sequence of bits somehow 06:32:40 Seems to, yes. 06:32:59 So any CPU have a command to do Muxcomp (see the article in esolang wiki)? 06:33:04 s/So/Do/ 06:42:56 -!- hagb4rd has quit (Quit: hagb4rd). 06:48:57 -!- CakeProphet has joined. 06:53:26 -!- CakeProphet has quit (Ping timeout: 250 seconds). 06:54:35 -!- ais523 has quit (Remote host closed the connection). 07:08:17 -!- oerjan has quit (Quit: Later). 07:58:07 Does Linux have a mode to make it not automatically make a USB keyboard work if there is already a keyboard (even not USB) connected? 07:58:42 It does 07:58:46 it might not be written yet, though 07:59:52 keyfuzz with kernel patch 07:59:57 :P 08:02:15 Sounds like something that might be hackable with udev rules and some scripts. 08:02:36 You'd need to futz with udev. 08:03:14 (technically, all the hotplugging stuff isn't *in* Linux. Linux just sends a message saying "Hey, new device, do something with it" out, and udev responds.) 08:12:50 -!- derrik has quit (Quit: left). 08:13:36 What happens if a process directory is the current directory when the process is terminated? 08:14:11 same thing that happens whenever a process is in a nonexistent directory 08:14:38 It makes sense. But what happens in that case? 08:14:48 Get very loud complaints from your programs. 08:14:48 Do you just get errors until you change it again? 08:15:07 Well, loud complaints from your shell, loud complaints followed by exit(1); by your normal programs. 08:15:34 (presuming they try to read from the pwd) 08:18:52 Does Linux have the ability to unlink, but not delete until every process in the directory is terminated or moves elsewhere? 08:19:49 Is there a variant of background processes that can instead just output the process ID to stdout so that it can be used in `...` commands? 08:21:35 Probably it can be done with fork() or something in a C program? 08:25:22 Hmm. Well, that's neat. Utterly pointless, but neat. 08:25:28 I have every extant Linux version here. 08:28:47 pikhq: wha? 08:29:13 http://padator.org/linux/full-history-linux.git.tar 08:29:40 That + a git pull gets you all of Linux up to when you did a git pull. 08:32:53 Today I uninstalled most of the stuff that MiKTeX installs by default, and it saves 400 MB of disk space by doing so. 08:33:19 zzo38: In bash, $! expands to the PID of the most recently executed background command, so something in the style of blah `blah >/dev/null 2>&1 & echo $!` could work, if your shell is bash. 08:33:56 fizzie: OK, that can work. Thanks for information. 08:34:16 http://cache.ohinternet.com/images/b/b9/I%27ll_just_look_at_this_one_article_on_tvtropes.jpg 08:37:18 So now I uninstalled everything except the Plain TeX, Plain METAFONT, Computer Modern fonts, AMS fonts, DVI previewer, and printing program. Although for some reason the "hyphen.tex" file needed by Plain TeX is in a package also containing other files that I don't need. 08:51:33 Do you know of techniques used for copy protection, anti-debugging ,etc, I can try to make a hardware design that avoids these things? 09:12:33 -!- Phantom_Hoover has joined. 09:45:24 -!- azaq23 has quit (Quit: Leaving.). 10:00:07 -!- BeholdMyGlory has joined. 10:00:14 -!- BeholdMyGlory has quit (Changing host). 10:00:15 -!- BeholdMyGlory has joined. 10:04:30 -!- MigoMipo has joined. 10:16:45 -!- FireFly has joined. 10:40:46 -!- Phantom_Hoover has quit (Quit: Leaving). 10:42:02 -!- Phantom_Hoover has joined. 10:44:58 You forgot. I also forgot. 11:17:42 -!- aloril has quit (Ping timeout: 260 seconds). 11:28:31 -!- zzo38 has quit (Remote host closed the connection). 11:30:12 -!- aloril has joined. 12:01:34 -!- CakeProphet has joined. 12:01:35 -!- CakeProphet has quit (Changing host). 12:01:35 -!- CakeProphet has joined. 12:24:08 -!- zzo38 has joined. 12:26:44 You do not have permission to use "'" in this comment, unless you have used "'" within yrs ago (and not yrs ago) or have Miscellaneous Preferences enabled because . 12:30:50 wat 12:36:58 I love that song. 13:08:00 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .). 13:10:15 -!- MigoMipo has quit (Remote host closed the connection). 14:11:58 -!- foocraft has quit (Quit: So long, and thanks for all the fish!). 14:12:51 So short? And don't eat all the fish! 14:14:13 Maybe it is better to drink all the fish? 14:46:00 -!- aloril has quit (Ping timeout: 240 seconds). 14:47:48 -!- copumpkin has joined. 14:47:48 -!- copumpkin has quit (Changing host). 14:47:48 -!- copumpkin has joined. 14:50:34 -!- pikhq_ has joined. 14:50:37 -!- pikhq has quit (Ping timeout: 260 seconds). 14:58:46 -!- aloril has joined. 15:16:55 -!- foocraft has joined. 15:26:27 -!- monqy has joined. 16:11:26 Which game did you play tomorrow? 16:20:00 There is Plain TeX, but is there such things as VeryPlain TeX? 16:27:36 -!- derrik has joined. 16:33:07 no! 16:34:32 I suppose it doesn't matter then. Plain TeX is good enough for most things, other things can use primitive TeX writing a specific format for what is being done. 16:35:58 i was just thinking that 16:39:55 -!- Madk has joined. 16:40:16 hello 16:40:41 I am currently writing a DVI optimizer program which tries to make the DVI output from TeX (or any other program that can produce DVI output files) into smaller file by changing some things as long as the output on paper is still the same. 16:42:15 -!- derrik has left. 16:44:24 i am currently trying to characterize the cellular automata generated by idempotent ones, or rather prove my conjecture; i thought i proved it already but that was bullcrap, but now i have it except for a particular CA with certain properties i need to construct 16:45:09 What conjecture? 16:45:38 I am currently working on an evolutionary algorithm to generate a Hello, world! program in my esolang Surface 16:45:56 G is a product of idempotents <==> (for all n: G(U_n) = U_n ==> G|U_n = id|U_n) 16:45:59 and the only reason I made surface was so that I could make a cool evolutionary algorithm 16:46:04 where U_n is the set of points with least period n 16:46:27 idempotent CA = everything becomes still life after one generation, that is, G^2 = G 16:46:40 otherwise standard notation but ask if unclear 16:47:35 (for 1d ca) 16:48:17 (which are functions from S^Z to S^Z defined by a local rule, where S is a finite set of states and Z are the integers) 16:51:29 it is easy to see "==>" but for "<==" i need a family of CA that for arbirarily large k and some suitable m, put a marker (a 1) every k to k+m steps, and 0's everywhere else, unless there is a sequence of n (which is arbitarily large) cells where there is a smaller period than k in which case the CA just writes 0's under it 16:51:48 which i think should exist 16:51:56 -!- Madk has quit (Quit: Some folks are wise, and some otherwise.). 16:53:17 if i could do that, i could do standard permutation stuff whereever there's a period for some time in the point, and everywhere else, just use an "aperiodic" marker that doesn't appear in the image of G to route the contents of the point through a subshift of finite type which cannot be confused with the image 16:53:37 SOUND GOOD? 16:54:39 I do not know enough about this kind of theory to understand it enough to know if you are correct or if it sound good or not. 16:55:09 sure i was jk 16:56:03 i mean the idea should work but i was jk with the sound good htings 16:56:04 *things 16:56:05 *thing 16:57:06 Are you good at pokemon card while blindfolded? 16:57:11 :P 16:57:22 i'm okay at symbolic dynamics while blindfolded 16:57:37 i guess it's essentially the same thing 16:58:34 Are you good at symbolic dynamics while you are on the sun getting burned and hiding from me (or from yourself)? 16:58:36 how can you play pokemon card while blindfolded 16:58:56 no, i think i would be dead rather fast 16:59:13 I don't know. It would be difficult to play pokemon card while blindfolded because you cannot read it 16:59:22 yes 16:59:55 But maybe it is still possible to understand head/tails if you can touch it and know the difference of engraving of head/tails. 17:02:59 Play Pokemon without knowing what the opponent has. 17:03:00 Even harder~ 17:04:06 Yes that would be difficult. But usually you do not know what cards they have in their hand, but you can still see the cards in play. Unless, you can deduce the cards in hand. 17:04:31 Or, if you have a blind game you cannot see cards in play, you have to listen to announcements of attacks and stuff like that, to figure out....... 17:04:36 Meh. 17:04:38 It'd be intersting. 17:04:51 Magic, and you can only see the other player's stuff if they're directly using it on you. 17:05:25 Otherwise, you only know how many cards they have in play. 17:05:45 And, maybe also whether or not it is tapped. 17:05:52 For sanity's sake, you'd have to be able to see what you can target with certain spells. 17:06:09 Though, I'm sure you'll need a rule checking simulator to do that... 17:06:12 " But maybe it is still possible to understand head/tails if you can touch it and know the difference of engraving of head/tails." <<< err it's kind of trivial 17:07:07 Or have it like Kriegspiel variant of chess, where if you do a wrong move you get to try again until it is correct (opponent knows how many times you tried). So, if you target something, it is told whether or not is a valid target, and then you must try a target and if it is wrong, you can try to target a different card. 17:07:14 you can even tell bills from each other pretty easily by their size 17:07:53 or at least usually guess them correctly, i'm not sure i could actually say for sure, since all perception tends to be relative 17:08:50 touching is slightly easier since you have your own body to compare with 17:09:03 zzo38, case where you can't target anything? 17:09:51 Lymee: Then the referee tells you that you can't. In Kriegspiel variant of chess, you can ask whether or not there is any way for one of your pawns to capture. Similar thing can be done this way, with Magic: the Gathering cards. 17:36:30 "There is something that i want to reveal to you that might interest you .Because of that, i want to know if you are the original owner of this email address. I have a very good information which i want to relate to you. 17:36:30 I am not comfortable of writing the information here as i do not want it to go to a wrong person. Please reply back and tell me if you are the real owner of this email address." 17:37:17 well are you 17:37:19 :o 17:37:23 what is it?!? 17:37:35 No. I am the fake owner of the email address. 17:39:19 hey has anyone here worked with gtk2hs? 17:40:29 What is gtk2hs? 17:40:48 try guessing from the name 17:41:21 it's not that difficult 17:42:04 * Sgeo wants poppy seed bagels 17:42:27 bery obviously it's a port of zork 3 to fortran, compiled to work on the ipad. duh 17:42:27 at least i hope that's bery obvious >_< 17:42:52 what does bery mean 17:43:01 is it bery obvious? 17:43:38 * Sgeo mutters something about bet and vet 17:43:55 -!- Nisstyre has quit (Ping timeout: 258 seconds). 17:44:39 http://en.wikipedia.org/wiki/Bet_(letter)#Bet_without_the_dagesh_.28Vet.29 17:50:45 zzo38, assume you cast Lightning Bolt. 17:50:49 There are no valid targets. 17:50:53 Do you get to take it back, or does it fizzle. 17:51:14 Lymee: You take it back, I would say. (This is similar to Kriegspiel chess) 17:54:22 i'm not even on the first google page for "picture languages" :'( 17:54:46 What is gtk2hs? <-- a tool for working with gtk from haskell iirc. 17:54:48 haha loser. 17:54:53 * cheater_ points and laughs 17:58:13 -!- aloril has quit (Ping timeout: 252 seconds). 17:59:11 BUT I WILL GET THERE 17:59:24 beat all the other 5 picture language researchers out there 18:03:38 * Sgeo wonders if it's worth it to get a PRS-950 18:03:58 why would you *not* get a PRS-950? 18:04:05 It's a bit big.. 18:04:15 that hasn't stopped anyone before.. 18:05:25 ok, haskell platform is sort of slow to compile 18:11:37 -!- aloril has joined. 18:18:18 cheater_, only on your system I bet :P 18:18:31 yup 18:21:17 -!- asiekierka has joined. 18:21:18 hey 18:21:30 i rescued 3 RTL8139D's from trashed school PCs a few months ago 18:21:32 i have one of them 18:21:34 what can i do with it 18:22:34 now you can speak ethernet, that's awesome! 18:23:03 Yeah, new gigabit-ethernet NICs cost multiple euros, maybe up to ten. 18:23:29 but isn't the 8139 one of the... more popular ones among hobbyist OS makers 18:23:37 that lets me test lots of them on actual hardware 18:23:44 read: trashing my PC with buggy code 18:24:12 It's popular => widely supported, yes. 18:26:06 that's why i rescued them 18:32:09 -!- oerjan has joined. 18:34:45 You are not only rock hard, but you are also confused! And cursed! And double cursed! 18:34:53 :( 18:35:02 i totally rock hard 18:35:56 hi oerjan, my proof for the idempotency thing didn't work but i have a new one and this time i'm reeeeeally confident about it ;P 18:36:50 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 18:39:10 -!- MigoMipo has joined. 18:41:51 horrible" 18:41:52 *! 18:43:47 i wonder if "it's funny because it's true" was invented by a set theorist after a night of mathing up some serious formulations 18:43:52 or his drinking buddies 18:57:07 I'm betting ... no. 18:59:24 and what exactly have you informaticians come up with that's cool 18:59:28 nothing 19:01:25 not even information, that was shannon's idea! 19:02:52 in fact knowing is one of the few things that was not invented before it was formalized by a mathematician 19:03:37 ic 19:04:02 oh shit oerjan was around at that time, my lie is ruined 19:04:20 i was so close :\ 19:07:57 * Sgeo looks at Wikipedia 19:08:02 Information is energy? 19:08:05 * Sgeo is confused 19:08:19 who isn't 19:08:36 Oh, information is interchangable 19:09:34 what does that mean? 19:09:42 http://en.wikipedia.org/wiki/Information#As_a_property_in_physics 19:09:48 if you've known one thing, you've known them all 19:09:49 Erm, interchangable with energy 19:14:54 well that's a bit of a letdown 19:20:29 -!- asiekierka has quit (Remote host closed the connection). 19:22:03 so now that we can make nanometer size vacuum tube arrays, do you think vacuum tubes would be a better basic element for computers, than transistors? 19:25:38 cheater_: What's their clock and how quickly do they break? 19:27:23 well, they are either field emission or photonic emission devices 19:27:35 the clock is basically limited by propagation time through the grids 19:28:00 which is pretty much nothing 19:29:00 there doesn't seem to be a limit similar to that of transistors where they have a current flowing through them that has a finite gradient 19:29:22 vacuum tubes are constantly in emission, so they always have current flowing, except that sometimes the current goes to the grid and sometimes to the plate 19:29:45 so clock rates could be higher 19:30:11 who knows 19:30:11 i'm just a layman 19:30:27 but the highest frequencies in microwave transmission are amplified by vacuum tubes, not by semiconductors 19:30:43 (read up on klystrons and tuned cavities for example) 19:31:28 the nanoscale tubes in question are still usual transconductance devices, just like old-day triodes and pentodes 19:31:33 they still have linear and cutoff mode 19:31:44 cheater_: Eh, the big things with vacuum tubes are just their size, their power draw, and their tendency to break. 19:32:03 pikhq_, but now they can be built in nanometer sized clusters 19:32:15 so that's no problem anymore, right? 19:32:23 Which quite *possibly* helps. 19:32:37 i'd think so 19:32:45 But maybe there's something else going on. *shrug* 19:32:54 yeah i know 19:33:01 i was just hoping for someone to jump up and say 19:33:43 "oh, if vacuum tubes were the same size as transistors, a current-day cpu could have 1/200th of the amount of tubes that it has transistors" 19:34:26 Is that correct? 19:34:40 Also, what would speed be? 19:35:50 -!- oklopol has quit (Ping timeout: 246 seconds). 19:35:51 What printer resolutions are commonly used other than 300 DPI and 600 DPI? Is 1156.32 DPI ever used? 19:36:00 -!- oklopol has joined. 19:36:09 1200 is used 19:36:14 so is 2400 even 19:37:58 I did some calculation to come up with the number 1156.32 that it might come a power of two fraction of points, if I have done the calculations correctly. 19:38:15 I don't know how well it actually would work in practice, though. Maybe it is no good. 19:38:35 In which places is 2400 DPI used? Which printers? Which .....? 19:38:40 Ans 54 LPI. (A 9-pin dot matrix printer in 6 lines/inch mode; though then the points aren't equidistant.) 19:39:57 What does "54 LPI" mean? And why aren't the points equidistant? 19:40:26 what is google? 19:40:51 Some of the large-number DPI values shown by printer drivers are marketing hype; e.g. cheap laser printers that pretend to do 1200 DPI. Higher-end ones more likely may do them for reals. 19:40:52 cheater_: What is Jeopardy!? 19:41:11 fizzie: How do they just pretend to do 1200 DPI? 19:43:36 I've forgotten the name so I can't google, but it was called "something 1200", and it wasn't quite really a 1200-actual-dots mode. 19:44:12 Then what is it if it is not quite really a 1200-actual-dots mode? 19:44:55 And 54 lines-per-inch doesn't have equidistant point (on my printer anyway) because there are then gaps between the lines. I think in the 8 lines/inch mode can do a reasonable 100x72 DPI mode though (horizontal x vertical). 19:49:09 Can't seem to be able to google the details now. In any case you couldn't print an arbitrary black-and-white bitmap at 1200 dpi with it. Maybe it was something like controlling the dot positions at a 1200 dpi resolution, but having the minimum size for a dot rather larger, or something. 19:50:49 Then should you compile the fonts for a lower resolutions for calculate position on pages of each letters by 1200 DPI? Would you do something like that? 19:52:03 I sort of feel that if you say a printer does "x DPI", it should be good enough so that you could print an arbitrary bw bitmap, and then with enough magnification see the individual pixels. 19:52:43 Yes it should say that! But in this case it doesn't it should use a different kind of notation or something indication of these kind of things. 19:54:56 I recall we tested the theory by printing some text with a 4x6 bitmap font at 300 and 600 dpi on a couple of printers, and then checking them for readability using a magnifying glass, and even though all the printers said they do 600 dpi quite many were just unreadable smudges. 19:55:44 (Of course that could've been some sort of scaling problem, or that they do proper 600 dpi only on better paper.) 19:57:30 Those inkjet "photo printers" advertise up to 4800 DPI. Not sure how close to reality that is. 19:59:50 you do realize that the raster a printer uses isn't a square raster, though? 20:02:14 -!- hagb4rd has joined. 20:04:59 -!- foocraft has quit (Ping timeout: 258 seconds). 20:06:00 -!- foocraft has joined. 20:17:36 -!- cheater_ has quit (Quit: Ex-Chat). 20:24:55 -!- myndzi\ has changed nick to myndzi. 20:31:33 Some guy who runs an acehack server thanked me for that underwater candelabrum patch 20:31:43 Which was rolled into AceHack 20:31:59 Um, oops 20:33:26 -!- Nisstyre has joined. 20:42:44 I think the chance of hitting yourself with the DIGGER card is 2/3 did I calculate it correctly? 20:59:09 -!- myndzi\ has joined. 21:00:57 -!- myndzi has quit (Disconnected by services). 21:00:59 -!- myndzi\ has changed nick to myndzi. 21:09:54 -!- cheater_ has joined. 21:11:20 -!- cheater_ has quit (Client Quit). 21:13:26 -!- cheater_ has joined. 21:25:13 -!- oerjan has quit (Quit: Good night). 21:42:39 -!- oklofok has joined. 21:43:06 -!- elliott has joined. 21:46:07 -!- oklopol has quit (Ping timeout: 250 seconds). 21:47:25 -!- elliott has quit (Client Quit). 21:49:23 -!- foocraft has quit (Quit: if you're going....to san. fran. cisco!!!). 22:11:29 -!- elliott has joined. 22:16:35 hay elly 22:17:17 how's it flapping 22:17:37 I made up some ideas of pokemon card, including one card: Toss the coin. Next time either player would toss a coin, instead use the result of this coin. 22:18:14 i like the basic concept 22:18:27 -!- pikhq has joined. 22:18:45 -!- pikhq_ has quit (Ping timeout: 264 seconds). 22:18:51 Do not distribute any links to this page! http://wiki.industrial-craft.net/index.php/Secret:Nuke_Recipe 22:18:58 * elliott is getting the word out about not distributing any links to that page 22:19:02 -!- elliott has left ("Leaving"). 22:19:13 -!- elliott has joined. 22:19:15 elliott: Hay you!! Does a plain URL count if not formatted as a hyperlink? 22:19:19 Yes. 22:19:21 Don't make any. 22:19:43 Then please stop. 22:19:55 what is this nonsense 22:20:01 nuke?!?!?!?!?!?!?!?!?!?!?!?!?!? 22:20:37 I have achieved GENGAR COIN. 22:20:56 why is this not working? http://pastebin.com/1jy3LEyy 22:20:59 zzo38: I am telling YOU to stop. 22:21:01 EVERYONE must stop. 22:21:03 Spread the word. 22:21:19 elliott: I am telling YOU to stop too. Including you. 22:21:32 zzo38: YOU CAN'T TELL ME WHAT TO DO 22:21:39 Then don't tell me either. 22:21:53 -!- FireFly has quit (Read error: Operation timed out). 22:23:02 cheater_: [Joke] Obviously you misspelled "World". [Joke] 22:23:03 -!- FireFly has joined. 22:24:28 [Laugh at [Joke]] 22:24:49 [Joke] 22:24:58 [Laugh at [Laugh at [Laugh at [Laugh at [Laugh at [Laugh at [Laugh at [Laugh at [Laugh at [Joke]]]]]]]]]] 22:25:04 [No] 22:25:39 s 22:28:35 hi 22:28:41 -!- azaq23 has joined. 22:29:26 low 22:30:09 hi sgeo 22:30:19 how did the h2o2 work out 22:34:33 I still can barely hear in my left ear 22:34:40 But I'm not dead or anything. 22:37:06 -!- MigoMipo has quit (Read error: Connection reset by peer). 22:37:06 Good thing you are not dead because if you are dead then it is difficult to type on the computer. 22:37:49 It is difficult to type message about you are not dead or anything. 22:37:54 zzo38 is truly a sage. 22:38:03 :---------D 22:38:10 hi Gregor how u doing 22:38:25 maybe he meant to say "deaf" 22:38:26 oklofok: I'm cookin' a corned beef brisket. 22:38:28 Therefore awesome. 22:38:38 deafness has no reason to impair typing skill 22:38:46 at least not in the way death does 22:39:04 olsner: It is true maybe they can tell you what they meant. 22:39:05 Gregor: wow can i taste 22:39:14 send me some via mail k? :-) 22:39:35 Sure, that should be super 22:39:48 you have my address right? 22:39:48 * Sgeo mutters about broken toilets 22:43:15 #toilet is useless 22:43:49 is #toilet even a thing 22:44:09 I'm looking for help with toilets 22:44:37 "GSD doesn't only detect singletons; it detects four different types of global state, including singletons, hingletons, mingletons and fingletons" 22:44:55 `addquote * Sgeo mutters about broken toilets #toilet is useless is #toilet even a thing I'm looking for help with toilets 22:44:59 491) * Sgeo mutters about broken toilets #toilet is useless is #toilet even a thing I'm looking for help with toilets 22:46:03 You could probably spin an article out of this. 22:46:17 "MODERN YOUTH UNABLE TO FIX TOILET WITHOUT RESORTING TO INTERNET 22:46:56 IMO, there's far simpler that I've resorted to the Internet for 22:47:32 time to imagine what sgeo resorted to the internet for 22:47:56 search log: how do i drink a glass of water 22:48:05 search log: i'm told it involves pouring but it just spills everywhere?? 22:48:37 To be able to help with the toilet, you need to answer questions, such as, the model number, date of purchase, color, size, number of lids, number of rocks in it, how loud it is, whether or not it has a camera, whether there is monster living underneath, whether the room it is in has a bathtub or not, number of cracks in it, number of times it has been repaired previously, what is your shoe size, etc. 22:48:53 Sgeo: does your toilet have a camera 22:49:08 I don't _think_ so 22:51:31 Dear eHow: Please don't assume that my toilet works like that 22:51:50 Or, at least, my toilet looks different 22:51:57 special toilet? 22:51:58 `addquote Dear eHow: Please don't assume that my toilet works like that Or, at least, my toilet looks different 22:51:59 492) Dear eHow: Please don't assume that my toilet works like that Or, at least, my toilet looks different 22:52:07 what does your toilet look like 22:52:15 Does it look like upsidedown? 22:52:33 Less like http://www.ehow.com/video_117350_stop-toilet-running.html and more like http://pad3.whstatic.com/images/thumb/1/11/Toilet-tank-contents.JPG/180px-Toilet-tank-contents.JPG 22:53:42 Maybe I'm just too weak to pinch the metal thing that stuff is telling me to pinch. 22:55:34 what are you actually doing btw 22:56:33 trying to defecate, presumably? 22:56:38 Trying to lower the fill level, I think 22:56:46 olsner, I am capable of flushing 22:57:01 Um, hmm, that is weird as a reply, I think 22:57:07 he just wants to impress ladies with his toilet fixing skills and know-how 22:57:30 Basically: Toilet keeps running if I leave the valve on 22:57:44 wastes water 22:57:46 not good 22:57:48 -!- hiato has quit (Ping timeout: 240 seconds). 22:57:58 Warren Hancock - Though we're less haunting and really just witty and snide. 22:58:05 XKCDEMONS sure are witty 22:58:47 what is this? 22:59:18 Sgeo google+ 22:59:27 -!- copumpkin has joined. 22:59:28 -!- copumpkin has quit (Changing host). 22:59:28 -!- copumpkin has joined. 22:59:29 also, did you know there is a blog called "What xkcd means" 22:59:42 -!- hagb4rd2 has joined. 22:59:43 which is devoted entirely to explaining the meaning of each xkcd comic. 23:00:02 Is there a blog called "What 'What xkcd means' means"? 23:00:21 -!- hagb4rd has quit (Ping timeout: 255 seconds). 23:00:36 not that I know of. That kind of meta-shenanigans is probably only reserved for the asshats at xkcdsucks 23:04:51 -!- hiato has joined. 23:05:55 lol 23:06:11 why are they asshats apart from not liking something you like 23:06:14 they're mostly kind of stupid 23:06:19 not the same thing though 23:10:29 Do you know any things about GameBoy Printer? 23:11:41 I can guess that it's a printer that connects to a GameBoy. 23:12:10 Yes it is. I have emulator that can emulate the GameBoy Printer although the output is mixed up except for the "GB Printer Test Demo" program. 23:12:59 " he just wants to impress ladies with his toilet fixing skills and know-how" <<< if there's anything the hippos have taught us it's that ladies are way more impressed if you DON'T flush. 23:17:10 also you get your wallpaper for free that way 23:22:27 I think, for bootstrapping, I'm going to write off GCC newer than 4.2.x. 23:23:52 what do you mean? that it can't be compiled on lower level GCCs? 23:24:14 GCC newer than that has *dependencies*. 23:24:25 -!- oklopol has joined. 23:24:27 Beyond a vaguely functioning C compiler, that is. 23:25:25 Suppose I had a platform that had no C compiler whatsoever, and I wanted to get GCC on it 23:25:37 Modern GCC. 23:26:12 How far back in gcc's past would I have to go to get something compilable by a different C compiler, and then in that compiler's history, etc., to get something not in C? 23:26:17 -!- oklofok has quit (Ping timeout: 260 seconds). 23:26:54 Maybe first thing to do, write a very simple C compiler with machine codes, one that doesn't do much. And then compile some simple C compiler in C using not much. And then try again. And then it work properly next time. 23:27:16 -!- Phantom_Hoover has quit (Remote host closed the connection). 23:27:34 Sgeo: start with building a cross-compiler on a system where gcc already works 23:29:54 Yes that is one way it can work. 23:43:51 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 23:45:25 -!- copumpkin has joined. 23:48:06 In principle, it should be possible to make a complete self-building system out of gcc, binutils, busybox, GNU make, and Perl. (presuming you want to compile Linux) 23:48:25 Oh, and a libc, of course. 23:51:31 In practice, Debian has broken things hard fucking core. 23:52:02 It is currently impossible to build a GCC newer than 3.x against the libc. 23:52:46 Fuck it, I can't stick with Debian. I just can't. 23:54:16 use Ubuntu.. that's totally a step in the right direction. 23:54:29 No, fuck no. 23:54:39 hehehehehehe 23:54:55 Slackware, TBH, is tempting. 23:55:31 slackware, enjoy that 23:55:35 pikhq: http://upload.wikimedia.org/wikipedia/commons/8/8c/Gldt.svg 23:55:38 I could always go back to Gentoo... 23:55:41 In practice, Debian has broken things hard fucking core. 23:55:41 It is currently impossible to build a GCC newer than 3.x against the libc. 23:55:41 uh 23:55:46 what does this even mean 23:55:47 here's a forrest. Move upstream or downstream, or jump trees! 23:56:02 endless hours of downloading and installing and setup. What could be more fun? 23:56:03 elliott: Debian no longer puts crt*.o in /usr/lib/. 23:56:09 pikhq: so what 23:56:28 elliott: Which means you literally cannot get a functioning compiler without patching it the same way Debian did. 23:56:34 * Sgeo still wants to set up LFS at some point 23:56:42 Not sure what broke my last attempt exactly 23:56:43 oh noes!! they changed the build of a shitty piece of gnu software!!! 23:56:45 IM LEAVING FOREVER 23:57:02 elliott: Actually, that's hardcoded in just about every C compiler. 23:57:30 pikhq: ah, right -- and you are always in favour of keeping backwards compatibility rather than pure goodness, right? 23:57:34 That's why you hate @, isn't it? 23:57:45 elliott: Actually, I'm in favor of being able to have _start from the libc. 23:58:17 pikhq: switch to redhat! 23:58:22 CakeProphet: Fuck no. 23:58:41 well, then you have run out of options. Those are the only distros. 23:58:49 FreeBSD? 23:59:13 Less broken, at least. 2011-07-10: 00:02:08 Igelle is the newest distro on this timeline 00:02:10 get that one. 00:02:42 ... 00:02:46 Is LLVM capable of compiling itself? 00:03:29 ISTR they did self-compile clang with clang a while ago 00:04:24 well, the newest one that's also a root. There's Mageia and Fusion (on the Red Hat tree), Arch Hurd (on the Arch tree), Superb Mini Server and Imagineos (on the Slackware tree), Tiny SliTaz (on the SliTaz tree). 00:04:33 ah wait, 4m is the newest root distro. :) 00:04:45 ...? 00:05:03 Because, if GCC is broken for some reason, you can use LLVM. And also other way around if LLVM becomes broken for some reason. 00:05:22 Gregor: http://upload.wikimedia.org/wikipedia/commons/8/8c/Gldt.svg 00:08:15 "Damn Vulnerable Linux" on the Knoppix looks like a winner. 00:08:21 *Knoppix subtree 00:11:18 Yowsa 00:11:31 I remember SLS :) 00:12:37 Gentoo looks interesting, actually. 00:13:05 I still have some fondness for it. 00:13:20 any huge problems with Gentoo? 00:13:26 Pffff 00:13:34 I got somewhat annoyed by package breaks. 00:13:36 Yet again, people who have forgotten the simple lesson: 00:13:38 Debian is right. 00:13:40 It is always right. 00:13:46 Debian is legion. 00:13:47 Nowait. 00:13:51 Then I switched to Debian, which broke stuff fundamentally. 00:14:04 Gregor: Hey, build GCC. Good luck. 00:14:22 pikhq: Debian's choice to move those crt files was definitely a good one. 00:14:25 yeah, because "build GCC" is the first thing I do after installing a distro... 00:14:28 I don't know WHY they did it, but I know it was good. 00:15:03 CakeProphet: I do odd things. I expect the distro not to break shit behind my back when I'm doing them. 00:15:27 Gregor: They claim "multiarch". 00:15:45 Why sticking crt files elsewhere helps that is beyond me. 00:16:13 (seeing as the *only* compilers that are going to look in /usr/lib for those are native ones) 00:16:25 Because if you're compiling targeting 32-bit on a 64-bit system, but your 64-bit libraries are in /usr/lib, then /usr/lib/crt* is wrong 00:16:49 Multiarch != cross-compilation ... per se :P 00:16:54 Gregor: gcc -m32 is fundamentally broken. Any further questions? 00:17:07 pikhq: use slackware. :D 00:17:31 pikhq: That's a separate observation :) 00:17:39 Gregor: But closely related. 00:17:58 CakeProphet: btw, Damn Vulnerable Linux (just looked it up) is intended to be a training tool for computer security. 00:18:08 Gregor: If your 64-bit libraries are in /usr/lib, a 32-bit compiler looking in there for *anything* is wrong. 00:19:00 pikhq: see: slackware 00:19:30 CakeProphet: Which doesn't even give you the option of running 32-bit programs on a 64-bit install. 00:19:40 problem solved. :) 00:19:48 http://sttngfashion.tumblr.com/ <-- in case anybody hasn't heard of it 00:20:17 In conclusion, fuck everyone and everything. 00:20:36 -!- Wamanuz has quit (Ping timeout: 240 seconds). 00:20:44 -!- Wamanuz has joined. 00:25:04 pikhq: so basically I think you want Windows or OSX. 00:25:50 With Gentoo Prefix :P 00:30:50 i want to punch zuu hes an idiot 00:30:52 * elliott is reading logs 00:31:08 20:11:11: well, when i say turing complete i really mean LBA (ofcource) 00:31:09 [...] 00:31:09 20:12:54: you dont seem to understand what turing complete means then 00:31:39 pikhq: openVMS 00:31:48 LBA? 00:31:55 -!- augur has quit (Remote host closed the connection). 00:32:27 Sgeo: google it 00:32:49 Logical Block Addressing? 00:32:50 "Google?" "google it" 00:33:12 -!- elliott has quit (Read error: Connection reset by peer). 00:33:15 Oh, Linear bound automaton 00:33:18 -!- elliott has joined. 00:33:18 this modern society doesn't have TIME for your questions. 00:33:58 So, basically like TC except with bounded memory? 00:34:15 elliott: so what did you do in the few seconds afforded to you by not answering that question? 00:34:22 >:) 00:35:10 does anyone know if ubuntu comes with xz by default or not 00:35:12 CakeProphet: what question 00:35:39 "LBA?" 00:35:53 i didnt go insane by answering another trivial question thats what 00:36:12 What makes a question trivial? Is this a trivial question? 00:36:34 Is answering questions maddening? I thought questions were a central component of any conversation? 00:37:06 was that last question really a question at all? 00:37:40 In next version of Enhanced CWEB, I plan to correct some problems with the fonts and remove the PDF stuff. And remove a few of the metamacro commands that never worked, but probably add some enhancements to the way C interpreter works. 00:39:05 I wonder why there are no commonly used record-based filesystems. 00:39:07 Or maybe next time I might make up LWEB for making literate programming in LLVM, including macros and stuff. So that, in addition, LLVM can have a preprocessor. 00:39:44 CakeProphet: Do you have some examples of record-based filesystems and in what cases they are used if not for generally common though? 00:40:02 the one I'm looking at right now is Files-11 from OpenVMS 00:40:43 I have no clue what they would be used for. But it seems like affording data types in your filesystem would improve the structure? 00:41:48 -!- oklofok has joined. 00:44:49 -!- oklopol has quit (Ping timeout: 258 seconds). 00:45:01 zzo38: also it would facillitate interprocess communication by eliminating the need to parse/deparse data into a character stream. 00:45:56 though I could also see it needlessly complicated the system. 00:46:00 *complicating 00:46:18 CakeProphet: Yes it would make the complicated system. 00:46:31 20:17:08: any explanation fo C not being turing complete is a flawed explanation 00:46:39 im going to track him down and cause him to cease existing 00:46:47 20:16:52: Zuu: Yes, attaching an infinite tape to C can model a universal Turing machine. However, this is true for many, *many* a finite state machine. 00:46:48 20:17:37: pikhq: that wouldnt be a finite state machine then 00:46:50 WOW 00:46:51 20:16:52: Zuu: Yes, attaching an infinite tape to C can model a universal Turing machine. However, this is true for many, *many* a finite state machine. 00:46:52 20:17:37: pikhq: that wouldnt be a finite state machine then 00:46:53 WOW 00:47:00 can we all just stare at that for a while 00:48:38 Would C be turing complete if pointers are not interchangeable with numbers? 00:49:41 I assume that means pointer arithmetic is impossible right? 00:50:18 you could use a linked list struct for (virtually) unbounded memory. 00:50:33 No it would not necessarily mean that. Pointer subtraction would be impossible but not adding a number to a pointer. 00:51:24 But it would mean a union cannot mix pointers with non-pointers, I think. 00:51:50 why would that be? 00:52:02 "20:11:11: well, when i say turing complete i really mean LBA (ofcource)" <<< 00:52:40 Or maybe it would still be OK as long as pointers are considered to be stored in a different address space therefore if a union mixed pointers with non-pointers you would access them separately still. 00:53:12 That would allow sizeof to work as well where 1 cell in pointer memory can store unbounded pointer addresses 00:53:27 you computer scientists just make me sick 00:53:37 It would have the consequence that sizeof(int***)==1 00:53:44 (oh and that was not about Zuu, that was intentionally blank) 00:53:55 Although of course all this stuff is impossible on real computer because real computer is not turing completed!! 00:54:03 this is just my usual math pretentiousness 00:54:24 thought i'd explain that to u because you wouldn't have gotten it anyways. 00:54:28 seriously why can't C have tagged unions. 00:54:56 zzo38: do you think we'll ever turing complete it tho? 00:55:19 you are right in that it clearly hasn't been turing completed yet 00:55:24 I suppose you could use a struct to emulate a tagged union. 00:55:26 but this is lame. 00:55:39 tagged union is mean what again? 00:55:48 not remember :\ 00:55:52 like Haskell union types. 00:55:55 CakeProphet: Maybe you can use macros? 00:56:14 is it c++ then that has those 00:56:28 a cobination of a struct containing a tag and an untagged union, and a set of macros to make it not a pain in the ass would work. 00:56:35 uh, I honestly don't know all that much about C++. 00:56:53 because i think union is a keyword in c++ and it means... well union 00:57:19 two types in one, the horriblest creation ever 00:57:30 in C, union creates an untagged union, meaning there is no way to test which type the value is. 00:57:36 ohhh 00:57:45 that's what tagging is 00:57:48 yeah you have to do that manually 00:57:55 oklofok: Not a bad creation, at least in C is not bad. It is very useful to make union. 00:58:10 zzo38: actually it's is a terrifyingly terrible and terrious creation. 00:58:26 no offense mister fanboy 00:58:27 * Sgeo wonders how Rust is coming along 00:58:28 of c 00:58:31 the language of a suck 00:58:34 -!- augur has joined. 00:58:40 augur: it sucks ass right 00:58:43 data [a] = (:) a [a] | [] 00:58:46 tagged union 00:59:11 (more or less) 00:59:18 oklofok: I don't know what "terrious" means but it is OK you and me can have different opinion about it. 00:59:42 zzo38: i think you should be able to infer it from the context 00:59:45 But from what I can tell, LLVM doesn't have unions. 01:01:36 elliott: hey linear bounded automata are totally turing complete i hear the emptiness problem for their languages is re complete i thought that's the math def lolol :SDSDSD 01:01:57 if (x.tag == SHITTY_ENUM_THING) { x.value.type1; printf("baaaah this is stupid."); } 01:02:14 But if you can compile a C code to LLVM code, then it must be able to make unions somehow, with it. 01:02:25 I vaguely remmeber complaining about the bind syntax 01:02:30 oklofok: (or nonemptiness whatever, emptiness is obviously not even RE) 01:02:42 Sgeo: you mean Haskell bind or? 01:02:45 yeah union is 01:02:46 stupid 01:02:48 Possibly just with type casting. 01:02:51 untagged that is 01:02:52 CakeProphet, Rust's bind 01:02:57 oh, nevermind. 01:02:57 its just typecasting in a bad disguise 01:03:30 elliott: let's make our own C, with tagged unions and functional programming and parametric types. What should we call it? 01:03:39 Not C. 01:03:47 haskell 01:04:23 yes, I'm glad I could set that up. 01:04:55 but, seriously, a C-like language with some of the stupid things changed would be good. 01:05:07 see BitC 01:05:12 http://www.bitc-lang.org/ 01:05:50 oh look, it already exists. 01:06:32 nonemptiness is painfully obviously RE, as for completeness, emptiness is not RE because you can use an LBA to check inclusion in the language of any TM's valid runs in LBA style as they do in the ghetto so nonemptiness is in RE - R; we then apply the following formal theorem: everything in RE - R is RE complete unless it's some silly artificial stupidance 01:06:40 CakeProphet: it's a long-term research project, mind you 01:06:46 * oklofok maths it up 01:06:46 it's being designed for http://www.coyotos.org/ 01:09:49 but more precisely, given any RE language L, and any word w, take a TM accepting it L and make an LBA for the language of its accepting runs from w, that LBA will have nonempty language iff L contains w, and thus we have reduced L to the language of LBA that have nonempty languages 01:10:12 perhaps i should've been more precise given that we have to keep track of multiple levels of languageness 01:11:03 i love tv shows 01:11:13 how come they are so good 01:12:09 *take a TM accepting it and 01:12:26 or perhaps *take a TM accepting L and 01:14:41 20:18:08: pikhq: then it coudlnt be turing complete 01:14:41 20:18:22: Zuu: AND C HAS FINITE FUCKING STATE. 01:14:41 20:18:24: either way you tuirn it you will make it false 01:14:43 but in fact it turns out that the emptiness of a single LBA is NOT RE complete! homework: let A be an LBA. give an algorithm that decides whether A has empty language. 01:14:47 20:18:30: Most finite state machines, *when given infinite state to work with*, are magically Turing-complete. 01:14:48 20:18:33: pikhq: no the hardware has 01:14:48 20:18:42: C is a language 01:14:50 kdflhjfghlkghgkjhfdghjfdg 01:14:52 i hate people 01:14:55 especially stupid people 01:15:01 20:19:45: so really, any language you can make up cam be said to have finite state in some spec. 01:15:02 kill 01:15:11 20:20:00: Zuu, the problem is not that the hardware is finite (of course it is). The issue is that the spec enforces any implementation to have finite state 01:15:12 20:20:15: AnMaster: and that is very much beside the point 01:15:12 20:20:15: it is not a valid C implementation if you have infinite state 01:15:12 20:20:18: basically 01:15:12 20:20:25: Zuu, no it is _exactly_ the point here 01:15:13 20:20:26: Zuu: No, that IS THE POINT. 01:15:15 20:20:36: well, then you have argued for nothing 01:15:44 oklofok: i need a hug :( 01:15:54 elliott: solve the problem and you'll get one 01:16:08 solved 01:16:09 gimme hug 01:16:34 20:25:05: ok, give me some hardware with infinite state, and i will write a C program that will act like any universal TC but yet only access a finite set of stats 01:16:34 20:25:18: Zuu, how. 01:16:34 20:25:22: a C program that conforms 100% to the spec i might add 01:16:34 20:25:35: Zuu: How? 01:16:34 20:26:16: By assuming that this finite state is large enough to compute whatever needs to becomputed, otherwise go into an infinite loop 01:16:35 show me solution, sry left that kinda hanging in implicity 01:17:24 you know there's a reason i switched to math 01:17:31 things are just so easy 01:17:48 20:29:50: Just to be explicit, this argument ended at the sime you gius mentioned the finite state stuff form the spec 01:17:51 O, BitC has theorems. 01:17:52 20:30:01: *guys 01:17:53 20:30:08: it just became to rediculous by then 01:18:01 im seriously going to yell at this guy if he ever came in again DID YOU KNOW YOU WERE AN IDIOT A YEAR AGO AND I HATE YOU 01:18:33 20:33:37: there are several other ways to achieve UTC though 01:19:27 elliott, you know there's a Freenode service by the name alis? 01:19:43 Zuu is a horrible person, i think we all agree already, no need to continue. 01:20:14 Sgeo: and? 01:20:17 oklofok: but im still reading 01:20:42 elliott: i'm so tired i'll actually happily read some more of that shit 01:21:16 not enough willpower to resist the urge of enjoying being extremely annoyed 01:21:58 oklofok: he's saying that using POSIX functions to prove C TC is ok because 01:21:59 20:36:51: remember the posic calls are mostly implemented in C aswell 01:22:59 is it okay if i still tell you to shut up about that old bullshit we've heard a million times even though i secretly hope you continue 01:23:36 yes 01:23:47 20:36:59: By the ISO standard for C, C is a finite-state automaton. 01:23:48 20:37:01: *posix 01:23:48 20:37:07: Zuu: POSIX defines extensions *to* C. 01:23:48 20:37:14: doesnt amtter 01:23:50 literally just punched the air 01:23:54 the air represents zuu 01:23:59 20:37:55: ok, i have far more insterresting stuff to do than tell about ways to use C in a UTC way 01:24:11 like being a terrible person and fucking killing kittens 01:24:17 * [Zuu] (~vdsvsd@77.215.149.86): uzzuu 01:24:18 oh 01:24:20 should i tel lhim 01:24:57 is he here 01:25:01 he's here 01:25:02 wow 01:25:05 after all that 01:25:09 he's still here 01:25:12 8| 01:25:14 WHAT THE FUCK 01:25:23 you should probably alert the freenode staff 01:25:33 maybe just paste those quotes on #freenode 01:25:40 i mean the balls on that dude 01:26:02 just like hello here i am again u remember me i'm the c is an utc dude let's have a party :D 01:26:30 and no one understands his sentences because they are written my me so he gets away with it 01:26:36 *by 01:26:41 i'm making no sense 01:27:50 how unusual 01:27:56 wow it's time :\ 01:28:01 4:30 01:28:06 * Sgeo watches idiots play in #wolfgame 01:28:18 Even I'm not that bad I think 01:28:30 Unless maybe it's... um, typical for that channel 01:28:40 it is impossible to use C in a UTC way, have a nice day! :) 01:28:43 this can only go well 01:28:52 man 01:28:54 but i mean 01:28:55 what the fuck are you doing 01:28:57 if you use another timezone 01:28:59 C works perfectly 01:29:04 oklofok: playing w/ devil 01:30:01 i use w/ all the time when i'm doing math on the blackboard 01:30:38 wow i'm obsessed with math today 01:30:42 how unusual 01:30:45 this is a weird night 01:38:01 lol 01:38:18 -!- cheater_ has quit (Ping timeout: 255 seconds). 01:42:35 -!- CakeProphet has quit (Ping timeout: 240 seconds). 01:51:06 -!- cheater_ has joined. 01:52:33 oklofok: wat 01:52:51 augur: c 01:52:57 oklofok: what 01:53:01 the language 01:53:26 although it's kind of late now, not sure i need your input anymore 01:53:43 except out of pure why notness 01:54:16 oklofok: what was the question now 01:54:26 that it sucks right 01:54:40 ass 01:55:02 oklofok: when did i say that 01:55:11 err never 01:55:17 i was just asking you if you agreed 01:55:30 why exactly did you say "wat"? 01:55:36 oklofok: oh. i only got your question 01:55:39 not the line before it 01:55:57 but i then told you what it was about 01:56:23 and still u were so conf u sed 01:56:31 i really nede to slk 01:56:38 eep 01:56:49 skleep 01:56:50 do it 01:56:51 slkeep 01:57:03 quintopia: don't rush me 01:57:10 maybe i will maybe i won't 01:57:21 but you're right i should 01:57:33 write some c code until you fall asleep 01:57:58 that would take so little time i would've probably been asleep all day already. 01:58:16 yes 01:58:18 go for it 01:58:21 (since c is boring as well i guess?) 01:59:26 -!- quintopia has set topic: elliott using his rationale of observable sharing | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 01:59:38 does this make more or less sense? 01:59:38 I decided to buy the PediaPress book on compilers. 01:59:49 700 pages of Wikipedia for $40 :P 01:59:49 oh 02:02:49 Gregor: Buy ALL THE PAGES 02:03:04 elliott: Yesssssssssssssss 02:03:06 that would be many pages 02:03:32 remember that huge book of all the featured articles 02:03:34 that was like feet high 02:07:05 Not only do I not remember that, I'm fairly certain I never heard about it. 02:07:31 i own that book 02:07:39 i bought it because my kitchen stool broke 02:07:50 Gregor: it was just a picture of it 02:07:52 not something actually sold 02:08:05 lul, found it. 02:08:06 Wow. 02:08:17 i think i linked it here once 02:08:25 it was captioned gcc reference manual 02:14:09 "We used the Var x variant in Kansas Lava. We use it to encode two types of variables, Var and Reg, which have different timing semantics. Thus, turning a required annotation into a useful and required syntax." 02:14:12 stop mentioning lava u jerk 02:15:54 http://tinyconcepts.com/invaders.html invaders in lambda calculus 02:16:01 (partial) 02:20:36 -!- Sgeo has changed nick to Sgeo|RainboyIsWo. 02:20:39 -!- Sgeo|RainboyIsWo has changed nick to Sgeo. 02:22:21 Feel free to speculate! 02:22:33 what 02:25:57 -!- augur has quit (Remote host closed the connection). 02:26:46 -!- augur has joined. 02:36:23 I read stuff about rulebooks in Inform 7, including about procedural rulebooks, rulebooks based on kinds, rulebooks producing values, and so on. I would like to figure out how it works I would like to see having some other programming language based on these things possibly being optimized and then compiled to LLVM which can be further optimized. 02:36:48 However there is some problems, one is that the "ni" program is not yet published, also procedural rulebooks are deprecated. 02:37:17 * Sgeo plays Mafia in #wolfgame 02:42:25 i had a dream that i acted in a movie i think 02:42:31 -> 02:43:15 good movie 02:50:33 -!- augur has quit (Remote host closed the connection). 02:55:32 Also this new one can have property hook rules, when reading or writing a property you run the property hook rules in order of priority and the return value of one can be passed as the input of another, and so on. And also various other things. And things combining the Inform 7 style rulebooks with things similar to Magic: the Gathering rules. And more. 02:57:23 20:46:52: Hm, what prevents storing such a large number in a bugnum that it slows down the computer? 03:02:26 -!- augur has joined. 03:02:46 -!- BeholdMyGlory has quit (Remote host closed the connection). 03:03:41 -!- augur has quit (Remote host closed the connection). 03:13:56 -!- augur has joined. 03:17:24 -!- augur has quit (Remote host closed the connection). 03:23:52 storing your numbers in bugnums is usually not a very good idea. 03:27:26 -!- zzo38 has quit (Quit: Bottled water is even GST [Greenwich Sandwich Time] free.). 03:28:58 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 03:33:42 if i sign a form with "i do not agree to this contract" do i still agree to it 03:33:44 coppro: help 03:34:01 -!- azaq231 has joined. 03:36:20 -!- azaq23 has quit (Ping timeout: 240 seconds). 03:40:12 -!- augur has joined. 03:40:18 -!- augur has quit (Remote host closed the connection). 03:59:38 how sleep? :\ 04:00:17 everytime i close my eyes i'm like "so where was i... ah, the markers, let's see how to implement those" 04:01:06 oklofok: never sleep 04:01:10 what markers btw 04:01:25 to prove my conjecture 04:01:45 my second proof was also kind of incomplete (actually the first one wasn't really wrong either, just even more incomplete) 04:02:32 i finally figured out how to do this one helper CA that kinda sparsely marks stuff, but i then realized i need to rewrite all markers already in the point 04:02:44 or those will get confused with stuff 04:02:58 of course due to entropy stuff that should be doable but it's one more pain in the ass 04:03:46 really this will probably blow up into a hugey when i write it up, unless it completely breaks down before i finish it 04:07:18 the thing is i know how to handle periodic points and i know how to handle parts of points that don't have small periods for very long anywhere, except there will be some errors occasionally because stuff happens, and i need to fix those errors and then somehow glue these two parts together 04:08:10 oklofok: im a carp 04:10:04 Sir.. 04:10:04 Good Day! 04:10:04 I was amazed in the "Telehacks" and I've try it.. It was really cool. And I will bookmarked it. I have a question do you know how to hack? I wanted to try to hack my own laptop but i don't know where to start.. Uhm.. is there any way to hack it? I'm just a beginner/noob . 04:10:04 Thank you sir.. 04:10:05 p.s. sorry for my english, grammars and others. 04:12:02 the first step in hacking your laptop is trying to come up with your password 04:12:17 since you came up with it, you should be able to come up with it 04:12:25 if not, ask yourself what it is 04:12:33 and after telling yourself, type that in 04:12:40 I looked a few seconds at the logs and wow Zuu wow 04:13:17 i went to a Zuu once but there were too many monkeys inside so i left quickly 04:16:43 monqy: im seriously his enemy forever 04:16:51 i want to find out where he lives and fly over there and open the door and say 04:16:54 hi do you go by "Zuu" on irc 04:16:58 and hell say yes why who are you a- 04:16:59 is he still existing 04:16:59 and that - 04:17:02 will be me punching him 04:17:03 monqy: hes online 04:17:10 he didnt reply though :( 04:19:41 i am glad i am not in any channels he is in unless he is in good channels in which case i feel sorry for the channels :'( 04:20:14 http://kitenet.net/~joey/blog/entry/announcing_olduse.net/ 04:20:14 ^ 04:20:15 yes 04:21:28 http://blog.longnow.org/2011/06/17/major-update-on-the-10000-year-clock-project/ so cool 04:21:47 excavations 04:21:49 you're cool. 04:21:54 monqy: yep 04:23:36 When you build this thing, please display a prominent notice, in a multitude of languages, that we do *NOT* expect the world to end when the clock overflows. 04:23:37 :---D 04:23:39 elliott, is that olduse thing a Zuu thing, or something actually possibly decent? 04:24:22 what 04:26:56 what the fuck is the point of time anyway 04:27:09 by which i mean is the clock just gonna be like buried or will it be seeable 04:27:50 seeable 04:27:55 also i don't recall ever see 04:27:56 yeah 04:28:03 http://en.wikipedia.org/wiki/Clock_of_the_Long_Now btw 04:28:07 good reading 04:28:24 i will re 04:28:40 I want to build a clock that ticks once a year. The century hand advances once every one hundred years, and the cuckoo comes out on the millennium. I want the cuckoo to come out every millennium for the next 10,000 years. If I hurry I should finish the clock in time to see the cuckoo come out for the first time. 04:28:40 — Danny Hillis, The Millennium Clock, Wired Scenarios, 1995 04:28:49 "Longevity: The clock should be accurate even after 10,000 years, and must not contain valuable parts (such as jewels, expensive metals, or special alloys) that might be looted." 04:28:52 this stuff is intersting 04:28:54 like that radiation field 04:29:00 all the talking of how to convince people not to enter 04:30:33 clockwork more like playground 04:32:29 oh it required maintenance 04:33:24 i thought at most there'd be a population of humans that live inside the clock and keep it going without ever interfering with other humans, teaching their children to do the same 04:33:45 the guardians of time we'd call them 04:33:48 lol 04:33:51 support 04:34:00 and they would have the hugest beards. 04:34:59 ticks once a year huh 04:35:05 how wonderfully boring 04:35:10 lol 04:35:15 it ticks more than that 04:35:18 it just chimes once a year 04:35:19 :( 04:35:29 wait no 04:35:32 it ticks once a year 04:35:33 that's just gay 04:35:34 okay 04:35:35 and chimes every thousand 04:35:35 cool 04:35:43 no cuckoo every mil says wp 04:35:54 So, my mission to make a minimal Linux system that can successfully build itself has resulted in something *somewhat* larger than I would've liked. 04:36:10 oh 04:36:26 Though at least I was able to beat Perl into being reasonable. 04:36:36 perl? reasonable? 04:36:40 does your program now contain every possible bit? 04:37:08 i once wrote a program whose source code contained every bit in existance 04:37:17 me too 04:37:24 :o 04:37:37 monqy: By "reasonable" I mean "I only have miniperl. As /bin/perl." 04:37:43 monqy: mine even had multiple copies of 0 04:38:01 pikhq: and it works? I've never heard of it. will look it up 04:38:04 oklofok: daaaaaaaaaaaang 04:38:15 monqy: Miniperl is part of the Perl build process. 04:38:21 You see, Perl needs Perl to build Perl. 04:38:35 But Miniperl just needs a reasonable C environment. 04:38:42 So it builds Miniperl to build Perl. 04:38:57 I only have it there because Linux requires Perl. 04:39:23 Also, though I'm reasonably confident it'll work, I haven't *tested* it yet. 04:39:31 I literally just got it to boot. 04:41:08 ... And forgot to set a root password. Which makes things somewhat difficult when I'm actually using busybox getty. 04:41:29 nah 04:41:54 By which I mean "I forgot to make /etc/passwd". 04:42:00 the website says it generates a different chime sequence everyday oklofok 04:42:58 *Aaaaah*, that's better. 04:44:28 "free -m" reports 8 megs used. That feels positively amazing. 04:46:19 -!- augur has joined. 05:03:34 Welp, let's see what breaks. 05:18:32 Apparently "the toolchain" 05:19:31 "sh: ./a.out: not found" 05:40:38 -!- copumpkin has joined. 05:40:39 -!- copumpkin has quit (Changing host). 05:40:39 -!- copumpkin has joined. 05:45:40 The Long Now Foundation has purchased the top of Mount Washington near Ely, Nevada which is surrounded by Great Basin National Park, for the permanent storage of the full sized clock, once it is constructed. It will be housed in a series of rooms (the slowest mechanisms visible first) in the white limestone cliffs, approximately 10,000 feet up the Snake Range. The site's dryness, remoteness, and lack of economic value should protect the clock fro 05:45:40 m corrosion, vandalism, and development. Hillis chose this area of Nevada in part because it is home to a number of dwarf bristlecone pines, which the Foundation notes are nearly 5,000 years old. The clock will be almost entirely underground, and only accessed by foot traffic from the East once complete. 05:45:42 so cool 06:10:14 Gotta love Long Now. 06:12:03 yeah 06:12:11 although the whole point of the project kind of baffles me 06:14:15 brian eno is involved, suspend all thinking for the sake of cool please 06:14:45 it strikes me as kind of reactionary, but i suppose their goal is better than a societal meltdown 06:15:37 at the same time i find a lot of what they say makes sense and seems kind of obvious, but then lots of things seem obvious to me 06:16:05 What seems obvious to you is almost impossible to others. 06:16:34 misanthropy: an unproductive position? 06:16:43 experts disagree 06:20:27 elliott: wha 06:20:31 coppro: wha? 06:20:36 t are you responding to 06:21:31 It's so very comical running GCC in a minimal changeroot. 06:21:52 8m for the whole OS. 200m for the compiler. 06:21:53 coppro: question mark 06:22:19 elliott: your comment about misanthropy 06:22:21 is 3.0 still not out yet 06:22:26 coppro: in response to What seems obvious to you is almost impossible to others. 06:22:31 elliott: 3.0 of what? 06:22:37 pikhq: linux 06:22:59 No, though rc6 got pushed late last night. 06:23:47 Erm, no, it was tagged July 4th. My thinko. 06:23:57 UNAMERICAN 06:23:58 Length: 76737255 (73M) [application/x-bzip2] 06:23:58 ugh why is it so big 06:24:12 Linux has a fuckton of shit in it. 06:25:04 2.6.0 was 32M... 06:25:06 -!- CakeProphet has joined. 06:25:19 -!- CakeProphet has quit (Changing host). 06:25:19 -!- CakeProphet has joined. 06:26:27 it's all drivers 06:28:46 pikhq: im going to make smaller system 06:28:50 feel my power 06:29:04 elliott: Good luck. 06:29:39 swap? who needs it 06:29:58 -!- CakeProphet has quit (Ping timeout: 276 seconds). 06:30:03 elliott: that's not zepto enough 06:30:24 what isnt 06:30:24 swap 06:30:26 or not having swap 06:31:24 block layer?? no way 06:36:19 pikhq: does it count if you have to use the serial port 06:36:27 -!- derrik has joined. 06:37:07 -!- cheater_ has quit (Ping timeout: 255 seconds). 06:38:36 pikhq: 06:38:47 elliott: Meh. 06:39:10 pikhq: that's a yes or no question 06:39:21 elliott: Sure, whatever. 06:39:30 you're just upset because i'll win :( 06:39:36 System is 452 kB 06:39:36 with monitor support 06:39:46 elliott: I'm trying to make a bootstrapping system. 06:39:50 pikhq: so am I 06:39:56 elliott: Good fucking luck. 06:40:00 Perl comes to ~50M. 06:40:11 pikhq: i said it would be smaller than yours, not small 06:40:26 pikhq: why aren't you using microperl 06:40:34 Because Linux won't build with microperl. 06:40:38 fix linux 06:41:40 -!- CakeProphet has joined. 06:41:41 -!- CakeProphet has quit (Changing host). 06:41:41 -!- CakeProphet has joined. 06:42:03 -!- aloril has quit (Ping timeout: 260 seconds). 06:43:04 wonder what it means if I get nothing after "Booting the kernel." :) 06:46:38 it means that everything is working fine. 06:48:22 -!- cheater_ has joined. 06:54:37 -!- aloril has joined. 07:01:29 -!- CakeProphet has quit (Ping timeout: 252 seconds). 07:31:51 http://www.futilitycloset.com/2011/07/10/a-logic-oddity/ yay I spotted the flaw in a decent amount of time 07:32:48 (I think) 07:33:31 Hmm, it's more interesting if you make it probabilities instead of certainties. Certainly the problem as phrased deals with probabilities 07:33:56 I think it pretty obvious. We're not dealing with deductive logic here. 07:34:52 So you can't really do modus ponens on this. 07:34:57 * Sgeo was thinking more that "If its not Reagan who wins, it will be Anderson." is in fact true >.> 07:35:08 Sgeo: Yes, that's 100% certain. 07:35:21 However, it's not 100% certain that a Republican will win. 07:35:26 It's merely probable. 07:35:41 Erm, wait. 07:35:42 No. 07:35:45 Sorry, misread you. 07:35:48 That's not true. 07:36:15 Because it's not 100% certain that a Republican will win, you can't conclude that either Reagan or Anderson will win. 07:36:28 If a republican wins, oh shit. 07:37:29 What happens if you assign the first two statements numerical probabilities 07:38:11 I think my initial "flaw" thought was wrong 07:38:14 Then you're dealing with a form of inductive logic, and can get the probability that if Reagan doesn't win, Anderson will. 07:38:25 i.e. That works just fine. 07:39:09 (I'm not too familiar with the relevant formalisms, though, so can't say more than that, really.) 07:45:42 the logic there makes me squirm 07:49:08 -!- Phantom_Hoover has joined. 07:49:25 coppro: The problem is only that the premises aren't necessarily true. 07:49:36 It's entirely valid modus ponens. 07:50:02 Which part is valid modus onens? 07:50:51 It's of form "a->b;a;therefore b." 07:51:09 See? Valid. 07:51:34 pikhq: which part specifically, though? 07:51:42 ... That's the entire statement. 07:52:09 which part of the article 07:52:19 ... The syllogism? 07:52:24 ah 07:52:31 yes, you're correct 07:52:31 I'm restating the only thing in there that can be restated in that form? 07:53:10 The oddity comes about simply because a is not (entirely) true, and so we end up getting a not (entirely) true statement from perfectly valid reasoning. 08:00:45 -!- derrik has quit (Quit: no rush). 08:13:48 -!- oerjan has joined. 08:28:54 -!- monqy has quit (Quit: hello). 08:31:22 "Hash functions are typically one-way functions (these haven't been proven to exist yet, but at this time they're essentially non-reversible)." 08:35:52 wat 08:36:25 f(x)=1 is provably non-reversible :P 08:36:44 there are other conditions for a hash function duh 08:37:13 *one-way function 08:37:51 He just means that you can't find preimages without brute-forcing 08:38:09 hm right so f(x)=1 isn't even that. 08:38:29 yes, i dont know what he was quoting 08:38:54 but my point was that non-reversibility is not the most important property of hashes 08:39:58 it's also pretty nice when they are bijections 08:40:14 err, automorphisms? 08:40:20 is that the word? 08:41:23 And hash functions are demonstrably non-reversible as well. As are all functions that map from a space to a smaller space. 08:42:00 God, people, math isn't hard. :P 08:42:20 automorphism = isomorphism which is also an endomorphism 08:42:30 pikhq: i am considering the set of hashes over possible hash outputs 08:42:41 every hash should hash to a distinct hash 08:43:19 and non-reversibility without bruteforcing is meaningful in this contect 08:43:23 *text 08:45:57 haha guys 08:45:59 you realise that 08:46:00 when i quote osmething 08:46:02 its because its stupid 08:46:03 stop talking 08:46:15 He just means that you can't find preimages without brute-forcing 08:46:32 Deewiant: E directly stated that one-way functions haven't been "proven to exist yet" 08:46:45 That might be what e /means/, but what e says is just confusing 08:47:02 when i quote osmething 08:47:10 An osmething is a thing made of osmium. 08:47:17 youre an osmefuckwit :( 08:47:18 I thought his meaning fairly clear from the rest of the message 08:47:42 Deewiant: Sure, you can obviously "decode" it, but that's not the point, you can decode most things, even nonsense 08:54:01 elliott: afaik, one-way functions _haven't_ been proven to exist. i believe they may require P != NP. 08:54:31 it's hardly well-defined 08:54:44 it's a value judgement 08:54:57 oerjan: Define "one-way". 08:55:07 Function for which there is not an inverse? 08:55:10 \x.1 08:55:13 -_- 08:55:24 pikhq: no. http://en.wikipedia.org/wiki/One-way_function 08:55:40 -!- Phantom_Hoover has quit (Quit: Leaving). 08:55:49 Oh, sure, give a definition that makes the answer non-trivial. :P 08:55:52 it is _not_ the same as one-to-one/injective 09:08:24 although it's sort of related i think if you look at it from the point of constructive logic where objects to be proven to exist need to be constructible and if you then add the qualifier "in polynomial time" 09:09:36 *randomized polynomial time, if we go with the wiki article 09:09:43 -!- elliott has quit (Ping timeout: 240 seconds). 09:21:18 -!- Slereah has quit (Ping timeout: 240 seconds). 09:30:14 -!- Slereah has joined. 09:39:51 -!- Slereah_ has joined. 09:41:22 -!- Slereah has quit (Ping timeout: 252 seconds). 10:06:26 -!- sebbu2 has joined. 10:06:26 -!- sebbu2 has quit (Changing host). 10:06:26 -!- sebbu2 has joined. 10:09:40 -!- sebbu has quit (Ping timeout: 276 seconds). 10:26:08 -!- MigoMipo has joined. 11:58:58 -!- oerjan has quit (Quit: leaving). 12:00:54 -!- hagb4rd2 has quit (Quit: hagb4rd2). 12:11:29 -!- CakeProphet has joined. 12:11:29 -!- CakeProphet has quit (Changing host). 12:11:29 -!- CakeProphet has joined. 12:17:33 so is there any reason why this wouldn't work? f (c x y) ls = map ($ y) . map ((c$).($x)) $ ls 12:17:43 where c is an arbitrary constructor. 12:18:10 (I mean, other than it being unsupported in Haskell. I'm talking about a possible extension) 12:21:00 ah, I see a problem. 12:22:21 There are undecidable types. The type of the first argument is a, but what is the type of the second? a list of functions from (...?) to (...?) 12:22:37 it can't be anything, because it depends on the constructors parameters. 12:23:00 which are not known at compile time. 12:34:00 CakeProphet: This does in fact type check http://hpaste.org/new 12:34:13 @unpl (c $) . ($ x) $ y 12:34:14 (c (y x)) 12:36:10 err http://hpaste.org/48909 12:36:33 but you likely mean something different and data T a b is not what you meant 12:36:46 azaq231: He meant having the T be variable 12:37:06 So you could e.g. have also data Y a b = Y a b and f could handle both T and Y 12:45:13 -!- cheater_ has quit (Ping timeout: 255 seconds). 12:45:29 yeah, after thinking about it, it obviously wouldn't work with Haskell's type system. 12:46:39 it's always seemed reasonable to me to allow the tuple type to also represent a sort of anonymous data type with fields of a known type 12:47:10 thus (Int, Int) would represent any type (or subset of a type) constructed from two Int fields. 12:47:53 in that case you could type the above as (a, b) -> [b -> c] -> (c, a) 12:48:44 er [(c,a)] 12:49:40 actually no it would be (a, b) -> [a -> c] -> (c, b) 12:49:47 again, [(c,b)] 12:50:19 I shouldn't be reasoning about Haskell extensions while heavily in need of sleep after work. 12:54:34 but I think it would reasonable to simply make tuples a special kind of anonymous constructor, whose type is all values defined by a certain number of fields with a known type for each field. 12:55:29 but then it would be tempting to simply write all of your functions to return tuples when possible, since this would generalize the function to many different possible types 12:56:12 -!- BeholdMyGlory has joined. 12:58:23 -!- cheater_ has joined. 13:40:10 -!- ais523 has joined. 13:40:17 -!- ais523 has quit (Changing host). 13:40:17 -!- ais523 has joined. 14:01:47 -!- pikhq_ has joined. 14:01:50 -!- pikhq has quit (Ping timeout: 246 seconds). 14:18:38 -!- azaq231 has quit (Quit: Leaving.). 14:28:43 -!- cheater_ has quit (Ping timeout: 255 seconds). 14:41:30 -!- cheater_ has joined. 14:50:56 -!- augur has changed nick to mhosignal. 14:51:59 -!- mhosignal has changed nick to augur. 15:37:38 -!- derrik has joined. 15:44:15 -!- Lymee has quit (Ping timeout: 240 seconds). 15:58:06 -!- Lymee has joined. 16:27:37 -!- monqy has joined. 16:45:37 -!- MigoMipo has quit (Read error: Connection reset by peer). 16:46:09 -!- cheater__ has joined. 16:46:09 -!- MigoMipo has joined. 16:48:17 -!- cheater_ has quit (Ping timeout: 240 seconds). 17:00:17 -!- derrik has left. 17:20:36 hmm, do we have an opinion on what to do about languages like http://esolangs.org/wiki/Crazed (it has no real information on its page, and the author has lost the specs)? 17:22:20 i suggest a "lost languages" category... 17:34:25 the author suggested deletion 17:50:54 -!- iconmaster has joined. 17:56:55 alright 17:57:00 delete away 17:59:14 :( at lost language specs 17:59:37 -!- pikhq_ has quit (Ping timeout: 276 seconds). 18:00:42 :( at brainfuck with more commands 18:03:42 i dunno if i agree with that sentiment...if it's just that then yes, but i think some brainfuck derivatives have been quite interesting 18:04:01 OK, vaguely interesting BF variant: if you delete [ (and instead have all loops go back to the start of the program), is it still TC? 18:04:03 -!- oerjan has joined. 18:04:31 hmmm 18:05:19 so youd have to somehow store the entire branching path through the program on the tape to do different loops? 18:06:45 apart from . , and loops, BF is reversible 18:06:58 so presumably you could reverse the whole program so far just after each ] 18:07:14 i would believe it is TC if you wrote multiply in it 18:07:19 in order to give effectively independent bits of code 18:09:10 so is there any reason why this wouldn't work? f (c x y) ls = map ($ y) . map ((c$).($x)) $ ls 18:09:36 for one thing haskell is designed so that you cannot use constructors at all if they aren't exported from the module defining them 18:09:44 (for abstraction) 18:11:13 also the right side can be simplified to map (($y).(c$).($x)) $ ls 18:11:34 (in fact ghc will do so during optimization) 18:16:27 -!- Madk has joined. 18:16:42 Fuck yes 18:16:44 18:16:51 behold, progress 18:17:06 2YZZr' 18:17:12 further progress has been made 18:17:38 awesome, stuff is moving along faster now 18:17:39 %''7RTTd 18:17:57 hi 18:18:04 my evolutionary algorithm is trying to squeeze "Hello, world!" out of my esoteric language 18:18:33 that most recent sample was from generation 1105 18:18:41 and took about 10 minutes 18:19:09 #%%:]__t# 18:19:26 do you see that 18:19:34 that is great progress taking place 18:19:47 trololo 18:19:57 .QSSii# 18:19:57 Surface, right? Why do you need such a fancy algorithm when there's a reduction from brainfuck 18:20:11 because the instructions are wrapped around a rather small sphere 18:20:15 -!- pikhq has joined. 18:20:18 also, because I'm lazy 18:20:31 so instead of writing a hello, world example I wrote a program to write a hello, world example 18:21:54 also, I intend to apply the same code to other esolangs in the future 18:22:16 so I can make some examples for some of the more esoteric languages 18:22:26 i think your GA is too slow 18:22:47 it goes through quite fast 18:22:54 ~100 generations/minute 18:23:08 population? 18:23:09 thing is the complexity involved 18:23:13 a pool of 128 18:23:26 I could go larger, but I decided to try that 18:23:30 -!- Lymee has quit (Ping timeout: 240 seconds). 18:24:24 -!- Lymee has joined. 18:24:35 maybe you could include the runtime in the fitness measure, to get faster candidates that should take less time to test 18:24:36 is it in blitzbasic too 18:25:54 olsner: I haven't allowed the program to use a termination command and the IP wraps, so that's a bit impractical at this point. I have set a maximum run time, though 18:26:02 monqy: it's in blitzmax, yes 18:28:12 sounds like you have some optimalization to do 18:28:26 probably 18:28:40 How exactly are you doing this hello world generation thing 18:29:30 I have a pool of initially random programs, I sample 4 of them at a time and replace the program farthest from the desired output with a combination of the best two, with some opportunity for mutation 18:30:03 the samples I've been giving you are the closest obtained output so far 18:30:08 random strings? 18:30:16 the esolang is 2d 18:30:22 so not really strings, but arrays 18:31:24 pfffft 18:31:35 same thing 18:31:50 the length isn't variable, so there's that difference 18:32:10 i was assuming they weren't 18:32:18 ok 18:33:27 hm 18:33:28 shoot 18:33:36 I just realized a mistake I made D: 18:33:43 And how do you measure helloworldness of an output / combine two helloworldy programs 18:34:00 I measure it by checking similarity of characters 18:34:15 not that complicated, but it is more than a 1:1 check 18:34:39 I combine them by using an almost 50/50 chance for each character, with a slight bias toward the program with the better score 18:35:05 mutation rate? 18:35:28 right now each character in an offspring is a 1 in 32 chance of being randomly chose 18:35:46 how long is an offspring? 18:36:04 program code is stored in a 32x12 array 18:36:05 Madk: So you know exactly what parts of each program produce which characters, and are able to separate them cleanly and stick them together nicely? 18:36:25 that is an awfully high mutation rate 18:36:35 monqy: I'm not really sure what you're asking 18:36:38 is there a way to decrease it over time 18:36:40 I'll reduce it a bit, then 18:36:46 I could do that 18:37:39 GA is a really inefficient search paradigm, you know 18:37:42 Madk: You said you combine your programs, right? I asked how you did that, and I reaced based on your response "< Madk> I combine them by using an almost 50/50 chance for each character, with a slight bias toward the program with the better score" 18:38:04 the distribution is random, if that's what you meant 18:38:13 Madk: that's not what I mean 18:38:25 oh, I see now 18:38:25 no 18:38:26 Madk: I mean how do you take two programs and mash them together in a sane way 18:38:35 it's very random 18:38:38 oh 18:38:40 not really sane there 18:38:55 quintopia: but it's so much cooler than just translating a brainfuck hello world 18:39:03 quintopia: if I intended to be efficient I would have written it manually 18:39:06 indeed 18:40:41 exactly 18:40:58 but why GA and not simulated annealing? 18:41:40 Madk: so for combining programs you just go over every character and pick it from one of the two constituent programs? I imagine this won't get you anywhere near hello world 18:42:00 quintopia: the end result can be more interesting 18:42:11 monqy: what could I do that would work better? 18:42:48 monqy: well you'd imagine the programs that survived might be related and so have the same structure, so it starts working better after a while? 18:42:49 I don't know. Breeding for hello world characteristics is not really a simple problem. 18:42:58 oerjan: hm 18:43:31 I did a much simpler GA not long ago that operated on a much less complicated esolang 18:43:40 though for an entirely different purpose 18:43:45 but the GA worked wonderfully 18:43:51 What was it? 18:44:04 it was more similar to corewar than anything else 18:44:13 I put a few programs in an arena 18:44:28 the ones that had the most health (eat food, attack others) bred and replaced the one that did badly 18:44:52 by about 100k generations I had some very complex and intriguing behaviors 18:45:30 And I assume the language was such that good breeding was easier 18:45:41 it was 1d and variable length 18:45:45 so only slightly 18:45:59 well that has little to do with it 18:46:09 if I remember right, some of the best ones had formed good loops structures 18:46:38 the one working currently and that one were only significantly different in that the previous was linear 18:46:47 linear? 18:46:49 1d 18:46:57 sorry 18:47:07 I still stand that that has little to do with it 18:47:13 ok 18:47:45 it's more about the structure of the language in the sense that it's easy to break it up structurally and muck with that 18:47:47 by 1000 generations, the programs I was working with now were outputting the same character twice where 'll' would be 18:47:49 rather than just doing character replacement 18:48:01 Madk: btw i was wondering how you do the sphere wrapping, since there is no entirely clean way of doing so (we had a discussion on channel previously of what surfaces have 2d grid graphs on them and they had to have the same euler characteristic as the torus, and the sphere doesn't) 18:48:03 it's very inefficient, indeed, but it's seemed to work 18:48:14 I have a 2d array 18:48:20 x wraps horizontally 18:48:27 the algorithm for y wrapping is like this: 18:48:47 when a pole is reached, x=(x+width/2) % width 18:48:53 and north and south are reversed 18:49:17 ah. so inspired by an ordinary world map, then. 18:49:21 indeed 18:49:45 it's no different than latitude/longitudinal coordinates 18:50:05 right. this makes the poles into special points. 18:50:47 it does 18:53:58 I had to scrap that progress because I was forgetting to reset program code after going through it 18:54:11 now's a good time to do things like change pool size, w/e 18:54:23 I adjusted the mutation rate to decrease steadily over time 18:54:35 I did a good deal of optimization 18:54:45 -!- Phantom_Hoover has joined. 18:54:56 What are the haps my friends. 18:55:12 genererational algorithm to produce a hello world 18:55:21 I'm using an evolutionary algorithm to make a hello world example in my language for me because I don't feel like doing it myself 18:55:42 Madk? 18:55:46 me 18:55:52 that is my alias 18:55:58 Wow, I'm surprised you got anything but a steely reception here. 18:56:04 D: ? 18:56:26 (Yes I am tactless.) 18:56:32 pfft 18:56:45 for more information see http://esolangs.org/wiki/User:Phantom_Hoover 18:56:52 monqy beat me to it. 18:57:06 oh 18:57:12 most of my languages aren't 18:57:15 I think 18:57:39 only 3 of them are really that similar to brainfuck 18:57:44 1 other is kinda close 18:57:56 4 aren't 18:58:04 Even one brainfuck derivative is too many. 18:58:12 w/e 18:58:21 anyway, I'm trying to figure the best pool size before I set it back in motion with some fixes I made 18:58:21 Brainfuck. Not even once. 18:58:41 I mean, you'd hardly let a Nazi off because most of the people he killed weren't even Jews. 18:58:50 maybe you wouldn;t 18:58:58 * oerjan hits Phantom_Hoover ===\__/ 18:59:09 is 128 good? 18:59:26 this is essentailly the one thing I can't go and change without scrapping everything 18:59:28 * Phantom_Hoover swatpans oerjan --===\#/ 18:59:48 Madk, how hard can pool size be to configure? 18:59:51 unless I want to inject a bunch of random crap into a developed pool 19:00:05 no, the point being once it's started I don't want to change the pool size 19:00:19 I can change pretty much anything else without impacting a lot 19:00:30 Sorry, which language is this? 19:00:35 it's in blitzmax 19:00:45 the point being it saves the pool every now and then 19:00:53 so I can pick up from where it leaves off 19:00:58 No, I mean the target language. 19:01:01 oh 19:01:02 surface 19:01:02 The one you want HW for. 19:01:07 Um... 19:01:18 http://esolangs.org/wiki/Surface 19:01:47 You reduce it to Brainfuck in the article; how hard can it be to just rewrite the BF HW? 19:02:08 Phantom_Hoover: but but, that would be derivative! 19:02:11 because the space available is too small to translate it like that 19:02:12 and that 19:02:17 * oerjan whistles innocently 19:02:33 oh this reminds me 19:02:36 I started one manually and thought, "what's wrong with me? I should be having the computer do this for me." 19:02:36 `quote unbounded 19:02:37 478) The interpreter uses an unbounded tape size, but due to technical limitations will stop being unbounded if the tap size reaches 2^63 cells. 19:02:41 Madk: what is this supposed to mean 19:03:05 monqy, it's the Orwellian definition of 'unbounded'. 19:03:19 that it's a limitation of the machine, not the language 19:03:28 sort of 19:03:28 It's unbounded... provided you don't go over the bounds. 19:03:31 yeah 19:04:14 you have complete freedom to follow big brother 19:04:23 yes 19:04:38 well anyway 19:04:44 I'm going on with me pool of 128 19:08:46 awesome 19:08:51 did it work? 19:09:01 stuff is maturing much faster now that it's working properly 19:09:28 there are a few commands that toggle to another when executed 19:09:32 was forgetting to reset them 19:09:59 -!- ais523 has quit (Remote host closed the connection). 19:10:05 and also forgetting to keep track of a program's success instead of re-running it every time I called it into question 19:10:14 so going generally much faster now 19:10:34 //;; 19:10:51 ##99GG 19:11:15 whoops 19:11:24 iconmaster 19:11:31 I did the unthinkable 19:11:38 ? 19:11:40 I registered an account on a furry forum just to contact you 19:11:46 I hope you appreciate this 19:11:47 I saw, lol. 19:11:50 :P 19:12:13 Sadly, the specs for Crazed have been lost for a long time. 19:12:28 that is too bad 19:12:47 In retrospect, it was a crappy language anyways, so no big loss 19:13:03 there are no crappy languages 19:13:03 My first esolang, to be percise. 19:13:06 only crappy programmers 19:13:07 I mean 19:13:22 ...Thanks Madk? 19:13:22 *whistles* 19:13:46 I've seen a few crappy languages 19:14:20 the progress being made in 5 minutes is good 19:14:33 this'll probably happen in a matter of a couple hours 19:14:48 `quote #%%:]__t# do you see that that is great progress taking place 19:14:50 No output. 19:14:56 FURScript is pretty crappy. Snack too. 19:14:58 ##66YYll 19:15:12 yes 19:15:15 that was great progress 19:15:16 Oops again... 19:15:22 `addquote #%%:]__t# do you see that that is great progress taking place 19:15:24 493) #%%:]__t# do you see that that is great progress taking place 19:15:24 but my algorithm was kinda flawed 19:15:50 ` 19:15:51 No output. 19:16:01 how do I make it quote me 19:16:38 -!- pikhq has quit (Ping timeout: 240 seconds). 19:16:41 right now this is the best program so far 19:16:41 say `addquote "quote here" 19:16:42 -!- pikhq_ has joined. 19:16:43 ^ /^>e.v <]xe^zo+^]+> *>++(-c )\ 19:16:43 (c)? @!-^*)?-..z+*)+o--x@^-!!+ o 19:16:43 o)/o]c@c+z\]\eevz\ -\x 19:16:43 ](!@< c(c!.z+\+++/?\ 19:16:43 z]/x/++oo-]?c?!\/+! +x^+ 19:16:44 )v>o(*z>-@ox c\(c*-@x] c))vc>? o 19:16:44 ^*/x.o\!@e/^> 19:16:45 c @c\ .>^x*o. )@\-e^x\<\- ]^(<- 19:16:45 ) *<^z!e\).?/+(e@(cv>\c ]. ece? 19:16:46 c@z]/v+++++-! \e@c^/e?o) \] 19:16:47 * /cc@)\?o/o !^^-e /ec\>.!.>@*o 19:16:47 )/ vo]zx \\o< cz.(@v/c>..*>\+(@! 19:16:48 !^+x-xev@v)+vc\\]<+x?\>e *ee(z\< 19:16:56 woah 19:16:58 `quote Madk 19:16:59 http://j.mearie.org/post/7462182919/spoken-number-to-decimal shameless advertisement for obfuscated code. :p 19:16:59 493) #%%:]__t# do you see that that is great progress taking place 19:17:03 oh 19:17:03 cool 19:17:43 there are no crappy languages 19:17:52 You should know what I'm going to say to that. 19:17:56 lifthrasiir: that looks awesome 19:18:04 what about the other way around 19:18:08 `quote iconmaster 19:18:10 No output. 19:18:13 Didnt think so. 19:18:26 ` quote Phantom_Hoover 19:18:27 No output. 19:18:28 Madk: 100 to "a hundred", for example? 19:18:34 Madk, no space. 19:18:37 yeah 19:18:42 `quote Phantom_Hoover 19:18:43 151) * Phantom_Hoover wonders where the size of the compiled Linux kernel comes from. To comply with the GFDL, there's a copy of Wikipedia in there. \ 155) how does a "DNA computer" work. von neumann machines? CakeProphet, that's boring in the context of DNA. 19:18:44 that'd be certainly a bit-packing challenge. 19:19:02 I found the inverse direction is much more challenging and fun. 19:19:04 Although it's almost always better to use `pastequotes. 19:19:34 `addquote iconmaster `quote iconmaster No output. Didnt think so. 19:19:35 494) iconmaster `quote iconmaster No output. Didnt think so. 19:19:52 `pastequotes Phantom_Hoover 19:19:53 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.30844 19:20:34 `quote 155 19:20:36 155) how does a "DNA computer" work. von neumann machines? CakeProphet, that's boring in the context of DNA. It's just stealing the universe's work and passing it off as our own. 19:21:29 `quote Sgeo's karaoke 19:21:30 400) [on Sgeo's karaoke] Sgeo: awesome sounds like a japan anime sound track \ 401) [on Sgeo's karaoke] That is the thing that made me into a gay vampire. 19:21:42 Huh, I thought there were more than that. 19:21:59 `quote 477 19:22:00 477) I go to clean up the shrapnel from a teabag and you're discussing the definition of god out of nowhere. 19:22:04 `quote 402 19:22:05 I think I still have sgeo's karaoke saved 19:22:05 402) Yeah, I went through a whole series of existential crises when I was 8 or so. 19:22:15 `quote 413 19:22:17 413) Vorpal: it's actually called Happy Vorpal: Do not use it. Use Parsec. This is the wisdom of ZOMGMODULES. 19:22:23 `quote 1 19:22:25 1) I used computational linguistics to kill her. 19:22:40 Madk, note that the quote numbering is highly unreliable. 19:22:45 `quote 42 19:22:46 42) i'm my dad's unborn sister 19:22:58 On account of elliott being a lazy bastard and just making it the line of the file the quote is on. 19:23:14 `quote 256 19:23:15 256) I have plans to make the computer and one day I will do it!! (I have access to barter some people might help with these things) It is many difference from other computer. 19:23:43 YES 19:23:46 WE HAVE A ! 19:23:47 ##66YYll! 19:23:55 wat 19:23:56 ! 19:24:00 ! 19:24:04 ! 19:24:11 ‽ 19:24:17 s/A !/NO BANANAS!/ 19:24:17 Now for the "hello World" part. 19:24:20 !hello 19:24:25 Unknown command () encountered 19:24:32 this one has a ! and an l in the right places 19:24:32 ##66YYll! 19:24:35 wat 19:24:42 !show hello 19:24:42 c char buf[1024]; int i; fgets(buf, 1024, stdin); for (i=0;buf[i];i++)buf[i]=(buf[i]=='\n')?'\0':buf[i]; if (!strcmp(buf, "h")) printf("Hello World\n"); else printf("Unknown command (%s) encountered\n", buf); 19:24:47 Madk, out of curiosity, how are you defining the fitness function? 19:25:02 oh 19:25:33 note: score=0 should be a perfect match 19:25:33 heh i think it's erroring on the newline 19:25:34 Local score%=Abs(Len(output)-Len(desired))*1024 19:25:34 Local stop%=0 19:25:34 For Local x%=1 To Min(Len(output),Len(desired)) 19:25:34 If Mid(desired,x,1)<>Mid(output,x,1) And stop=0 stop=x 19:25:34 score:+Abs(Asc(Mid(output,x,1))-Asc(Mid(desired,x,1)))*(x-stop) 19:25:35 Next 19:25:35 Return score 19:26:05 hmm 19:26:20 for some reason I thought I'd also added a benefit for characters near where they belong 19:26:24 but apparently not 19:26:29 yeah 19:26:32 sounds bad 19:26:56 it should be like exponential increase in value of a letter as it approaches the desired value 19:27:02 Madk: hamming distance >:) 19:27:09 what language is that Madk? 19:27:19 blitzmax 19:27:19 yeah, that was an intention to make it develop left-to-right but it's doing the opposite 19:27:25 so that was my mistake 19:28:03 I might want to fix that and start over, I'm not sure 19:28:05 Madk: i'd imagine left-to-right would be more robust during evolution 19:28:09 yeah 19:28:17 also are you really only breeding one new program per generation? 19:28:19 that was the intention, I wasn't thinking clearly 19:28:21 no 19:28:28 all initial programs are generation 1 19:28:38 a new program is the greater generation of its 2 parents +1 19:29:11 then what actually does "100 generations per minute" mean? 19:29:36 also, you are caching scores for programs that are kept alive yes? 19:29:37 in one minute the average generation increases by about 100 19:29:40 yes 19:29:46 that's faster now 19:29:55 because I wasn't caching when that was the case 19:30:19 * oerjan detects some kind of basic 19:30:38 blitzmax has sort of basic syntax 19:30:40 sort of 19:30:47 as in, {} are replaced with words 19:30:53 other than that it's not really basic 19:31:00 it just looks prettier in that respect 19:31:57 it is advertised as being basic-like but that's very misleading 19:32:18 it's OO and just happens to have some stuff that's like basic in addition to it 19:36:54 ah it's descended from basic, wikipedia implies 19:36:58 -!- cheater__ has quit (Ping timeout: 255 seconds). 19:37:25 yes, the guy who made it made a few basic languages before blitzmax 19:37:30 so its predecessors were basic 19:39:28 ok, how does this look for my fitness function 19:39:29 Local score%=Abs(Len(output)-Len(desired))*1024 19:39:29 For Local x%=1 To Min(Len(output),Len(desired)) 19:39:29 score:+Abs(Asc(Mid(output,x,1))-Asc(Mid(desired,x,1)))*(Max(Len(output),Len(desired))-Min(x,Len(desired))+1) 19:39:29 Next 19:39:29 Return score 19:39:44 again, the lower the score the more accurate the output 19:46:13 so 19:46:31 a parabolic curve towards the desired character/~? 19:49:42 -!- cheater__ has joined. 19:50:51 pretty much 19:51:58 372) DON'T MOCK ME WITH YOUR ABILITY TO DIVIDE BY TEN 19:58:41 -!- choochter has quit (Quit: lang may yer lum reek..). 20:15:45 -!- zzo38 has joined. 20:43:28 -!- Madk has quit (Quit: Make it idiot proof and someone will make a better idiot.). 20:50:00 -!- zzo38 has quit (Remote host closed the connection). 20:59:01 -!- aloril has quit (Ping timeout: 276 seconds). 21:14:29 -!- aloril has joined. 21:26:38 -!- MigoMipo has quit (Read error: Connection reset by peer). 22:07:46 * Sgeo is not happy about his phone being shattered 22:08:27 that's what you get for walking around near red mages holding an artifact 22:08:47 ..? 22:08:53 I have no idea what that's a reference to 22:12:11 http://gatherer.wizards.com/Pages/Card/Details.aspx?multiverseid=194147 22:17:21 i just saw a bug 22:17:36 "LC is a really nice language. I wasn't able to find a modern, untyped, lazy language." 22:17:42 LC means exactly what you think it meas. 22:17:45 i was like o_O and it was like O_o 22:17:54 *means 22:20:36 Phantom_Hoover: locale? 22:20:53 coppro, -_- 22:21:10 :-D 22:21:38 Lambda Calculus? 22:21:56 aaaand we have a winner 22:23:53 The prize is a phial of catalase in the ear! 22:31:02 -!- DocHerrings has joined. 22:37:08 DocHerrings! 22:37:20 Phantom_Hoover! 22:37:27 I assume that by now you have given up on the Eodermdrome interpreter. 22:37:38 oklofok, are the rumours of you writing an incredibly inefficient one true? 22:37:41 i implemented that once 22:37:45 lol 22:38:04 yeah, also it was asymptotically fast enough 22:38:08 Quite. There was no way to implement it nicely, so I decided not to implement it at all. :) 22:38:08 i think 22:38:14 -!- elliott has joined. 22:38:25 -!- zzo38 has joined. 22:39:08 i think i did some small optimizations before abandoning it, there were no programs so i didn't quite feel the need to make it better. 22:39:28 anyway it's just a graph rewriter, i've written lots of those 22:39:51 I'm really kinda surprised. I don't think anyone else has bothered setting up a Linux system which is just barely capable of building itself. 22:40:01 Quite. There was no way to implement it nicely, so I decided not to implement it at all. :) 22:40:12 pikhq_: i think pikhq did that as well 22:40:18 oklofok: Smartass. 22:40:25 DDDDDDDddddddd: 22:40:29 And no, it didn't bootstrap until just now. 22:40:29 I think it's possible, but my incredible lethargy forbids me from working out further details. 22:40:37 Linux also needs GNU sed. 22:40:48 pikhq_: i don't actually recall if you were underscoreless last time although i have a vague feeling you were 22:41:16 I was. 22:41:18 Personally, I made a function that converted my tag system into a generalized structure of nil values, then attempted to compare them. But it was terribly inefficient. 22:41:55 and graph rewriting is np-complete since as a special case you need to solve the isomorphic subgraph problem, so you can't really completely solve the problem 22:42:06 but i'm sure you can solve all cases that actually occur in programming 22:42:24 oklofok, there's an algorithm which allows it to be done in polynomial time for fixed match subgraphs. 22:42:31 i.e. Eodermdrome match subgraphs. 22:42:32 hurr durr obviously 22:43:01 well yeah, given a single program, it will not be np complete to run it 22:43:04 Personally, I made a function that converted my tag system into a generalized structure of nil values, then attempted to compare them. But it was terribly inefficient. 22:43:21 My general inclination was "gensym all the tags". 22:43:23 but that's kind of beside the point since you need to run more than a fixed set of programs, it becomes relevant that the polynomial grows very fast 22:44:11 Are there hardware description languages without arithmetic? 22:44:26 " oklofok, there's an algorithm which allows it to be done in polynomial time for fixed match subgraphs." <<< from each node, do a depth n search where n is the number of nodes in the needle graph (as opposed to the haystack graph), obviously that's polynomial 22:44:50 because it's x^n where x is the size of the haystack 22:45:35 Phantom_Hoover: But how would you reliably compare all the gensyms? 22:45:40 i'm going to guess there's also an algorithm that works in x^(sqrt n), based on nothing really. 22:46:45 DocHerrings, you'd need to use a subgraph isomorphism algorithm, which is where the inefficiency comes in. 22:46:50 -!- iconmaster has quit (Quit: Pardon me, but I have to go die in NetHack again.). 22:47:18 oklofok, don't polynomials have integral powers? 22:47:32 what do you mean? 22:47:38 Indeed, according to WP, positive integral powers. 22:47:38 oh 22:47:48 lol 22:47:53 are you joking 22:48:10 Phantom_Hoover: Seems to me that we have just agreed that the tag system is arbitrary. :) 22:48:16 f 22:48:17 elliott: You have 3 new messages. '/msg lambdabot @messages' to read them. 22:48:19 DocHerrings, yeah, hence gensyms. 22:48:28 so you'd call O(n) and O(n^2) polynomial time but O(n^1.5) not? 22:49:00 i suppose you were joking 22:49:11 Slight misunderstanding, I suppose. 22:49:20 perhapses 22:49:25 n is usually the changing thing 22:49:35 but not in what i just said 22:49:40 so umm 22:50:00 in x^n x is the haystack and n is the needle, and the needle is fixed 22:50:28 I suppose you could have O(n^1/2) if you were doing something to a matrix. 22:50:28 O(x^(sqrt n)) is still polynomial, since it is in particular in O(x^ceil(sqrt n)) 22:50:34 Somehow. 22:51:31 you have O(n^1/2) in many things 22:51:48 well okay not O(n^1/2) so much since usually you have to read the input 22:51:54 but n^3/2 22:52:00 is common enough i think 22:52:24 * oklofok tries to come up with a natural reason for that to occur... 22:52:48 obviously if there's some kind of squares being built that might happen 22:52:50 as you said 22:53:36 (might happen and often happens, just means you are linear w.r.t. height) 22:53:39 or width 22:54:12 Like, you have n integers and arrange them into a square matrix and then sum along one of the columns. 22:54:52 well n^3/2 occurs if you have to, for each column, do something in every cell, what you just described is O(n) if i understand correctly 22:54:55 Or wait, actually, I think just arranging n integers into a square matrix is O(sqrt(n)) 22:55:06 no it's O(n) 22:55:11 Hmm. 22:55:13 you have to go through the integers 22:55:15 :P 22:55:34 if you have n integers, and you touch all of them, that's at least O(n). 22:55:48 Assuming you have a square matrix as a C-style array of pointers to arrays. 22:56:12 well if it's already given like that then summing along say the first column would be n^0.5 22:56:21 as you said 22:56:42 you have n objects, and while summing you touch roughly every squareth of them 22:56:53 You work out sqrt(n), take its ceiling m, then go along each m places in the array of ints you have and sticking the pointer to it in the matrix array. 22:57:15 And then summing the side is just another O(sqrt(n)). 22:57:18 how do you work out sqrt(n)? 22:57:32 are you also given n in binary? 22:57:32 I thought that didn't count. 22:58:27 Assuming n has an upper bound, it doesn't matter. 22:58:51 in that case the working out takes a polynomial of log n time and is just not significant, and not spacewise either. then if you have random access and other real life computery stuff at hand, true, n^0.5 to make a matrix out of the array. 23:00:10 " Assuming n has an upper bound, it doesn't matter." <<< that's a dangerous way of looking at things though, said the mathematician 23:00:49 just say there's an additional log n space wasted but it is hidden by the invisible constant in the linear term 23:00:55 and same for time 23:01:06 oklofok i do not know all these fancy computer things 23:01:10 i am but a foolish youth 23:01:35 what thing did you not understand? 23:01:50 do you know what O(f(n)) means by the way? i usually assume cs people have a firm intuitive grip at least 23:01:59 even foolish youths 23:02:24 It's not actually that I don't understand, more that I'm tired and there are too many words for me to bother with. 23:02:42 oh well, i'm not saying anything important. 23:02:57 HOW UNUSUAL 23:03:05 my little toe has lost feeling again 23:03:11 numb most of the day :( 23:03:22 i think i'm dying maybe? 23:03:23 Freeze it into submission. 23:03:39 mwahahaah 23:03:43 Also you can't be dying it's colder here than it is in Finland in summer TRUE FACT, 23:03:57 :o 23:04:07 MARITIME CLIMATE BITCHES 23:04:10 it is actually reeeeeeeally hot i wish i had a fan 23:04:39 England is stupidly warm as far as I can tell. 23:04:45 you mean merrytime climate amirite 23:04:52 I actually took my jumper off for significant periods of time. 23:05:10 This is the summer you idiot. 23:05:24 Yes 23:05:25 But 23:05:30 I never take off my jumper 23:05:41 Unless there is a real risk of death. 23:07:20 Also there are no hills; how do you not go insane it is a mystery to me. 23:07:33 :-----D 23:07:56 we have upside down hills but they're full of water :( 23:08:17 Ah, but they are still hills. 23:08:25 certainly 23:08:36 a pair of gills and you're ready for some serious mountaineering 23:08:45 Perhaps I can lend some hills to the poor folk of England. 23:09:24 Oh wait no the hills have already spread to where elliott is. 23:10:56 Mystery solved. 23:11:25 * oklofok mutters something inappropriate about elliott's sanity and Phantom_Hoover's comment earlier 23:12:17 oklofok, come now, how can elliott be insane with all those hills. 23:13:08 good point 23:13:11 i want a theremin :( 23:13:40 elliott has a theremin IIRC. 23:13:48 oklofok: how can you want a theremin and complain about other people's sanity at the same time? 23:13:59 olsner, he does not have enough hills. 23:14:04 have i sain i'm sane 23:14:16 i tell you what: i ain 23:14:17 ' 23:14:23 but umm 23:14:30 yeah theremin has got elliott, that's what reminded me 23:18:18 hmm, elliott has the theremin and the theremin has got him, are they in a relation of mutual ownership? 23:18:25 yes! 23:18:34 what a lovely idea 23:19:14 sounds like a degenerated cocktagon 23:19:19 It is like having a cat. 23:20:12 ^ 23:22:17 Relevant: http://www.youtube.com/watch?v=U_tk-XrXFHo 23:23:33 I like the way the cats, when confronted with a new thing, try to eat it. 23:23:51 This is essentially what a world run by cats would be like, 23:24:07 They would invent the wheel and then eat it. 23:24:11 It's a good way to handle problems. 23:24:13 oh, he owns both cats and a theremin, that must make some complicated ownership graphs 23:24:16 cat massage 23:24:25 major whisker watch alert 23:24:34 invent massage and then eat it 23:24:35 unless it just becomes a complete graph where everyone/thing owns everyone/thing else 23:24:43 oklofok, please inform olsner that you cannot have very complicated graphs with only three nodes. 23:24:55 Phantom_Hoover: did you count the cats? 23:24:55 you can if the connections get knotted 23:25:18 you can make at least up to K5 based only on that video, assuming an unshown human owner 23:25:35 olsner, oh OK. 23:25:45 there's also *another cat* added since the video was filmed 23:25:48 THERE ARE ONLY TWO DIFFERENT CONNECTED UNDIRECTED GRAPHS WITH 3 NODES MISTER OLSNER 23:25:51 oh wait 23:25:56 one of them is extremely complicated 23:26:16 oklofok: the graph is directed though 23:26:25 oklofok, it's almost as mysterious as cDonald's Theorem. 23:26:26 oh yeah 23:26:54 cats and a theremin :D 23:26:58 i'm gonna watch that! 23:27:18 whoa 23:27:19 Perhaps the classification of these graphs could provide crucial insights into it. 23:27:19 guys 23:27:22 what if cDonald's theorem 23:27:24 was a graph 23:27:28 with only one node 23:27:39 MY GOD 23:27:54 connecting back into itself in a manner bordering on the circuitous 23:27:59 Ho hum. Making a efficient implementation of /// is lisp is kinda fun. 23:28:04 a sort of... one-element tangle. 23:28:08 a circale. 23:28:57 -!- oerjan has quit (Quit: Good night). 23:29:13 awwwwwwwwwwwwwwwwww 23:29:14 Wait elliott we need to make sure that oklofok understands cDonald's theorem. 23:29:17 hmm, K5 is an undirected complete graph of 5 nodes, I wonder what the standard name is for the corresponding directed graph 23:29:30 (that's the one I actually meant) 23:29:48 i dunno what cdonald's theorem is :\ 23:29:57 oklofok, http://www.youtube.com/watch?v=Pj2NOTanzWI 23:29:58 but i can check if i understand it 23:30:04 Familiarise yourself with this material. 23:30:24 cats are sooooooooo cute :D 23:32:20 -!- cheater__ has quit (Ping timeout: 255 seconds). 23:33:03 45000000000 => 45000000001 BING 23:33:11 classic 23:33:19 This is only the beginning. 23:33:26 oh and the ? 23:33:37 oklofok: not proven to exist and be a number yet, obviously 23:37:02 * Phantom_Hoover → sleep 23:37:21 oh cdonald's theorem is therefrom 23:37:28 perhaps i should've guessed. 23:37:37 -!- Phantom_Hoover has quit (Quit: Leaving). 23:40:22 oh my ... cats that play the theremin :/ irresistable 23:41:49 cats are so cute :DSDSDDS 23:44:19 -!- cheater__ has joined. 23:45:47 cheater__: aren't cats cute? 23:45:57 i think cats are cute :D 23:46:15 kill all cats 23:46:46 JUST KIDDING!! kitties are cute. 23:47:32 !sh killall cat 23:47:33 cat: no process found 23:48:17 I think cats are not cute, they just *look* cute as an adaptation to a world where looking cute brings them food 23:48:24 oklofok, cat is a substantial part of my GNU/Linux kernel quine 23:48:49 so i have my energy drink in a can 23:48:52 and the can is frozen 23:49:15 and i opened it just enough for stuff to slowly spill out through the invisible hole 23:49:26 genious really 23:49:27 oh yah? cute? say that to satan cat http://www.inquisitr.com/26619/satan-cat/ 23:49:57 the problem with drinks is they are homogenous, why not have like compartments in the can 23:50:08 what for 23:50:39 well you know, many drinks in one 23:50:44 12:45:29: yeah, after thinking about it, it obviously wouldn't work with Haskell's type system. 23:50:50 separated by these weird little bubbly compartments 23:50:51 CakeProphet: see Data.Data, Data.Typeable 23:50:52 yeah, mix the drink and put it in the can 23:50:54 this is a syb type thing 23:50:57 multiple drinks in one. 23:51:05 alternatively use fluids that don't mix 23:51:10 like say... oil and water 23:51:23 i'm sure you'd enjoy that wouldn't you WOULDN'T YOU 23:51:40 18:04:01: OK, vaguely interesting BF variant: if you delete [ (and instead have all loops go back to the start of the program), is it still TC? 23:51:44 no, all loops terminate immediately 23:52:18 cheater__: mixing drinks together is like taking all of mozart's works and listening to all of them at once 23:52:42 oklofok: ... which is why drinks are usually sold in individual containers 23:52:52 and in general a drink - and most foods - are kind like taking a song and then just taking the average of the notes and listening to it for three minutes. 23:52:57 what is the point of making containers with subcontainers in them? 23:52:57 oklofok, how did you know my hobby 23:53:26 simultaneous parallel audition is the best 23:53:30 olsner: the point is you don't have to be the composer yourself 23:53:40 not everyone knows what sequences of drinks taste the best 23:54:47 18:55:42: Madk? 23:54:47 18:55:46: me 23:54:47 18:55:52: that is my alias 23:54:47 18:55:58: Wow, I'm surprised you got anything but a steely reception here. 23:54:47 this is just going to be painful 23:54:50 prediction of the next few lines 23:54:54 YOU SEE WE ALL HATE YOU ESPECIALLY ME 23:54:56 GO AWAY 23:55:53 18:58:41: I mean, you'd hardly let a Nazi off because most of the people he killed weren't even Jews. 23:55:53 18:58:50: maybe you wouldn;t 23:55:53 "but _I_ would" 23:55:54 drinks should come in long long pipes that drip liquid at varying speeds, and you shouldn't just casually taste to them, you should really try to understand what the artist (the canposer?) was trying to convey when making the drinkdrink 23:56:05 *-drink 23:56:09 oklofok: do you have a newslatter 23:56:34 oklofok: also when is the National Museum of Modern Drinks opening 23:56:42 oklofok: ok, this idea is making a lot of sense to me 23:57:17 but I would be too lazy to make it work 23:57:48 I don't care about canposers conveying ideas, I care about drinking something that tastes good 23:57:54 19:02:37: 478) The interpreter uses an unbounded tape size, but due to technical limitations will stop being unbounded if the tap size reaches 2^63 cells. 23:57:54 this is still great :D 23:58:01 olsner: well you know i'm a genius. anyway i like how food works tho, because it has both the element of composing and choice, it's kind of like an rpg really 23:58:03 olsner: everything is art, but everything isn't art by default obviously 23:58:07 you have to make things art 23:58:10 oklofok's next project 23:58:14 the shitting museum 23:58:24 elliott: woah, you have to make art art? yourself? 23:58:34 olsner: no. oklofok does it for you 23:59:27 What are the best Free-software ARM emulators? 23:59:28 `addquote mixing drinks together is like taking all of mozart's works and listening to all of them at once and in general a drink - and most foods - are kind like taking a song and then just taking the average of the notes and listening to it for three minutes. olsner: the point is you don't have to be the composer yourself not everyone knows what sequences of drinks taste the best 23:59:29 495) mixing drinks together is like taking all of mozart's works and listening to all of them at once and in general a drink - and most foods - are kind like taking a song and then just taking the average of the notes and listening to it for three minutes. olsner: the point is you don't have to 23:59:36 `addquote drinks should come in long long pipes that drip liquid at varying speeds, and you shouldn't just casually taste to them, you should really try to understand what the artist (the canposer?) was trying to convey when making the drink olsner: well you know i'm a genius. anyway i like how food works tho, because it has both the element of composing and choice, it's kind of like an rpg really 23:59:36 496) drinks should come in long long pipes that drip liquid at varying speeds, and you shouldn't just casually taste to them, you should really try to understand what the artist (the canposer?) was trying to convey when making the drink olsner: well you know i'm a genius. anyway i like how food works tho, 23:59:42 best two part quote 2011-07-11: 00:00:17 19:11:24: iconmaster 00:00:18 19:11:31: I did the unthinkable 00:00:18 19:11:40: I registered an account on a furry forum just to contact you 00:00:18 19:11:46: I hope you appreciate this 00:00:29 i too stalk esolang designers via furry forums 00:00:41 unthinkable 00:00:42 19:13:03: there are no crappy languages 00:00:43 19:13:06: only crappy programmers 00:00:43 no, there are also crappy languages 00:00:59 19:14:48: `quote #%%:]__t�# do you see that that is great progress taking place 00:01:00 congraultionas 00:01:11 `delquote 493 00:01:12 ​*poof* 00:01:20 `addquote #%%:]__t�# do you see that that is great progress taking place 00:01:21 496) #%%:]__t�# do you see that that is great progress taking place 00:01:33 it's nice that both quotes includes my nick, so I will get a highlight and can relive the quotes whenever they appear 00:01:44 19:19:34: `addquote iconmaster `quote iconmaster No output. Didnt think so. 00:01:44 19:19:35: 494) iconmaster `quote iconmaster No output. Didnt think so. 00:01:46 `quote iconmaster 00:01:47 493) iconmaster `quote iconmaster No output. Didnt think so. 00:01:52 `delquote 493 00:01:53 ​*poof* 00:04:00 22:17:36: "LC is a really nice language. I wasn't able to find a modern, untyped, lazy language." 00:04:01 22:17:42: LC means exactly what you think it meas. 00:04:03 come on though, lc is great 00:04:09 i've linked http://tinyconcepts.com/invaders.html that that post linksto before 00:04:14 lowercase? 00:04:19 lambda 00:04:24 no, lesbian cocks 00:04:32 mysterious 00:05:13 -!- DocHerrings has quit (Ping timeout: 250 seconds). 00:07:11 Do they exist any FPGAs that do not support any kind of design security? 00:09:49 is this because you don't like security 00:10:25 ?tell ais523 whats fpga design security 00:10:25 Consider it noted. 00:10:26 someone's insecure, huh? 00:11:58 energy drink so good but im gon be up all night :(( 00:12:16 you think you're doing bad? 00:12:32 i've spent the last 8 hours wading through german criminal law 00:12:43 It is because I don't want design security. I want it can be read/write without a special software, without keys, etc. 00:12:45 i have work tomorroy 00:12:47 *tomorrow 00:12:49 so do i 00:13:04 well it's 3 am and i need about 12 hours of sleep 00:13:14 try to beat that 00:13:15 why do you 00:13:25 are you recovering from serious trauma 00:13:28 because i have a very, very large brain. 00:13:33 or are you a toddler 00:13:36 which works so really really hard. 00:13:49 you have a hard brain? 00:14:02 ... 00:14:08 don't be a stupid 00:14:17 * cheater__ cracks a walnut with oklofok's cranium 00:14:22 practical! 00:14:31 my brain so big i can think anything. 00:14:49 can your brain think something your brain couldn't think? 00:14:49 come on gimme something and i'll think about it 00:15:05 ...i think i'm gonna need more than my usual 12 hours tonight :\ 00:15:16 ^_^ 00:15:16 no brain no 00:15:25 * oklofok enters loop 00:15:49 * cheater__ tears oklofok out of the loop, but oklofok loses a couple random limbs. 00:16:11 well all my important limbs are numb anyway so who cares. 00:16:13 -!- Gregor has set topic: Does steak love lettuce? This question is implacably hard to answer. Does an electron love a proton or a neutron? Does a man love a woman or, to be precise, does Bill love Diane? The response to this question is: no! He is obsessed and infatuated with her. He is loony and crazy about her. That is not the love of steak and lettuce, of electron and proton and neutron. | Logs: http://codu.o. 00:16:16 Foo :( 00:16:49 Won't fit. 00:16:58 you've got a nice threesome going there 00:17:04 * oklofok was so sure that was zzo38's topic 00:17:08 zzo38: I can see there :P 00:17:08 possible future cocktagon 00:17:09 *that 00:17:20 But I did see that quotation in the book titled "There Are Two Errors In The The Title Of This Book" 00:18:01 -!- Gregor has set topic: Does steak love lettuce? Does an electron love a proton or a neutron? Does a man love a woman or, to be precise, does Bill love Diane? No! He is obsessed and infatuated with her. He is loony and crazy about her. That is not the love of steak and lettuce, of electron and proton and neutron. | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 00:18:17 zzo38: are there? 00:18:54 -!- elliott_ has joined. 00:18:54 -!- elliott has quit (Read error: Connection reset by peer). 00:18:58 they used that standard article trick but i can't see the other one 00:19:43 The second error is the number of errors. 00:20:01 bleh 00:21:28 -!- Wamanuz has quit (Remote host closed the connection). 00:23:41 The thing is I am trying to find some FPGA that is known exactly the format used to program it. 00:24:26 -!- pikhq has joined. 00:26:26 -!- pikhq_ has quit (Ping timeout: 252 seconds). 00:35:35 -!- oklopol has joined. 00:37:17 -!- oklofok has quit (Ping timeout: 250 seconds). 00:46:46 I found that the Atmel FPSLIC FPGA documentation is available and an open source implementation of the programs for dealing with it are available. However, how can you purchase this device? 00:48:23 -!- CakeProphet has quit (Ping timeout: 255 seconds). 00:51:40 Letting a phone with a glass screen slip underneath a couch pillow is a bad idea. 00:54:24 -!- Wamanuz has joined. 01:05:09 hey 01:05:15 what if i don't sleep and just go to work now 01:05:28 -!- pikhq has quit (Read error: Operation timed out). 01:06:35 -!- pikhq has joined. 01:06:38 Building attoparsec-0.9.1.1... 01:06:38 [1 of 9] Compiling Data.Attoparsec.Zepto ( Data/Attoparsec/Zepto.hs, dist/build/Data/Attoparsec/Zepto.o ) 01:06:40 monqy: oh my god 01:07:22 is synchronicity the right word for here and now 01:07:27 yes 01:09:41 -!- FireFly has quit (Quit: swatted to death). 01:10:31 Message Nothing (Command "ERROR") ["Closing Link: 127.0.0.1 (Connection timed out)"] 01:10:31 Message (Just (ServerPrefix "niven.freenode.net")) (Command "NOTICE") ["*","*** Couldn't look up your hostname"] 01:10:35 OMG ITS THE WRONG WAY AROUND YOU SHITHEAD :( 01:10:39 why won't this work 01:11:30 -!- DocHerrings has joined. 01:11:31 ante zepto bot????? 01:12:33 monqy: good idea but no i am taking a break from ante-zepto to let certain issues in its regard simmer through my mind so that the most zepto solution can be attained 01:21:27 -!- zzo38 has quit (Remote host closed the connection). 01:22:32 -!- DocHerrings has quit (Quit: ChatZilla 0.9.87 [Firefox 5.0/20110615151330]). 01:33:24 -!- azaq23 has joined. 01:51:12 02:38:23: How far do companies typically cyberstalk their employees? 01:51:12 02:38:42: To the VERY BRINK OF DEATH 01:51:13 02:39:06: If I mention on my resume some of the projects I've worked on, they may trace that to the name "Sgeo", and from there to the fact that I'm an atheist. Legally, they can't not hire me for that, but if I don't know that that's the reason... 01:52:48 I'm pretty sure that's super-olde, and I'm ALSO pretty sure that they CAN not hire you on religious grounds, perhaps depending on the particular business. 01:53:05 the churching business 01:53:26 christian greeting cards and plushies business 01:55:52 Gregor: Super-olde = last May :P 01:56:14 Good lawde that's olde. 01:56:16 Gregor: And I'm not too familiar with your strange American customs but is that kind of sentiment rampant in fucking New York? X-D 01:56:43 It would only be common in businesses such as the ones monqy mentioned :P 01:57:52 02:50:53: http://enphilistor.50megs.com/irtc.htm SQUEE 01:57:52 wat 01:58:04 squee? 01:58:15 squee 01:58:21 <3 IRTC 01:58:32 <3 God 02:00:10 04:36:09: You left ... speakeasy ... for comcast. 02:00:29 Go watch all of the Rusty animations 02:00:32 no 02:16:07 -!- rodgort has quit (Quit: ERC Version 5.3 (IRC client for Emacs)). 02:16:18 -!- rodgort has joined. 02:22:00 ... Someone would leave Speakeasy? 02:22:05 For anything? 02:22:52 Except maybe a felatotron 5000? 02:26:58 So who wants to know how to tie a (glorious) Richards knot? :P 02:28:23 wow my brain is broken 02:32:57 The fuck? This RAR is smaller uncompressed. 02:33:08 RAR: Negative compression. 02:39:15 pikhq, has to happen sometimes 02:39:30 Even if it shouldn't have to happen by more than a bit 02:44:42 Note: Do not mention diverse double-compiling to someone who wants to recompile all the software on his system to "keep devils out" 02:45:02 what 02:45:45 Sgeo: haha who 02:45:50 link/paste quote 02:46:03 Sgeo: dont tell em about DDC 02:46:08 Sgeo: just tell em about trusting trust 02:46:14 and let them rip out their own eyeballs in fear 02:46:20 elliott_, too late 02:46:40 Sgeo: paste quos 02:46:41 quotes 02:46:56 youre not allowed to tell us about crazies without showing :( 02:47:02 http://pastebin.com/KWJzdW9D 02:47:50 w e w i l l f i n d y o u 02:47:53 IASON is my bro 02:48:02 oh my god what is #jesus 02:48:06 and why are you in there 02:48:13 * Topic for #jesus is: https://github.com/chan-jesus :: Encouragement and prayer, love for Jesus Christ, open source development. Courtesy required, charity and patience appreciated. This channel is G-rated. biblebot format is: @bible book chapter:verse 02:48:14 why 02:48:15 arey ou in there 02:48:22 are you trying to deconvert them all please say no 02:48:57 Sgeo: why 02:49:14 Just like to watch and discuss sometimes 02:49:23 yeah right 02:49:41 im sure you talk to the christian programmers as equals to better understand their religious beliefs 02:51:00 -!- BeholdMyGlory has quit (Remote host closed the connection). 02:51:03 so starting from that github page 02:51:09 @MeredithGould 02:51:09 MeredithGould 02:51:09 Put my frozen GF mini-Jesus into my pyx & going to mass at St Iggy. Alert the media! 02:51:09 02:51:09 Unknown command, try @list 02:51:10 @michaelsbradley 02:51:11 Unknown command, try @list 02:51:11 Michael Bradley, Jr. 02:51:13 @MeredithGould hopefully that's low-gluten and not gluten-free, otherwise nothing would happen when the priest consecrates it :-/ 02:51:13 Unknown command, try @list 02:51:16 @MeredithGould 02:51:16 Unknown command, try @list 02:51:18 MeredithGould 02:51:20 .@michaelsbradley Teeny % of gluten, enuff for Jesus to be zapped in. ;-) 02:51:24 just enough gluten for jesus to be zapped in 02:51:41 ... 02:51:44 Wow. 02:51:49 im wowing silently 02:51:59 actually laughing 02:52:07 -!- elliott_ has set topic: Just enuff gluten for Jesus to be zapped in. ;-) | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 02:52:25 i like the worried face on the middle tweet 02:52:34 I sure hope you're not missing out on your daily recommended amount of Jesus :-/ 02:52:38 elliott_: Can has link to that tweetthread? 02:52:55 http://twitter.com/#!/michaelsbradley second tweet on there 02:53:08 "new twitter" makes linking to things impossible sry 02:53:21 well http://twitter.com/#!/michaelsbradley/status/90169871169622016 for the record but it's a pain to navigate that way 02:54:05 "@CrypticSwarm also some crazy Func Prog thing called "join calculus" & Perl6's junctive operators..Func React turns out to be a compsci lens" 02:54:10 this guy is coherent :-| 02:54:48 oh hes a node.js user 02:54:51 that explains everything 02:54:51 elliott_: I would be laughing if I wasn't crying. 02:55:25 my tolerance for religious beliefs ends at people thinking that the priest consecrating the eucharist literally turns it into jesus flesh 02:55:50 elliott_, is that a quote? 02:56:01 cannibalisms cool if its jesus 02:56:02 no i wrote that with my arms 02:56:11 or is this god jesus not man jesus 02:56:15 this is confusing 02:56:23 how do i eat the holy ghost 02:56:24 SITES WHICH STEAL "/" AND TURN IT INTO THEIR SEARCH BAR: WORST EVER 02:56:36 he;lp i need a balanced trinity diet 02:57:00 Twitter seriously sucks arse >_< 02:57:14 the new twitter interface is amazing 02:57:20 its like a crash course in what the fuck were you thinking 02:58:17 Why the *fuck* would you want to make it impossible to hotlink to your site? 02:58:45 Nothing about that screams "good idea". Everything screams "bad idea and fuck you." 02:59:06 elliott_: I bet you love Catholicism. 03:13:53 -!- pingveno has quit (Ping timeout: 260 seconds). 03:15:17 elliott_, you actually msg'd IASON 03:15:33 drama time 03:18:47 Sgeo: ages ago yes 03:18:49 Sgeo: paste 03:18:55 paste what lead you to that information 03:18:56 that is 03:19:14 How about no, I don't feel like doing this for your amusement. 03:19:27 so only your amusement comes into consideration :( 03:19:32 what about for my amusement 03:19:36 <3 03:20:06 elliott_, your nastiness to someone is ... well, mean. I can't support it. 03:20:17 im not nasty 03:20:26 i just laugh behind backs 03:20:30 nobodys hurt 03:20:32 it sure would be cool if you stood up for yourself in situations where it actually mattered instead of just in situations where it doesn't matter, Sgeo 03:26:05 oh what, someone who i was once sort-of-in a small interweb community with is now famous 03:26:19 -!- Sgeo has left ("Leaving"). 03:26:20 congratulations, someone 03:26:27 -!- Sgeo has joined. 03:26:36 23:19:54 < elliott_> it sure would be cool if you stood up for yourself in situations where it actually mattered instead of just in situations where it doesn't matter, Sgeo 03:27:17 i love irc quote towers can we have one?? 03:27:31 monqy: yeah hooray someone 03:27:56 coppro, hmm, what about that? 03:28:15 -!- zzo38 has joined. 03:28:35 oh what, the guy's comic is now big, weird 03:28:40 Thanks for correcting the topic message; now it is not too long anymore. 03:29:07 happy tesla day! :D 03:30:21 *tesla-coil related innuendo* 03:30:49 ;o 03:31:12 Tesla: best thing to ever happen to Colorado Springs. 03:35:20 -!- azaq23 has quit (Ping timeout: 255 seconds). 03:35:46 oh, pratchett's took another step to the grave? 03:36:08 :( 03:37:28 elliott_, :( link? 03:37:57 http://blastr.com/2011/06/terry-pratchett-begins-fo.php 03:42:05 -!- cheater__ has quit (Ping timeout: 255 seconds). 03:43:01 Sgeo: caret 03:43:07 ^ 03:43:27 Sgeo: i meant i was pointing you to that link 03:43:38 I clicked 03:43:50 I just didn't say anything about it 03:43:53 maybe if you weren't a keyboard-cripple you wouldn't confuse poor sgeo 03:44:38 so when's the new version of whatever you're waiting for to get a new keyboard going to come out 03:45:00 this month, and its not etting a new keyboard 03:45:03 i have to send the whole laptop in 03:45:09 so since i'll want to wipe it anyway before i send it in 03:45:15 because i doubt they'll like it booting into linux 03:45:18 i'm waiting for the new os x 03:45:24 so that i can at least make something useful out of it 03:45:27 i.e. an upgrade of my other os 03:45:39 backup party 03:46:45 why wouldn't they like it booting into linux are they meanies 03:47:36 -!- pingveno has joined. 03:47:45 i dont want to read the warranty but i suspect youre not allowed to complain about your keyboard breaking if you install linux 03:48:19 -!- Lymee has quit (Ping timeout: 240 seconds). 03:48:55 how reasonable 03:51:50 -!- azaq23 has joined. 03:52:33 -!- Lymee has joined. 03:54:06 -!- cheater__ has joined. 03:54:19 elliott_: It should depend whether it is physical damage on outside or if it stopped working. 03:54:46 Maybe. 03:54:52 but that's complicated 04:00:38 Note to self: When someone thinks that their mouse has a virus, do NOT speculate on the possibility of manufacturing a trojan mouse 04:00:55 is this the same guy 04:01:04 Yes 04:01:12 i wish that channel was logged 04:05:16 Sgeo: It's entirely possible. 04:05:21 -!- pingveno has quit (Read error: Operation timed out). 04:05:25 Simply wire a USB flash drive into the mouse. 04:05:26 :) 04:07:34 IASON, at some point, somewhere along the line, you need to trust someone. It's theoretically possible to put some backdoor into the processor, but that's not a serious possibility 04:07:34 And it's nearly impossible for you to prevent it 04:07:40 Sgeo: thats why im buying a sparc next 04:07:41 -!- pingveno has joined. 04:08:01 ask him if he trusts god 04:09:22 iason..... 04:09:43 #jesus..... 04:09:52 Because Sun is more trustworthy than Intel? 04:10:17 pikhq: some sparcs are open source. 04:10:21 (verilog) 04:10:35 Oh, huh. 04:10:41 *cough*trusting trust*cough* 04:11:09 cough i can parrot irrelevant things too cough? 04:11:12 trusting trust is irrelevant here 04:11:33 elliott_: Verilog code has to be compiled. 04:12:03 The compiler itself could have a hack in it, perhaps even by a trusting trust attack on the C compiler. 04:12:24 Trusting trust is defeatable, in theory 04:12:49 Not sure how you'd do DDC with Verilog 04:13:26 Not to mention, the SPARC itself would have to have an actually trustworthy design, as (presumably) would the FPGA. 04:14:15 If you're that fucking paranoid, your only option is to start with transistors. And ensure no other human can access it. 04:14:26 By getting yourself to Alpha Centauri. And only you. 04:16:11 And then hope the universe isn't fucking with you. 04:16:19 how do you trustworthily get there 04:28:05 -!- copumpkin has changed nick to Phillipa. 04:28:35 -!- Phillipa has changed nick to Guest28613. 04:32:03 You can make any USB device with a virus without too much difficult. I do know some ways of preventing it by modifying the Linux kernel and stuff. 04:33:32 -!- Guest28613 has changed nick to copumpkin. 04:35:51 Make it to not automatically recognize or activate any USB device unless all of these conditions hold: * It is a keyboard * No other keyboards (not even PS/2) are connected * Nobody is logged in on a serial terminal 04:36:18 What if you want to be able to use mice/ 04:36:41 Also, won't stop a keyboard that transmits every keystroke... somehow 04:36:52 Of course this cannot prevent radio viruses. 04:39:18 If you want to use mouse, I propose it must meet all these conditions: * It is connected at boot time * A USB keyboard is also connected at boot time * No PS/2 keyboard or PS/2 mouse is connected * The operating system is configured to run a GUI by default 04:39:25 22:12:36: Brains in jars or translation? 04:39:25 22:12:44: Guess which one I want to talk about. 04:39:26 zzo38: Alternately, you could just remove the USB stack. 04:39:38 In other cases, you must use commands to activate them manually. 04:40:47 And if multiple USB keyboard/mouse are connected at boot time while no PS/2 keyboard/mouse are connected, it will also activate all of them automatically. 04:42:33 And one more: USB keyboard/mouse that have keys or mouse buttons keld down at boot time which are ones that the operating system does not know how to deal with, are not automatically activated. 04:42:45 I wish I could get this person some mental help 04:43:13 yeah shove them in an institution. that works well. 04:43:45 If you want a USB file system, connecting a mouse after it is booted, or a keyboard after it is booted if you already have a keyboard, USB printer, USB audio, etc, then you must type the commands to activate them manually. 04:44:08 But the USB port would still provide power to inactive devices. 04:44:32 Oh, he was referring to fluoridation. Which is stupid, but at least there's a thought process other than "Everyone's trying to kill me" 04:45:16 (in regards to his belief that they poisoned the tap water) 04:45:58 What do you think about these ideas for security of connecting USB devices? 04:48:19 zzo38: Seems like a decent scheme. 04:48:51 Aaah, fluoridation. 04:48:54 Cursed by the stupid. 04:49:10 Meanwhile, I live in a location where the water needs defluoridation. 04:54:43 These USB security scheme might make the computer a bit more difficult to use, but I don't care. You can still easily use the commands to activate it if you know how. 04:55:11 Now I invented a new word "radio virus". 04:56:03 Even devices such as SIM cards that might not actually have direct radio transmitter, are capable of radio viruses. 04:57:26 They could use a subliminal code to leak your address book to your service provider. 05:00:59 Even if a keyboard (USB or not) has no radio transmitter, it can still have a radio virus that retains all information so that when you resell it or return it (it could be designed to break after a few years so that you will return it to the manufacturer for warranty repair!) they can steal that information! 05:03:53 Do you think any manufacturers have actually done any of this stuff? 05:09:29 "I believe in a literal six-day creation event where the universe was spoken into existence by God six to ten thousand years ago. I don't believe this for scientific reasons (though significant known scientific evidence corroborates with this origin hypothesis)" 05:10:38 - a cool dude 05:11:20 * elliott_ waits for pikhq to see that (there is a specific reason) 05:14:18 ... *wince* 05:14:24 What scientific evidence? 05:14:26 guess who wrote that pikhq, no googling 05:14:32 zzo38: there is none, this guy is deluding himself :P 05:14:52 elliott_: I got nothing, but *wince* 05:15:12 pikhq: bobthj 05:15:18 There may be a few kinds of philosophical evidence (for some possible ways of defining "evidence", probably not the standard ways though) 05:15:36 elliott_: ... 05:15:44 elliott_: Fucking hell. 05:15:55 pikhq: his blog is literally the best i cant stop reading its like a trainwreck in slow motion 05:16:01 that's from the series "understanding a conservative christian" 05:16:17 the post literally blames nazism on darwinism 05:16:48 Y'mean "Gott Mit Uns" Nazis? 05:17:45 ALLOW ME TO QUOTE 05:18:17 "As an example, consider the Nazis of World War II era. Collectively as a culture they embraced a morality which permitted the murder of millions of innocent individuals. Few would agree with their callous disregard for human life, yet they were acting well within the (non-)limits allowed by darwinist/secular humanist morality." 05:18:24 wait he's not even blaming it on darwinism 05:18:32 He's blaming it on secular humanism. 05:18:33 hes just saying that darwinism is ok with nazis 05:18:38 no wait 05:18:39 "Not so with darwinist-based atrocities (the eugenics movement, nazism)" 05:18:42 We now have evidence that Darwin was wrong (although that doesn't mean evolution in general is wrong) 05:18:49 oh man he namedrops moral relativism A+ 05:18:50 zzo38: about what 05:18:53 in particular? 05:19:06 * elliott_ is curious to what you refer 05:19:20 elliott_: Probably some minor nitpick that nobody cares about. 05:19:32 zzo38: Nobody claims Darwin was 100% correct, or even *cares if he was*. 05:19:51 Some things Darwin wrote do not match the actual scientific evidence of evolution. 05:19:57 oh come on don't be hostile to people just because they dared insult the great darwin 05:19:58 The general concept works. Many of the details work. That's how science works. 05:19:59 i'm _curious_ 05:20:19 * Sgeo is also curious 05:20:33 elliott_: I'm not sure of the exact detail, but I'm going to take a guess that it has something to do with his lack of knowledge of genetics. 05:20:42 (which literally did not *exist* at the time he wrote) 05:20:42 how about you let the person who does know answer 05:20:47 Okay. 05:20:49 pikhq: OK. Of course even other things in science we correct over time. This is not the exception. 05:21:32 Anyways. Nazis, secular humanism? They were about as Catholic as you could get without being the Pope. 05:22:16 (and one particular Nazi is as Catholic as you can get.) 05:23:22 zzo38, so what did Darwin get wrong? 05:23:41 Unfortunately I forget the details. 05:24:03 But pikhq might be correct that it has to do with his lack of knowledge of genetics. I am not sure. 05:26:05 Hmm, oddly enough the one thing someone from that era would have been *most* likely to screw up, he didn't. 05:26:17 i finished my article in a few hours and now i'm wondering how to spend the rest of my workday 05:26:27 well first draft anyway 05:26:35 pikhq, hmm, what? 05:26:41 He deemed that all human beings were of the same species and that if races were even useful markers at all, they were mere variants or sub-species. 05:26:54 turns out you have to add (G surjective => G identity) since that was not implied by what i had and xor was a counterexample 05:26:58 interesting right 05:26:59 Which was in stark contrast to the prevailing view that, say, Africans were literally sub-human. 05:27:27 erm darwin was actually pretty racist iirc 05:27:33 istr something about ~primitive negroes~ 05:27:56 What is the significance if Africans are literally sub-humans? That you cannot perform medical advice? 05:27:56 elliott_: By modern standards, perhaps. 05:28:42 elliott_: By standards of the day, he could have been lynched for being too progressive in some areas. 05:29:03 what does that even mean, he may have been progressive for the time, but saying he wasn't racist is disingenuous 05:29:33 What I'm saying is, he was nowhere near as racist as his contemporaries. Though literally everyone was racist then. 05:30:07 http://esolangs.org/wiki/Image:Surface_logo.png is this an album cover or a language logo 05:30:13 OK, now maybe I can understand. 05:30:22 surface the album cover 05:30:26 by whatever that shape is 05:30:44 2d grid on a sphere? 05:32:31 I don't get why madk makes logos for all his languages and does them all in blitzbasic and they're all kind of samey in a way I can't quite pinpoint with words 05:32:50 where by does them I mean implements them 05:33:14 there's something about american high school that introduces that kind of bored mechanical timewasting in people 05:33:15 OR IS THERE 05:33:24 i have observed this, like, THREE times, so it must be true. 05:33:31 i am the best at theories. 05:34:02 Am I a bored mechanical timewaster? 05:34:25 you're special 05:34:30 why do you even ask questions like that 05:34:31 elliott_: Most probably. 05:34:35 why would anyone ask questions like that 05:34:49 answer: sgeo 05:34:52 asking that question practically guarantees you're going to get an answer you don't like 05:34:54 elliott_: American high school is designed to make you think bored mechanical timewasting is "adult". 05:34:55 it's self-fulfilling 05:35:08 oklopol is witnessing the Christian in-fighting in #jesus 05:35:14 pikhq: except that doesn't have any relation really because this is _pastime_ 05:35:23 and esolangs aren't particularly conforming 05:35:25 Sgeo: oh hm did that guy 05:35:30 Sgeo: make a big deal out of me messaging him 05:35:32 i would like to see 05:35:44 No, he didn't. 05:35:51 -!- elliott_ has changed nick to botanq. 05:35:59 gotta change hostname 05:36:03 I don't want to know 05:36:13 i made it up on the spot 05:36:16 its my disguise 05:36:22 Lazy K glued to a shell: best esolang ever? 05:36:23 remind me to change it back btw 05:36:30 -!- elliott has joined. 05:36:32 -!- botanq has changed nick to elliott_. 05:36:34 oh 05:36:36 fucking cloak 05:36:42 um 05:36:44 -!- elliott has changed nick to botanq. 05:36:50 oh come on 05:36:51 elliott_, whatever you're about to do sounds mean 05:36:55 im just going to observe 05:36:57 i just dont want to be seen 05:37:03 Ok 05:37:12 -!- elliott_ has changed nick to elliott. 05:37:19 -!- elliott has quit (Changing host). 05:37:19 -!- elliott has joined. 05:37:25 hehehehehehe 05:37:30 HOW DO I DECLOAK BOTANQ 05:37:57 -!- botanq has quit (Client Quit). 05:38:05 -!- elliott_ has joined. 05:38:08 -!- elliott_ has changed nick to botanq. 05:38:23 -ChanServ- [#jesus] Welcome! may the Lord bless you and your family abundantly! 05:38:27 -!- botanq has left. 05:38:41 oklopol: anything interesting so far????? this is like sports 05:39:37 Sgeo: i was promised infighting there is no infigthing 05:39:47 You kind of missed it 05:40:01 i demand logs for my effort :( 05:40:15 Probably if you mention Catholicism it would trigger it 05:40:30 like 05:40:30 just 05:40:32 "catholicism"? 05:40:40 Hold on, going to pasta a log 05:40:55 http://pastebin.com/SA0GALzf 05:40:56 pasta the verb 05:41:15 " oklopol: anything interesting so far????? this is like sports" <<< ? 05:41:28 oklopol: kristians 05:41:30 on #jesus? 05:41:31 yes 05:41:32 erm 05:41:35 i'm not really listening 05:41:37 :( 05:41:38 i can look 05:41:49 who is luke-jr 05:41:51 he seems crazy 05:42:03 oh everyone is crazy 05:42:08 oklopol: there are a few Christians here, but far more heretics and pagans 05:42:08 oklopol: such as Eliyahu, IASON, and Free-man 05:42:08 wow 05:42:08 elliott, a Catholic. Considers non-catholics to be heretics 05:42:18 luke-jr: i agree only a devil would demand not to burn heretical books 05:42:18 wow 05:42:20 would it be 05:42:21 they're just kidding around. 05:42:21 controversial 05:42:24 if i decried book burning 05:42:33 Sgeo: ?? 05:42:43 elliott: youre a devil 05:42:46 brainproxy is a sane Catholic 05:42:57 But isn't exactly awake right now I guess 05:43:06 Sgeo: He believes in something logically inconsistent. 05:43:13 oh my god pikhq i knew you were about to fucking butt in 05:43:24 the chances that you dont have some inconsistent belief are about 0 05:43:28 practically everyone does 05:43:33 everyone compartmentalises 05:43:38 I read that the person who invented the BBL/Abundance system invented the word "Kristians" 05:43:38 He also self-identifies primarily by that belief. 05:43:44 oh really?? 05:43:46 so you know him then? 05:43:59 elliott: Sorry, I was assuming, thereby making a potential ass of myself. 05:44:39 it just really sucks to dismiss people because they happen to be religious, it's pointlessly divisive imo 05:45:08 it is not The Enemy of rational thinking outside of extremism, there are far more pertinent day-to-day irrationalities that are more improtant 05:45:22 It's so very easy to do in a ridiculously extremist society, though. 05:45:35 Sgeo: so um is hash jesus like a weird extremist channel this is bizarre 05:45:48 There are some non extremists there 05:45:59 I basically cannot get elected to a public office in my country because I do not believe in the existence of a deity. 05:46:07 elliott: you have a point, but i'm sure you also agree that everyone with any kind of religious beliefs is completely retarded and wrong and stupid and should be killed. 05:46:22 oklopol: oh definitely obviously. 05:46:24 pikhq: yeah and you can't get elected as president of zimbabwe because you're not robert mugabe 05:46:31 pikhq: third world countries, have fun 05:47:05 ok dudes 05:47:10 there has to be a bible verse 05:47:14 saying that all people are fallible 05:47:15 surely 05:47:29 "For all have sinned and fallen short of the glory of God" is close, at least. 05:47:54 hmm 05:47:57 im probably really bad at being christian 05:48:01 its not something i have experience with 05:48:06 lets see how long until they RAT ME OUT 05:48:26 was picking the kjv translation right i figured there might be some crazies who demanded on it in there 05:48:37 dammit, beaten by bible verses 05:48:41 Keep in mind that people just shy of Westboro Baptist Church levels of crazy are considered *normal* in American society. My tendency to dismiss people because they're religious should be viewed in that light. 05:48:49 um um gotta save face WOW how do you remember all the verses???? 05:48:52 being christian is thirsty work 05:49:14 elliott: It's only maybe a few paragraphs that get cited over and over and over again. 05:49:27 why would an infallible man sin again 05:49:50 I'd estimate maybe 0.5% of Christians have actually read a significant portion of the Bible. 05:49:57 i havent been paying attention and my head hurts 05:50:28 There are some things in the Bible I agree, including that no person is good. Nevertheless, you can say some people are good, by opinion and by relative and by other purposes. 05:50:29 botanq: also, if "all" were absolute there, it would include Jesus 05:50:32 i need a verse about jesus just being a man or something 05:50:34 and imperfect 05:50:38 quick guys quick exclamation marks 05:51:01 didn't jesus do bad stuff one time because some dudes set sold stuff in a temple or something 05:51:02 elliott: Good luck; the bits that got canonized either claim he was *divine* or are ambiguous. 05:51:06 There's the one where he says why do you call me Good, only God is good 05:51:13 monqy: No, that was considered Good. 05:51:13 However, it is good thing trying be good, you can learn more good stuff than other people maybe 05:51:16 monqy: Not just good, Good. 05:51:17 luke-jr: if one is still a man, and this causes one to sin -- what is it that causes one to sin, that is being a man? 05:51:17 is it not fallibility? 05:51:19 got my pretentious lingo on 05:51:21 pikhq: jesus did not sin? 05:51:34 oklopol: That's nearly universally held doctrine. 05:51:43 huh 05:51:53 There's the one where he says why do you call me Good, only God is good 05:51:54 oh this is good 05:51:56 but do i stick with kjv 05:51:59 i dont want them to htink im crazy 05:52:01 but they might be crazy about that 05:52:06 http://bible.cc/mark/10-18.htm 05:52:14 oh noooooooo 05:52:16 they have fancy definitoins 05:52:17 of infallible 05:52:19 and impeccable 05:52:22 lhe;[p 05:52:25 i cant deal 05:52:25 "And Jesus said unto him, Why callest thou me good? there is none good but one, that is, God." 05:52:39 oh theyre the same 05:53:03 I asked about it once, or maybe I googled it? Saw some stuff about how it's saying "See how you're calling me good? Think about why that is" 05:53:04 do they hate botanq yet 05:53:13 no surprisingly 05:53:15 i dont think 05:53:20 oklopol: I mean, shit, even the Eastern Orthodox holds that. And these are people who hold that everyone will go to heaven, literally everyone. 05:53:31 pikhq: that's a nice position 05:53:37 i mean, nicer than most christian positions on the afterlife 05:53:49 hehehe christian positions on the afterlife 05:53:51 pikhq: but everyone else sins? 05:54:07 And then there are people who hold that heaven is not a place, but a feeling. 05:54:08 elliott: The non-Christians will just have more work to become like God than the Christians is all. No big. 05:54:20 like even people who just die 5 minutes after being born? 05:54:48 (they hold that your entire mission is to become more like God; you will be doing this in life *and* the afterlife. If you don't convert before death, you just have more work ahead of you is all.) 05:55:01 http://uncyclopedia.wikia.com/wiki/UnNews:%22Genetic%22_disorders_shown_to_be_the_fault_of_the_baby 05:55:25 oklopol: Entire libraries could be filled with the apologetics on that. 05:55:35 playing minecraft and having fun with christians on irc at seven am 05:55:38 i love my life choices 05:56:06 okay #jesus is way over my head atm 05:56:09 You do not go anywhere when dead you do not walk. Other people can move you. You can be destroyed or eaten or cut in half. 05:56:16 "Books which openly oppose the teaching of Christ are to be burned." -Pope Pius VII, Diu Satis, infallible 05:56:24 pikhq: is book burning a current catholic doctrine 05:56:33 elliott: No. I'm not sure how it's not. 05:56:44 oh right catholics believe popes are infallible don't they huh 05:56:47 what happens when popes disagree 05:56:57 elliott: you can't have life choices, you're too youn 05:56:59 g 05:57:07 life choices are for adults :\ 05:57:07 Poples are not considered infallible unless there is discussion in the Vatican about it as well to almost prove it. 05:57:20 monqy: Though they're only infallible on matters of doctrine. 05:57:25 pikhq: was that statement by pius ex cathedra ??? i am not sure why i expect you to know 05:57:25 but 05:57:39 elliott: I wouldn't know. I've never been Catholic. 05:57:57 Sgeo: so free-man is one of the loony catholics? 05:58:05 elliott, no 05:58:07 oh 05:58:11 he seems pretty loony 05:58:13 is he non-catholic 05:58:15 or just 05:58:18 less loony than the others 05:58:21 Popes say a lot of things that are not considered infallible, and they can disagree about these things, and do disagree about these things. 05:58:21 loony heretic 05:58:30 He's a loony non-catholic 05:59:10 wow he wants all books that say wrong things to be burned 06:00:03 Sgeo: hahahaha oh man he is cool 06:00:07 is he from the middle ages 06:00:30 elliott: This is not uncommon. 06:00:53 pikhq: i think hes saying he burned satans bible once 06:01:18 What, LaVey's Satanic Bible? 06:01:34 is "that book by LaVey" an ok euphemism 06:01:36 he seems very touchy about it 06:01:43 -!- Lymee has quit (Read error: Connection reset by peer). 06:01:50 Yeah, I suppose. 06:02:05 Though it's unlikely he knows about it. :P 06:02:09 i dont know who authd it; i didnt read it. 06:02:13 i think he burned The Satanic Bible 06:02:16 thinking it was actually satan's bible 06:02:17 this is amazing 06:02:22 i wanna have him as a pet :{ 06:02:39 cute or annoying 06:02:44 oklopol: of course 06:02:45 oklopol: freedom of speech is wrong 06:02:45 oklopol: freedom of religion is outright heresy 06:02:50 botanq when i saw the book on the for-sale table at a library, i paid the 10 cents for it, and then burned it. 06:03:20 dying 06:04:02 Sgeo: do these guys even program 06:04:15 elliott, I think luke-jr does a little. 06:04:27 Sgeo: I take it amigojapan is non-religious 06:04:30 catholic programming no devils allowed 06:04:32 elliott, yep 06:04:34 or at least non-christian 06:04:41 elliott: I actually know that for a fact. 06:04:42 (I think) 06:04:49 pikhq: know what 06:04:49 -!- Lymee has joined. 06:04:50 -!- Lymee has quit (Changing host). 06:04:50 -!- Lymee has joined. 06:04:56 elliott: amigojapan is non-religious. 06:05:04 do you know em 06:05:15 Ran into him here and there on freenode. 06:05:27 So, not *well*, but we've talked. 06:06:20 free-man is a very stupid human being 06:06:23 Mostly ##japanese when I was there for a couple months, IIRC. 06:06:29 * [Free-man] (~b@c-68-56-234-19.hsd1.fl.comcast.net): ConspiracyLover 06:06:31 conspiracylover 06:07:00 good name for a good person 06:07:28 Free-man is talking to me in pm now 06:08:11 oklopol: oh oh oh paste plz 06:10:04 all masons , jesuits , knights of templar , knights of malta , catholic priests need to repent and walk away from theri involvement of the new world order 06:10:11 * [Eliyahu] (~Eliyahu@ip68-8-234-181.sd.sd.cox.net): Jesus is LORD 06:10:31 elliott, he's nuttier than that 06:10:37 Sgeo: do tell :-D 06:10:58 elliott, the end of the world is coming soon, and Obama's signing some treaty is.. part of it 06:11:20 Oh, and I _think_ he's a programmer 06:11:30 "This User believes that 9/9 equals 1, but .999… does not." --http://en.wikipedia.org/wiki/User:Luke-Jr 06:11:38 crying and laughing 06:11:49 "believes" 06:11:55 god 06:12:10 ASJFOISDHIOHSDOIFHSDOF WHAT 06:12:11 "This user values 06:12:11 I sure as hell *hope* he's not a programmer. 06:12:11 reason over faith" 06:12:17 what i 06:12:19 i 06:12:19 YOU JUST DIRECTLY CONTRADICTED EVERY RELIGIOUS USERBOX ABOVE YOU 06:12:25 http://pastebin.com/EV955JhH 06:12:31 OK YOU CAN JUSTIFY SOME RELIGIOUS BELIEFS AS BEING REASON BASED MAYBE 06:12:31 BUT 06:12:33 NOT YOURS??? 06:12:42 YOU CANT CALL IT REASON ITS PURE FAITH 06:12:43 sdfk 06:12:45 elliott: Satanism, oddly enough, doesn't require much work for that. 06:12:46 oh god he watches anime 06:12:57 how is inherently insubstantiated belief ever reasonable 06:13:08 unless it's like 06:13:10 (helps that supernaturalism is not part of it) 06:13:21 people pull an elaborate hoax to make it look reasonable 06:13:27 ok so he watches anime, doesn't believe in the separation of church and state, favours absolute monarchy, wants a philosopher king, values reason over faith, and believes that 9/9 equals 1, but .999… does not. 06:13:32 erm 06:13:42 he sure is an 06:13:44 interesting person 06:13:50 i was supposed to paste that in pm actually, was busy being annoyed at vjn pastebin not working atm 06:13:50 elliott: And has a language box saying he does not speak Japanese at all. 06:14:31 Why you would feel like listing that is beyond me. 06:14:31 pikhq: they're irreligious homosexual heretic faggots 06:14:40 Who are? 06:14:41 also foreigners 06:14:43 pikhq: ALL JAPANESE 06:14:45 Ah. 06:15:19 "This user believes in freedom of all types of information for all. 06:15:20 " 06:15:28 But doesn't believe in seperation of church and state... 06:15:31 How? 06:15:41 pikhq: and supports book-burning?? 06:15:44 this is great 06:15:49 truly beautiful 06:15:59 im dead 06:16:12 And prefers neither SI nor US contemporary units. 06:16:19 Erm, customary. 06:16:21 What others are there? 06:17:06 ENGLISH UNITS 06:17:09 presumably 06:17:13 he seems like a ~traditionalist~ 06:17:15 He's American. 06:17:19 and said he supports English English 06:17:20 so um 06:17:23 imperial units 06:17:35 He claims to be a native citizen of the US. 06:17:40 ...and??? 06:18:02 So he's probably the only person here who knows what a "stone" is. 06:21:07 It is the Wikipedia userboxes? 06:21:33 people probably shouldnt put their politics on wikipedia...it is a good way to attract enemies. 06:21:57 it seems you christians didint have enough destroying one antient library 06:21:59 What is their username? 06:22:00 meh, hes not even trying 06:22:17 what's the fun if you just antagonis ethem 06:24:10 yeah that was kind of annoying 06:24:38 anyone can yell at some christians, the trick is to do it without them realising you're yelling 06:24:41 and Free-man just loves telling people how he can't be offended 06:24:53 i dont really understand how he can simultaneously consider himself libertarian and support laws against abortion and gay marriage...those are kind of central issues to libertarianism, eh? 06:24:59 everyone's so annoying when you haven't slept for a few nights 06:25:04 The good old Finnish units: http://en.wikipedia.org/wiki/Finnish_units_of_measurement -- at least the names are (probably) ridiculous. 06:25:30 "poronkusema – (approximately 7.5 km). A Lappish measurement of distance; the distance a reindeer can travel before needing to stop to urinate." 06:25:36 quintopia: Yes, one of the central tenants of libertarianism is "fuck off, government". 06:25:45 quintopia: That quite explicitly extends to abortion and gay marriage. 06:26:16 lets not talk about a satan bible ok 06:26:16 see topic 06:26:16 or else i will have to ping matiu 06:26:36 oh no 06:27:00 jason be quiet, adults are talking. 06:27:00 a-dults 06:27:03 "...but not me." 06:27:13 Sgeo: can you make the stupid people shut up i dunno what kinda influence yo uhvae 06:27:30 also how is amigojapan not banned 06:27:39 i hope someone bans him 06:27:41 soon 06:27:42 Atheists are allowed. 06:27:44 so soon 06:27:50 Sgeo: are retards allowed? 06:27:50 Sgeo: even trolls? 06:27:55 I've never seen amigojapan act so... annoying though 06:27:59 Is the things discussed above related to Wikipedia userpage and if so what is their Wikipedia username? 06:28:08 Krynn sometimes bothers me, but not amigojapan usually 06:28:17 12 miles, the distance of one day's travel? 06:28:26 Man, Finns suck. 06:28:26 if you listen to Coast to Coast AM, turn it on now 06:28:27 if you listen to Coast to Coast AM, turn it on now 06:28:27 if you listen to Coast to Coast AM, turn it on now 06:28:28 "usually" you regular #jesus? 06:28:42 we should listen to coast to coast am in unison now 06:29:10 http://www.coasttocoastam.com/ 06:29:15 who's in 06:29:20 Ricco is permanently banned. This is a good thing. 06:29:23 who is ricco 06:29:27 Only subscribers to Coast Insider can access Coast to Coast AM live radio broadcasts, radio show archives and daily radio show highlights. 06:29:29 FUCK YOU BITCH 06:29:30 :( 06:29:43 i just heard a good phrse, "morally reprehensible" -- exactly! 06:29:45 Annoying guy who always talks about "Anyone want to discuss the history of Christianity? PM me" 06:29:55 Not much else 06:30:10 how many christian discussion avenues do you frequent exactly 06:30:29 Right now, just #jesus 06:30:40 And why? I thought those people were fucktards even when I *was* a Christian. 06:31:43 O, I found their username 06:31:53 Sgeo: so i take it these guys are all religious-right 06:31:59 the channel-aligned people i mean 06:32:09 The ones talking right now 06:32:15 erm 06:32:17 s/religious-/ 06:32:20 politically-right aligned i mean 06:32:35 im just considering whether i should try and amass a bunch of biblical arguents for socialism or not 06:32:45 Um, I know they're all in unison about how bad homosexuality is 06:32:54 Even the nice ones, for the most part 06:32:59 is bisexuality ok 06:33:01 famous bisexuality 06:33:06 elliott: I'm afraid not. 06:33:17 asexuality? 06:33:28 Actually, even worse if you exercise it; fornication and all. 06:33:31 monqy: No issues. 06:33:39 monqy: And advocated by Peter. 06:33:40 Sgeo: i need to know their personal opinion on famous bisexuality 06:33:53 Famous bisexuality? 06:33:57 pikhq: sexual abstinence =/= asexuality 06:34:01 I mean, you've called me famous bisexual 06:34:15 Sgeo: :D 06:34:15 elliott: Sorry, right. 06:34:20 oklopol: please explain to the kind young famous bisexual 06:34:23 surely you know something about famous bisexuality 06:34:25 being one and all 06:34:54 elliott: Still. Peter advocated literally *not having sex ever* for *everyone*, because Jesus was coming soon, so why should you? 06:34:56 hell rides the wind; it is everywhere, has always bin 06:35:01 2000 years later, well. 06:35:05 are those lyrics 06:35:12 I wouldn't know. 06:35:26 2000 years is a hell of a long time to abstain from sex 06:35:38 who didn't give up after the first five hundred 06:35:39 I was last up-to-date on Christian music in 2004. 06:36:00 Is it sad that I've heard some Christian music recently 06:36:02 pikhq: i googled and it isn't :P 06:36:02 it was a joke 06:36:03 though 06:36:10 Sgeo: yes its so sad commit suicide. 06:36:13 Sgeo: Not inherently. 06:36:41 There's some nice acapella Latin pieces out there that the Church commissioned... 06:37:25 I found hexclocks are not only Hex Headquarters. There is also the Nystrom version of hexclock and hexadecimal numbers speech. 07:40:16 -!- monqy has quit (Quit: hello). 07:46:10 -!- choochter has joined. 07:49:41 zzo38, you need to start speaking english 07:56:25 zzo38: don't 07:57:29 I do type and speak English. 07:59:21 unbelievable 08:03:51 -!- CakeProphet has joined. 08:03:51 -!- CakeProphet has quit (Changing host). 08:03:52 -!- CakeProphet has joined. 08:04:24 -!- CakeProphet has quit (Client Quit). 08:05:02 -!- CakeProphet has joined. 08:12:14 -!- choochter has quit (Quit: lang may yer lum reek..). 08:12:39 -!- Choochter has joined. 08:12:47 brainproxy: what do you think much of an oxymoron that a king should authorize a bible? 08:12:47 ie king james authorized version? 08:12:47 the rulers of the gentiles lord it over them 08:12:47 NOT so amoung yu 08:12:47 Free-man: be careful listening to the AM radio 08:12:55 anything from out of this world comes directly to you luke-jr|otg upon this rock I build my church 08:12:58 wow 08:13:00 Sgeo: does he ever stop 08:14:26 -!- Choochter has quit (Client Quit). 08:15:38 -!- myndzi\ has joined. 08:16:59 -!- myndzi has quit (Ping timeout: 264 seconds). 08:20:54 -!- CakeProphet has quit (Ping timeout: 260 seconds). 08:21:32 -!- myndzi\ has quit (Ping timeout: 276 seconds). 08:27:39 elliott: ... Wut. 08:27:52 Is he KJV-only, or anything-but-KJV-only? 08:27:54 I can't tell. 08:28:14 -!- elliott has quit (Ping timeout: 276 seconds). 08:43:11 -!- myndzi has joined. 08:45:42 -!- CakeProphet has joined. 08:52:31 -!- CakeProphet has quit (Quit: leaving). 08:52:55 -!- CakeProphet has joined. 08:53:02 -!- myndzi has quit (Ping timeout: 240 seconds). 08:53:10 aha. 08:53:19 I can use GADTs to distinguish between continuous and discrete signals. 08:54:02 -!- EgoBot has quit (Ping timeout: 240 seconds). 08:54:13 -!- EgoBot has joined. 08:55:57 It's 3 and I'm not sleeping. 08:56:11 I suck at this "fulfilling basic needs" thing, apparently. 08:56:49 as long as you get a lot of sleep it doesn't matter a whole let when that happens. 08:57:02 though sleeping at night is the best kind of sleep for you. 08:57:18 I work nightshift, so I go to bed around 9 AM most days.. 08:58:14 hmmm, so what would be an alternative to using GADTs for that purpose? 08:58:31 I strongly suspect I have some sort of issue here. Every night I find that I'm going to bed later. 08:59:52 This has been a regular pattern for years. 09:00:32 Pretty much the only thing that stops it from being t3h fucked up is, basically, a hard reset of my sleeping time via being woken up at what feels like an ungodly hour. 09:00:35 basically: type Continuous; type Discrete; data Signal a t where { DSignal :: (Integral s) => [a] -> s -> Signal a Discrete; CSignal :: (Integral t) => (t -> a) -> Signal a Continuous;} 09:01:24 er... 09:01:43 basically: type Continuous; type Discrete; data Signal a b where { DSignal :: (Integral s) => [a] -> s -> Signal a Discrete; CSignal :: (Integral t) => (t -> a) -> Signal a Continuous;} 09:01:49 ...had two different t's there. 09:03:34 zzo38: 09:04:23 but now say I had a typeclass with a toSignal.. would every instances need two type parameters or could the Discrete/Continuous parameter be supplied via the type signature of the implemented method? 09:05:03 class IsSignal (s a) where toSingal :: s a -> Signal a t 09:11:20 or maybe I need fundeps? dunno. 09:12:11 quintopia: OK, what did you want, please? 09:13:29 to talk to you 09:14:28 About what? 09:16:24 you 09:16:42 but i forgot that you cant be arsed to reply in a privmsg 09:24:01 I can reply in a private message if you want, but you just wrote "hello" 09:24:08 I have no response to that. 09:25:10 Currently others are not typing on this channel so you can type public in case other people are interested and can view logs, or respond, too. 09:28:44 oh alright 09:29:28 you are officially diagnosed autism spectrum yes? 09:32:16 -!- Sgeo_ has joined. 09:36:31 -!- pingveno_ has joined. 09:37:38 alright, i figured that would be the answer 09:37:48 Hrm? 09:40:01 > fix (\x -> cycle (1:x)) 09:40:02 [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,... 09:40:38 -!- pumpkin has joined. 09:40:39 -!- pumpkin has quit (Changing host). 09:40:39 -!- pumpkin has joined. 09:41:03 -!- pingveno has quit (*.net *.split). 09:41:03 -!- cheater__ has quit (*.net *.split). 09:41:03 -!- rodgort has quit (*.net *.split). 09:41:03 -!- copumpkin has quit (*.net *.split). 09:41:04 -!- Sgeo has quit (*.net *.split). 09:41:05 -!- clog has quit (*.net *.split). 09:41:25 Yes I am Aspergers I think it is on my Wikipedia userpage. 09:42:16 -!- Phantom_Hoover has joined. 09:42:42 Hmm. 09:43:05 ah 09:43:36 how does that affect your life? 09:44:51 I'm going to guess "in ways that seem utterly bizzare." 09:45:36 -!- rodgort has joined. 09:47:49 -!- cheater__ has joined. 09:54:26 -!- myndzi has joined. 10:03:14 I don't know. 10:07:12 huh 10:07:53 I don't know how that affect my life. 10:20:23 a friend told me today that there are a number of variables involved in such a diagnosis, and that you would likely rank intermediate on speech. what do you do with the extra brainpower that frees up? 10:22:49 Pictured: quintopia does not understand how the brain works. 10:22:49 Phantom_Hoover: You have 3 new messages. '/msg lambdabot @messages' to read them. 10:23:40 pictured: ph is very popular 10:25:03 How is that pictured. 10:25:08 Am I standing at a party. 10:25:13 With some kind of suit on. 10:25:26 With people crowding around to hear my interesting and novel opinions? 10:26:46 you got three messages! no one left me any mail 10:28:19 I don't know if it necessarily means extra brainpower is freed up..... 10:34:04 04:42:45: I wish I could get this person some mental help 10:34:14 Send them on a hillwalking trip. 10:37:41 05:27:27: erm darwin was actually pretty racist iirc 10:37:41 05:27:33: istr something about ~primitive negroes~ 10:38:11 Yes elliott you are either completely racist or completely non-racist there is no spectrum in between, 10:38:45 05:20:42: (which literally did not *exist* at the time he wrote) 10:39:09 Mendel did his experiments before OoS was published IIRC, but nobody noticed. 10:41:22 05:36:51: elliott_, whatever you're about to do sounds mean 10:41:41 Sgeo_ getting flustered: perhaps the best part of any cross-channel trolling? 10:43:19 zzo38: that was a joke. but i am curious how you spend what time you dont spend programming 10:45:45 i'm curious what everyone here does with the time they don't spend here 10:45:49 or programming 10:45:51 let's hear it 10:46:12 personally i do math and watch tv shows and occasionally go to the office to play pool alone 10:46:15 quintopia: About thinking about stuff, reading about stuff, writing about stuff, etc. And eat, drink, bed, etc. And other things. 10:46:49 Pool for one: perhaps the best game? 10:47:33 i don't really like two-player games, hard to measure progress 10:48:06 math <3 10:48:41 zzo38: have you done more math 10:48:50 i recall you did some math earlier :o 10:49:04 like you proved the pythagorean theorem in your head right 10:49:54 -!- hiato has quit (Quit: "nothing so gives the illusion of intelligence as personal association with large sums"). 10:56:44 oklopol: Yes I have done some math, but not much and I don't remember much of what I have done. But yes I did prove the pythagorean theorem in my head once while resting on the couch 10:57:46 i do almost allllll my math headwise 10:58:00 that's the best of maths, head mathin' 10:58:18 O, and once while in school I had calculus class, and math class. In the textbook for math class, there was a page (the teacher didn't mention that page at all) giving the sum series for e to the x, sin x, cos x, so I decided to calculate the derivative of those functions. 10:58:54 makes sense 10:58:56 And a visitor to my school once asked me to try to prove the twin prime conjecture. 10:59:03 lol 10:59:26 i'm sure you got very far with it 10:59:58 I didn't prove it at all. But I did think of things about it and sometimes even recently. 11:00:21 And I still think about mathematics sometimes. 11:00:26 twin prime conjecture was that there's infinitely many primes n such that n+2 is prime 11:00:27 ? 11:00:33 Yes 11:00:37 right 11:00:49 there's absolutely no way you could get anywhere with that from scratch 11:01:05 don't touch it 11:01:13 well 11:01:37 of course i suppose you don't really care if you actually solve something 11:02:03 in any case that kind of stuff is a definite nono unless you really know what you're doing 11:02:10 It is possible to get anywhere in mathematics from scratch. However, it is very difficult and many people do not know how (in most cases I don't know how either). 11:02:45 it is possible to get somewhere in mathematics from scratch. it is absolutely impossible to get anywhere from scratch if you take something like the twin prime conjecture as your goal. 11:03:13 No, it is just extremely difficult, I think. 11:03:34 well of course, but the point is it takes way more than a single human life. 11:03:54 Maybe it does. I wouldn't know for sure, however. 11:04:12 a single mathematician's life i mean. quite a few hundred non-mathematician lives prolly. 11:04:30 well it's just how number theory is 11:05:09 do you study something btw? 11:05:27 11:05:09: do you study something btw? 11:05:32 I do sometimes use mathematics in various situation, including programming, games, and I have even used matrices in accounting. 11:05:39 Isn't zzo part of the dastardly legion of teenagers? 11:05:51 zzo38: you don't remember talking to me about your matrix accounting thing? 11:05:53 oklopol: No, I don't formally study anything. 11:06:22 oklopol: Not you specifically; I do remember on this channel. However, I was just mentioning it. 11:06:31 more like talking about it for a few hours 11:07:08 No, I mean *this* time I was just mentioning it. That time before, yes I wrote many things about it. 11:08:26 oh right 11:09:03 anyhow in conclusion, steer clear of the twin prime conjecture, i'll gladly give you fun little exercises if you like math 11:17:04 I find mathematics useful in programming sometimes. I have also used mathematics to invent a new kind of ability scores generation method for Dungeons&Dragons, calculus to solve some physics questions (the teacher didn't expect us to understand calculus and I was absent on the day they gave the equations), and I have calculated probabilities of various events in pokemon card, etc. 11:17:25 And the magical system in Icosahedral RPG is very mathematical. 11:19:08 -!- oerjan has joined. 11:19:11 all of that really sounds more like bore than math to me but w/e's 11:19:28 What is w/e's? 11:19:36 w/e means whatever 11:19:44 OK 11:20:13 it means i'm not particularly interested in defending my point, not that you'd ever attack a point 11:20:51 For example, do you know what a "mana" is in Icosahedral RPG? 11:21:02 nopes 11:21:16 icosahedron is like 20? 11:21:35 C'mon, oklopol, you should know that. 11:21:36 Icosahedron is a solid of 20 sides. 11:21:40 It's practically graph theory. 11:21:49 But that is irrelevant in this case. 11:22:13 eek no clog 11:22:27 oerjan, the connection's been clogged. 11:22:50 ("Icosahedral RPG" is simply the name of a role playing game system. Not important to my example.) 11:22:58 Phantom_Hoover: i often ask terms even if i know them so no one has to know anything. 11:23:08 just open up the definition 11:23:15 we got the time lol 11:23:36 zzo38: so what about the relevant part? 11:23:49 oklopol, also your ban in #jesus has expired. 11:24:04 Phantom_Hoover: i was actually going to leave after saying it was too fucked up for me 11:24:09 because it was way too fucked up for me 11:24:56 oklopol: It is what a "mana" is in this system. Is the relevant part. 11:25:35 i thought you were going to tell me about the math going on in the game 11:26:04 OK. 11:26:26 really i don't see how any interesting math could have anything to do with a game 11:26:46 A mana is a mathematical kind of thing, similar to working of prime numbers. However, there are only five primes. 11:26:52 Yeah, it's not like there's any kind of game theory. 11:26:55 well except perhaps proving some property of the game 11:27:00 Phantom_Hoover: yeah not what i meant 11:27:24 and game theory is not really about games, unless you count combinatorial game theory as a branch of gt 11:27:28 what i meant was 11:27:36 Spells can also be multiplied together and stuff, and possibly one spell to the power of another, etc. 11:27:38 i don't see how there could be a game where gameplay involved interesting math. 11:27:51 oklopol, what if you made Eodermdrome: the game. 11:28:39 The math of spells multiplying/adding/subtracting/dividing/etc is not used in most situations, though. Mana is used all the time in spellcasting though. 11:28:43 well you could get interesting puzzles surely, but an interesting puzzle is still basically a... search party. 11:28:51 mind my insane choice of wording 11:28:57 ..."mind" 11:28:58 yeah mind. 11:30:01 A mana cost can be described as a polynomial in X with the coefficients being manas. 11:30:02 so yeah games can be fun but good math puzzles tend to be one of a kind. 11:30:41 A spell level is the total number of manas being added together in the coefficient for 0 exponent of the spell's mana cost. 11:31:04 zzo38: and where does theorem proving come in? 11:31:53 conjecturing? restructuring your proof? generalizing it? 11:32:00 that's all math is 11:32:03 oklopol: It might help in some cases, maybe. There is no need to prove theorems simply to play the game, though. But maybe it helps to prove something mathematically. 11:32:47 i'm going to assume you are not doing math at all when you're playing, you are just tediously manipulating objects which are often used in math. 11:32:50 You might be able to prove things about this magical stuff and maybe it might help in strategy or something, I don't know. 11:33:23 my pretentiousness knows no limits 11:33:29 mwahaha 11:34:14 zzo38: you can also prove theorems about go, but playing go is very far from doing math. 11:34:26 oklopol: Actually in most cases you can just think of it in simpler ways and it is not as tedious. But this math makes it possible to be mathematically formal and proving. 11:35:15 There are many similaries between Wei-qi and Xiang-qi. 11:35:18 well i dunno the game, so i'll just stay sceptical no matter what you say 11:35:36 Is it OK to be sceptical then. 11:35:45 slightly sceptical 11:35:54 It is OK. 11:36:04 yes 11:36:08 06:16:21: What others are there? 11:36:09 CGS 11:36:15 ONE TRUE UNIT SYSTEM 11:37:24 Also is it just me or has zzo invented fields by accident with his mana system? 11:38:00 Let me see. 11:39:41 "In abstract algebra, a field is a commutative ring whose nonzero elements form a group under multiplication. As such it is an algebraic structure with notions of addition, subtraction, multiplication, and division, satisfying certain axioms." No, when adding manas you do not result in a mana (you could call it a multimana). 11:39:54 doesn't take a genius to abstract fields out of Q. if you accidentally characterize the finite once tho, i would certainly be impressed. 11:39:55 Erm, zzo38, there's nothing polynomial about your mana system. 11:40:22 *ones 11:41:20 -!- clog has joined. 11:41:43 Phantom_Hoover: Manas can be used as coefficients in polynomials (or possibly as values of variables). More accurately, multimanas can. 11:42:27 zzo38, there is no exponentiation in it; it's not a polynomial. 11:43:01 yeah if you're not closed under multiplication, polynomial is kind of a weird term 11:43:24 since polynomials are just sums of products 11:43:44 The exponents have to be integers though. 11:44:47 And you can multiply numbers by manas, manas by manas, add, multiply, etc. So it is not a field. But maybe it is a "unique factorization domain". 11:45:20 That is, for manas. 11:45:44 I think multimanas are not. 11:46:03 Unless it can be proved that it is. 11:49:15 The system of manas does have identity element, which is called "colorless" in this system (written as 1 since it is also used the same way as the number 1 in polynomials and products, including products with numbers) 11:50:28 Manas which are neither prime nor composite are colorless. 11:50:48 you have multiple identity elements then? 11:50:59 -!- FireFly has joined. 11:51:17 No, only one identity element. 11:52:01 darn 11:52:35 What darn? 11:53:12 well you know because i could've used my "wtf, you have multiple identity elements smiley" o=oO=O 11:53:34 yeah, i have a smiley for everything. 11:56:28 You have a smiley for everything? 11:57:25 actually i can't come up with another one like that, and even that one didn't really look like a face 11:57:46 if someone comes up with a better one, i'd love to hear it 11:58:43 zzo38: did you get the joke? 12:01:32 -!- derrik has joined. 12:02:59 `addquote well you know because i could've used my "wtf, you have multiple identity elements smiley" o=oO=O yeah, i have a smiley for everything. 12:03:01 496) well you know because i could've used my "wtf, you have multiple identity elements smiley" o=oO=O yeah, i have a smiley for everything. 12:03:19 me me me me 12:04:22 oklopol: that's because it looked like _multiple_ faces, duh 12:06:46 :DDDDDDDDDDDDDDDDDDDDDDDDDDDDDD 12:06:51 oklopol, how many other smilies do you have for situations like this. 12:09:03 well i have my "wtf, x has two inverses" smiley p=p x q=q 12:11:26 but i may run out after that 12:12:57 /=/ x \=\ would be great but i'm not sure it's very readable. 12:24:19 -!- boily has joined. 12:26:10 I think manas cannot actually be the coefficients of polynomials, although multimanas can be (and a mana can be used as a multimana, so that it is a multimana and can be a coefficient in a polynomial) 12:26:53 But I don't know a lot about abstract algebra so I might be wrong 12:29:58 I invented a character sheet for my character of a Level 20 D&D campaign where you start with no money or equipment. What age/height/weight should I specify? 12:33:28 oklopol: perfectly readable, clearly those are multiple http://internetfamo.us/class/wp-content/uploads/2007/11/tiefighter.png 12:34:28 they are EYES 12:34:29 ... 12:34:42 ( 12:34:45 :( 12:34:59 oklopol: that's just something you are saying to deny blowing up that death star in the middle 12:36:08 -!- BeholdMyGlory has joined. 12:36:11 -!- cheater__ has quit (Ping timeout: 250 seconds). 12:38:42 zzo38: 15/20 m/70 Mg 12:43:24 oerjan: What units for the first number? Years? 12:43:33 yes 12:43:53 -!- olsner has quit (Read error: Operation timed out). 12:43:54 What kind of creature would have those numbers? 12:44:01 some kind of giant? 12:44:02 -!- derrik has quit (Quit: ChatZilla 0.9.86.1-rdmsoft [XULRunner 1.9.0.17/2009122204]). 12:44:12 Yes I would think so. 12:44:45 D&D does not use metric however. 12:44:47 basically i just blew up a human 10 times 12:44:55 well 20 m ~ 60 feet, i think 12:45:08 ok a little more 12:45:32 and i don't know US weight units 12:45:37 That isn't my character however. I put in different numbers for height and weight, and nothing for age yet. 12:45:46 bah 12:46:41 -!- iconmaster has joined. 12:46:41 `google is this working still? 12:46:42 No output. 12:47:06 seems not. but then google changes their APIs like others change shirts, iiuc 12:47:16 hm wait 12:47:20 `sh which google 12:47:22 No output. 12:47:32 that might not help 12:47:41 `sh ls bin/go* 12:47:42 No output. 12:47:55 `sh ls bin/ca* 12:47:57 No output. 12:48:00 wat 12:48:06 `sh ls bin/ 12:48:07 No output. 12:48:12 ... 12:48:21 `sh ls 12:48:23 No output. 12:48:24 `run which google 12:48:25 ​/tmp/hackenv.3400/bin/google 12:48:56 `run which calc 12:48:58 ​/tmp/hackenv.3492/bin/calc 12:49:11 `calc 20 m in feet 12:49:13 No output. 12:49:16 :( 12:50:31 -!- Taneb has joined. 12:50:45 Hello! 12:51:26 hi Taneb! 12:54:05 The book doesn't have monster age categories. But it would be useful to have it even in case of not monster player characters, such as the Object Reading power. 13:01:58 -!- olsner has joined. 13:03:10 O.o 13:03:18 Taneb: is noryshorts just replacing nand by nor in the description of nandypants? 13:03:33 pikhq: are you around? 13:03:34 Minecraft chests have a maximum density of 2 million times that inside a supermassive black hole. 13:03:45 @oerjan yeah 13:03:45 Unknown command, try @list 13:04:03 Taneb: @ is a dangerous prefix in our channel :P 13:04:26 I'll make sure to note that. 13:04:43 @tell me about it. 13:04:44 Consider it noted. 13:04:55 Taneb: which means they're not _entirely_ dual to each other, because they treat 0 and 1 differently 13:05:18 No, but I think they're both Turing Complete 13:05:43 probably 13:05:50 I'm working on translating boolfuck into noryshorts 13:06:10 It's the input that's the hardest 13:07:20 Phantom_Hoover: me is going to be somewhat confused if he frequents the haskell channels 13:07:40 Phantom_Hoover says: "about it" 13:08:10 @tell Phantom_Hoover We should just talk like this from now on. 13:08:10 Consider it noted. 13:10:17 elliott: http://www.youtube.com/user/dWhoFan9#p/c/C6995500E1B2A0ED/10/XNplESJ8gss 13:10:29 Phantom_Hoover: now my question is, where do you find a computer with enough memory to fill up that supermassive black hole chest. especially one which hasn't collapsed into a black hole itself. 13:11:05 oerjan, density, not volume. 13:11:06 Phantom_Hoover: You have 1 new message. '/msg lambdabot @messages' to read it. 13:11:19 @messages 13:11:19 Gregor said 3m 9s ago: We should just talk like this from now on. 13:11:26 Phantom_Hoover: um minecraft chests have zero volume? 13:11:27 @tell Gregor It is the best way to talk. 13:11:28 Consider it noted. 13:11:41 oerjan, density inside the Schwartzchild radius. 13:12:09 coppro, I love the part where it transfers into what I shall call forever the Scottish Hamster section. 13:12:10 Phantom_Hoover: i'm just pointing out that i doubt you can get hold of enough minecraft objects to fill it with to attain that density... 13:12:24 @messages 13:12:24 oerjan said 5m 10d 3h 35m 52s ago: I have been looking a bit at your egojoust parsing code and i think you are miscalculating the new size of the program after expansion, particularly if using ({})% 13:12:25 (you are clobbering llen for a different use) but also elsewhere (ignoring the atoi length). might you not end up looking at unitialized memory? 13:12:25 oerjan said 5m 10d 3h 29m 30s ago: I started looking because quintopia tells he cannot get ({})% to use with iteration count more than 20 or so, at least if the contents are slightly complicated 13:12:25 iiuc 13:12:25 oerjan said 5m 10d 3h 28m 56s ago: *to work 13:12:26 oerjan said 5m 10d 3h 23m 8s ago: the interaction of this with memmove(prog.buf + i + temp.bufused, prog.buf + end + 1, prog.bufused - end - 1); after a _nested_ expansion when prog.bufused has _ 13:12:28 already_ been miscalculated particularly worries me, that _could_ be the case giving quintopia problems... 13:12:30 oerjan said 5m 10d 2h 55m 5s ago: actually won't the memmove(prog.buf + i + temp.bufused, prog.buf + end + 1, prog.bufused - end - 1); end up copying the ) as well... _that_ would surely be a 13:12:32 Holy eff X-D 13:12:32 problem when nesting... 13:12:34 oerjan said 5m 10d 2h 54m ago: Scratch that last, i cannot read. also the atoi length is of course not a problem. the reuse of llen inside the % branch still is, i believe. 13:12:35 Sorry guys :P 13:12:36 oerjan said 5m 10d 2h 47m 10s ago: Summary (I don't know whether the previous messages were cleared or not): i think the reuse of llen in the % branch of egojoust.c's parseFile function is a problem 13:12:38 that causes the prog.bufused to be calculated wrong when using ({})%, conceivable leading to reading of unitialized memory 13:12:39 Gregor: wat 13:12:40 Plugin `tell' failed with: thread killed 13:12:45 ... lul 13:12:50 5 moths ago. 13:13:01 Also, love that bug with @messages. 13:13:10 hm _is_ it a bug? 13:13:13 @messages 13:13:13 You don't have any new messages. 13:13:16 darn 13:13:21 seems so 13:13:21 Phantom_Hoover: So what's the maximum-mass object you can put in a chest? 13:13:24 Many a time has elliott piled my inbox high with stuff that was then lost when it crashed. 13:13:33 Gregor, 64-stack of gold blocks. 13:14:07 Heh, that's a 1mx1mx1m block o' gold X-D 13:14:26 Phantom_Hoover: I Am the Doctor is also fantastic 13:14:51 Gregor, no, it's an 8x8x8m block of gold. 13:15:27 coppro, it doesn't have Scottish Hamster in it, though. 13:15:27 -!- derrik has joined. 13:15:41 Phantom_Hoover: I meant /each/ block is a 1x1x1m. 13:16:02 Gregor, yes. 13:16:11 Phantom_Hoover: is the Scottish Hamster the part missing from the televised title theme? 13:17:02 coppro, http://www.bbc.co.uk/doctorwho/classic/news/radiophonatron.shtml 13:17:14 Click the button called "Scottish Hamster" and all shall be revealed. 13:18:51 yep, that's the bit 13:18:56 best part of the theme in my opinion 13:19:30 Indeed. 13:19:33 I think I've got everything for the Boolfuck to Noryshorts conversion exceppt input 13:20:49 Nobody cares about input anyway. 13:20:54 !underload ((We also have a proper esolang bot)!a(:^)*S):^ 13:20:55 ​((We also have a proper esolang bot)!a(:^)*S):^ 13:21:07 XD 13:21:09 I want to do input for completion's sake 13:21:13 Or wait, was it meant to do that? 13:22:03 !underload ((_Could be..._)!a(:^)*S):^ 13:22:04 ​((_Could be..._)!a(:^)*S):^ 13:22:26 !underload ((((((( 13:22:26 Error: Expected ) at end of input 13:22:48 O_o Phantom_Hoover hasn't seen underload before? 13:23:25 oerjan, no, but this thing is confusing me although this is primarily due to my own laziness. 13:23:37 http://esoteric.voxelperfect.net/wiki/Underload 13:23:46 yep 13:24:00 one of my favorite languages, obviously :P 13:27:41 !slashes /*/\/.\\0\/,\\,0,\\,1\/\/.\\1\/,\\,1,\\,0\/\/,\\,\/.\//********/.//.0 13:27:42 0110100110010110100101100110100110010110011010010110100110010110100101100110100101101001100101100110100110010110100101100110100110010110011010010110100110010110011010011001011010010110011010010110100110010110100101100110100110010110011010010110100110010110 13:27:51 and that's another one 13:33:21 Right, I've think I've translated input from Boolfuck to Noryshorts 13:36:36 And I've had an idea for a simpler one for Nandypants 13:38:05 "Nandypants is a dual-tape bitwise language that ended up, completely accidentally, being extremely similar to brainfuck." 13:38:35 Invented by me 13:38:43 Well, you seem moderately nice, so I won't brickbrain you. 13:39:03 Thanks? 13:39:10 XD 13:39:35 See User:Phantom_Hoover on the wiki for more information. 13:41:43 Oh, ooh dear 13:42:13 Graa, I seriously need to fix fungot. 13:42:16 Don't worry, I'm not counting it as a derivative. 13:42:24 fizzie, just ignore the idiot who complained? 13:42:31 They've left by now, surely? 13:43:04 fizzie: YAY 13:43:35 fizzie, also, were you actually making a Homestuck set for him? 13:44:29 "It is currently unknown if BoolSpool is Turing Complete, as the specifications are not yet finished." 13:44:37 Hmm, that's a bit of an odd statement. 13:44:51 wioll haven been 13:45:49 Phantom_Hoover: Well, I crawled the pages and wrote a bit of Perl to heuristically HTML-scrape the pages into content. There's not *that* much easily extractable text, though, since quite a lot of it is in images/flash. The pesterlogs (and such), mainly. 13:46:18 I think I'll just bring fungot back as-is for now, though I think I finally located the proper place to fix. (It was even commented!) 13:46:21 If it includes pesterlogs then I am making another bot to make sure he's never changed off that setting. 13:46:34 -!- pumpkin has quit (Remote host closed the connection). 13:46:48 Taneb: oh hm i think your nandypants boolfuck has a bug 13:46:59 -!- copumpkin has joined. 13:47:00 -!- copumpkin has quit (Changing host). 13:47:00 -!- copumpkin has joined. 13:47:08 Go ahead... 13:47:43 when jumping between the even numbers in the [ ] translation, the b placement becomes wrong 13:48:02 Yeah, fixing that now 13:48:08 I even have the edit page open 13:49:04 -!- derrik has quit (Quit: laterzz). 13:52:36 -!- fungot has joined. 13:52:53 There 13:53:04 ^ul ((Happy happy joy joy! )S:^):^ 13:53:04 Happy happy joy joy! Happy happy joy joy! Happy happy joy joy! Happy happy joy joy! Happy happy joy joy! Happy happy joy joy! Happy happy joy joy! Happy happy joy joy! Happy happy joy joy! Happy happy joy joy! Happy happy joy joy! Happy happy joy joy! Happy happy joy joy! Happy happy joy joy! Happy happy joy joy! Happy hap ...too much output! 13:53:19 fungot there is another of our bot-herd. 13:53:20 fizzie: socket.write lambda self, x: x+x in python and its not maintainable code 13:53:28 ^source 13:53:28 http://git.zem.fi/fungot/blob/HEAD:/fungot.b98 13:53:42 and the only one to be _written_ in an esolang. 13:53:49 (So far.) 13:53:50 well there _have_ been others. 13:53:57 thutubot, at least. 13:54:30 They haven't been as witty conversationalists as fungot, though. 13:54:31 fizzie: fnord?). the queue object should support the following operations: binding a variable x_cfg in a path from inert material to a cell phone... 13:54:39 indeed 13:54:52 ^style 13:54:53 Available: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc* jargon lovecraft nethack pa speeches ss wp youtube 13:56:20 -!- iconmaster has quit (Ping timeout: 255 seconds). 13:56:24 -!- augur has quit (Remote host closed the connection). 13:56:29 fungot! 13:56:30 Phantom_Hoover: ( which doesn't work... the mere *concept* of language is ineligible.' 13:56:34 HOW I HAVE MISSED YOU 13:57:08 fizzie, so wait, who was the little prick who got him taken down to start with? 13:57:19 Phantom_Hoover, does your brainfuck-derivative pledge include humorous animal themed brainfuck-equivaletns? 13:57:58 Taneb, yes, except brickbraining those people is pointless because it would just make their brain slightly harder. 13:58:14 Phantom_Hoover: I don't really recall the specifics. I just saw the "can be used to do CTCP" discussed on-channel and thought "well I'll take it offline and fix, shan't be hard", then managed to not get anything done evar. 13:58:26 i'd imagine it applies to those _especially_. 13:58:33 What about the at least one who has otherwise displayed originality in esoterica? 13:58:37 oerjan, do you know who it was? 13:58:54 Taneb, the only forgiveable one is Ook! 13:59:04 That was the one I was referring too 13:59:28 Phantom_Hoover: i don't think it was disclosed who _complained_. the staff member who came down on Gregor was plazma. 13:59:31 And that's because a) it was made by DMM and I can't hate DMM and b) it was the first one, so it was slightly amusing. 13:59:51 DMM is pretty much the only reason I'm here 14:00:00 We all love DMM. 14:01:51 I'm going to vote that the text "Well, not really, but h" to be replaced with "H" in DMM's article on the wiki 14:05:57 Also, bye everyone 14:06:16 heh 14:07:42 TbH, other than Piet, he didn't really make any good esolangs, but the rest were jokes back when joke esolangs were still funny, so that's OK. 14:08:40 -!- Behold has joined. 14:10:19 -!- Taneb has quit (Ping timeout: 260 seconds). 14:10:44 http://the-diplomat.com/2011/07/05/china%E2%80%99s-ticking-debt-bomb/ 14:10:47 Waitwaitwait. 14:11:03 I thought China was the one that *credited* money. 14:11:10 How can everyone be in debt. 14:11:13 It makes no sense. 14:11:25 -!- BeholdMyGlory has quit (Ping timeout: 240 seconds). 14:12:53 Phantom_Hoover: I agree. 14:13:21 altho' most inter-western debts aren't country-to-country, but country-to-bank 14:13:39 or country-to-international-organization or such 14:14:09 which explains it to some extent 14:23:37 -!- augur has joined. 14:34:52 ...so basically, we are hipster esolangers. 14:35:05 * oerjan leaves you to scream in despair 14:36:53 I am too hip to be a hipster. 14:40:50 I SAID DESPAIR, NOT SELF-DENIAL 14:46:22 -!- augur has quit (Remote host closed the connection). 15:16:37 -!- Taneb has joined. 15:16:47 Hello IRC! 15:17:48 -!- ais523 has joined. 15:18:20 Note to self: Stop abusing the computer 15:18:43 I think I wrote some of the most ridiculous code in my life today 15:18:43 ais523: You have 1 new message. '/msg lambdabot @messages' to read it. 15:18:44 Taneb: hello again. i fixed your [ ] code, or so i hope. 15:19:01 it created a new process, then errored out if its PID wasn't 2 15:19:06 -!- SgeoN1 has joined. 15:19:32 also, i had this realization the nandypants code would work for noryshorts too if you changed the initial setup to >^< instead. 15:20:05 because then everything becomes dual. 15:20:23 Hmm, yeah 15:20:30 So basically, you're writing init related stuff? 15:20:41 -!- monqy has joined. 15:20:43 -!- augur has joined. 15:20:48 SgeoN1: close 15:20:53 it was part of a fake init process 15:20:55 that pretends to be init 15:21:15 I'm making a sort of improved chroot 15:21:22 that hides the existence of other processes as well as other directories 15:21:29 My computer is now making very weird sounds 15:21:56 Why oh why did I mentally insert an "out with" into that sentence 15:21:59 as far as I can tell, all init actually needs to do is to spawn one process, then just do int s; for(;;) wait(&s); 15:22:09 Is there a way to check if it's from fan weirdness or hdd weirdness? 15:22:19 fan weirdness is likely to depend on temperature 15:22:23 Taneb: well SgeoN1 _was_ abusing it... 15:22:27 likewise, hdd weirdness will depend on disk activity 15:22:41 It started after I abruptly moved it 15:22:58 why did you abruptly move it? 15:23:02 and was it switched on at the time? 15:23:03 Probably HDD weirdness 15:23:13 anyway, if you haven't already, now would be a good time to make backups to external media 15:23:43 :/ 15:23:53 -!- Sgeo_ has quit (Ping timeout: 250 seconds). 15:24:13 Okay, that's worrying. 15:25:02 Taneb: there's some history here, Sgeo has managed to break one disk already by acting in a completely inappropriate way after a disk head crash 15:25:08 Um, I tried hibernating, got impatient, forced it off. Turning it on boots into grub like normal, but still with weird sounds. Turned it off again 15:25:15 I'd have thought he'd have learned to make backups 15:26:39 -!- oerjan has quit (Quit: Later). 15:27:10 I may make an esolang based on football (soccer) 15:28:16 Like "[player] scores!" would be output 15:28:23 hmm 15:28:30 such languages are either awesome or fail horribly 15:28:35 and it's hard to figure out which, often 15:29:10 And input would be "The manager is having words with [player]" 15:29:14 Or something 15:29:35 Well, that's interesting. Sound does not seem to be correlated with HDD light 15:33:19 No sound for a while 15:33:30 Going to try some SMART stuff 15:33:52 And passing would increment the the ball's variable 15:34:06 SgeoN1: Like backing up your stuff? 15:35:48 Also, is Deadfish a finite state automaton? 15:35:56 Reallocated Sector Count is at Warning. Toolyip says Failure is a sign of imminent disk failure 15:36:28 That may because something very bad is about to happen 15:36:44 That is not reflected in Overall Assessment, Whig just says that Disk has a few bad sectors 15:37:16 How much is a few? 15:38:08 Value for Reallocated Sector Count: Normalized: 100 Worst: 100 Threshold: 50 Value: 18 sectors 15:38:36 Oh, I have 23 bad sectors 15:38:45 It's going up 15:39:17 Um, no 15:39:39 I assume it was zero at some point 15:39:44 Current Pending Sector count: 5 sectors. 15:45:05 No nasty sounds for a while now. Going to turn off and on and see if the numbers get worse. 15:50:16 Shutdown has stalled at Stopping early crypto disks... 15:54:58 -!- ais523 has left (" fizzie: it makes demons fly out of my window, washing the windows api"). 15:58:21 Nothing seems to have gotten worse. I'm going to take this as a "just handle the computer with a bit more care" sign for today, will work on backups soon 15:59:53 No weird sounds for a log while now 16:04:28 -!- SgeoN1 has quit (Read error: Connection reset by peer). 16:04:41 -!- SgeoN1 has joined. 16:06:58 -!- Sgeo has joined. 16:11:06 Holding steady at 18/5 16:13:44 -!- jcp|1 has joined. 16:15:14 -!- jcp has quit (Read error: Operation timed out). 16:15:27 -!- jcp|other has quit (Ping timeout: 250 seconds). 16:16:56 -!- jcp has joined. 16:20:25 -!- augur has quit (Ping timeout: 260 seconds). 16:20:50 -!- augur has joined. 16:31:11 -!- Taneb has quit (Ping timeout: 276 seconds). 16:32:22 -!- MigoMipo has joined. 16:32:25 -!- Taneb has joined. 16:32:44 Hello 16:36:33 taneb: why world is like wtf 16:37:17 Um... what? 16:39:07 Do you have ideas about literate programming and/or related stuff? 16:41:33 -!- pingveno_ has changed nick to pingveno. 16:43:08 zzo38: no 16:43:28 do you have ideas on how to brainwash yourself? 16:44:26 I don't think so. 16:44:57 `quote wtf 16:44:58 131) alise: why internet is like wtf \ 136) And... WTF is it doing. :( Is it sexing? \ 197) pikhq, Okinawan? Wtf is that \ 236) elliott: just to bring you up to speed, you are now my baby nephew. wtf, elliott is a nephew and his uncle is here? what 16:47:48 -!- SgeoN1 has quit (Ping timeout: 255 seconds). 16:47:58 -!- Sgeo_ has joined. 16:48:37 -!- SgeoN1 has joined. 16:49:15 -!- Sgeo has quit (Ping timeout: 250 seconds). 16:50:26 -!- ais523 has joined. 16:51:39 Why does MiKTeX require postscript to print a document? 16:52:23 zzo38: Historical/hysterical reasons? 16:53:17 Gregor, *reasons/raisins. 16:53:37 Clearly hysterical raisins. 16:54:11 It ought to convert directly DVI to Windows printer format. 16:54:32 Which is probably postscript or something closely related ... 16:54:36 The Linux system does have directly DVI to PCL, for printing on PCL printer. 16:54:54 Is it postscript? If so, that would explain why it is needed. 16:57:10 I know that it was Postscript in Windows 3.11 8-D 17:05:21 DVI is very good designed format I think 17:05:22 -!- zzo38 has quit (Remote host closed the connection). 17:05:48 -!- Taneb has quit (Ping timeout: 255 seconds). 17:28:23 -!- Sgeo has joined. 17:29:39 -!- Sgeo_ has quit (Ping timeout: 255 seconds). 17:31:52 There are printing formats other than PS and PDF? 17:32:05 tswett: Microsoft have their own called XPS 17:32:10 which they tried to push for a while, but nobody used it anyway 17:33:31 -!- derrik has joined. 17:34:36 -!- derrik has left. 17:44:35 I thought Windows used the EMF format for storing stuff in the printer spool. 17:45:38 fizzie: perhaps in Windows 3.1 17:45:41 I doubt they use it nowadays 17:46:04 there was some sort of backlash against metafiles, because the format was really badly designed (you could put pointers to arbitrary memory in it which had to be executed to figure out what it meant) 17:46:31 http://support.microsoft.com/kb/179774 17:46:39 -!- Taneb has joined. 17:47:00 So it's a setting you can set, whether to spool "raw" (i.e. what the printer eats) or as EMF. 17:47:30 Hello again 17:48:07 (That was NT4.) 17:48:22 This article applies to a different operating system than the one you are using. Article content that may not be relevant to you is disabled. 17:48:26 I'm running a Linux-based OS 17:48:33 and yet the article still says something 17:49:56 probably they assume linux users are competent enough to grok the whole article and its context 17:57:40 -!- SgeoN1 has quit (Quit: Bye). 18:00:35 You could be administrating a Windows system and use Linux on your main system. 18:02:57 -!- Taneb has quit (Ping timeout: 252 seconds). 18:04:00 in that case, the warning would be pointless 18:17:21 -!- Taneb has joined. 18:18:39 -!- myndzi has quit (Ping timeout: 260 seconds). 18:18:52 -!- myndzi has joined. 18:19:51 Hello 18:19:56 Hi 18:22:17 What's up? 18:22:48 hmm, a bunch of Catholic missionaries just came to the door 18:22:55 which is relatively implausibly unlikely in modern-day UK 18:23:14 I answered most of their questions with answers which were unrelated to the question itself 18:23:27 o.O such as? 18:24:09 just giving random statements of fact 18:28:17 -!- pikhq_ has joined. 18:28:24 -!- pikhq has quit (Ping timeout: 264 seconds). 18:35:26 Well, NewsCorp is in a tricky situation in the UK 18:36:03 and across the world 18:36:33 Slashdot has attacked them with an article whose headline has nothing to do with the summary (the headline mentions 9/11 victims being phone-hacked, the summary doesn't) 18:38:10 Slashdot attacking NotW with that headline is hilarious. 18:38:49 I didn't read the actual article to see what it was about; it might be something entirely unrelated again 18:39:31 anyway, NotW (and NewsCorp generally) are in trouble because public opinion in the UK is so far against them atm that it would be political suicide to do anything that even vaguely favours them 18:40:26 There's a long time until the next general election, ais. 18:41:18 yep 18:41:38 Not necasohgodIcan'tsppellthatword. That bill for fixed term parliaments never passed 18:41:44 what I think the Government would be best advised to do, and probably will do, is to delay the whole BSkyB aquisition nonfatally on a pretext 18:41:58 and then look at it normally once it blows over 18:42:38 -!- Nisstyre has quit (Quit: Leaving). 18:43:13 there are any number of plausible pretexts, many related to the thing that sparked it in the first place 18:43:43 -!- Nisstyre has joined. 18:44:35 Hey, you can nowadays play Progress Quest (single-player style only) in the browser. 18:44:47 Progress Quest had multiplayer? 18:44:52 also, I assumed it was a browser game anyway 18:45:02 Yes, in the sense that there was a Hall of Fame. 18:45:09 -!- azaq23 has quit (Quit: Leaving.). 18:45:20 "Thanks to recent advances in technology, it has been possible to port Progress Quest to run in your browser. You no longer need to download or install anything to play Progress Quest; just hit the button: [Play] 18:45:25 Does that sound easy to you? Well it wasn't; we started with hardware emulation of a 80386-equipped PC clone running a novel Windows XP compatable operating system called ProgrOS, implemented in a clean room in the Seychelles by a team of people who had never programmed before (to keep the lawyers at bay). 18:45:30 Unfortuantely that wan't fast enough (there was too much lag death), so we instead emulated the much faster Cray-2 supercomputer and ran the 80386 emulator in that. But the 80386 kept getting hot, so we switched to a 6502 overclocked at 120GHz with emulated liquid helium coolant, and ported ProgrOS to that." 18:45:55 I think they may be... I don't want to say lying, but perhaps sort of slightly tweaking the truth there. 18:46:16 How can you say such a thing, fizzie. 18:46:19 And it was a Windows program; I ran it in Wine a few weeks "back then". 18:46:33 Do you know how Wine really works, fizzie. 18:47:12 I think it is related to the GABA receptors, but I'm no brain guy. 18:48:51 Phantom_Hoover: the WINE people are actually telling the truth when they say it isn't an emulator 18:49:03 it basically implements the Win32 API in terms of Linux primitives 18:49:24 -!- ais523 has quit (Remote host closed the connection). 18:49:57 ais523, sure, that's because it's an emulator of a forsaken child who has been enticingly shown a window and promised freedom if they run a binary as Windows would. 18:50:04 Dammit, ais, don't just quit like that. 18:57:39 -!- sebbu2 has quit (Read error: Connection reset by peer). 18:58:21 -!- sebbu has joined. 18:58:21 -!- sebbu has quit (Changing host). 18:58:21 -!- sebbu has joined. 19:10:15 -!- Taneb has quit (Ping timeout: 276 seconds). 19:20:29 -!- zzo38 has joined. 19:22:27 -!- elliott has joined. 19:30:26 -!- Taneb has joined. 19:30:58 -!- oerjan has joined. 19:31:56 08:53:10: aha. 19:31:57 elliott: You have 1 new message. '/msg lambdabot @messages' to read it. 19:31:57 08:53:19: I can use GADTs to distinguish between continuous and discrete signals. 19:32:05 CakeProphet: you could also just have two separate data types... 19:32:16 hello oerjan, Taneb 19:32:24 Hello 19:32:46 09:00:35: basically: type Continuous; type Discrete; data Signal a t where { DSignal :: (Integral s) => [a] -> s -> Signal a Discrete; CSignal :: (Integral t) => (t -> a) -> Signal a Continuous;} 19:32:46 CakeProphet: that's literally identical to having two separate data types, dude :P 19:33:10 Also, is Deadfish a finite state automaton? 19:33:19 heh 19:33:28 no, some implementations use unbounded integers 19:33:30 Taneb: Deadfish is super turing complete, HTH 19:33:40 oerjan: oh, that's even better 19:34:30 (including most of mine. well i haven't _explicitly_ made any bounded afair.) 19:36:38 dear logs-quintopia: please stop treating zzo like a circus attraction. thx 19:37:15 Taneb: deadfish _would_ have been an FSA except that the original implementation horribly broke the check for overflow in the case of squaring. and that's part of its charm. 19:37:27 10:37:41: 05:27:27: erm darwin was actually pretty racist iirc 19:37:27 10:37:41: 05:27:33: istr something about ~primitive negroes~ 19:37:27 10:38:11: Yes elliott you are either completely racist or completely non-racist there is no spectrum in between, 19:37:28 I was replying to an assertion that Darwin wasn't racist 19:38:12 before WW2 non-racists barely existed 19:38:53 perhaps before the 60s, even 19:39:55 * Sgeo curses out LibreOffice 19:42:24 Gregor: Why are you holding your hair in your Google+ photo. 19:42:25 -!- Treyno has joined. 19:42:33 It's like "hmm, hair, what is this". 19:42:34 -!- Treyno has left. 19:42:43 * elliott eyes Treyno suspiciously. 19:42:54 elliott: I'm pretty sure I was pulling my hair out of my mouth at the time, and it was there due to windness :P 19:43:29 "Mm, what a delicious meal of hair. Now that I am done I shall extract my hair from my mouth receptacle." 19:43:32 --Gregor's actual thoughts. 19:45:16 I think I'm going to switch to AbiWord 19:47:02 to me it looks more like Gregor is saying "Hey, how do you like my hair? It's real." 19:47:20 ... ladies 19:47:24 maybe he hasn't realized that real hair is completely normal and quite common 19:47:32 It is????? 19:47:35 My wig is even more shameful :( 19:49:27 * Sgeo knows someone who wears a wig 19:50:28 11:23:49: oklopol, also your ban in #jesus has expired. 19:50:35 He got banned? 19:50:36 oklopol: EXPLAIN 19:50:45 It autobans you if you say 'fuck'. 19:50:52 more importantly, he was in #jesus? 19:50:52 hahahahaha 19:50:57 olsner: yes we all were. 19:51:00 it was a beautiful day. 19:51:03 like rainbows and sunshine. 19:52:30 11:53:12: well you know because i could've used my "wtf, you have multiple identity elements smiley" o=oO=O 19:52:30 11:53:34: yeah, i have a smiley for everything. 19:52:33 quoted without comment 19:52:53 `delquote 496 19:52:55 ​*poof* 19:52:58 `addquote well you know because i could've used my "wtf, you have multiple identity elements smiley" o=oO=O yeah, i have a smiley for everything. 19:53:00 496) well you know because i could've used my "wtf, you have multiple identity elements smiley" o=oO=O yeah, i have a smiley for everything. 19:53:05 elliott: except the comment saying it was "quoted without comment"? 19:53:18 -!- Sgeo_ has joined. 19:53:35 Fucking crap Internet connection 19:53:43 olsner: yes. 19:53:45 Maybe it's the router's fault 19:54:32 12:47:06: seems not. but then google changes their APIs like others change shirts, iiuc 19:54:33 -!- Sgeo has quit (Ping timeout: 255 seconds). 19:54:34 doesn't api iirc 19:54:36 `url bin/google 19:54:37 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/bin/google 19:55:19 Google search doesn't have an API. 19:55:34 "Mm, what a delicious meal of hair. Now that I am done I shall extract my hair from my mouth receptacle." <-- clearly hair is the fnarfiest of all substances, and it is only through force of will that Gregor still has any. which shows we should fear his willpower. 19:55:40 yes. 19:55:46 13:10:17: elliott: http://www.youtube.com/user/dWhoFan9#p/c/C6995500E1B2A0ED/10/XNplESJ8gss 19:55:47 this is good 19:56:05 13:03:34: Minecraft chests have a maximum density of 2 million times that inside a supermassive black hole. 19:56:06 How. 19:56:21 elliott, they can hold a crapton of gold. 19:56:34 13:12:09: coppro, I love the part where it transfers into what I shall call forever the Scottish Hamster section. 19:56:34 wat 19:56:37 Gregor: https://code.google.com/apis/customsearch/v1/overview.html 19:56:51 elliott, all would be revealed if you read the log for like 10 more lines. 19:56:55 pikhq_: I LIE 19:56:56 They charge, which is t3h lame. 19:56:58 Phantom_Hoover: ur mom is shit 19:57:01 But they have an API. 19:57:09 pikhq_: I right, yeah, no FREE API. 19:57:11 Phantom_Hoover: but what _is_ the scottish hamster section. 19:57:34 Seriously, the link I gave in the log illustrates it far better than I can with words. 19:57:35 Oh I see. 19:57:42 Google search doesn't have an API. <-- well output format, then. 19:57:45 I'm not entirely sure why they *would* charge, though. 19:58:12 pikhq_: volume 19:58:18 elliott: *Google*. 19:58:28 yep 19:58:42 pikhq_: The ads on that site are their #1 business, they don't want somebody making lulnoadsgoogle.com that just uses the Google API to do searches without showing ads or sponsored results. 19:59:29 Gregor: Of course, it'd be trivial to do that anyways. 19:59:36 see scroogle 19:59:50 pikhq_: They do what they can :P 20:00:04 * oerjan hugs fungot 20:00:04 oerjan: fnord/ fnord/ fnord is fnord is a mnemonic for doing exactly that. http://srfi.schemers.org/ srfi-8/? 20:00:20 very good mnemonic 20:03:00 fungot: omg i love you 20:03:00 elliott: oh yeah, been wanting to do 20:03:05 ^style 20:03:05 Available: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc* jargon lovecraft nethack pa speeches ss wp youtube 20:05:47 ^style irc* 20:05:47 Not found. 20:05:51 ... 20:06:00 That denotes the selected style. 20:06:04 Ohh, * means selected 20:06:06 Durp 20:06:14 apparently, "mod_rewrite loop apache eats all memory" is among the top searches that point to my blog 20:06:23 I like the idea of people searching for help to solve a problem instead finding more elaborate ways to create similar problems :) 20:06:54 :D 20:07:02 (then again "top searches" might just mean that one person searched for it once) 20:07:36 * Sgeo_ curses out Abiword 20:07:50 Sgeo_: Well, that lasted all of fifteen minutes. 20:08:10 today Sgeo_ has: broken hardware; hated software, twice 20:08:32 15:35:56: Reallocated Sector Count is at Warning. Toolyip says Failure is a sign of imminent disk failure 20:08:32 15:36:44: That is not reflected in Overall Assessment, Whig just says that Disk has a few bad sectors 20:08:32 am I reading Finnegans Wake 20:09:51 three disks for muster whig 20:10:09 zem.fi's top search for every month has quite long been "openttd logic gates" or some-such. 20:10:41 -!- asiekierkaDS has joined. 20:10:43 hey 20:10:55 hello 20:10:57 oh 20:10:58 (Though there are often people who seem to be actually trying to play the game.) 20:11:13 i wasnt here for a long time 20:11:24 indeed. 20:11:26 fungot still exists? yay 20:11:26 asiekierkaDS: it would be 20:11:28 clearly today is return of old friends day 20:11:31 fizzie: great timing >:( 20:11:37 who else returned? 20:11:42 fungot 20:11:43 monqy: how have we just called ep1 with an argument m that halts if it doesn't include the srfi title) etc.? can't we provide the same kind of purpose), decided to wget fnord to see if it helps 20:11:43 asiekierkaDS: fungot :P 20:11:43 oerjan: i like the alternative of designing a bf cpu too. ( unfortunately, it's not 20:11:47 fungot 20:11:48 elliott: i have yet to demonstrate that the sml community has less productive power than the real chunk of meat. 20:11:50 haha 20:11:53 `addquote elliott: i have yet to demonstrate that the sml community has less productive power than the real chunk of meat. 20:11:54 elliott: riastradh is larceny supposed to launch fast?" " why not a wind elemental 20:11:55 497) elliott: i have yet to demonstrate that the sml community has less productive power than the real chunk of meat. 20:12:35 to activate the fun, you just say fungot? 20:12:35 olsner: ( define ( foo) fnord, y) .6 fnord, y) with the chicken post. 20:13:00 olsner: yes. then you got the fun. 20:13:51 ='help 20:13:54 'help 20:14:00 `help 20:14:01 Runs arbitrary code in GNU/Linux. Type "`", or "`run " for full shell commands. "`fetch " downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert " can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/ 20:14:32 Gregor: Hey, prgmr has good latency. 20:14:47 elliott: SO DOES YOUR MOM 20:15:14 fungot: your previous fun ran out of fun, try again please 20:15:14 olsner: and it might well use some fnord or something. they killed a lot of motion in them? second, is there a short way to make a data/ value name 20:15:23 Gregor: hmm, the Debian installation seems quite minimal 20:15:37 elliott: It is. Install whatever you want :P 20:15:41 Yar. 20:15:56 Gregor: I'm just wary because there's no "trash the system and reinstall it" button like there is with Slicehost because it's all manual :-P 20:16:23 'run whoami 20:16:31 what is it with fungot and fnord 20:16:32 monqy: the instruction awe which multiplies every point of memory to use for the next 8 hours. 20:16:40 asiekierkaDS: still wrong kind of quote 20:16:48 you need the backtick 20:16:52 `run whoami 20:16:54 No output. 20:17:05 `run id 20:17:07 uid=1050370 gid=1050370 20:17:20 monqy: fnord is used for words that occur few times (at most once?) in the corpus 20:17:23 the numbers, what do they mean 20:18:08 I think they may be... I don't want to say lying, but perhaps sort of slightly tweaking the truth there. 20:18:13 argh 20:20:08 asiekierkaDS: HackEgo creates a random user to run each command under 20:20:18 `run id 20:20:20 uid=1471836 gid=1471836 20:20:25 what are the priveliges 20:20:29 ooh, indeed it does 20:21:16 asiekierkaDS: it's also sandboxed in a couple of other ways, so not very high :P 20:21:33 so no rm -rf $PWD? 20:22:13 asiekierkaDS: it doesn't have root, no. i assume. 20:22:26 can i check 20:22:35 sure. 20:22:45 `run rm -rf $PWD 20:22:46 No output. 20:22:51 `run ls 20:22:51 `ls 20:22:52 1 \ babies \ bin \ bluhbluh \ env \ foo \ paste \ ps \ quine.pl \ quine2.pl \ quine3.pl \ quotes \ quotese \ tekst \ tmpdir.1976 \ тэкст 20:22:53 1 \ babies \ bin \ bluhbluh \ env \ foo \ paste \ ps \ quine.pl \ quine2.pl \ quine3.pl \ quotes \ quotese \ tekst \ tmpdir.1988 \ тэкст 20:22:57 huh. 20:23:01 hm ah. 20:23:06 `run rm -rf . 20:23:08 No output. 20:23:10 `ls 20:23:12 1 \ babies \ bin \ bluhbluh \ env \ foo \ paste \ ps \ quine.pl \ quine2.pl \ quine3.pl \ quotes \ quotese \ tekst \ tmpdir.2118 \ тэкст 20:23:16 Huh. 20:23:19 you can't rm . 20:23:23 see posix 20:23:26 `run rm -rf $PWD 2&>1 20:23:28 No output. 20:23:30 `run rm -rf * 20:23:31 No output. 20:23:33 `ls 20:23:34 `run rm -rf $PWD 2>&1 20:23:35 babies \ bin \ paste \ tmpdir.2289 20:23:37 `help 20:23:37 ​/bin/rm: cannot remove `/tmp/hackenv.2302': Function not implemented 20:23:38 Runs arbitrary code in GNU/Linux. Type "`", or "`run " for full shell commands. "`fetch " downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert " can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/ 20:23:44 `ls 20:23:46 babies \ bin \ paste \ tmpdir.2467 20:23:46 `revert 526 20:23:48 Done. 20:23:49 `ls 20:23:51 1 \ babies \ bin \ bluhbluh \ env \ foo \ paste \ ps \ quine.pl \ quine2.pl \ quine3.pl \ quotes \ quotese \ tekst \ tmpdir.2565 \ тэкст 20:23:57 `run uname -a 20:23:59 Linux codu.org 2.6.32-5-xen-amd64 #1 SMP Tue Mar 8 00:01:30 UTC 2011 x86_64 GNU/Linux 20:24:04 old kernel 20:24:19 It's Debian stable. 20:24:30 but it's like, 7 versions behind 20:24:39 So? 20:25:21 oh noes old kernels 20:25:36 the bugs! 20:25:39 Hmm, I wonder why Debian sudo adds a sudo group instead of a wheel group. 20:25:43 asiekierkaDS: new versions introduce bugs too. 20:25:49 As in, why "sudo" instead of "wheel". 20:25:51 yes but 20:26:03 AbiWord at least isn't bloated 20:26:23 but usually (exception: minecraft) more are fixed than introduced 20:26:29 I was only complaining that it kept crashing when trying to read some .odt that may not have even been intended as anything other than recovery junk 20:26:36 asiekierkaDS: citation needed 20:26:46 asiekierkaDS: new versions introduce bugs too. 20:26:57 I thought asiekierka had made a DS when he made that./ 20:27:09 Yes. That is a thing that happened. 20:27:11 And the new version literally did nothing but introduce bugs. 20:29:09 elliott: Hmm. Maybe it has something to do with how GNU su doesn't support wheel? 20:29:20 heh 20:29:31 (because Stallman) 20:30:53 -!- zzo38 has quit (Remote host closed the connection). 20:30:57 What does adding a system user even do in comparison to adding a normal user 20:30:59 i.e. --system 20:31:06 Just gives it a different UID? 20:31:17 Yeah, seems so 20:31:23 And doesn't put it in any groups other than nogroup 20:31:30 And gives it the shell /bin/false 20:32:36 elliott: Yeah, by convention "system" accounts and "user" accounts have different ranges of UIDs. 20:32:51 Things like GDM use this when listing the user accounts on a system. 20:33:00 Hmm, it's a pain that HOME doesn't get set when you do "sudo -s -u" 20:33:13 Oh, -H works 20:34:14 There's also -i, which simulates a login. 20:39:52 Ugh, the atheist I don't like in #jesus is awake 20:40:16 Sgeo_: That annoying guy me and oklopol complained about? 20:40:19 amigo something. 20:40:23 japan 20:40:24 No 20:43:26 Ok, so he wrote only one or two lines 20:43:51 -!- Taneb has quit (Quit: Taneb). 20:44:02 -!- Taneb has joined. 20:46:09 Sgeo_, was Krynn the annoying atheist? 20:46:14 Yes 20:46:36 luke-jr: you know of any good zlib tutorials out there? I am too lazy to read the docs.. 20:46:36 zlib is the work of the devil esaym153 20:46:36 Krynn, sometimes, you're downright annoying 20:46:36 I know. :} 20:46:36 Sometimes I aim to be 20:47:53 Dropping my laptop is probably not the best thing that could have happened to it 20:48:11 18/5 still 20:55:19 it may not even be in the top ten 21:15:32 -!- MigoMipo has quit (Read error: Connection reset by peer). 21:20:16 -!- asiekierkaDS has quit (Ping timeout: 246 seconds). 21:28:04 -!- augur has quit (Remote host closed the connection). 21:34:23 -!- pumpkin has joined. 21:34:23 -!- pumpkin has quit (Changing host). 21:34:23 -!- pumpkin has joined. 21:36:42 -!- copumpkin has quit (Ping timeout: 255 seconds). 21:38:30 -!- pumpkin has quit (Client Quit). 22:00:26 -!- Taneb has quit (Remote host closed the connection). 22:01:05 -!- boily has quit (Ping timeout: 260 seconds). 22:07:47 -!- oklofok has joined. 22:10:19 -!- oklopol has quit (Ping timeout: 246 seconds). 22:16:37 -!- augur has joined. 22:17:30 -!- Tritonio has joined. 22:20:27 -!- Tritonio has quit (Client Quit). 22:23:45 -!- cheater_ has joined. 22:28:34 -!- Phantom__Hoover has joined. 22:29:03 -!- Phantom__Hoover has quit (Client Quit). 23:14:38 maybe i shouldn't have eaten that cheese 23:20:59 -!- nooga has joined. 23:44:56 -!- Nisstyre has quit (Remote host closed the connection). 23:46:14 -!- Nisstyre has joined. 23:50:21 -!- nooga has quit (Ping timeout: 240 seconds). 23:54:24 -!- cheater_ has quit (Ping timeout: 255 seconds). 23:56:00 o 23:58:31 oko 2011-07-12: 00:10:30 wait what 00:10:32 elliott: you may be right. i genuinely wanted to learn, but i apologize if that was insensitive, etc. 00:10:37 i said o? :D 00:10:47 yes you did 00:10:47 i have no idea when i did that 00:11:13 hey oklofok 00:11:16 quintopia: yeah, ok 00:11:26 oklofok: do you want to server 00:12:05 oerjan: did you hear the great news, i'm not almost sure that my characterization works 00:12:20 elliott: i have to watch a few more eps and get to work but sure 00:12:32 Eps of what? 00:12:34 -!- pikhq_ has quit (Ping timeout: 252 seconds). 00:12:35 -!- pikhq has joined. 00:12:43 erm or no i don't want to server, i thought you said do i want the server 00:12:52 Phantom_Hoover: rewatching hustle 00:13:07 The British show about conmen? 00:13:08 oklofok: but we need TESTERS. 00:13:11 yes 00:13:26 surprisingly enough, i think it's great 00:13:34 like every other show i've watched 00:13:47 oklofok, you should totally join the official #esoteric Homestuck club. 00:14:18 i still don't really know what homestuck is 00:14:22 perhaps i never will 00:14:41 You would have to consult arcane texts on the matter. 00:14:42 it's a virus. 00:14:47 Such as Homestuck. 00:14:48 but with points 00:14:50 its kind of like an rpg 00:14:56 you have to spread it to as many computers as you can. 00:15:02 it was made by a sick, demented man known only as Satan. 00:16:08 oerjan: did you hear the great news, i'm not almost sure that my characterization works <-- freudian slip? 00:16:22 xD 00:16:44 wow. 00:16:46 *now 00:16:46 YOU SUBCONSCIOUS MAY DISAGREE 00:16:56 well i convinced one guy already 00:17:05 poor deluded fool 00:17:09 but no one at the uni so will have to wait for a while 00:17:25 only me and people holding summer internships 00:18:04 was the guy a hobo 00:18:11 he was mister x 00:21:03 -!- oklopol has joined. 00:21:50 *i* am the office hobo 00:22:42 -!- oklofok has quit (Ping timeout: 252 seconds). 00:23:10 in my dream, i was finland 00:23:41 and america was trying to sleep with norway but she did not want to convert to euro, so she refused. 00:24:09 also norway was my cousin and america was a character from hustle 00:24:28 oklopol: http://satwcomic.com/ , hth 00:24:31 oh and i was trying to find gold at the beach inside the palace of my friend who lived in rome 00:25:05 seen that 00:25:11 summa that at least 00:26:56 * oerjan considers archive binging it 00:30:13 -!- pikhq has quit (Remote host closed the connection). 00:30:54 ? 00:31:03 oh 00:31:15 missed the word archive 00:31:42 Yup, definitely bricked my router. 00:31:44 Great. 00:32:20 do you mean you took it in the ass from a truck driver 00:32:50 or was it a euphemism? 00:34:20 Sounds about right. 00:34:22 Gregor: How 00:34:47 elliott: Trying to upgrade my (custom) firmware. Downloaded the WRT54G firmware instead of the WRT54G2 firmware. 00:35:25 a great day for masonry 00:36:47 Gregor: Noice :P 00:38:38 * Phantom_Hoover → sleep 00:38:40 -!- Phantom_Hoover has quit (Quit: Leaving). 00:39:01 -!- pikhq has joined. 00:40:53 Gregor: I doubt "bricked" is accurate :P 00:41:50 nope its a brick 00:42:46 -!- Maharba has joined. 00:43:46 hi Maharba 00:43:59 -!- Maharba has left. 00:44:04 bye maharba 00:44:09 bye maharba 00:44:16 -!- elliott has set topic: Esoteric programming languages | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 00:44:22 monqy: quick bring them back 00:44:32 its too late 00:44:35 their gone 00:44:36 they parted, not /quit :P 00:44:47 whois says otherwise 00:44:53 darn 00:45:27 * oerjan checks what the previous topic was 00:45:43 jesus has coeliac disease? 00:46:45 long story :D 00:50:42 ic 01:08:00 elliott: Special JTAG cable + soldering required to unbrick. 01:08:09 elliott: Cost of equipment to fix router is greater than cost of a new router :P 01:08:45 elliott: not necessarily. Wouldn't Signal a t allow either discrete or continuous? Basically I write functions that except both or only one kind of signal, without having to use a typeclass to convert everything to discrete. 01:09:09 and without having to use Either. 01:10:22 ^ul ((phantom types )S:^):^ 01:10:23 phantom types phantom types phantom types phantom types phantom types phantom types phantom types phantom types phantom types phantom types phantom types phantom types phantom types phantom types phantom types phantom types phantom types phantom types phantom types phantom types phantom types phantom types phantom types ph ...too much output! 01:13:42 CakeProphet: So you've achieved... the same as a typeclass. 01:13:50 Except it requires a language extension and doesn't let anyone add new types of signal 01:19:14 -!- Lymia has joined. 01:20:45 -!- oerjan has quit (Quit: phantom types, i said!). 01:21:05 -!- Lymee has quit (Ping timeout: 240 seconds). 01:22:49 so often i have this dream that i have to hit someone but my punches move reeeeeally slowly 01:22:59 maybe i should become a boxer, i have way too much brain for my needs 01:33:49 elliott: the idea was to have a typeclass as well. But it would only have one function instead of two.. 01:37:28 using only typeclasses enforced some kind of conversion in order to operate on the signal, with a single GADT I can use both kinds of signal in one function, while also having it typecheck in the case that the wrong kind of signal is used. 01:39:19 also, I think being afraid of language extensions is silly. GHC is the de facto Haskell compiler more or less. 01:39:21 It doesn't force conversion 01:39:25 It just forces using via an interface 01:39:35 And language extensions are silly when there's literally no gain 01:40:05 better typechecking? 01:40:52 toDiscrete :: Signal t a -> Signal Discrete a 01:41:24 For a start, that type is way insufficient 01:41:27 You need to give a sampling rate 01:41:32 For a second, ???? 01:41:45 the sampling rate isn't part of the type it's a constructor argument 01:41:46 sample :: SampleRate -> CSignal a -> DSignal a 01:41:49 it is pretty much always an Integral... 01:41:56 CakeProphet: That's still not enough for toDiscrete 01:42:01 You cannot just convert a continuous signal to a discrete one 01:42:03 ah wait, yeah nevermind. :P 01:42:04 You must use a certain sampling rate. 01:42:13 Anyway, [(Time,a)] is a much better model for a discrete signal. 01:42:17 That doesn't force a constant sampling rate. 01:42:58 mmk. 01:43:05 cd .. 01:43:09 But like I said, 01:43:10 sample :: SampleRate -> CSignal a -> DSignal a 01:43:12 How is that not typechecked? 01:43:21 newtype CSignal a = CSignal (Time -> a) 01:43:26 newtype DSignal a = DSignal [(Time,a)] 01:43:32 instance Signal CSignal where ... 01:43:34 it requires that the argument be continuous. 01:43:35 instance Signal DSignal where ... 01:43:51 CakeProphet: Well, yeah, why would you want to sample a DSignal? 01:44:01 Just treating it like a continuous signal would be a rather poor sample rate converter 01:44:18 _Mine_ is better typechecked, because it stops you sampling non-continuous singals :) 01:44:27 I don't need to treat it like a continuous signal, I can treat it like a discrete signal and convert the sample rate. 01:44:43 Eh? 01:44:45 via pattern matching 01:44:59 OK, so you actually have two functions. 01:45:12 when needed, yes. 01:45:12 sample and convertSampleRate. 01:45:21 convertSampleRate :: (Signal t) => SampleRate -> t -> DSignal a 01:45:23 Tada 01:45:30 erm 01:45:32 convertSampleRate :: (Signal t) => SampleRate -> t a -> DSignal a 01:46:03 CakeProphet: But really, you should have 01:46:11 sample :: SampleRate -> CSignal a -> DSignal a 01:46:18 convertSampleRate :: SampleRate -> DSignal a -> DSignal a 01:46:40 okay fine I'll just have a multitude of functions and typeclasses when I could merge it into one type transparently. 01:46:41 That avoids conflating the two separate functions. 01:46:53 CakeProphet: You would have exactly one typeclass, Signal. 01:47:02 And having a multitude of functions is a good thing, it's called a rich set of operations 01:47:12 Sampling a continuous signal and converting the sample rate of a discrete signal are not the same thing 01:47:18 Conflating them is a bug 01:51:38 -!- oklofok has joined. 01:51:57 -!- CakeProphet has quit (Ping timeout: 276 seconds). 01:54:12 -!- oklopol has quit (Ping timeout: 264 seconds). 02:27:00 -!- augur has quit (Ping timeout: 252 seconds). 02:30:08 -!- Behold has quit (Remote host closed the connection). 02:54:38 -!- jcp has quit (Ping timeout: 250 seconds). 02:54:58 -!- jcp has joined. 02:57:15 -!- jcp|1 has quit (Ping timeout: 260 seconds). 02:59:43 -!- myndzi\ has joined. 03:01:58 -!- javawizard has joined. 03:02:48 -!- myndzi has quit (Ping timeout: 276 seconds). 03:20:08 -!- FireFly has quit (Quit: swatted to death). 03:25:31 -!- derrik has joined. 03:30:50 -!- azaq23 has joined. 03:41:32 -!- zzo38 has joined. 04:08:58 Finally I got DVI output to printer working correctly, using a program called "dviout". 04:10:44 It requires no PostScript, no raw printer codes, no PDF, no TrueType, no of that other stuff (although it does support all of these features). 04:11:38 How can you have a beautiful ending without making beautiful mistakes? 04:11:46 If at first you do succeed...try something harder. 04:36:57 Lymia: Are you responsible for the /snow command. 04:47:05 What is a /snow command? 04:50:36 WorldEdit, in Minecraft. 04:53:08 -!- cheater_ has joined. 04:57:53 elliott is capable of making infinity be less than 15*4 04:59:01 Sgeo_: You have dirt now. 04:59:08 Infinite dirt. 04:59:12 I need to not drown right now 04:59:20 You are above water? 04:59:32 I am? I can't tell, I'm lagging that badly 04:59:37 Reconnect 04:59:38 The lag is gone now 05:00:48 Sgeo_: No luck? 05:01:12 Sorry, was afk 05:10:39 Man. I never really thought about that... Having "In God We Trust" on the US nickle in particular is quite a dick move. 05:10:53 (for non-Americans: Thomas Jefferson appears on the US nickle) 05:11:11 It's the very antithesis of the man. 05:24:08 -!- elliott has changed nick to yay. 05:24:12 -!- yay has changed nick to elliott. 05:24:41 -!- pikhq_ has joined. 05:27:25 -!- pikhq has quit (Ping timeout: 252 seconds). 05:28:40 -!- elliott has changed nick to sldjkf. 05:28:57 -!- sldjkf has changed nick to elliott. 05:31:31 -!- zzo38 has quit (Remote host closed the connection). 05:37:32 -!- elliott has changed nick to pyralspite. 05:39:17 -!- pyralspite has changed nick to elliott. 05:51:31 pikhq_, are you assuming brazilians know what's on the us nickle? 05:52:25 -!- fungot has quit (Ping timeout: 260 seconds). 05:53:35 -!- fizzie has quit (Ping timeout: 260 seconds). 06:03:04 cheater_: No, but (unfortunately) "American" is the demonym for citizens of the USA. 06:05:12 i just say usarian 06:05:38 It works a bit better in Esperanto. "Usonanto", IIRC. 06:06:07 -!- copumpkin has joined. 06:06:08 -!- copumpkin has quit (Changing host). 06:06:08 -!- copumpkin has joined. 06:11:12 "uss-asian" 06:11:18 "usasian" 06:11:56 -!- foocraft has joined. 06:20:26 -!- derrik has quit (Quit: over and out). 06:30:45 -!- CakeProphet has joined. 06:38:07 -!- monqy has quit (Quit: hello). 06:47:23 -!- Lymia has changed nick to Lymee. 06:50:54 -!- fizzie has joined. 07:00:51 -!- CakeProphet has quit (Ping timeout: 240 seconds). 07:35:24 -!- elliott has changed nick to pyralspite. 07:35:39 -!- pyralspite has changed nick to elliott. 07:55:49 -!- foocraft_ has joined. 08:01:42 -!- BeholdMyGlory has joined. 08:03:04 -!- Phantom_Hoover has joined. 08:10:22 http://www.vimprobable.org/ This guy really doesn't like Google. 08:15:18 People actually use Scroogle? 08:21:34 -!- Lymee has quit (Ping timeout: 252 seconds). 08:21:59 Paranoid people, yes. 08:21:59 Phantom_Hoover: You have 2 new messages. '/msg lambdabot @messages' to read them. 08:23:15 The paranoia isn't the thing, it's the Brandt. 08:24:02 The paranoia presumably overcomes the aversion to him. 08:24:18 More likely they've no aversion. 08:25:22 I'm surprised the page didn't insult me when it looked at my user agent. 08:25:33 -!- tswett_ has joined. 08:26:26 -!- oklopol has joined. 08:30:14 -!- azaq23 has quit (*.net *.split). 08:30:14 -!- oklofok has quit (*.net *.split). 08:30:15 -!- tswett has quit (*.net *.split). 08:33:40 http://www.vimprobable.org/ This guy really doesn't like Google. <-- heh 08:35:55 -!- Lymee has joined. 08:35:55 -!- Lymee has quit (Changing host). 08:35:55 -!- Lymee has joined. 08:45:21 -!- azaq23 has joined. 08:45:21 -!- azaq23 has quit (Changing host). 08:45:21 -!- azaq23 has joined. 09:15:22 -!- shachaf has quit (Read error: Operation timed out). 09:23:14 -!- asiekierka has joined. 09:23:19 hi can you hear me 09:24:00 -!- asiekierka has quit (Client Quit). 09:24:56 -!- augur has joined. 09:30:53 no 10:02:08 -!- elliott has quit (Remote host closed the connection). 10:02:09 -!- elliott_ has joined. 10:15:23 http://downforeveryoneorjustme.org/ 10:15:24 pro coding 10:15:38 oh well. 10:16:54 is downforeveryoneorjustme.org down for everyone or just me :D 10:17:11 It's just you, do-man. 10:17:18 The PHP is down, the HTML isn't 10:17:19 It's like He-Man. 10:17:26 That depends on the universe you are observing. 10:18:20 Deewiant: Pure guess: some update or another has turned the short-open-tags feature off. 10:18:37 heh 10:18:41 (That's just a ripoff of the actual site, btw) 10:18:47 (Which is a .com) 10:23:39 The real site seems to be implemamented with the Google App Eggnog. (User-agent: "AppEngine-Google; (+http://code.google.com/appengine; appid: downforeveryoneorjustme)") 10:24:21 It's open-source, IIRC 10:41:00 -!- BeholdMyGlory has quit (Remote host closed the connection). 10:59:58 -!- cheater_ has quit (Ping timeout: 255 seconds). 11:00:39 -!- cheater_ has joined. 11:18:08 -!- elliott has joined. 11:18:08 -!- elliott_ has quit (Read error: Connection reset by peer). 11:18:20 Lymee: I think I should just have HashMap> 11:19:11 Lymee: And if a world isn't in the map, we just assume every chunk is hostile. 11:19:15 Ugly? Yes. 11:19:18 Useful? Yes. 11:21:34 -!- oerjan has joined. 11:23:47 -!- augur has quit (Read error: Connection reset by peer). 11:24:04 -!- augur has joined. 11:28:19 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds). 11:33:02 -!- FireFly has joined. 11:43:14 -!- ais523 has joined. 11:51:24 -!- _foocraft has joined. 11:51:46 -!- foocraft has quit (Ping timeout: 246 seconds). 11:52:37 -!- foocraft_ has quit (Quit: if you're going....to san. fran. cisco!!!). 11:55:42 -!- Phantom_Hoover has joined. 12:06:03 -!- boily has joined. 12:09:15 elliott: Tabs are 8 characters, and thus indentations are also 8 characters. There are heretic movements that try to make indentations 4 (or even 2!) characters deep, and that is akin to trying to define the value of PI to be 3. 12:09:25 I'm amused that they disagree with me on style, but agree on the immutability of tab sizes 12:09:52 ais523: Yes, obviously I have never read the Linux coding standards before 12:09:52 Clearly they implicitly accept my indentation level of 3 12:11:14 I love the way they wrote PI in uppercase 12:11:16 because it's a constant 12:14:42 Deewiant: Sure, because that's PI spaces. 12:15:31 fizzie: Deewiant: ais523: Anyone: Are there restrictions on what you can remove from collections you're iterating over in Java? 12:15:45 elliott: IIRC yes, let me look it up 12:15:46 I have "for (T x : hashSet) { ... }", and I want to remove x from the hashSet depending on certain conditions. 12:15:46 You need to use the iterator to remove 12:15:54 Yes. 12:15:54 Deewiant: So no nice for syntax? 12:15:56 elliott: Use an Iterator, it has a remove method 12:16:01 SIGH FINE >:( 12:16:02 elliott: Not that I know of at least 12:16:32 if (!worldState.hostileChunks.contains(ChunkCoords.fromLocation(monster.getLocation()))) { 12:16:33 if (!worldState.hostileChunks.contains(ChunkCoords.fromLocation(event.getLocation()))) { 12:16:39 wow, those are actually the exact same line 12:16:45 No they're not 12:16:51 Err, well 12:16:56 Modulo alpha renaming 12:16:59 I was pasting them as two different insanely long ifs :-) 12:17:09 Maybe I should define worldState.isInHostileChunk(). 12:17:38 elliott: yep, just checked, the rule is that you can only remove the element that you're currently on during the iteration, and can only do so via calling the remove method on the iterator 12:17:39 the world is in a hostile, chunky state 12:17:55 also, you can't remove the current element more than once without going onto the next element, obviously 12:18:19 Most of the iterators are "fail-fast", in that they (try to) start throwing ConcurrentModificationExceptions if you mangle the collection you're iterating over by any other means than the iterator. 12:19:01 fizzie: that's not guaranteed 12:19:07 Hence "try to". 12:19:10 yep 12:19:16 I just thought that the warning would be useful 12:19:31 * elliott is slightly worried that ais523's first reaction was "Why on earth is elliott coding Java???" 12:19:36 or maybe it was, just internally only 12:20:08 elliott: I saw your code paste before I saw the first statement that implied Java 12:20:08 because it took me several seconds to switch to the IRC window 12:20:18 and the code paste suggested an obvious context (something Minecraft-related) 12:20:29 fizzie: Deewiant: ais523: Anyone: Are there restrictions on what you can remove from collections you're iterating over in Java? 12:20:29 elliott: IIRC yes, let me look it up 12:20:32 No, you knew it was Java :-P 12:20:36 That was before any pastes 12:20:46 elliott: aha, that must be the zzo38 reaction 12:20:51 heh 12:20:51 in that I didn't look for a context until it became necessary 12:21:10 in this channel, my mind didn't make the connection between "asking questions about Java" and "writing Java" 12:21:14 not immediately, at least 12:21:24 I'm even using Eclipse :-| 12:21:41 in fact, it would be quite plausible that you were writing a different language with iterable collections, and wanted to know what Java did so you could do something different 12:21:50 * elliott decides to stare at Eclipse for a few hours until it tells him how many lines of Java he's written today. (This is how you solve problems with Eclipse.) 12:21:56 (This is what I have learned. 12:21:56 ) 12:22:14 oh, wait, I have wc 12:22:17 also, sloccount 12:22:27 ohcount 12:22:35 also, Java badly needs a Java-specific IDE, it's too library-dense to easily use otherwise 12:22:35 although I generally use NetBeans (because it's what's taught here, and I need to use the technology I'm meant to teach) 12:22:56 Deewiant: Didn't have a convenient website last I looked 12:22:59 ais523: wow, only 228 lines 12:23:01 it feels like more 12:23:08 probably because I had to go through an IDE form just to create a lambda 12:23:25 you didn't, you could (and probably should) have used a nested class 12:23:38 or does that need a form in Eclipse? 12:23:47 I think it can have one, if you want 12:23:51 ais523: they're rather long lambdas, anyway 12:23:52 You can just type in code, though. 12:24:02 and Java files seem to be divided into two types: 12:24:07 - hundreds of lines long, everything in one class 12:24:13 - thirty lines long, about five hundred classes 12:24:15 It does have "make a new (inner or not) class" forms though. 12:24:17 in NetBeans, you can highlight a statement and then click on the left margin, and choose the option to enclose it in a Runnable 12:24:46 hmm, oh dear... 12:24:47 elliott: you typically only use one class per file, not counting inner classes 12:24:57 some are much longer than others 12:25:20 I'm writing "practical", impure, not-very-theoretically-soundly-organised code, in Java, in an object-oriented style (sort of), for a buggy game 12:25:30 I think, by my own account, my soul should have vanished in a few hours 12:25:48 elliott: You have become the very thing you fought for! Abyss, gazing back, and so on! 12:25:48 e.g. the longest class in Jettyplay is 2122 lines long, many of which are autogenerated 12:25:53 s/for/against/ 12:26:06 fizzie: the first version was funnier 12:26:08 in fact, 12:26:09 Eclipse is actually quite nice, to be honest 12:26:15 `addquote elliott: You have become the very thing you fought for! 12:26:16 I mean, as nice as a Java IDE can be 12:26:18 498) elliott: You have become the very thing you fought for! 12:26:56 I do like how builds happen completely automatically, at least 12:26:57 the second longest is 2076 lines long, after I deleted half of it (it originally came from someone else's program), but it's mostly a state machine and that's to be expected of state machines 12:27:04 and all the errors appear without asking 12:27:11 elliott: NetBeans does that too, I imagine all Java IDEs do 12:27:15 ais523: Indeed 12:27:16 even Emacs does that 12:27:22 if set up correctly 12:27:23 well, it's always a pain with Emacs 12:27:25 IME 12:27:32 flymake tends to be flaky 12:27:36 not IME, but it depends on what language you're using 12:27:42 flymake is incredibly flaky with C, but works very well with Perl 12:29:10 probably because C is a language not very conducive to that sort of thing (C++ is even worse) 12:29:53 oh, I forgot the last element of the soullessness trifec...n-fecta 12:30:03 it's using an "enterprisey" framework :( 12:30:52 * elliott weeps 12:32:17 and Jettyplay isn't, ironically enough given the name 12:32:23 (the "e" stands for Enterprisey) 12:32:40 at least the enterprisey framework is called "bukkit" 12:32:42 I suppose it isn't all that enterprisey really, just overengineered 12:32:46 there is some drop of humour left in my new terrible world : ( 12:33:02 Bababadalgharaghtakamminarronnkonnbronntonnerronntuonnthunntrovarrhounawnskawntoohoohoordenenthurnuk 12:33:18 dammit, these pigs know they're going to evaporate if they walk too far 12:33:37 ah, a perfect kill. 12:35:18 "Tired of monsters spawning on one or more of your worlds? Don't like the health regeneration that comes with spawn-monsters=false? With NoRegen, you can enjoy monster-free world(s), and still be without the boring health regeneration!" 12:35:20 NO THIS IS THE OPPOSITE OF WHAT I WANT 12:35:41 oops wrong channel 12:38:41 Phantom_Hoover: gesundheit 12:38:56 oerjan, it was LITERARY 12:39:12 i know, i googled 12:39:26 I don't think anyone has ever actually read Finnegan's Wake. 12:39:48 The actual book is probably completely different to every synopsis on the internet. 12:39:58 Phantom_Hoover: someone, somewhere, somewhat like zzo probably has. 12:40:01 I didn't think you could make a synopsys of it 12:40:24 What everyone *thinks* it contains is just an aggregate of summaries which has evolved into a completely different story. 12:42:19 meanwhile, I saw a story recently about people benchmarking Firefox 8 12:42:30 what is up with those version numbers? they're releasing major versions faster than they used to release minor versions 12:42:44 so it isn't even a simple minor->major shift 12:42:56 They changed their release schedule 12:42:56 I remember back when Firefox 3 was A Big New Thing. 12:43:02 One major version every 3 months, IIRC 12:43:03 You know, two years ago. 12:44:13 I'm still on the 3 series (with Ubuntu doing security patches) 12:44:14 I think "8" was what they're calling the "unstable", or wasn't it so? 12:44:18 yep 12:44:18 I remember back when Phoenix 0.1 was A Big New Thing. You know, eight years ago. 12:44:32 I don't think anyone has ever actually read Finnegan's Wake. 12:44:33 Finnegans 12:44:44 I remember when I got Netscape, and it was a lot fancier than Mosaic. 12:45:02 They're at 5 now and have 6 and 7 on the roadmap, IIRC. 12:48:29 so will they be starting with Firefox 3000 or something equally silly within five years? 12:50:09 "Ok we just made Firefox Busy Beaver. wtf are we going to call the next version?" 12:50:55 after Firefox 5, they will use the Fibonacci numbers so that the version number growth is exponential 12:51:13 6 comes out in August when 7 moves from AURORA to BETA, and 8 moves from NIGHTLY to AURORA. 12:51:16 "and why are we being overrun by ubuntu lawyers?" 12:51:41 5 came out in June. 12:52:02 within years we will be able to safely use a floor of a logarithm of the version to identify the version 12:52:03 I think it's supposed to be something like 2-3 months per major version number, so 4-6 major versions per year. 12:52:32 ok scratch that. they make Firefox Graham's Number, and want to do Busy Beaver next but _then_ are overrun by ubuntu lawyers. 12:53:13 oerjan, to be exact, Firefox three arrow three arrow sixty-four point blabla arrow two. 12:53:28 O KAY 12:53:36 I don't get why they'd be overrun by Ubuntu lawyers, is it a pun I'm missing? 12:53:41 Ubuntu Busy Beaver 12:53:46 ah, aha 12:53:47 Ubuntu MM.NN Busy Beaver 12:57:15 oh, they can pass on to transfinite ordinals then 12:57:49 -!- wth has joined. 12:58:15 -!- wth has changed nick to Guest87246. 12:59:28 -!- Guest87246 has left. 13:00:08 i'm really not convinced wth is the best nick, _even_ if it's probably an acronym of eir real name 13:04:27 Oh, it's 6 weeks per major version: https://wiki.mozilla.org/RapidRelease/Calendar 13:05:07 six weeks? X-D 13:05:14 sturmeh: 13:05:15 cool: false 13:05:15 eats: 13:05:15 babies: true 13:05:15 good yaml example 13:06:32 So Firefox 9 released this year, and Firefox 12 in the nightly branch; and by the end of 2012 they'll release Firefox 17, and have Firefox 20 in development in the nightly branch. 13:07:40 what versions will the other major browsers be on by then? in particular, is Firefox's schedule outversioning Chrome? 13:08:06 I wonder if Chrome thirteen is out yet 13:08:13 I'm on twelve, but I haven't updated in... a few days :-P 13:08:32 fizzie: how long until they reach three digits? 13:09:32 A bit less than 11 years. 13:09:50 great 13:10:14 by october 2012 they will have hit three digits. during the first two weeks of december it will grow to thousands of digits. what happens after that is unpredictable. 13:10:37 I guess it depends which sort of curve you fit in. 13:10:45 oerjan: :D 13:11:20 Eyeballing the Chrome release history in Wikipedia, it would seem to be about the same speed. 13:11:33 hmm, I wonder if version numbering will hit singularity some time 13:11:34 The Firefox Singularity? 13:11:39 thats the joke dot jpg 13:11:41 by october 2012 they will have hit three digits. during the first two weeks of december it will grow to thousands of digits. what happens after that is unpredictable. 13:12:38 that doesn't imply singularity 13:12:44 it might just be going up at Ackermann speed or whatever 13:12:56 ais523: you get the refernce, suerly 13:13:01 december 2012? 13:13:16 meh, that's a sufficiently busted reference that I tend to ignore it 13:13:29 elliott, Maya? 13:13:39 ais523: it's called a _joke_ 13:13:42 you may have heard of it. 13:13:58 but it isn't particularly funny 13:14:08 oerjan: outrageous 13:14:23 elliott: i'll just have to take the audience i get 13:15:41 -!- asiekierka has joined. 13:15:52 is anyone here? 13:15:56 nope 13:15:59 oh darn 13:16:07 i'm forced to type from netcat so i was seriousthere 13:16:27 fancy 13:16:45 * ais523 sends a ctcp version and waits a minute or so for asiekierka to type the reply 13:16:46 also some dedication 13:16:54 ais523: :D 13:17:09 i don't know how to reply to VERSIONs yet 13:17:11 oerjan: I do reply to CTCP VERSIONs when IRCing via netcat 13:17:22 O_o 13:17:23 asiekierka: NOTICE ais523 :^AVERSION netcat^A 13:17:28 where ^A is a literal control-A 13:17:28 i'm using musl libc, irssi doesn't compile for it, neither does ircii 13:17:37 no binaries for other IRC clients 13:17:47 i'd be happy to move to anything better than netcat 13:18:00 i could just get dropbear and SSH into another computer but THAT'S CHEATING 13:18:15 why /is/ that SSH impl called dropbear? 13:18:20 the name always confused me 13:18:22 asiekierka: you could use zzo38's client >:) 13:18:26 it drops bears 13:18:31 oerjan link 13:18:40 asiekierka: *WHOOSH* 13:18:58 (admittedly it is probably better than netcat) 13:19:01 not a link to the past, just an http link 13:19:09 oerjan: it does the PONGs 13:19:14 automatically 13:19:20 didn't 13:19:24 other than that, it's pretty similar to nc 13:19:28 ais523: i think it also has some completion 13:19:34 i used bootstrap-linux by pikhq to get into where i'm now 13:19:49 anything is better than netcat for IRCing 13:19:52 a nice thing about Freenode is that you can type anything at all in response to a PING, even a privmsg or whatever, and it accepts it 13:20:04 so you don't need to bother about writing perfect PONGs 13:20:07 :D 13:20:10 most servers aren't so forgiving 13:20:15 oh, asie. 13:20:17 is back again 13:20:19 The perfect PONG. Long thought to be just a myth. 13:20:23 yes 13:20:26 and it won't even bother to ping you if you're sending a lot 13:20:33 why /is/ that SSH impl called dropbear? 13:20:34 why not? 13:20:44 also, what did you do, pikhq_ :( 13:21:02 pikhq did awesome 13:21:06 why? 13:21:09 because programs ideally should either a) have names that are descriptive of what they do so you don't have to look them up, or b) have names that are unique enough to search on 13:21:14 and "dropbear" doesn't fulfil either requirement 13:21:31 (fulfilling both would be ideal, but is typically very difficult) 13:21:40 derp 13:22:04 ais523: Find me another piece of software called Dropbear 13:22:14 asiekierka: hm i went to http://zzo38computer.cjb.net/index.php/ but i cannot find a link to his client. anyway, it was more of a joke. 13:22:31 i am serious D:< 13:22:34 elliott: why software? the word comes up in other contexts 13:22:41 -!- FireFly has quit (Quit: swatted to death). 13:22:41 asiekierka: do you even have php intsalled 13:23:05 no, not yet 13:23:14 zzo's is in php 13:23:17 ais523: Windows: bad software name; Macintosh: bad software name; Gnome: bad software name 13:23:26 ais523: Eclipse: bad software name 13:23:33 : bad software name 13:23:49 elliott: Windows is at least vaguely descriptive 13:23:51 i'll try fixing ircii 13:23:52 the others aren't ideal 13:24:08 in fact, "Microsoft Windows" is a pretty good name for what it does 13:24:11 openssl? 13:24:11 under a) 13:24:16 asiekierka: that's a good name too 13:26:49 I've always just guessed the name is intended to evoke adjectives such as "lean", "fast", "vicious". Haven't seen it documented anywhere. 13:26:57 They do have a mailing list if you want to know. 13:35:04 -!- asiekierka has quit (Ping timeout: 252 seconds). 13:35:19 SOMEONE FORGOT TO PONG 13:35:38 ais523: oh, I've been doing a bad Java thing in my bad Java :< 13:35:55 I've been using HashSet as a type on the LHS, just because that's my implementation 13:35:57 and in classes 13:36:34 * elliott feels bad ::::: (((( 13:36:45 -!- asiekierka has joined. 13:36:45 "type on the LHS"? 13:36:47 yes! 13:36:52 yes 13:36:58 i finally compiled a sane IRC client 13:36:58 maybe! 13:37:09 No! 13:37:12 i had to mod it a bit, though - minor defs.h change + adding u_xxxx 13:37:13 ":propelling chess in the 21st century and beyond!" 13:37:17 I think it's the colon that amuses me the most about that 13:37:33 as if ircII was meant to have its version number automatically parsed by something that used IRC syntax 13:37:36 ais523: i.e. 13:37:40 HashSet x = ... 13:37:41 rather than 13:37:44 Set x = ... 13:38:06 elliott: aha 13:38:06 well, it depends on if you're doing anything with it that would require a HashSet in particular 13:40:31 nope 13:40:35 -!- asiekierka has left. 13:40:50 HashSet doesn't really have any methods that are not specified by Set. Well, except clone(). 13:41:12 (But that's from Object.) 13:41:28 public void load() 13:41:31 Loads the configuration file. All errors are thrown away. 13:41:31 save 13:41:31 public boolean save() 13:41:31 Saves the configuration to disk. All errors are clobbered. 13:41:31 sounds safe 13:41:53 What does save() return? 13:42:27 a boolean 13:42:36 I was debating whether to clarify that. 13:42:48 -!- asiekierka has joined. 13:42:48 What does the boolean signify? 13:43:14 hep 13:43:19 whoops, testing out ircii 13:43:19 Presumably success 13:43:25 it's hrrible but not as bad as netcat 13:43:31 Deewiant: But it "clobbers" all the errors. 13:43:53 fizzie: Who knows? 13:44:06 That's the Bukkit YAML configuration processor 13:44:17 I can't help shake the feeling that it's not what everybody uses 13:44:18 That doesn't mean that it won't tell you whether there were any 13:44:56 Deewiant: Well, I guess you could argue so. But to me a it's not a real clobbering if you can still tell there was something that got clobbered. 13:45:45 Deewiant: You are, however, correct. "Returns: true if it was successful" 13:46:09 I guess that's the difference between "throwing away" and "clobbering" the errors. 13:46:36 I don't know, it can be good to leave some kind of evidence of one's clobbering skills 13:46:44 Yes; a bloody mess. 13:46:55 `addquote Deewiant: Well, I guess you could argue so. But to me a it's not a real clobbering if you can still tell there was something that got clobbered. 13:46:56 499) Deewiant: Well, I guess you could argue so. But to me a it's not a real clobbering if you can still tell there was something that got clobbered. 13:48:53 -!- augur has changed nick to augurAFK. 13:52:28 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 13:54:41 -!- Lymee has quit (Ping timeout: 260 seconds). 14:04:27 -!- nooga has joined. 14:04:41 -!- asiekierka has left. 14:07:34 -!- Lymee has joined. 14:32:56 -!- derrik has joined. 14:33:14 -!- copumpkin has joined. 14:42:43 -!- augurAFK has changed nick to augur. 14:47:47 -!- derrik has left. 14:52:22 -!- oerjan has quit (Quit: Later). 14:55:40 hmm, does anyone here know where the documentation for the x86 Linux ABI (that is, the userspace to kernel ABI, not the unstable in-kernel one) is in the kernel source tree? 14:55:58 the main documentation section just says that it's arch-specific, and I can't find it in the arch documentation sections 14:59:21 ais523, there is the header with syscall numbers I guess 14:59:29 Vorpal: there is, and I'm aware of it 14:59:35 ais523, not sure where they document which registers to prod and so on 14:59:40 but syscall numbers doesn't give things like number/type/order of parameters, or even which registers they're passed in 14:59:49 exactly what I just said yeah 14:59:51 and it's hard enough working out the difference between ax and orig_ax 15:00:03 The calling convention is standard C 15:00:15 (the header in question documents it as "this information is only provided for gdb", which isn't massively useful) 15:00:35 Deewiant, uh. Not exactly? It use pushing various registers then doing a SYSCALL iirc 15:01:02 I have the x86-64 register convention here if you care 15:01:11 I care more about x32 15:01:20 even though I'm on a 64-bit system myself 15:01:26 I have x86-64 ABI docs too here. 15:01:37 commercial precompiled Linux binaries tend to be 32-bit, right? 15:01:50 ais523, depends. I seen both. 15:01:57 ais523: yes 15:02:22 (this is for the same program that errors out if a process it creates doesn't have PID 2, btw) 15:02:33 ais523: what are you trying to do? :-P 15:02:44 err, hmm, I was hoping you wouldn't ask that 15:02:57 basically, it's a similar idea to the one behind cryopid (which incidentally doesn't work) 15:02:58 ais523, I think generally you call a function in that high-mapped vdso, which then does syscall, sysenter or interrupt depending on what the processor supports 15:03:03 Distribute a commercial precompiled Linux binary that errors out if a process it creates doesn't have PID 2????? 15:03:06 HOLE IN ONE 15:03:27 -!- CakeProphet has joined. 15:03:28 -!- CakeProphet has quit (Changing host). 15:03:28 -!- CakeProphet has joined. 15:03:31 elliott: nah, the idea is that you operate on an existing binary, and try to run it in a completely reproducible fashion, no matter what else is going on in the system 15:03:35 elliott, good one, pid 2 is always some kernel internal thingy :P 15:03:37 so you can rewind it and start again 15:03:44 Vorpal: not in my case 15:03:49 root 2 0.0 0.0 0 0 ? S Jul07 0:00 [kthreadd] 15:03:51 Vorpal: (this is for the same program that errors out if a process it creates doesn't have PID 2, btw) 15:03:56 it is that on all the computers I checked 15:03:59 when I tested the code, the process always did have PID 2 15:04:04 huh 15:04:06 or think it did, at least 15:04:15 the trick is, that nowadays, Linux PIDs have namespaces 15:04:21 so you just run it in a different namespace to everything else 15:04:22 aaaah 15:04:24 (PID 1 is fakeinit) 15:04:25 ais523, why would it error out if you don't get PID2 15:04:27 I mean... 15:04:29 why 15:04:34 because it means something's gone wrong with the reproducibility 15:04:35 PID 2* 15:04:42 a lot of programs will notice if you randomly change their PID under them 15:04:55 cryopid gets around the problem by, umm, opening /dev/kmem and setting the PID inside the kernel by hand 15:05:02 ais523, wait a second, each time a program starts it get a different PID usually 15:05:06 which is a bad idea for all sorts of reasons, not least that it doesn't check that the PID is already in use 15:05:17 cryopid gets around the problem by, umm, opening /dev/kmem and setting the PID inside the kernel by hand 15:05:18 wtf is cryopid? 15:05:20 amazing 15:05:28 anyway I don't even HAVE a /dev/kmem 15:05:33 Vorpal: jfgi 15:05:34 elliott: I /hope/ it isn't using that code any more, because /dev/kmem no longer exists 15:05:38 just /dev/kcore, which is readonly 15:05:47 ah 15:06:03 it looks like they were working on a workaround, which intercepts syscalls to getpid and ioctl and changes the PID returned 15:06:17 but that seems only really partial, in that a huge number of other things know about PIDs (fcntl, for instance) 15:06:29 (not to mention kill) 15:07:49 ais523, wait, is cryopid a way to freeze a process? Hm 15:08:00 Vorpal: yes, and restart it later 15:08:09 I think such functionality is built in in the linux kernel nowdays 15:08:20 used for stuff like suspend/resume, and many other things 15:08:30 although when I tried to compile it, it didn't compile, when I fixed the compilation (changing the header files included and the names of registers), it spouted errors, and the resulting program segfaulted 15:08:41 ais523, but what would it do if the PID in question is already in use? 15:08:46 and that doesn't let you freeze a process and then restart it on another machine 15:08:55 Vorpal: it'd give it the same PID as the process already in use 15:09:01 as far as I can tell, this is not a good idea 15:09:02 ais523, that sounds dangerous 15:09:17 and the syscall to create processes with duplicate PIDs was removed a while ago (and restricted to process 0 before that, and restricted to root before that) 15:10:01 ais523, there is no PID 0 as far as I can tell? 15:10:10 If CLONE_PID is set, the child process is created with the same process ID as the calling process. This is good for hacking the system, but otherwise of not much use. Since 2.3.21 this flag can be specified only by the system boot process (PID 0). It disappeared in Linux 2.5.16. 15:10:15 I don't think PID 0 appears in /proc 15:10:25 ais523, what is PID 0 supposed to be? Kernel itself? 15:10:26 nor do I think that signalling it would do anything particularly sane 15:10:38 hm 15:10:45 oh, right, you can't signal it 15:10:51 PID 0 is init, isn't it? 15:10:55 if you give an argument of 0 to kill, you kill yourself 15:10:56 and PID 1 is init 15:10:58 Lymee, no that is PID 1 15:11:01 or fakeinit, in my case 15:11:01 Ah. 15:11:11 Wait, then what's 0? 15:11:17 (as far as I can tell, all init actually has to do is spawn a process, then call wait in a loop) 15:11:21 System boot process? 15:11:26 yes, whatever that is 15:11:28 according to that man page, yes 15:11:36 WTF is that? 15:11:42 Something pre-init? 15:11:54 Yes. 15:12:15 from what I remember the system executes /sbin/init (or if an initramfs some other file) which at the end execs the real /sbin/init 15:12:25 so I have no idea what pid 0 could be yeah 15:13:09 hmm, I tried a search engine, it didn't seem to know 15:13:16 I suppose it might be possible to ask in #linux or wherever 15:13:29 ais523, ##linux is largely useless... 15:13:37 I can say that from my own experience 15:13:41 Vorpal: what's it about? 15:13:45 as in, actual topic, not notional topic 15:13:52 ais523, newbies asking simple questions mostly 15:14:01 not at all kernel related 15:14:04 who's a linux? 15:14:15 hmm, is there a channel for the kernel in particular? 15:14:23 ais523, I don't know of one, no 15:14:26 I suppose there's kernelnewbies, which isn't on Freenode 15:14:39 and I've forgotten which server it is on 15:14:40 ais523, hm they have an irc channel? Good website though. 15:14:50 ais523: Observation: Java is a language designed so that the majority of your variables have the exact same name as their type (or some trivial translation, e.g. List -> Ts) 15:14:51 yep, apparently so 15:15:12 ais523: Observation II: If you removed the names from Java and just used the types, that would be one really weird language 15:15:13 elliott, hehe. 15:15:19 elliott: nah, I often use types more than once 15:15:31 ais523: I didn't say it was universal :P 15:15:34 well that's what natural language does all the time 15:15:42 I'm just saying that it's surprisingly ubiquitous in Java. 15:15:45 oklopol: right 15:15:59 T t = getT(); 15:16:00 which is why i've been thinking about having that in a lang 15:16:04 for longs of times 15:16:07 it would be fun if you couldn't have (A,A) because you'd have no way to distinguish the two As 15:16:12 elliott, maybe because java has 1) classes 2) lots of container types? 15:16:13 so you'd have to find another way to construct A 15:16:20 elliott: I think I feel an esolang coming on 15:16:28 like, if you wanted a pair of two integers 15:16:34 you'd have to come up with two underlying representations 15:16:36 so that they have different types 15:16:41 so that you could distinguish them 15:16:45 Or alternately abuse scoping rules. 15:17:00 Phantom_Hoover: nah, what kind of esolang would it be if it was that easy to circumvent? 15:17:01 -!- Taneb has joined. 15:17:05 Hello! 15:17:15 Hello. 15:17:16 haha if you had two types that have essentially the same structure, the compiler would complain that you have two identical types 15:17:16 hi 15:17:25 oklopol: :D 15:17:43 oklopol: "this is bits, and also this is bits, and also everything is bits. try replacing your program with just one bit." 15:17:49 ^ 15:18:05 Countdown has the letters for Linux 15:18:14 elliott, hrrm... for signed integers I can only think of three representations... sign-magnitude, one-complement, two-complement 15:18:24 so you can have at most three signed integers in your program? 15:18:31 whats an (N,N) 15:18:38 Vorpal: one-hot! 15:18:45 ais523, oh true. 15:18:50 although that's a unary variant 15:18:52 yeah 15:18:53 hm 15:18:57 whats an (N,N) 15:19:01 ais523, gray-code for signed? My brain hurts 15:19:13 Vorpal: it wraps round just like 2's-complement does 15:19:20 elliott, I know what a pair is. 15:19:27 ais523, ah 15:19:27 Signed integers can also have Base -2 inegers 15:19:31 *integers 15:19:38 hm does "three-complement" even make sense? 15:19:38 Taneb: good point, that's a reasonable representation 15:19:43 Vorpal: only in base 3 15:19:47 oh right 15:20:03 the terms are generally base-complement and base-minus-one-complement 15:20:10 which are silly names really, they should be more consistent 15:20:15 hmm, I suppose that means it makes sense in base 4 too 15:20:25 ais523, what about one-complement in base 3? 15:21:23 http://xkcd.com/923/ <-- OK, I have to admit, this XKCD is legit funny :P 15:21:38 i think that's the worst one ever 15:22:07 Gregor: I liked it too 15:22:09 elliott, I know what a pair is. 15:22:12 lol 15:22:15 I don't get that XKCD 15:22:24 Strunk and White? 15:22:29 Taneb: o_O 15:22:37 http://en.wikipedia.org/wiki/The_Elements_of_Style 15:22:48 you don't need to know who they are to get the joke, though 15:22:55 ais523: you do 15:22:59 I'm British 15:23:02 ais523: in that, the joke is based around the stickler-ness 15:23:02 I didn't, and I got it 15:23:05 Taneb: so am I 15:23:10 it's because the comic itself makes them out to be sticklers 15:23:17 hmm, true 15:23:19 I thought they were fictional sticklers from it, and it still works 15:23:21 it's still basically reference humour though 15:23:33 ais523: you can't seriously have expected an xkcd without a reference 15:23:44 elliott: xkcd is full of references? 15:23:54 * elliott boggles mildly at ais523. 15:23:58 I still have no idea who Ron Paul 15:23:59 You don't need to know who they are to get the joke ... 15:24:02 is 15:24:24 I mean, you need to understand that it's a prescriptivist English style manual, but everything else you can get from there. 15:24:26 Taneb: he's the president of australia 15:24:29 Taneb: American politician, tends to be the third most popular (and thus way behind the Democratic and Republican candidates for President) 15:24:32 hope this helps 15:24:39 ais523: third most popular??? 15:24:47 elliott: out of the people running, I mean 15:24:50 (and you realise Ron Paul is Republican?) 15:24:54 yep 15:25:10 most people don't bother to run against their own party when they lose the primary 15:25:25 I'm incredibly sceptical of any statistics saying that Ron Paul is the third-most popular candidate 15:25:43 Ron Paul is on the republican /ticket/, he's a libertarian. 15:25:45 Unless the sample is "reddit just before Obama looked like he was going to win". 15:25:50 well, third = statistical fluctuation in the US 15:26:12 I didn't actually know what his policies were, because his fans never seem to say 15:26:47 actually, that's true of all sides in American politics, I think 15:26:53 both the really big ones and the really little ones 15:27:00 their favourite politicians are right, regardless of what they believe 15:27:16 i liked http://xkcd.com/920/ way more than that penis joke 15:27:35 Java really needs shorthand for "if (x instanceof T) { T y = (T) x; ... } else { ... }" 15:27:36 There's a penis joke in that? 15:27:39 don't recall seeing anyone make that point 15:27:43 in a comic 15:27:46 therefore it is funny 15:27:51 "cast (x as T y) { ... } else { ... }", say 15:28:03 Taneb: well penis enough. 15:28:18 Taneb: as you can see, we are always on-topic. 15:28:21 hmm, 920 is an interesting observation that isn't particularly funny, just like most of XKCD 15:28:22 oklopol: But is anything ever really penis enough? 15:28:29 elliott, is java statically or dynamically typed? Or some mix? 15:28:36 ais523: It isn't particularly interesting either. 15:28:37 reading XKCD for the observations can be interesting, if not funny 15:28:40 ais523: interesting observation = definition of funny 15:28:48 Vorpal, statically. 15:28:54 Vorpal: ... static. Having casts does not make you dynamically typed :P 15:28:55 I wonder if I could get Eclipse to automatically add imports when there's only one option... rather than making me tell it to 15:29:04 Gregor, true. 15:29:07 Man, why am I even coding Java. 15:29:09 Vorpal: Statically. 15:29:11 elliott: "try { T y = (T) x; ...; } catch (ClassCastException) { ... }" :p 15:29:16 fizzie: Yeeeeeeeeeeees. 15:29:24 fizzie: That doesn't handle NullPointerExceptions :) 15:29:24 oklopol: did you know that children of fighter pilots of a particular nationality (was it Danish?) are 80% girls? 15:29:34 fizzie: And also, catches ClassCastExceptions in the "...". 15:29:36 * ais523 waits for hilarious laughter 15:29:37 elliott: catch (Throwable) { ... } 15:29:43 ais523: LMAO 15:29:48 fizzie: Perfect. 15:29:58 -!- cheater_ has quit (Ping timeout: 255 seconds). 15:30:11 elliott: ON ERROR RESUME NEXT 15:30:13 I, umm, invoke Sturgeon's Law 15:30:24 -!- cheater_ has joined. 15:31:59 I invoke Godwin's 15:32:01 How is this still less than three hundred lines :-/ 15:32:04 And Poe's 15:32:07 ais523: okay interesting observation + puzzle 15:32:24 which one was Poe's again? 15:32:26 i suppose xkcd usually lacks the latter, just like your joke. 15:33:01 wait, that's the one I thought was Sturgeon's Law 15:33:05 Poe's was about parodies 15:33:12 * ais523 looks up sturgeon's law 15:33:16 ah, aha 15:33:19 wow, that was relevant by mistake 15:34:08 so here's the joke version: "if i had to fuck a random person in the ass i'd make sure the probability measure is heavy on children of danish fighter pilots!" 15:34:59 that is still not funny 15:35:05 except in banal bizarreness 15:35:07 erm 15:35:16 actually it's very funny, although not because i made it a puzzle 15:35:37 but because of the "accidental" pedophilia 15:35:41 I am laughing in real life right now, but not because what you said was actually funny 15:35:49 more at the conversation in general 15:35:59 Because a ninja is tickling you? 15:36:08 I don't think so 15:36:18 although if a ninja were involved, I'm not convinced I'd be able to tell 15:36:43 -!- cheater_ has quit (Ping timeout: 255 seconds). 15:36:54 so here's the joke version: "if i had to fuck a random person in the ass i'd make sure the probability measure is heavy on children of danish fighter pilots!" 15:36:54 that is still not funny 15:36:56 i dunno, I'm laughing 15:36:59 although i'm not sure why... 15:37:02 elliott: ditto 15:37:10 i thought it was some of my best work this week 15:37:15 I don't think it's because of the "joke", which isn't funny, but because of the conversation as a whole, which is 15:37:19 perhaps even better than my smileys yesterday 15:37:26 oklopol: you should do a standup show, thanks 15:37:36 Explaining recursion is tricky... 15:37:44 Taneb: try explaining recursion 15:37:58 hey! i thought really hard about algorithmically jokifying that and still adding a double entendre 15:38:04 i mean worked 15:38:12 argh 15:38:19 i failed at sentence. 15:38:21 Huh 15:38:22 let me retry 15:38:38 hey! i had to think really hard with my brain to manage to algorithmically jokify that and still adding a double entendre 15:38:39 *add 15:38:46 Turned out he got recursion, he just didn't get the return statement 15:39:19 wanna see me recurse? 15:39:21 fuck 15:39:21 fuck 15:39:26 Taneb: wait, do you teach programming too? 15:39:31 oklopol: stop masturbating 15:39:39 elliott: my standup comedy show is here 15:39:41 Not professionaly 15:39:44 that was my first joke 15:40:01 If I was professional, I wouldn't be on IRC at the same time 15:40:07 and the second was, umm, you realising that the first was self-embarassing? 15:40:07 this is too ridiculous 15:40:17 second line, that is, not second joke 15:40:34 ais523: ? 15:40:36 `addquote Turned out he got recursion, he just didn't get the return statement 15:40:37 500) Turned out he got recursion, he just didn't get the return statement 15:40:38 you did get my fuck joke right 15:40:38 elliott: it's an improvement over /parting to protect me from a lethal facepalm 15:41:00 which I did recently (it involved the usual suspect) 15:41:01 ais523: I HAVE ABSOLUTELY NO IDEA ABOUT WHICH EVENT YOU COULD POSSIBLY BE REFERRING TO. 15:41:11 elliott: good, don't read recent logs, I doubt you'll survive 15:41:17 SEE I CURSED BY SAYING FUCK AND THEN I SAID FUCK AGAIN SO I *RE*CURSED 15:41:18 ais523: I DEFINITELY DIDN'T 15:41:19 is this channel usually so confusing btw, or am i just tired 15:41:31 oklopol: oh, I was thinking of an entirely different joke 15:41:32 * oklopol explains just in case 15:41:43 elliott: it isn't, it's more confusing than usual today 15:41:49 ais523: well i'm sure mine was better 15:41:58 15:45:05: No nasty sounds for a while now. Going to turn off and on and see if the numbers get worse. 15:41:59 wow, i actually missed this line 15:42:03 `addquote No nasty sounds for a while now. Going to turn off and on and see if the numbers get worse. 15:42:04 501) No nasty sounds for a while now. Going to turn off and on and see if the numbers get worse. 15:42:04 elliott: do like me and just read your own lines? 15:42:06 gotta curate 15:42:16 oklopol: i dunno what you said but it was probably stupid 15:43:07 what did the child of a danish pilot say to his dad? 15:43:14 he said why do i have so many sisters? 15:43:28 i'm on fire :O 15:43:35 gah, if I've started a meme and got the wrong country, I'll be annoyed 15:43:50 ^ he also said that because his dad was not a very good pilot 15:43:51 "Kan jeg have en pony?" 15:43:53 also, I notice you implicitly assumed the fighter pilot was male 15:44:15 ais523: i did? 15:44:27 err, no you didn't 15:44:33 i just assumed that's something you ask your own gender parent 15:44:51 I failed to parse the sentence as it was bizarre enough as it is 15:45:23 well not everyone can be a child of a danish pilot in linguistics. 15:46:03 Right, I've succeeded in explaining the return function 15:46:17 return isn't a function 15:46:21 -!- nooga has quit (Ping timeout: 252 seconds). 15:46:23 Statement, then 15:46:24 nor can it be meaningfully written as one, except in INTERCAL 15:46:31 (which allows you to return from functions you aren't in) 15:46:40 or asm, I suppose 15:46:44 or it's probably possible in Perl too 15:47:16 because all sorts of absurd things are possible in Perl 15:47:29 GCC __builtin_return() is technically called a "function". 15:47:44 BUT IS IT A MATHEMATICAL FUNCTION?!?!?!?!?!? 15:47:59 wait, there's a __builtin_return()? 15:48:05 that doesn't seem to fit the scheme of the other builtins 15:48:13 Yes. It returns a __builtin_apply-constructed value from the containing function. 15:48:21 See the "constructing calls" section of the manual. 15:49:05 "Using the built-in functions described below, you can record the arguments a function received, and call another function with the same arguments, without knowing the number or types of the arguments." 15:49:13 -!- cheater_ has joined. 15:49:29 ... "However, these built-in functions may interact badly with some sophisticated features or other extensions of the language. It is, therefore, not recommended to use them outside very simple functions acting as mere forwarders for their arguments." 15:49:47 I can't think of an application offhand 15:50:22 Given a generic function pointer, it may be possible to construct another function that, say, logs something to a log and then "forwards" the call. 15:50:32 Without knowing the type of the function. 15:50:33 hmm, that was an unintentional pun 15:51:18 you mean your application thingie 15:51:43 You could also use __builtin_return_address(1) to get the address to where your latest caller should return, but there's no portable way of actually doing a multi-level return there. 15:52:34 oklopol: thanks for the correction 15:52:59 hey i have a good one: why were the child of a pilot and the danish child both women? 15:53:06 fizzie: can't you get your own return address, then overwrite it? 15:53:36 ais523: Not portably, I don't think; and in any case that'd probably leave the stack somewhat messed up, depending on the calling convention of course. 15:53:39 because they were the same child :D 15:54:01 fizzie: good point 15:54:10 it'd return correctly, but not set up the stack for the next return 15:54:27 ais523: i think you have discovered the funniest fact in the world 15:55:24 There's another built-in to get frame pointers, and if you know the calling convention it might be possible to do some sort of manual stack unwinding. Though it's not really "C" at that point any more. 15:55:57 oh, I remember why I know those builtins 15:56:02 it's because of gcc-bf, I had to actually implement them 15:56:25 I was looking into a BF backend for llvm, but it makes all sorts of frustrating assumptions 15:56:51 like all its primitive operations either existing on the system it targets, or being implemented in terms of other llvm primitives that do exist 15:57:36 how unfair 15:58:44 gcc is better, in that it doesn't deliberately make any assumptions that contradict the way that BF does 15:58:54 although it effectively does as the codepaths for, say, 8-bit moves not existing don't work properly 16:00:27 :D 16:03:09 ais523: Manipulating the return stack could let you define a RETURN "function" (well, word), but again not portably (you're not supposed to touch return stack values you didn't put there) and it wouldn't work properly when called from inside another control-flow construct that used the return stack. 16:03:24 Er, I forgot to mention "in FORTH" in there anywhere. 16:03:42 you do functions by hand in FORTH, don't you? 16:03:49 hmm, I suppose that would let you have two independent call stacks 16:04:00 and that might even be useful, perhaps? I'm not sure 16:05:31 Many cooperative-multitasking systems in FORTHs are based on having multiple sets of control-flow/data stacks (for each stack). 16:05:38 -!- foocraft has joined. 16:06:24 Most of the control-flow stack manipulations are not portable in the ANS Forth sense. 16:06:37 "The control-flow stack may, but need not, physically exist in an implementation. If it does exist, it may be, but need not be, implemented using the data stack. The format of the control-flow stack is implementation defined." 16:07:23 Portably you can mostly just use it for storing temporary data values when not crossing control-flow-structure nesting depth. 16:17:21 Here's an on-topic idea: Queue data structure with fast track passes 16:18:41 ben ate taneb 16:18:52 He did? 16:19:22 i saw: boob was i :( 16:23:29 EU? EU queue! 16:24:03 i apologize the cheating but that was just too good to pass 16:24:06 *for 16:24:07 oklopol: that last one is execllent 16:24:12 *excellent 16:24:22 yeah 16:24:44 although as a general rule i don't use proper names or acronyms because it makes palindroming kind of trivial 16:25:13 at least in finnish, i haven't done much in english since it seems pointless in languages where reversed text isn't pronounced reversed 16:26:27 -!- elliott has quit (Remote host closed the connection). 16:26:40 yay! 16:26:52 -!- elliott has joined. 16:27:11 [17:25] <-- elliott has left this server (Remote host closed the connection). [17:26] yay! [17:26] --> elliott has joined this channel (~elliott@unaffiliated/elliott). 16:27:15 :( 16:28:41 so, ol' git felt a rat left igloos 16:28:45 Lion oil! 16:29:11 also english has way too much of that gh and sh stuff 16:29:19 Taneb, the oil of champions! 16:29:31 i mean "the" is probably just there to annoy palindromists 16:29:54 oops, i eh: "the" is poo. 16:30:08 luckily everything is a verb in english 16:30:26 Everything everythings in English. 16:32:04 see palindrome 'n' an emo r'd nil apees. 16:32:11 (an apee is someone being aped) 16:32:17 argh 16:32:23 see: palindrome 'n' an emo r'd nil apees. 16:32:36 r'ing is when you... well whatever 16:32:41 Bye 16:32:44 this language is too hard 16:34:43 seven a mom. o? hey bye homo man! eves :) 16:35:14 i have no idea what "seven a mom" was meant to imply 16:35:31 but the rest is okay i suppose 16:35:36 why won't anyone play with me :( 16:35:58 maybe we could do math instead? 16:36:27 -!- Taneb has quit (Quit: Taneb). 16:36:30 i generalized my characterization as follows: actually essentially the same thing characterizes all products of CA such that G^n = G for some n!=1 16:36:39 and on arbitrary sofic shifts if i'm not mistaken 16:36:40 -!- Taneb has joined. 16:36:46 Hello 16:37:11 sofic shifts of course being the CA images of SFT's which are subshifts obtained by using a finite set of forbidden blocks 16:37:33 hi Taneb, do you wanna do palindromes or math? 16:37:47 I'm going to do math. 16:37:50 ! 16:37:57 I'm no good at palindromes 16:38:09 me neither, as recently proven 16:38:15 Better than me 16:38:32 eh, "seven a mom" 16:38:38 you would never say "seven a mom" 16:38:56 Not personally. 16:39:04 well there you go 16:39:05 I would say "seven a mum" 16:39:08 British 16:39:24 Heck, I may even say "seven a mam" 'cos I'm Northern 16:39:42 well yeah but you are not a homu man, you are a homo man 16:40:01 so seven a mum would make no sense 16:40:21 but maybe i could "home u man"! do you ever say "muem"? 16:40:34 No? 16:40:43 ok nm then 16:40:54 "mu, emphasis"? 16:41:39 oklopol: Eat, emit! Ho, bomb-mob. Oh, time tea? 16:42:03 Taneb: thank you, now i just need to fix the small hpm problem 16:42:13 fizzie: nice, can you also make a palindrome? 16:42:16 -!- Slereah_ has quit (Ping timeout: 246 seconds). 16:42:50 Oh dear; read ho! 16:42:57 also i'm not really following the story :D 16:43:05 Taneb: you are a natural 16:43:27 "lion oil" was just awesome 16:44:07 E, esoteric, ire to see. 16:44:19 :D 16:44:33 So, is there an annoying esoteric programming language called "E"? 16:44:35 ^ also a palindrome 16:44:45 Taneb: there certainly is a language called that 16:45:37 But it's conventionaaaaal! 16:47:24 Do now that it... naw, it! I want it! Ah, two nod. 16:47:50 yay 16:47:51 wouter has an e i think 16:48:00 the capability-based E is hardly conventional, though 16:48:08 fizzie: and no grammatical errors either! 16:48:13 http://strlen.com/amiga-e ;; Wouter's is rather more conventional :D 16:49:06 dim u, he be humid! 16:50:08 traditional? a no-IT iDart! 16:50:34 sry couldn't make conventional work 16:51:09 Flow ebb Malbolge, eg., lob lamb be wolf 16:51:39 :D 16:52:13 what's eg tho 16:52:25 eg. means for example 16:53:15 right 16:53:18 Isn't that "e.g." CONVENTIONALLY? 16:53:21 yeah 16:53:28 Probably 16:53:49 i thought you spelled it wrong so i checked it, and the dictionary disagreed with your spelling so i decided eg actually did not mean for example 16:54:29 so like 16:55:32 i suppose "flow ebb" is like you telling malbolge to be easier to write? 16:55:47 Yep. 16:55:55 Or to understand, like the tides 16:55:56 but then you say "stop being a lamb, be a wolf instead", are sheep hard to write? 16:56:27 Lamb has a silent lette 16:56:30 r 16:56:34 :D 16:56:39 okay 16:56:40 Sheep is the same in the plural 16:56:42 you are a fucking genius 16:57:00 So I'm told 16:57:01 i don't think i'm ever making another palindrome 16:58:02 SS eh? Come on, no emo chess. 16:58:26 okay i'm not telling you what my characterization is 16:58:27 SS eh being my lack of understanding is like a ship. 16:58:30 you'd just go like lolol triv 16:58:54 I have no idea what's going on 16:58:59 I'm just writing palindromes 16:59:46 i thought you meant "oh you're a member of the SS" and then compared killing jews to emo chess 17:00:06 they have many similarities 17:00:14 That works too 17:00:33 I just want to say that the Nazis killed more people than Jews 17:01:28 Just everyone only remembers the jews 17:01:37 Yeah, it was mainly Jews. 17:01:46 And 1 clown. 17:02:10 poor clown 17:02:13 -!- cheater_ has quit (Ping timeout: 255 seconds). 17:02:17 Phantom_Hoover: nothing wrong with a bit of emo chess humor, elliott does it all the time as well. 17:02:17 That was the communists 17:02:27 Who killed that clowwn 17:03:34 Bye 17:03:52 i'm not giving you another one 17:04:28 Phantom_Hoover: The clown was gay. 17:04:47 Gregor, also a gypsy Jehova's witness? 17:05:03 That must have been one complicated badge they made him wear ... 17:08:28 -!- Taneb has quit (Ping timeout: 276 seconds). 17:08:51 so this was fun 17:08:53 what's next? 17:09:41 Blackjack and hookers. 17:09:49 Gregor, WP says they just stuck all the badges one below the other. 17:10:05 Phantom_Hoover: Oh, I thought there were cases where they layered :( 17:10:39 Gregor, yeah, Jews had the coloured inverted triangle over a yellow one. 17:10:48 Ahh 17:11:30 So I guess it'd be a purple triangle above a pink triangle above a brown triangle. 17:12:30 i suppose someone with that many triangles stacked on top of each other is certainly a "-gon"er 17:12:55 was that a pun? 17:13:29 yes 17:13:35 a horrible horrible pun 17:13:36 ok 17:13:45 it's the theme of the day 17:13:53 how unusual 17:14:49 -!- cheater_ has joined. 17:20:34 -!- cheater__ has joined. 17:21:53 wow i really need to sleep 17:21:54 -> 17:23:03 -!- cheater_ has quit (Ping timeout: 250 seconds). 17:23:28 -!- foocraft has quit (Quit: if you're going....to san. fran. cisco!!!). 17:34:44 -!- Nisstyre has quit (Remote host closed the connection). 17:37:35 -!- zzo38 has joined. 17:39:43 -!- Nisstyre has joined. 17:40:20 -!- Taneb has joined. 17:40:35 Hello! 18:00:16 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds). 18:00:51 Hello? 18:02:06 hello 18:07:19 -!- monqy has joined. 18:13:42 -!- nooga has joined. 18:29:47 -!- Taneb has left. 18:30:52 -!- cheater__ has quit (Ping timeout: 255 seconds). 18:35:33 -!- ais523 has quit (Remote host closed the connection). 18:41:55 -!- monqy_ has joined. 18:42:42 -!- monqy has quit (Disconnected by services). 18:42:45 -!- monqy_ has changed nick to monqy. 18:44:00 -!- cheater__ has joined. 18:47:56 -!- _foocraft has quit (Quit: So long, and thanks for all the fish!). 18:48:23 hello. 18:48:30 hello 18:50:40 -!- nooga has quit (Ping timeout: 255 seconds). 19:11:42 lulululul Star Trek: TAS is so cartoonish X-D 19:12:27 it is, after all, the animated series 19:13:18 That doesn't mean it has to be cartoonish per se :P 19:15:04 -!- Phantom_Hoover has joined. 19:17:24 it doesn't? is cartoon a specific category of animation? 19:17:49 cartoonISH 19:18:07 elliott: well, if it is a cartoon, of course it's cartoonish 19:18:24 `addquote * Sgeo is risking massive forest fires The bacon is worth it 19:18:25 502) * Sgeo is risking massive forest fires The bacon is worth it 19:18:45 `quote 501 19:18:46 501) No nasty sounds for a while now. Going to turn off and on and see if the numbers get worse. 19:19:13 sgeo confuses me 19:19:31 `quote 500 19:19:33 500) Turned out he got recursion, he just didn't get the return statement 19:19:37 `quote 499 19:19:39 499) Deewiant: Well, I guess you could argue so. But to me a it's not a real clobbering if you can still tell there was something that got clobbered. 19:19:47 `quote 498 19:19:49 498) elliott: You have become the very thing you fought for! 19:19:54 `quote 497 19:19:56 497) elliott: i have yet to demonstrate that the sml community has less productive power than the real chunk of meat. 19:20:30 ok, caught up with the added quotes now, carry on 19:20:52 :D 19:23:46 -!- pikhq has joined. 19:24:26 -!- pikhq_ has quit (Ping timeout: 260 seconds). 19:29:49 -!- oerjan has joined. 19:34:34 -!- shachaf has joined. 19:39:16 -!- cheater__ has quit (Ping timeout: 255 seconds). 19:39:59 I invoke Godwin's 19:40:08 i say someone fit in here rather quickly 19:41:35 Godwin's what? His theremin playing cat? 19:42:22 law. 19:42:43 oh, that 19:43:11 i take it you did nazi it coming. 19:44:23 ais523: I HAVE ABSOLUTELY NO IDEA ABOUT WHICH EVENT YOU COULD POSSIBLY BE REFERRING TO. 19:44:40 which is presumably why you absolutely didn't lampshade it in privmsg 19:45:30 Eh? 19:45:38 Oh :P 19:45:54 How do you state an actual negative with these towers 19:45:54 NOTHING, ABSOLUTELY NOTHING 19:46:01 towers? 19:51:37 -!- cheater__ has joined. 19:52:58 Heck, I may even say "seven a mam" 'cos I'm Northern 19:53:16 by some freak coincidence taneb is elliott's next door neighbor 19:58:51 hehe, read "freak accident" there ... something like a teleporter malfunction that moved his entire home and made him elliott's neighbor 19:59:16 well i didn't specify _how_ freaky 20:00:42 well, *coincidence* would be "... it just so happens that taneb's selected target coordinates made him elliott's neighbor" 20:01:07 -!- kwertii has joined. 20:01:10 I think freak accidents are generally more freaky than freak coincidences 20:09:34 -!- calamari has joined. 20:31:46 -!- asiekierkaDS has joined. 20:31:51 hi 20:33:05 Hi! Welcome! 20:33:20 Auf Wiedersehen! Goodbye! 20:33:27 D: 20:33:42 bye bye, oerjan! 20:33:44 wait you mean we are _not_ doing sound of music? 20:34:20 well, I think we got the lyrics wrong, also I don't know the lyrics 21:03:31 -!- Taneb has joined. 21:03:41 Hello! 21:04:13 that's what they all say 21:05:44 oerjan: no, the last one just said hi 21:08:03 that's just the polish version duh 21:08:28 no, the polish version is an indecipherable sequence of consonants 21:09:23 -!- boily has quit (Ping timeout: 252 seconds). 21:09:39 some combination of sz, cz, rz, s, c, ś, ź and/or ć, iirc 21:10:12 hm... 21:10:29 `translatefromto en pl Hi 21:10:31 No output. 21:10:34 `translatefromto en pl Hello 21:10:36 No output. 21:10:48 `translatefromto en no Does this work at all any more? 21:10:50 No output. 21:10:57 apparently not. 21:12:24 `translate Fru Ibsens ripsbusker og andre buskvekster 21:12:26 No output. 21:13:30 -!- azaq23 has quit (Quit: Leaving.). 21:14:30 oerjan: why the sudden interest in mrs ibsen's bush? 21:16:47 i am merely investigating regarding the possibility of translating norwegian tongue-twisters 21:17:33 can't hold a candle to sex laxar i en laxask 21:17:49 -!- asiekierkaDS has quit (Ping timeout: 255 seconds). 21:18:15 nobody asked for lax sex 21:19:24 google translate renders that as "six salmon in a laxask" 21:19:51 btw, I love how "wrong" is pronounced "fail" in norwegian 21:21:48 What is a laxask? 21:21:56 -!- MigoMipo has joined. 21:22:01 -!- MigoMipo has quit (Read error: Connection reset by peer). 21:22:14 To power cycle your modem: 21:22:14 1. Shut down your computer 21:22:14 Comcast: So much fail :P 21:22:25 apparently, a box for keeping salmon in 21:22:30 -!- MigoMipo has joined. 21:22:55 seks laks i en lakseske 21:23:04 Someone showed me some article including mathematics and a code for recognizing shapes by converting the outline to a graph that stays the same regardless of orientation or scale. 21:23:12 (no I don't know if anyone in sweden actually has boxes like that) 21:24:04 -!- MigoMipo has quit (Read error: Connection reset by peer). 21:24:41 -!- MigoMipo has joined. 21:25:02 olsner: it's probably popular among seasick sailors and their nurses 21:25:07 My brother's character is doppelganger but have not decided the class 21:25:34 Someone showed me some article including mathematics and a code for recognizing shapes by converting the outline to a graph that stays the same regardless of orientation or scale. 21:25:54 This is presumably the layman's definition of graph, not an actual graph graph. 21:25:59 oerjan: probably... I don't know any nurses or sailors though 21:26:41 Phantom_Hoover: Yes. 21:26:48 -!- elliott has quit (Read error: Connection reset by peer). 21:26:56 That is correct. 21:26:59 -!- elliott has joined. 21:28:25 so, "converting the outline into a pretty picture" is what it means? 21:29:17 This is presumably the layman's definition of graph, not an actual graph graph. 21:29:19 whats the laymans 21:29:20 And then moving it about a b— wait, you can't have a graph that's the same regardless of orientation or scale. 21:29:31 elliott, a drawing of y=f(x). 21:29:59 oh 21:30:08 i would presume it means a graph graph 21:30:23 Graphs look the same regardless of orientation and scale by definition. 21:30:39 Orientation and scale don't even make sense with regards to them. 21:44:20 BILLING SUMMARY 21:44:20 --------------- 21:44:20 PRIOR BALANCE: $0.00 21:44:20 [2011-06-25] $-10.67 = Prorated refund for rutian - 256 slice 21:44:20 --------------- 21:44:21 NEW BALANCE: $-10.67 21:44:27 rip 21:45:44 -!- MigoMipo has quit (Read error: Connection reset by peer). 21:49:36 If self-modifying code is allowed, you can possibly store some variables in the place of the immediate (or indirect, for pointer variables) operand to instructions, or boolean variables changing between JMP JZ JNZ if it is a condition with multiple parts. Can any platform-independent compiler do this? 21:53:38 -!- calamari has quit (Quit: Leaving). 22:06:09 http://www.maa.org/devlin/devlin_06_04.html 22:06:18 "For other examples of the appearance of the Golden Ratio in Nature, the growth of the Nautilus shell is governed by the Golden Ratio," 22:06:30 A piece on abuse of the golden ratio abuses the golden ratio. 22:06:40 (Nautilus shells are logarithmic, but not golden.) 22:07:35 a missed golden opportunity 22:08:28 Hello 22:08:54 Hello. 22:12:47 I've just had an awful idea for an esoteric programming language 22:13:01 not uncommon 22:13:37 Taneb: What idea? 22:14:14 The program is a lambda calculus thing 22:14:20 Just one. 22:14:31 It is then run as a church numeral 22:14:53 And the result is taken as a base 256 number and converted into ASCII and outputted 22:15:04 If any of that makes sense 22:15:27 well since that's how a part of lazy-k already works iirc... 22:15:27 Taneb: see lazy k 22:16:34 Not quite what I was going for 22:16:53 well, lazy k + abstraction eliminator :P 22:17:01 to go from lambda-calculus → SKI 22:17:12 I have no idea what SKI is about 22:18:03 O_O 22:18:07 shocking! 22:18:14 im shocked 22:19:49 Taneb: just predefined combinators: 22:19:57 S = \x.\y.\z.(xz)(yz) 22:19:59 K = \x.\y.x 22:20:02 I = \x.x 22:20:04 where \ is lambda 22:20:09 and you just compose your programs out of those + application 22:20:13 no lambda abstractions 22:20:40 (I is equivalent to SKK and SKS, and so is technically superfluous) (note: application is left associative, i.e. SKK = (SK)K) 22:23:05 So, it's equivalent to Lambda Calculus? 22:23:44 yes, but then so are brainfuck, and underload :) 22:23:51 how do i create a var params for function f (params) { g1(key); g2(params[key]) } // Dear #esotericers, I challenge you to figure out wtf this means. 22:23:56 there's a simpler way to specify reduction of SKI terms, but that's the definition in terms of the lambda calculus 22:24:13 javascript? 22:24:18 Gregor: They want variadic keyword arguments. 22:24:27 Gregor: i.e. they want to be able to call f(a:b, c:d) 22:24:30 and iterate through params 22:24:32 as {a:b,c:d} 22:24:35 I _think_. 22:24:53 Gregor: a la python's TWO ASTERISKS kwargs 22:24:59 ** 22:25:10 tasterisks 22:25:12 disasterisks 22:25:17 oh, there's my new band name 22:25:32 !unlambda ` ```sii ```sii ``s``s`ks``s`kkii .* i 22:25:43 eek 22:26:05 elliott: TIME TO FIND OUT 22:26:16 lifechamp: On behalf of the rest of ##javascript , may I say "Whaaaaaaaaaaaaaaa?" 22:26:43 a good answer 22:26:45 oh hm 22:26:50 !unlambda `` ```sii ```sii ``s``s`ks``s`kkii .* i 22:26:51 ​**************************************************************************************************************************************************************************************************************************************************************** 22:27:27 -!- GuestIceKovu has joined. 22:27:41 hi guesticekovu 22:29:17 Taneb: unlambda is the first and most famous SKI esolang 22:29:52 Okay 22:29:59 but the worst :( 22:30:06 it's not lazy though. in fact it has continuations and callcc 22:30:09 it's ok i forgive madore 22:32:08 it was probably also the first _functional_ esolang. 22:34:33 elliott, why, is his erotic elf fanfiction just too good to hate him? 22:34:43 wat 22:34:55 *erotic gay elf fanfiction 22:35:00 Erm, you were the one who found it. 22:35:14 no i wasn't? 22:35:22 XD 22:35:33 DON'T DENY IT 22:35:33 i forget who mentioned it but you can hardly "find" something linked directly on someone's webpage :P 22:35:39 anyway this is inane you're frightening the guests. 22:35:44 It is actually the reason you got into esolangs. 22:35:52 Yes totally. 22:35:59 PH has everything figured out. 22:36:05 elliott: um sure you can, when it's something other than you were looking for... 22:36:12 You were looking for gay erotic elf fanfiction and you found out that this guy Madore also had this esolang thing. 22:36:16 MYSTERY SOLVED 22:36:23 `quote gay vampire 22:36:24 401) [on Sgeo's karaoke] That is the thing that made me into a gay vampire. 22:36:26 I rest my case. 22:38:01 well madore is a creep anyway, never answered any of my emails. 22:39:00 :D 22:42:42 morning 22:44:33 Good evening, my further East than me addresser 22:56:36 -!- elliott has quit (Ping timeout: 260 seconds). 23:02:21 -!- Taneb has quit (Remote host closed the connection). 23:11:30 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 23:23:58 -!- GuestIceKovu has changed nick to Slereah. 23:24:18 O_o 23:32:25 I'm just imagining this nondescript guy in the corner of a bar suddenly throwing off his cloak and exclaiming "it is I, Slereah!" 23:36:22 -!- copumpkin has joined. 23:40:19 * oerjan is now reminded of 'allo 'allo 23:40:52 except leclerc never managed to look nondescript 23:54:55 -!- kwertii has quit (Quit: bye). 23:55:19 * Phantom_Hoover → sleep 23:55:20 -!- Phantom_Hoover has quit (Quit: Leaving). 23:57:17 " by some freak coincidence taneb is elliott's next door neighbor" <<< a neighbor of mine was on #proglangdesign some years ago, a channel of about 6 people at that time 23:57:39 not next door neighbor but less than 100m 23:59:05 " wait you mean we are _not_ doing sound of music?" <<< one more family guy joke is ruined for me by changing it from randomness to reference :( 2011-07-13: 00:00:49 " i am merely investigating regarding the possibility of translating norwegian tongue-twisters" <<< if that twists your tongue, you norwegians must have really sucky mouths. 00:01:17 oklopol: wait what, i have never watched family guy 00:01:28 a jap once called me a "genius" when i managed to pronounce "it is warm" in japanese, that is, "atatakakatta" 00:01:35 *genius 00:02:11 oklopol: That's "It was warm". 00:02:19 i guess that _would_ be easier for finns than most other europeans 00:03:30 oklopol: you are of course supposed to say "Fru Ibsens ripsbusker og andre buskvekster" as fast as possible, repeatedly 00:03:35 "It is warm" is 'just' "atatakai". 00:04:00 double genius 00:04:15 " This is presumably the layman's definition of graph, not an actual graph graph." <<< they layman definition of the graph of f of course being that it is the set f 00:06:58 " So, it's equivalent to Lambda Calculus?" <<< yep but the usual conversion algo from lc to ski has an exponential blowup 00:08:50 " but the worst :(" <<< no best 00:09:58 " oklopol: wait what, i have never watched family guy" <<< they just randomly sang that song once. 00:10:54 ' oklopol: That's "It was warm"' <<< i'm aware, whoops; i think the error originated from me being afraid of managing to screw up the trivial translation given that you would point it out in a second 00:11:52 pikhq: does "taka ka kata ga atatakakatta ka" mean what i think it does? 00:12:34 was either the hawk or the shoulder warm? 00:13:25 -!- myndzi\ has quit (Ping timeout: 250 seconds). 00:15:09 " oklopol: you are of course ..." <<< given that you can only screw up "buskvekster" (prolly since it doesn't mean anything), all you have to do is pay some attention at the end of every repetition 00:15:22 oklopol: Pretty much. 00:16:16 i'm slightly annoyed by the "ga" there but don't really see a way around it 00:16:55 "taka ka kata kà atatakaka'ta ka" Bam, fixed. :P 00:17:01 :D 00:17:04 oklopol: um what about ripsbusker 00:18:10 no way to fail at that 00:18:22 i can just repeat that ad infinitum 00:18:42 maybe i don't know how it's pronounced 00:19:42 well okay, i can repeat it about 10 times 00:19:58 the only silent consonant in that phrase is the "g" in "og" 00:20:07 *silent letter 00:20:24 norwegian does not, in general, have silent vowels 00:26:03 http://www.vjn.fi/temporary%20shit/ibsen.wma ? 00:27:52 that was my second attempt tho, didn't choose the number of repetitions the first time so i screwed up a bit at the end 00:28:01 maybe i screwed up there too but didn't notice at least 00:28:33 i'm not going to listen to that now, i'd wake up people 00:28:38 i don't know what busk and vekster mean so it hard to get the k and s right 00:28:50 alright, it's not very interesting 00:29:29 busk = bush, shrub 00:29:40 well obviously i know that 00:29:58 vekster = plants, growth 00:30:11 and yeah, i know i said i didn't 00:30:16 didn't really know vekster tho 00:30:28 although kind of obvious as well 00:30:40 given swedish "grow" 00:32:44 my favorite finnish one is "mun mummuni muni mun mammani, mun mammani muni mun" 00:35:10 * oerjan learns that the Hollywood sign originally said Hollywoodland 00:35:27 i just watched a hustle episode where they said that 00:35:41 SYNCHRONICITY 00:36:03 so actually it's "mum mummuni muni mum mammani mum mammani muni mum" when pronounced by usual finnish fast pronunciation rules, lemme record that for funsies as well 00:37:33 not very good 00:38:02 http://www.vjn.fi/temporary%20shit/mummuni.wma 00:40:21 ran out of air pretty fast and did the first one slow so got just 5 before running out of air 00:40:25 erm 00:40:30 what's wrong with my sentencing this week 00:44:34 oerjan: actually the whole ep was about the sign, since they sold it 00:45:10 so very synch 00:52:30 mhm 00:52:53 * oerjan learned it from wikipedia's front page, btw 00:53:06 the episode is very very old 00:53:20 ah 00:53:22 so there can really be no connection 00:54:06 SPOOKY 00:54:07 -!- CakeProphet has quit (Ping timeout: 264 seconds). 00:54:34 oerjan: hey why did the topological space have a hole? 00:55:56 because its parents were danish pilots! 00:57:00 this is worse than reddit's forced waffles/carrots meme 00:57:10 what's that? 00:57:17 DEAD 00:57:33 idgi 00:57:52 that was _not_ an attempt to explain. 00:58:20 more of an attempt to urge you to run, before it's too late 00:58:36 i think the danish pilot meme is still better than my famous bisexual meme since i never really even got the famous bisexual thing myself. 00:59:21 memes are so egoistic 00:59:36 they are? 00:59:44 yes, they contain "me" twice 00:59:52 :DS 00:59:56 * oklopol slows 01:02:21 hm apparently the english insist on spelling that meaning as "egotistic", for some reason. 01:02:44 yeah 01:02:50 i always found that compuddling 01:04:41 how cromulent 01:04:55 rather the elapsidance. 01:14:31 ah found it: http://www.smbc-comics.com/index.php?db=comics&id=2295#comic 01:15:46 sticktothativeness 01:17:06 sounds like something finnish would have a case for 01:17:42 they anti-yessed my applicatrix 01:21:19 http://www.smbc-comics.com/?db=comics&id=428#comic these are really good i should binge 01:23:16 http://www.smbc-comics.com/?db=comics&id=2088#comic xkcd kind of did the reverse of this 01:23:38 or was it xkcd 01:23:40 that pi thing 01:26:52 http://www.smbc-comics.com/?db=comics&id=1913#comic :DSDSDAFADSFASDFDSA 01:30:41 -!- myndzi has joined. 01:37:15 smbc cynicism is weary 01:42:52 http://www.smbc-comics.com/?db=comics&id=493#comic 01:42:56 maybe i'm just tired :DSDFADFADFS 01:43:13 i've actually seen most of these way many times 01:52:33 oklopol, you know about goatkcd don't you 01:53:35 maybe 01:53:44 is it xkcd but goatse in every square 01:53:46 I tried sending many files to CTAN, including chess typing program (including fonts), grid overlay program, PBM overlay program, Dungeons & Dragons recording program, but nothing is sent!! 01:53:49 or just the last one 01:54:05 so what's CTAN 01:54:18 CTAN = Comprehensive TeX Archive Network 01:55:22 Do you want these programs? 01:55:33 no! 01:55:39 i have all i need 01:56:36 Maybe it is not useful to you if these are not the kind of things you are trying to type (or if you don't use Plain TeX). 01:57:12 i use latex 01:57:23 and also no, i don't type chess 01:58:58 The Dungeons&Dragons recording program, I use it every time I am playing Dungeons&Dragons game. I find it useful for this. 02:00:16 i've played a few games as a kid 02:00:45 This file contains all story events and character sheet data (and the entire history of the character sheet data for that game, with the exception that I couldn't put the one at start due to lack of data) for one game: http://zzo38computer.cjb.net/dnd/recording/shaman.tex 02:00:49 oklopol: What version? 02:01:56 doesn't matter that much the way my friends play it 02:02:09 rather freeform 02:08:39 -!- oerjan has quit (Quit: Good night). 02:09:05 oklopol, no, just the last square 02:09:10 and interestingly enough the comic book is ALWAYS better than the original 02:13:43 weird 02:16:39 Vittu nostaa. 02:16:59 Ino aminen läksi. 02:19:11 samat sanat 02:20:09 Sana sanat sanat sana. 02:22:03 Perkelin vittu, I can't access Wiktionary. 02:22:28 perkeleen 02:22:34 Really? 02:22:50 if you mean the genitive of perkele 02:23:03 I do. 02:23:13 Who is this Perkele guy, again? 02:23:30 I'm guessing whoever he is, he doesn't actually have a vittu. 02:23:35 But no matter. 02:24:18 perkele is originally the finnish god of thunder afaik, nowadays mostly means satan 02:24:46 Huh. 02:26:21 well i mean really it's just a curse word nowadays, but typecast into a guy, i would say he's the christian satan 02:26:32 * tswett_ nods. 02:26:49 I should perhaps figure out how to say some useful stuff. 02:26:53 Kuva. 02:27:22 kuva puree lammasta 02:27:33 Suomen kuva lasti köri. I think that stopped being Finnish pretty quickly on. 02:27:46 Yes, what is what? 02:28:06 kri isn't finnish afaik 02:28:19 Is lasti? 02:28:22 except kri kri is something a silly car might say 02:28:36 krtellessn. 02:28:53 lasti means like a truckload 02:29:01 or an ejaculation 02:29:04 I see. 02:29:46 Lammasta heimo syödä. 02:30:15 Koira syödää lammasta. 02:31:05 syd is not finnish 02:31:07 Sota. 02:31:15 and i don't really understand "Lammasta heimo syödä." 02:31:39 Well, I don't know what "lammasta" means, so I figured I would just say it in the hopes that I would find out somehow. 02:31:43 "syd lammasta heimo" is an okay verb ofc 02:31:54 meaning "to eat a sheep a tribe" 02:32:03 I see. 02:32:18 lammasta = partitive of sheep 02:32:20 And what's the third-person singular present of "syödä"? 02:32:29 And what's the accusative of that? 02:32:31 but here it's just like the accusative case 02:32:33 No, the nominative. 02:32:34 essentially 02:32:46 third-person singular present = sy 02:32:53 I see. 02:32:58 Laskea irti. 02:33:15 to let go 02:33:38 Hövemäpästi. 02:33:47 that's nothing 02:34:05 I'm good at Finnish. :D 02:37:06 also while you say syd lammasta heimo in context like "silloin tllin on mukavaa syd lammasta heimo jos toinenkin" (occasionally it's nice to eat a sheep a tribe or two), you have to say either "min syn lammasta heimon" or "min syn lammasta heimoa" 02:37:31 in min syn lammasta heimo, i can only see the parsing that makes heimo vocative 02:38:41 *contexts 02:39:49 * oklopol checks that heimo is actually a finnish word 03:02:36 Jeeze. Google+ is at 10 million users. 03:02:39 It's been a week. 03:03:47 is google+ as good as google? 03:04:53 It's a Facebook competitor that's reasonably integrated with Google's other services. And reasonably well-implemented. 03:05:03 oh that thing 03:05:28 i doubt i'll ever touch that one either 04:38:56 -!- asiekierkaDS has joined. 04:39:09 -!- Nisstyre has quit (Ping timeout: 264 seconds). 04:39:18 -!- kwertii has joined. 04:52:48 -!- Nisstyre has joined. 04:52:50 -!- Nisstyre has quit (Max SendQ exceeded). 04:53:33 -!- Nisstyre has joined. 04:59:28 -!- asiekierkaDS has quit (Ping timeout: 252 seconds). 05:30:06 I wrote this http://zzo38computer.cjb.net/dnd/recording/level20.tex Is it good name of a character? (The text after \Character is their name) 05:41:23 -!- Sgeo_ has quit (Ping timeout: 255 seconds). 05:41:56 -!- Sgeo has joined. 06:09:06 zzo38: export to pdf plox. this device has no tex on it 06:09:48 I uninstalled that program already 06:10:11 zzo38: I do not believe that to be a good character name as I cannot pronounce it unless it is Welsh 06:10:24 dvi or ps is fine too i think 06:10:29 and even then I'm not convinced it's pronouncable 06:10:29 Can't you read the source file? In fact, the source file contains some comments that would not be printed out anyways (on a PDF or otherwise) 06:10:46 it failed to download 06:10:47 How would you pronounce it if it is Welsh? 06:11:58 Failed to download? I can export a DVI file although like I said, it contains comments and parts that are incomplete and will fail to print correctly. 06:12:31 zzo38: I don't know; I do not know Welsh. 06:12:42 However, Welsh has 'w' as a vowel which may make it pronounceable 06:13:19 You have a sequence of 6 consonants there 06:13:20 -!- Sgeo has quit (Ping timeout: 255 seconds). 06:14:20 -!- pikhq_ has joined. 06:15:18 I made up the name at random on my calculator and added a space by myself. I could add some vowels if needed in fact I needed to add one vowel the first time I used this method (although I used dice at that time, not calculator; but it is the same method) 06:15:21 -!- Sgeo has joined. 06:16:01 As you can see there are two character sheets in this file although the second one is incomplete (they do not even have a name yet) 06:17:09 -!- pikhq has quit (Ping timeout: 240 seconds). 06:17:38 The second one is my brother character he didn't decide the class yet 06:17:49 Or the name 06:18:00 Or ability scores 06:24:20 zzo38: I would probably remove the q and the second v 06:24:30 then I think it would be pronounceable 06:24:48 are you planning on actually pronouncing it? 06:25:05 can you just copy the name here so i can see it? 06:25:29 quintopia: "Iuckqlwviv Kjugobe" 06:25:43 s/second/first/ 06:26:11 i agree with coppro 06:26:25 Iucklwiv is somewhat pronounceable 06:26:54 i'd change Kjugobe to Djugobe, since Kj is tricky 06:27:03 nah 06:27:11 OK, I will think about these things. 06:27:29 you can fake Kj good enough as Ky 06:27:45 but that's inconsistent 06:27:55 inconsistent how? 06:27:59 since the initial I must also be pronounced as y 06:28:22 a) no it doesn't b) this is English. we don't care 06:28:23 in that case i'd spell it Kiugobe 06:28:34 or Jucklwiv 06:28:46 is it english? 06:28:55 looks like no english name i've ever seen 06:29:58 Actually it is just English letters, it isn't actually any language at all. 06:31:07 exactly 06:31:22 and in English, we can pull any random pronounciation we feel like 06:31:28 "si" looks like "zh" to me 06:31:32 so why not pretend it is a real fake language? 06:31:38 this is for roleplaying isnt it? 06:31:43 quintopia: No reason a character's name would necessarily be unilingual 06:31:58 i can think of one 06:32:25 Yes even in English the words is not necessarily pronouced like you have written. 06:32:46 And yes this is for roleplaying 06:33:27 quintopia: It may make sense within the context of a character's backstory for their name to be unilingual 06:33:30 but there is no inherent reason 06:33:59 Part of a situation DM has already told us, we escaped from a sinking ship containing many slaves and many creatures and so on, and cannot carry any equipment (or money) except for wearing rags 06:34:03 i dont know about this characters backstory 06:34:24 zzo38: tell me about your character 06:35:01 I didn't write a backstory (at least not yet) 06:35:07 ah 06:37:21 I do have a random "Character Lifepath" script 06:37:28 haha 06:37:55 In many cases some (or all) of the results of that script cannot be used, though 06:38:36 then it needs improvement 06:38:47 have it pick a trope from tvtropes :P 06:39:04 :D 06:39:23 No, that isn't the reason why some results cannot be used. There are just results that do not apply to some characters or campaigns. 06:40:50 Yes that is a possibility make a script pick a trope from tvtropes although how would that work? If they have a random page function, just use that. If not, make a list with parameters and stuff so that you can make combinations of things with specific values entered in some cases. 06:41:02 They have a number of indexes 06:41:09 you could select, for instance, two Character Tropes at random 06:41:16 you'd have to parse the index manually though 06:41:20 they have a story generator script that picks tropes for the characters 06:41:47 randomly 06:42:03 really? awesome 06:42:39 ah, yes 06:42:44 cool 06:42:52 (I do know some of the pages there specify possible parameters that can also apply) 06:46:13 OK I did run my script and here are the output (omitting the things that do not seem to apply to my character) (Note that it doesn't necessarily mean I will use this; it just means I am now copying its output!) 06:46:25 Place of birth: Fortress; Childhood environment: Strict; Caretaker's origin: Close family; Caretaker's background: Free laborers; Caretaker's status: Alive and well; You are an only child; 06:46:41 Luck: Fame; Luck: Travel; Tragedy: Imprisoned; Made an enemy: Creature with animal intelligence (Military, Foiled, Annoyed, Mutual); 06:47:11 did you write this? 06:48:01 I did write the script however most of the information contained in the script is from other sources. 06:48:19 it looks very useful 06:48:35 I also modified the things a bit, and did a few other things with it. 06:48:39 Here it is: http://zzo38computer.cjb.net/furry/scripts/lifepath.txt 07:00:16 what language is that? 07:00:57 what is TIM? timidity? 07:01:26 TIM duplicates entry on stack the specified number of times, it is used to multiply the probability of an event. 07:02:05 ah 07:03:35 CHA has a chance to discard something from the stack, it is used to reduce the chance of an event. 07:03:59 ok 07:04:29 -!- monqy has quit (Quit: hello). 07:04:58 BR is line break, [ ] makes a subroutine, ( ) makes a list, {{ }} are comments, + before a command results in concatenation. 07:05:41 There are also other commands and prefixes and suffixes. 07:05:52 Although the other ones are not used in this script. 07:06:21 RRE means to repeat the next command a random number of times. 07:07:18 and you have your own program to parse this language? 07:07:45 looks an awful lot like a lzw descriptor language 07:07:54 What is lzw descriptor language? 07:07:55 but with random chance 07:08:08 like .zip 07:08:34 is there a wiki page for this language? 07:08:44 Yes I do have a program to parse this language, you can download the PHP code or run it remotely, including custom script form you can write your own. There is no documentation unfortunately. 07:09:22 You can download plain source code gopher://zzo38computer.cjb.net:70/0furry*FURRYSCRIPT or color source code http://zzo38computer.cjb.net/furry/Furryscript.php 07:10:25 Existing scripts are in the directory http://zzo38computer.cjb.net/furry/scripts/ you can write your own and I might include it in this collection. 07:11:20 you should document it 07:11:28 Form to run existing scripts is http://zzo38computer.cjb.net/furry/webform.php and form to write custom scripts is http://zzo38computer.cjb.net/furry/custom.php 07:11:28 on esolang wiki 07:12:10 Yes probably it should be documented. 07:14:57 But so far you just look at example files and the interpreter program code. 07:17:06 Do you understand well any of the examples? 07:26:43 give me an example of how the stack is used 07:26:45 -!- BeedaWeeda has joined. 07:30:04 -!- zzo38 has quit (Quit: Sleep). 07:34:05 http://i.imgur.com/moaG3.jpg This was apparrently drawn in MS Paint. 07:54:39 -!- BeedaWeeda has quit. 08:00:26 One wonders if it was painted on top of a photo, though. The place at least is real; compare http://www.panoramio.com/photo/7082547 08:01:05 Quite a lot of pixels to fiddle in any case. 08:06:23 fizzie: watch the youtube video about painting mona lisa in ms paint. there are some very talented pixel artists. 08:08:54 I don't think that's in dispute. 08:09:27 Just thought I recognized the place. 08:14:39 with a lot of time and careful application of the 1-pix brush, I can make any image 08:27:41 * pikhq_ sucks at sleeping. 08:32:28 -!- BeedaWeeda has joined. 08:58:01 -!- azaq23 has joined. 09:28:08 -!- BeedaWeeda has quit. 09:28:28 -!- kwertii has quit (Quit: kwertii). 09:41:47 -!- copumpkin has quit (Ping timeout: 252 seconds). 09:42:54 -!- copumpkin has joined. 09:42:54 -!- copumpkin has quit (Changing host). 09:42:54 -!- copumpkin has joined. 09:48:29 -!- cheater__ has quit (Ping timeout: 255 seconds). 09:54:37 -!- jcp- has joined. 09:56:17 -!- cheater__ has joined. 09:57:33 -!- clog_ has joined. 10:06:12 -!- javawizard has quit (Ping timeout: 255 seconds). 10:06:13 -!- Nisstyre has quit (Ping timeout: 255 seconds). 10:06:14 -!- clog has quit (Ping timeout: 255 seconds). 10:06:47 -!- Nisstyre has joined. 10:25:14 -!- CakeProphet has joined. 10:25:22 -!- CakeProphet has quit (Changing host). 10:25:23 -!- CakeProphet has joined. 11:08:52 -!- Sgeo has quit (Ping timeout: 260 seconds). 11:10:53 -!- copumpkin has quit (Ping timeout: 252 seconds). 11:11:20 -!- copumpkin has joined. 11:11:21 -!- copumpkin has quit (Changing host). 11:11:21 -!- copumpkin has joined. 11:15:37 -!- Phantom_Hoover has joined. 11:38:37 -!- Lymee has quit (Ping timeout: 260 seconds). 11:40:12 -!- oerjan has joined. 11:40:20 -!- Lymee has joined. 11:40:41 oops 11:40:44 -!- oerjan has quit (Client Quit). 11:44:12 -!- oerjan has joined. 11:47:28 -!- derrik has joined. 11:49:29 -!- Lymee has quit (Ping timeout: 255 seconds). 11:50:19 Oops, you did it again? 11:51:50 something wanted to reboot my computer 11:53:01 i'd change Kjugobe to Djugobe, since Kj is tricky 11:53:05 NO IT IS NOT 11:54:44 Do you think it is kjuut instead of tricky? 11:54:57 er? 11:55:25 Kj er kjempelett 11:55:56 The Finnish pronunciation of "kjuut" would more-or-less approximate the English "cute". (I do know it doesn't work that way when you folks do it.) 11:56:06 indeed 11:59:53 Is it common for modern spoken languages to have no standardization body, or is this a rare feature? 11:59:57 http://en.wikipedia.org/wiki/Voiceless_palatal_fricative 12:00:02 -!- boily has joined. 12:00:25 oh look, I just asked a linguistic question when the topic was about linguistics. Completely coincidental. 12:00:25 i don't know 12:00:39 english doesn't, but french, german, and norwegian do, iirc 12:01:01 Spanish and Italian as well. 12:01:38 so it seems like a common feature for living European languages, at least. 12:02:14 the chinese certainly did some official changing at one point 12:02:17 -!- Lymee has joined. 12:02:19 Icelandic has a standardization body, if I recall correctly. 12:03:20 Finnish has "Kotus", the "Kotimaisten kielten tutkimuskeskus" -- "Research Institute for the Languages of Finland" is the official English name -- which sort of has a similar role, in that they publish a magazine and give recommendations; but they don't have any sort of legal or really-really-official standing or anything. 12:03:48 "The Research Institute for the Languages of Finland is devoted to the study and language planning of Finnish, Swedish, Saami, Finnish Sign Language and Romany. We also conduct research on languages related to Finnish. Most of our research is published in the form of dictionaries." 12:04:03 It's mostly a meaningless formality though. Having a standardizing body doesn't mean that the language that is spoken by most speakers is not fluid. 12:04:04 They also have a hotline service, in case you have an urgent query on matters of language. 12:04:15 haha, nice. 12:04:25 Oh, they do have a law too. 12:04:31 "The Research Institute is administered by the Finnish Ministry of Education and regulated by the Act on the Research Institute for the Languages of Finland (48/1976, 591/1996). A Board of Advisors supports its work." 12:04:34 Perhaps we should construct a tricky sentence and ask them to parse it for us. 12:04:58 norwegian also has competing "standards" made by institutions who don't like the two official forms 12:05:30 most notably riksmål, a more conservative form of bokmål. 12:06:55 The book held the record for the longest sentence in English literature with 13,955 words. That record was broken by Nigel Tomm's one-sentence, 469,375-word book, The Blah Story, Volume 4. 12:06:59 .... 12:07:41 The law has a total of two sentences of content in it, and it basically just says such a research institute exists. I suppose the law's there so that they can then divert some money into it. 12:09:13 * CakeProphet kind of wants to read The Blah Story 12:09:37 Except it apparently has a word count of over 13 million. 12:10:38 "The expert bodies in charge of [language planning] are statutory Language Boards, who issue decisions-in-principle and general guidelines on standard usage within each linguistic community." But it's not like they're controlling the language with an IRON FIST or anything. 12:11:07 I think they did publish some recommendations for Finnish translations of IT terminology way back in the 1980s/1990s, but absolutely no-one adopted those. 12:14:57 blah and blah blah to his blah character and then blah blah she was blah blah blah years old she blah blah boys about her so blah blah blah, her blah blah eyes blah blah along the blah blah blah his blah blah lips blah the pattern of a blah of blah on the blah as she blah blah blah and blah him with a blah 12:15:03 ...this sounds like such a good read. 12:15:18 "... and blah him with a blah." 12:15:49 It sounds vaguely like fungot after a s/fnord/blah/g 12:16:04 What, is that bot again gone? 12:16:06 speaking of fungot... 12:16:31 brave sir fungot ran away 12:16:38 -!- fungot has joined. 12:16:42 fnord 12:16:53 the best English word. 12:16:53 fungot: what is your fnord on this matter? 12:16:54 oerjan: that's irrational. " snow crash" is worth reading: fnord/ markus/ papers/ ai-lab-pubs/ fnord? 12:17:02 oerjan: Now I have that ditty looping in my head, thanks for that. 12:17:02 ^style 12:17:03 Available: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc* jargon lovecraft nethack pa speeches ss wp youtube 12:17:28 ^style speeches 12:17:28 Selected style: speeches (misc. speeches from Project Gutenberg) 12:17:37 fungot: Hello 12:17:38 CakeProphet: the nebraska bill finds an early occasion to make a few words upon the general position. 12:17:41 fizzie: yw 12:18:00 fungot: But who gives a fuck about Nebraska? 12:18:02 CakeProphet: those who have read those writers. let the noble teachers but dissent, it is the fnord capital of polished society. omnes fnord fnord semper fnord, was with them a war or a revolution, and who have aggravated every fault they have found out a hundred ingenious devices by which they act, and i hope that you would be glad to know, that any of those questions which drive even wise men see any reason to apprehend, beca 12:18:20 Nebraska -- the fnord capital of polished society. 12:19:23 oerjan: do you know what Nebraska is? 12:19:24 -!- oerjan has set topic: omnes fnord fnord semper fnord | Esoteric programming languages | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 12:19:37 CakeProphet: a us state 12:19:43 ...this blows my mind. 12:20:32 CakeProphet: otoh i cannot say anything _else_ about it 12:20:40 at least not on the spot 12:20:46 oerjan: But could you list all 50 just like that. 12:21:04 doubtful 12:21:08 well, I suspect he could recognize them though. 12:21:25 (And who stole the top half of my '?'? And is there a "pointless question mark" in Unicode?) 12:21:42 It could be used for pointless questions. 12:22:03 i could probably list _most_ of them, i guess 12:22:15 Wyoming 12:22:43 is an interesting word. 12:23:44 The name Wyoming derives from the Munsee name xwé:wamənk, meaning "at the big river flat", but also named after the Wyoming Valley in Pennsylvania, made famous by the 1809 poem Gertrude of Wyoming by Thomas Campbell.[ 12:24:16 but then where did Wyoming Valley get its name... 12:24:39 oh, from that Munsee word. 12:25:00 alabama, california, hawaii, texas, georgia, new mexico, oregon, washington, alaska, north dakota, south dakota, idaho, minnesota, wyoming you said, illinois, kansas, new york, florida, arkansas, arizona, michigan, pennsylvania, new jersey, massachusets, missisippi, missouri, tennessee, 12:25:32 more than half. 12:26:11 west virginia, virginia, maryland, 12:26:22 ...I was about to type that exact same sequence.... 12:26:30 that is a bit weird. 12:26:35 heh :P 12:26:38 I was about to add Maryland first. 12:26:55 washington dc (not a state) 12:27:45 utah 12:27:48 maine, new hampshire, delaware, kentucky, nebraska, washington, idaho, oklahoma, 12:27:50 Related: http://www.ozyandmillie.org/comics/om20020109.gif 12:28:00 i _did_ say idaho :P 12:28:05 oh, my bad. :P 12:28:06 And Washington. 12:28:16 * CakeProphet can read. 12:28:29 I may actually needed to get glasses soon. 12:28:32 *need 12:28:50 I believe my vision is getting poor enough to interfere with my ability to read quickly. 12:29:19 2CFA;COPTIC OLD NUBIAN DIRECT QUESTION MARK;Po;0;ON;;;;;N;;;;; 12:29:19 2CFB;COPTIC OLD NUBIAN INDIRECT QUESTION MARK;Po;0;ON;;;;;N;;;;; 12:29:24 But no "pointless question". :/ 12:30:37 fungot: How do you feel about COPTIC OLD NUBIAN DIRECT QUESTION MARK 12:30:40 CakeProphet: _lincoln's first public speech. from an address to an indiana regiment. march 17, 1909, and delivered a long address so ardent and thrilling that the reporters dropped their pencils and, absorbed in watching him, forgot to take down what he said was, that he was branded with the mark of his despair, the seal of solomon upon it; there he had lain neglected for many centuries, limited the labour of the factory child. 12:31:06 no one mentioned connecticut yet :P 12:31:11 Thanks to Gutenberg's really sucky approach to metadata, not all of that stuff has had titles and such cleaned up yet. 12:31:39 "There he had lain neglected for many centuries, limited the labour of the factory child." 12:31:48 fizzie: But it's so much easier to say WAAAAH FUNGOT IS BUGGY. 12:31:50 :) 12:32:06 ^style 12:32:06 Available: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc jargon lovecraft nethack pa speeches* ss wp youtube 12:32:19 %style youtube 12:32:24 ^style youtube 12:32:25 Selected style: youtube (Some YouTube comments) 12:32:27 Some of those abbreviations are a bit obscure. 12:32:36 And the youtube style's built out of a very small dataset. 12:32:47 hmmm, I should make a language that uses every possible sigil in the Perl tradition. 12:32:58 fungot: How do they speak in YouTube comments? 12:32:59 fizzie: this was something like that, i liked the old avril...she used to be a president of the 3 dead. 12:33:05 er, let me make more sense. It would use !@#$%^&* 12:33:16 fizzie: well a larger dataset might cause fungot to go insane 12:33:16 oerjan: " is that justin timberlake 12:33:33 fungot: Yes, it was a quote from him. 12:33:33 fizzie: incredible!!... this makes you mad, very dark, gloomy. but i read or hear on internet. this has been kept neatly inside the box got hit by the looks of it 12:34:24 well # would be for numbers, obviously. $ for strings. 12:34:37 -!- derrik has quit (Ping timeout: 258 seconds). 12:34:46 okay, I give up on this. :P 12:35:15 having that many distinct sigils would be somewhat horrible. 12:36:24 actually I think Perl would be better off in the long run if it ditched most of its sigils. The main benefit of having the sigil is that it removes ambiguities between variable names and other syntactic elements. 12:36:45 you only need one sigil to accomplish this. 12:36:58 but then there are sigils like * which are kind of special. 12:37:04 -!- derrik has joined. 12:37:21 so I guess that would stay, or completely removed and replaced with something that.. makes more sense. 12:38:19 as far as I know % doesn't serve much of a purpose and is pretty much the same thing as @, almost. 12:38:55 I do think Perl makes some distinctions between arrays and hashes, but they both evaluate to lists in most contexts. 12:39:24 Currently you can have a distinct %foo and @foo, though. 12:39:42 right, I suppose that's another feature of sigils. 12:40:43 But with the addition of OO and $ seems like a catch-all for most Perl values. 12:40:49 *and references 12:41:13 Having @ makes sense with the list semantics though. 12:41:47 as it signifies that something is going on where it might not be expected if the variable began with a $ 12:42:35 so I might try to learn ML soon. 12:42:46 but it looks pretty tedious compared to Haskell, so I don't know if I will. 12:43:49 xkcd :D 12:44:12 Millilitre 12:44:16 oerjan: what? 12:44:29 today's xkcd 12:44:44 http://xkcd.com/ 12:44:47 oh, hey, it's kind of clever. 12:44:50 -!- Lymee has quit (Read error: Connection reset by peer). 12:44:54 this is an improvement. :) 12:45:07 -!- Lymee has joined. 12:49:44 Perl takes lists from Lisp, hashes ("associative arrays") from AWK, and regular expressions from sed. These simplify and facilitate many parsing, text-handling, and data-management tasks. 12:49:54 that's quite a stretch to say that Perl takes lists from Lisp... 12:50:57 or any data structure from... any language. 12:51:18 but Perl lists aren't even linked lists, so.. that doesn't even make sense. 12:54:27 -!- wth has joined. 12:54:37 -!- wth has left. 12:58:38 -!- Taneb has joined. 12:58:42 Hello! 12:59:18 -!- derrik has left. 12:59:57 Hello? 13:03:30 hello. 13:09:21 What's up? 13:10:03 dunno, should probably ask fungot. 13:10:03 CakeProphet: great video. woop. 13:10:43 fungot: how do you feel about that video? 13:10:43 CakeProphet: i think you were still a very famous video. woop. deal with it 13:11:09 Yeah, CakeProphet, deal with it. 13:12:02 woop. 13:12:37 In other news, I think Egypt's having its October Revolution 13:12:47 JUST AS I PREDICTED IT WOULD 13:14:33 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 13:21:42 -!- Lymia has joined. 13:23:11 -!- Lymee has quit (Ping timeout: 258 seconds). 13:33:53 Taneb, october revolution in july? nice 13:34:02 they're WAY ahead of schedule on this one 13:34:58 -!- Lymia has changed nick to Lymee. 13:41:13 -!- copumpkin has joined. 13:45:32 -!- Taneb has left. 14:04:01 !haskell main=putStr.ap(++)show$"main=putStr.ap(++)show$" 14:04:22 !haskell putStr.ap(++)show$"putStr.ap(++)show$" 14:04:26 you need to add imports for ap 14:04:30 oh... 14:04:46 > ap(++)show$"ap(++)show$" 14:04:48 "ap(++)show$\"ap(++)show$\"" 14:04:50 how about this instead. :P 14:05:04 actually the ghci can use explicit module qualifiers 14:05:06 -!- EgoBot has quit (Remote host closed the connection). 14:05:12 oh nice. 14:05:16 -!- EgoBot has joined. 14:05:18 !haskell putStr.Monad.ap(++)show$"putStr.Monad.ap(++)show$" 14:05:26 oh wait 14:05:29 Control.Monad right? 14:05:32 with spaces 14:05:36 to disambiguate from (.) 14:06:00 no, the syntax is fine, but the -> Monad instance is an orphan one 14:06:17 ah, so you need the import. 14:06:48 also Monad is the old form of the module, before hierarchical libraries, it should still work 14:06:57 but that's not where the instance is. 14:07:16 so ap(++)show s = s ++ show s right? 14:07:30 hm yes 14:07:58 ...one day I will understand the -> Monad 14:08:07 until that day I will just understand idioms. :P 14:08:26 it's just Reader without the newtype wrapping :P 14:08:43 * CakeProphet hasn't learned Reader, probably because he hasn't needed it. 14:09:03 @src ap 14:09:03 ap = liftM2 id 14:09:13 ah right 14:09:19 basically the -> monad provides an extra argument to everything 14:09:29 @src liftM2 14:09:29 liftM2 f m1 m2 = do { x1 <- m1; x2 <- m2; return (f x1 x2) } 14:09:57 which means you can use it for abstraction elimination. ap = S, return = K, ask = I 14:10:11 ah. 14:10:30 okay, so ap is where -> Monad is most useful? 14:10:44 not directly with >>=? 14:10:57 oh >>= is useful too 14:11:18 as is join 14:11:43 :t join 14:11:44 forall (m :: * -> *) a. (Monad m) => m (m a) -> m a 14:12:02 join in the -> Monad essentially duplicates an argument 14:12:08 > join (++) "a" 14:12:10 "aa" 14:12:26 ah okay 14:12:54 -!- ais523 has joined. 14:12:58 @pl does some of this automatically 14:13:03 m (m a) = (->) ((->) a)? 14:13:08 @pl \x -> f x (g x) 14:13:08 ap f g 14:13:10 bleh, the wireless here was getting so shaky that I was given a wired connection instead 14:13:13 not really sure how to read that... ' 14:13:27 and it has all sorts of issues, like requiring a proxy for HTTP that Firefox and Gnome can autodetect, but KDE can't 14:13:30 um it's actually the (e ->) Monad 14:13:34 and firewalling port 6667 outbound 14:13:40 (that's why I'm on webchat atm) 14:13:51 for e the type of the common extra argument 14:14:03 anyone here have an idea of how to get KDE's proxy settings to work? 14:14:19 e -> e -> a? 14:14:23 is m (m a) here? 14:14:26 or should I just search on the error message? 14:14:38 CakeProphet: yep 14:14:43 ah okay, that makes more sense. 14:15:13 there's a trick you can sometimes use to get the -> instance type for things 14:15:18 :t join.($) 14:15:19 forall a a1. (a1 -> a1 -> a) -> a1 -> a 14:16:23 .($) is essentially a nop, except for restricting the type of the first argument of what it's added to to be a function 14:16:38 ah okay. 14:16:41 :t (>>=).($) 14:16:42 forall a b a1. (a1 -> a) -> (a -> a1 -> b) -> a1 -> b 14:17:05 huh, that's... interesting. 14:17:37 @pl \x -> f (g x) x 14:17:37 f =<< g 14:17:49 (>>=)f g a = g (f a) a --?? 14:17:53 ah 14:17:54 yes 14:18:35 similar to ap, but kind of reversed in a way. 14:19:38 return, ask and fmap/liftM of the -> Monad are rarely used but not because they are useless they just have simpler names: const, id, (.) 14:20:03 right, I was familiar with all of those except ask. 14:20:15 ask is a MonadReader method 14:20:17 :t ask 14:20:18 forall (m :: * -> *) r. (MonadReader r m) => m r 14:20:50 it returns the commonly passed argument 14:20:52 so it's a constant, which for the -> function instance makes it a function. :) 14:21:10 yeah 14:22:17 what does "the commonly passed argument" even mean? 14:22:36 like, an identity argument? 14:23:15 > ask :: [Char] 14:23:15 No instance for (Control.Monad.Reader.Class.MonadReader 14:23:16 ... 14:23:24 :) 14:23:46 MonadReader instances are ->, Reader, and ReaderT (the transformer version) 14:25:32 > runReader (do x <- ask; y <- asks (+1); return $ "Argument was " ++ show x + " and argument+1 was " ++ show y) 5 14:25:33 No instance for (GHC.Num.Num GHC.Base.String) 14:25:33 arising from a use of `GHC... 14:25:34 -!- ais523 has quit (Ping timeout: 252 seconds). 14:25:35 argh 14:25:45 Reader seems kind of redundant, but ReaderT is interesting. 14:26:07 > runReader (do x <- ask; y <- asks (+1); return $ "Argument was " ++ show x ++ " and argument+1 was " ++ show y) 5 14:26:08 "Argument was 5 and argument+1 was 6" 14:26:38 well Reader is just the untransformed version. You might use it on the bottom of a monad stack. 14:27:04 -!- ais523_ has joined. 14:27:24 in any case Reader is like State except the state is immutable. It's useful for passing common configuration and stuff. 14:27:56 hmm, fun news story: apparently a monkey picked up a camera and accidentally took a photo of another monkey, someone posted it online, then someone (presumably related to the camera's owner) sent a takedown notice 14:28:39 heh interesting copyright issue :P 14:29:09 indeed 14:29:50 ah not quite right, it seems that the monkeys took photos of themselves 14:29:56 because they liked looking at their reflection in the camera lens 14:29:59 is this possible? 14:30:09 module Foo ( module Foo) 14:30:18 CakeProphet: also in addition to be immutable, Reader has some better laziness properties since the passed state doesn't need to be threaded through every previous action. 14:30:25 -!- Taneb has joined. 14:30:47 I've just had an idea 14:31:01 An esoteric programming language based on Numberwang 14:31:12 From That Mitchell and Webb Look 14:31:16 > runReader (do x <- undefined; y <- ask; return (y+1)) 5 14:31:17 6 14:31:29 And also Wang B-Machines 14:31:31 > runState (do x <- undefined; y <- get; return (y+1)) 5 14:31:32 (*Exception: Prelude.undefined 14:31:44 And a bit of Malbolge for extra measure 14:31:48 CakeProphet: see the difference? 14:32:09 I see that State is not as lazy. 14:32:18 the result of the ask is well defined because the state cannot change, but get isn't 14:32:38 can you fix get? 14:32:45 sure 14:32:54 oh, right.. -_- 14:32:55 > runState (do x <- undefined; put (10); y <- get; return (y+1)) 5 14:32:56 (11,10) 14:33:20 Instructions will be, GO RIGHT, GO LEFT, FLIP, IF ON GOTO, and NUMBERWANG. 14:33:31 Except these will be encrypted as numbers 14:33:37 now State works because no information about the undefined action actually is needed 14:33:50 there should also be a SHAZAM instruction. 14:33:52 oerjan: right. 14:35:13 In Soviet Russia, The State has no undefined information: action actually is needed 14:36:00 that's because in soviet russia, everything is strict. but somehow, still lazy. 14:36:40 .... 14:36:52 > fix fix 14:36:53 Occurs check: cannot construct the infinite type: a = a -> a 14:37:10 Basically all I'm seeing is HASKELL HAS A LIMITATION SORRY. 14:37:11 Numberwang will be the halt instruction 14:37:25 :t fix 14:37:26 forall a. (a -> a) -> a 14:38:31 something wrong with an infinite -> tree? 14:39:16 not in principle, but the standard response is "it tends to make too many things type that are really errors" 14:39:31 (ocaml has a -t flag to allow it) 14:39:58 cool, I've always wanted a function that has infinite arguments. 14:40:04 think of the possibilities... 14:40:09 I sure can't. 14:41:17 lambdabot: * forall a. (a^1 -> a)^1 -> a 14:41:24 well, it could be possible to distinguish between an intended infinite type and an unintended one 14:41:29 otherwise the resulting program might not be finite-state 14:41:34 basically by requiring an explicit definition for intended infinite types. 14:41:42 CakeProphet: that's what newtypes are for :) 14:42:18 NOT THE SAME. 14:42:52 !haskell import Data.Function (fix); newtype Fix a = Fix {unfix :: Fix a -> Fix a} deriving Show; main = print $ fix (fix . unfix) 14:43:01 argh 14:43:30 btw, I went and declared a string-indexed array in VHDL just to see what would happen, from "hello" to "world" 14:43:36 well, "hello" downto "world" 14:43:41 !haskell import Data.Function (fix); newtype Fix a = Fix {unfix :: Fix a -> Fix a}; main = return $! fix (fix . unfix) 14:44:03 the answer is, that it parsed correctly and typechecked correctly, then the compiler said something with a bogus line number about array indexes having to be discrete types, then crashed 14:44:16 CakeProphet: ok i got no error message for the last one :P 14:44:19 are you fixing fix without fixing Haskell's type system? 14:44:33 indeed i am 14:44:45 also, the type of fix is basicaly ((a->b)->(a->b))->(a->b) 14:44:50 *basically 14:44:50 okay, well that's kind of cool. 14:45:12 but writing it as (a->a)->a looks cooler and is marginally more general, even though a not being a function type isn't actually useful with the standard definition of fix 14:45:23 ???? 14:45:32 > fix (2:) 14:45:33 [2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,... 14:45:34 > fix ('a':) -- i beg to differ 14:45:34 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa... 14:45:39 ais523_: what are you talking about? :P 14:45:46 oerjan: ('a':) is a function 14:45:49 :t ('a':) 14:45:50 [Char] -> [Char] 14:45:53 (a -> a) is a function 14:45:55 see? 14:45:57 in (a -> a) -> a 14:46:04 .....? 14:46:07 -!- EgoBot has quit (Remote host closed the connection). 14:46:07 CakeProphet: I mean, a should itself be a function 14:46:07 sure, but not of the type (a->b)->(a->b) 14:46:11 ah, I see 14:46:17 -!- EgoBot has joined. 14:46:27 oh, it's because you have a lazy language that you can get away with that 14:46:37 and recursive types, so it's actually useful 14:46:45 I'm working in a lazy language that doesn't have recursive types, so it isn't 14:46:51 huh 14:46:56 > fix (a+) 14:46:57 a + (a + (a + (a + (a + (a + (a + (a + (a + (a + (a + (a + (a + (a + (a + (... 14:47:10 > a + a 14:47:11 a + a 14:47:21 > fix f 14:47:22 is it doing symbolic arithmetic there? 14:47:22 Ambiguous type variable `a' in the constraints: 14:47:22 `GHC.Show.Show a' 14:47:22 a... 14:47:27 :t a 14:47:28 Expr 14:47:29 > fix f :: Expr 14:47:30 f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (... 14:47:48 ais523_: sort of. 14:47:53 it's just an instance of Num 14:47:53 ais523_: mind you it'll probably end up true if you recode the recursive types as lambda expressions (System F types) 14:47:57 -!- clog_ has quit (Quit: ^C). 14:48:10 with an instance of Show to display the expression that is accumulated 14:48:21 oerjan: there is no way to express recursive types, it's prevented by the type system 14:48:27 -!- clog has joined. 14:48:31 the best you can do is do, say, (int -> int) for [int] 14:48:37 where it's a function from index to value 14:49:44 cool, I've always wanted a function that has infinite arguments. <-- i almost did that for a table in unlambda once. i've never actually done so but you can make functions that take an arbitrary number of arguments and terminate on a d 14:50:34 I implemented one recently 14:50:46 it was lazy, so it only used a finite number 14:50:56 and call-by-name, so all arguments were obtained via callback 14:50:57 -!- Taneb has quit (Ping timeout: 260 seconds). 14:51:05 but it took infinitely many arguments 14:51:14 > fix (\r n -> if n == 0 then 1 else n * r (n-1)) 10 14:51:14 3628800 14:52:09 I implemented one recently <-- wait in what language 14:52:47 ICA 14:52:59 well, it was originally written in Haskell, using a list to hold all the arguments 14:53:18 CakeProphet: if you read the haskell report's definition of recursion it is actually based on (denotational) lowest fixpoint 14:53:27 ICA used a sort of recursive callback, where it asked for an argument, then the caller asked which argument, then it gave the argument number, then the caller gave the argument 14:53:37 oerjan: nifty. 14:53:57 CakeProphet: that's the usual definition 14:54:07 if you're writing a language and giving a denotational definition of things 14:56:20 yeah but it is still a little out of place since most of the haskell report is not that formal :P 14:57:16 > fix (\f n -> case n of 1 -> [1]; 2 -> [1,1]; _ -> let z@(x:y:_) = f (n-1) in x + y : z) 10 14:57:17 [55,34,21,13,8,5,3,2,1,1] 14:58:50 I love how magical fix is, while being completely definable in Haskell, and also very simple to define. 14:59:35 just shows how powerful the semantics are. 14:59:45 what's the Haskell definition? 14:59:56 fix f = f (fix f) 15:00:04 heh, that actually works in Haskell 15:00:19 @pl fix f = f (fix f) 15:00:19 fix = fix (ap id) 15:00:33 for elliott.. :P 15:00:56 that's cheating, it defined fix in terms of fix 15:01:10 yes, this is generally how recursion works. 15:01:20 it should define it as fix = fix (\f. f (ap id)) instead, that makes the fixing explicit 15:01:47 well, Haskell uses \f-> rather than \f. 15:01:52 but I'm used to the dot 15:02:11 I don't think that defintion would work. 15:02:40 > let fix = fix (\f -> f (ap id)) in fix (const 4) 15:02:41 Occurs check: cannot construct the infinite type: 15:02:41 t = (((((a -> b) -> a)... 15:03:06 CakeProphet: actually it's fix f = let x = f x in x 15:03:38 > let fixnew = fix (\f -> f (ap id)) in fixnew (const 4) 15:03:39 Occurs check: cannot construct the infinite type: 15:03:39 a = (((a1 -> b) -> a1)... 15:03:43 hmm 15:03:44 oh right, it's even more magical. 15:03:49 that's what I was getting at, but it seems not to work somehow 15:03:51 otherwise you will recompute things a _lot_ 15:04:16 replacing recursion with fixing like that is the standard way to transform a recursive program... 15:05:40 :t fix (ap id) 15:05:40 forall b. (b -> b) -> b 15:05:48 :t ap id 15:05:48 forall a b. ((a -> b) -> a) -> (a -> b) -> b 15:06:01 @unpl ap id 15:06:01 (\ f -> (\ a -> a) >>= \ c -> f >>= \ b -> return (c b)) 15:06:06 argh 15:06:26 @unpl fix (2:) 15:06:27 fix (\ a -> 2 : a) 15:07:05 how, arbitrary... 15:07:35 :t \f -> f (ap id) 15:07:36 forall a b t. ((((a -> b) -> a) -> (a -> b) -> b) -> t) -> t 15:08:31 fix (\f -> f (ap id)) = ap id $ ap id $ ap id $ ap id ... 15:08:41 that does indeed not look like something you can pass to fix... 15:08:57 CakeProphet: um no 15:09:18 -!- monqy has joined. 15:09:27 oerjan: ah, indeed not. :P 15:09:28 it's ((...) (ap id)) (ap id) i think 15:09:54 :t fix (\f -> ap id f) 15:09:55 forall b. (b -> b) -> b 15:10:12 ais523_: you switched the argument order, i think 15:10:28 oerjan: perhaps 15:10:41 :t ap id ?f 15:10:42 forall a b. (?f::(a -> b) -> a) => (a -> b) -> b 15:10:43 @pl fix 15:10:43 fix 15:11:06 @pl fix f = let x = f x in x 15:11:06 fix = fix id 15:11:15 heh, that's a nice definition 15:11:22 I wonder if it actually works? 15:11:33 eek 15:11:35 @pl fixnew f = let x = f x in x 15:11:36 fixnew = fix 15:11:54 and that's a sane definition 15:12:05 let fixnew = fixnew id in fixnew (2:) 15:12:08 ? let fixnew = fixnew id in fixnew (2:) 15:12:10 > let fixnew = fixnew id in fixnew (2:) 15:12:10 Occurs check: cannot construct the infinite type: t = (a -> a) -> t 15:12:15 apparently not 15:12:57 i suspect @pl gets confused when you try to define a function it uses internally. also it does no actual type checking. 15:13:09 :t fix fix 15:13:10 Occurs check: cannot construct the infinite type: a = a -> a 15:13:10 Probable cause: `fix' is applied to too many arguments 15:13:11 In the first argument of `fix', namely `fix' 15:13:15 @pl fix fix 15:13:15 fix fix 15:13:27 I see what you mean 15:13:50 :t \f -> f fix 15:13:51 forall a t. (((a -> a) -> a) -> t) -> t 15:13:53 ais523_: fix fix is already pointless so @pl would not do anything with it 15:14:00 indeed 15:14:06 but it's a quick way to verify that it isn't typechecking 15:14:33 @unpl fix fix 15:14:33 fix fix 15:14:58 also @unpl doesn't seem to do anything with fix... 15:16:38 -!- oerjan has quit (Quit: Later). 15:35:57 -!- Sgeo has joined. 15:36:03 -!- cheater_ has joined. 15:39:03 -!- cheater__ has quit (Ping timeout: 240 seconds). 16:06:17 -!- ais523_ has quit (Quit: Page closed). 16:20:50 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds). 16:24:01 ^style jargon 16:24:01 Selected style: jargon (UNIX-HATERS mailing list archive) 16:24:34 fungot: why? 16:24:34 quintopia: sunsoft, a dentist's office is a computer " criminal" because the tar data. but i was tempted to reply to a particular string and i'd rather that the ' 90s citizens to problems such as 16:39:54 The Comcast tech support goons are so cheery they're going to give me diabetes. 16:42:01 ugh comcast 16:42:19 can't say whether i prefer cheery or sullen 16:47:59 They've "sent a stronger signal to my modem" 16:48:06 wtfbbq 16:48:29 They probably have some sort of a dial, and they've turned it up to 11 now. 16:51:11 And the INSTANT I disconnected from the help service, my modem disconnected. 16:51:12 AMAZING. 16:51:31 It was like "exit chat" -> "all modem lights go out" 16:53:03 Greatest part is the tech guy said "please make sure to leave your modem online for the next several hours" 16:53:21 Gregor, did it reconnect? 16:53:21 They took their finger off the "more power" button when you hung up. 16:53:36 Vorpal: Nope. 16:53:41 Vorpal: It's just flailing. 16:53:43 Gregor, did you call them again? 16:53:49 fizzie: Like those turbo buttons on ancient PCs :P 16:54:01 hell yes, what did those turbo buttons actually do 16:54:03 I forgot 16:54:09 They overclocked the CPU. 16:54:25 If you held them long enough the CPU would go "OH SHIT TOO HOT" and shut down. 16:54:32 And you'd go "daaaaaaaamn I overturbo'd" 16:54:41 wha 16:54:51 huh 16:54:55 It's not overclocking when it's a factory-sanctioned thing. And all I ever saw were of the dual-state type. 16:55:03 8 MHz to 16 MHz, wasn't it? 16:55:15 fizzie, what was the intended use? 16:55:17 Something like that; but fine, it would UPclock your CPU :P 16:55:29 -!- cheater_ has quit (Ping timeout: 255 seconds). 16:55:35 fizzie, I mean the reason to not use the max speed all the time 16:55:38 Vorpal: Mostly to slow too-fast things down for compatibility. 16:55:45 ah 16:55:58 I had one box where the frequency switch was controlled by a small executable that toggled it. 16:56:19 heh 16:56:38 "The button was generally present on older systems, and was designed to allow the user to play older games that depended on processor speed for their timing." ('pedia.) 16:56:47 heh 16:57:06 -!- zzo38 has joined. 16:57:12 I'm kiiiiiiiiinda pissed that my modem disconnected seconds after ending the help session :P 16:57:52 Gregor, did you call them again? 16:58:07 Gregor, also are you on phone now? 16:58:10 -!- ais523 has joined. 16:58:31 Vorpal: I'm tethering my phone, and I used their online chat before, not a call. 16:58:33 any guesses as to whether http://esolangs.org/wiki/http://esolangs.org/wiki/User:Obeisantregion9 is a spambot or a real user? 16:58:41 Hey, my ADSL link is also less speedy than usually. The downstream speed tends to hover around 19000 kbps, now it's 17949 kbps. So we all have our problems here! 16:58:53 I think probably spambot, but it hasn't spammed yet 16:58:53 Gregor, well do a new online chat 16:59:10 ais523, that url... what? 16:59:17 "http://esolangs.org/wiki/http://esolangs.org/wiki/User:Obeisantregion9" <-- what? 16:59:18 err, whoops 16:59:21 mispaste 16:59:23 ah 16:59:42 I don't type URLs like that by hand 16:59:52 of course not 16:59:55 (spambots have been known to create pages at such URLs, incidentally) 17:00:01 yes 17:00:08 Considering that that's the only thing it's done, why don't we just wait it out :P 17:00:45 indeed, I plan to 17:08:22 -!- cheater_ has joined. 17:16:52 -!- ralc has joined. 17:19:30 I'm going to send new signals to the modem and refresh it on my end. 17:19:36 I'm gonna give you NEW SIGNALS! 17:19:39 ENJOY THE NEW SIGNALS YUM 17:21:27 -!- Lymee has quit (Ping timeout: 260 seconds). 17:23:10 -!- ais523 has quit (Remote host closed the connection). 17:28:29 HyacintheACBU: I've successfully sent new signals to the modem. 17:28:33 Yessss, new signals! 17:28:35 YUMMMMM 17:30:42 "Your modem didn't seem to like the old signals, which were mostly Mozart. This time I sent some post-retro grindcore to your modem, let's hope it is more willing to work now." 17:34:24 -!- hagb4rd has joined. 17:34:52 -!- Lymee has joined. 17:44:13 -!- zzo38 has quit (Remote host closed the connection). 17:55:28 -!- chickenzilla has joined. 18:03:41 Gregor, works now? 18:05:14 -!- cheater_ has quit (Ping timeout: 255 seconds). 18:06:42 Seems to work. 18:06:44 I'm online :P 18:06:46 I had to go through the whole activation procedure again though. 18:06:52 But at least I have NEW SIGNALS 18:07:48 And thusfar, no lagtown :) 18:09:24 btw.. what is "ground" in a laptop. Wrt the case when it is on battery I mean 18:09:35 I don't mean circuit GND 18:18:34 -!- cheater_ has joined. 18:21:07 -!- Phantom_Hoover has joined. 18:42:54 -!- MigoMipo has joined. 19:02:48 -!- CakeProphet has quit (Ping timeout: 240 seconds). 19:04:27 -!- CakeProphet has joined. 19:04:27 -!- CakeProphet has quit (Changing host). 19:04:28 -!- CakeProphet has joined. 19:16:05 -!- kwertii has joined. 19:34:19 -!- oerjan has joined. 19:36:09 -!- cheater_ has quit (Ping timeout: 255 seconds). 19:46:45 ahahaha 19:46:48 im such an ass 19:48:17 -!- cheater_ has joined. 19:48:21 epifunge :X 19:50:21 -!- cheater_ has quit (Excess Flood). 19:50:38 -!- cheater_ has joined. 19:55:14 Hmm, all of TV Tropes' "You Fail X Forever" pages have been renamed to "Artistic Licence - X". 19:55:32 wat 19:55:48 obviously TVTropes artistic licenses page titling. 19:57:33 Yep, it's for exactly the reason you think it is. 19:57:42 It's too harsh on the poor little writers. 19:58:00 wow what 19:58:02 -_- 19:58:33 clearly a WRITER discovered TVTropes 20:01:07 so basically we are now starting a meme where "artistic license" is a verb meaning "fail forever"? 20:01:39 Yes. 20:01:40 at least it's less overused I hope 20:02:03 then again "fail" in that sense isn't near as overused as the other 20:02:38 in what way is "fail" not overused? 20:04:47 I notice it a lot more as an adjective/noun/interjection than in proper use, somehow 20:05:04 awful, regardless 20:05:47 the fail is fail. fail! 20:06:23 Going to attempt to watch Ghostbusters 20:06:33 why? 20:06:42 ....? 20:07:00 ......? 20:07:03 olsner: THAT IS NOT AN ACTION THAT REQUIRES EXPLANATION 20:07:21 oerjan: I CAN STILL ASK FOR ONE, CAN'T I? 20:07:59 -!- Taneb has joined. 20:08:04 i guess it is physically possible 20:09:29 it is, it was, I did it 20:09:59 yes. but you may have released Zuul in the process. 20:12:05 so? as soon as someone watches ghostbusters they will just solve that problem yet again 20:13:34 yeah but what if someone ends up "Must not think of something immune to crossing the streams. Must not think of something immune to crossing the streams. Oh, damn." 20:14:16 the sequel to the movies they actually made will have a solution to the stream crossing issue 20:14:32 aha 20:14:41 * oerjan has only seen the first movie 20:15:06 I've been thinking about my next esolang, Numberwang 20:15:24 good name what does it do 20:15:34 monqy: rotates the board? 20:16:31 * Sgeo gives up for now 20:16:35 YouTube has it mirrored 20:16:41 It's got elements of a Wang-B machine, Malbolge, and Numberwang from That Mitchell and Webb Look 20:16:51 Taneb, lemme guess, it'll consist entirely of enterprisey buzzwords designed to make it look like there's a language somewhere which will mysteriously evaporate if any attempt is made to implement it? 20:17:16 Wow, that's a good idea. 20:17:21 But it's not Numberwang 20:17:40 Code snippets which look fine at first glance, but when cross-referenced cannot possibly be part of the same language. 20:17:53 The programs are lists of numbers 20:18:19 Like with whatsitsname? 20:18:20 Taneb, you're going to re-create BancSTAR? 20:18:24 The one Conway made. 20:18:30 FRACTRAN. 20:18:38 Closer to FRACTRAN 20:18:38 Sgeo: speaking of which, any response from FIS? 20:18:47 olsner, nope 20:18:49 :( 20:18:52 bastards 20:18:53 But it's completely different 20:18:57 Maybe I did something wrong 20:19:06 you didn't say sincerely 20:19:15 Sgeo: I'm on the wrong continent, so you'll just have to break in there yourself 20:19:19 you didn't greet them either did you 20:19:55 no, he freaked out when we gave him inconsistent guidelines on greetings 20:20:09 (I think) 20:20:36 I need a way to convert any terminating decimal into an integer 1 to 4 20:21:19 Taneb, round it to the nearest of 1,2,3, or 4 20:21:30 Do something with edge cases 20:21:34 Nah, needs to be crazier 20:21:45 I need a way to convert any terminating decimal into an integer 1 to 4 20:21:53 'Terminating decimal'? 20:22:01 Like, not recurring 20:22:03 you mean like 143.598632026? 20:22:07 Yeah 20:22:08 Ah, right. 20:22:18 somehow fold all digits together then take the result modulo 4 then add one 20:22:32 Taneb, take the hash, and find its value modulo 4. 20:22:48 hashes work 20:22:50 It even carries on Malbolge's cryptographical heritage. 20:22:56 convert to a continued fraction, use the last term (mod 4) 20:23:22 That's good too. 20:24:09 http://tvtropes.org/pmwiki/pmwiki.php/Main/BFS 20:24:23 What do swords have to do with anything? 20:24:23 Note how 'Frikkin'' links to Precision F Strike. 20:24:32 That's not how it works, you idiots. 20:24:51 haha tvtropes 20:24:54 Maybe someone blue-nosed bowdlerised it? 20:25:09 Yes, that's becoming distressingly common on TV Tropes these days. 20:25:59 > unfoldr (\n -> if n==0 then Nothing else let f = floor n in Just (f, 1/(n - f))) (143.598632026 :: Rational) 20:26:00 No instance for (GHC.Real.Integral GHC.Real.Rational) 20:26:00 arising from a use... 20:26:08 argh 20:26:20 > unfoldr (\n -> if n==0 then Nothing else let f = fromIntegral $ floor n in Just (f, 1/(n - f))) (143.598632026 :: Rational) 20:26:21 [143,1,1,2,28,1,5,3,1,4,4,1,2,1,1,1,1,4,1,3,1,1,1,1,2*Exception: Ratio.%: z... 20:26:32 oops 20:26:41 oh hm 20:29:42 -!- copumpkin has changed nick to cowworker. 20:33:16 > unfoldr (\n -> if n==0 then Nothing else let n' = 1/n; f = fromIntegral $ floor n' in Just (f, n' - f)) $ recip (143.598632026 :: Rational) 20:33:17 [143,1,1,2,28,1,5,3,1,4,4,1,2,1,1,1,1,4,1,3,1,1,1,1,2] 20:34:20 > unfoldr (\n -> if n==0 then Nothing else let n' = 1/n; f = fromIntegral $ floor n' in Just (f, n' - f)) $ recip (2.718281828 :: Rational) 20:34:20 [2,1,2,1,1,4,1,1,6,1,1,8,1,1,3,1,1,1,2,10,1,6,2,2] 20:34:45 > exp 1 20:34:46 2.718281828459045 20:34:57 > unfoldr (\n -> if n==0 then Nothing else let n' = 1/n; f = fromIntegral $ floor n' in Just (f, n' - f)) $ recip (2.718281828459045 :: Rational) 20:34:58 [2,1,2,1,1,4,1,1,6,1,1,8,1,1,10,1,1,12,1,1,10,2,1,3,1,2,2,1,2,1,1,2,1,1,7,4... 20:35:48 -!- cowworker has changed nick to copumpkin. 20:56:53 * oerjan ponders if it would be easy to implement a TC subset of underload in DigFill 21:13:17 oerjan: let S be a lattice (and a poset), making S^Z a lattice in a natural way. the CA G is lattice-linear if it is a shift-commuting continuous endomorphism of S^Z. theorem: if S = {0, 1}, then a lattice-linear G must be a trivial map or a shift. 21:17:44 proof: since a homomorphism must be order-preserving, if all-0 and all-1 map to all-b for the same b, then the map is trivial. so we may assume all-b maps to all-b. now, consider x = \inf^010^inf. x anded with some of its shifts is all-0, so the image of x must contain a 0. so G(x)_i = 0. 21:17:46 but then for any point y containing a 0 in coordinate j, G(y)_{j+i} = 0 by order-preservingness, and similarly there is such a i' that a 1 in a point forces a 1 somewhere. obviously i = i' or points x with x_i = 0, x_{i'} = 1 cannot have images. but then G is a shift. 21:18:49 (we're still working on the general case, although it's probably not much harder) 21:19:59 sorry *"or points x with x_{-i} = 0, x_{-i'} = 1 cannot have images" 21:21:46 -!- MigoMipo has quit (Read error: Connection reset by peer). 21:22:03 in general i'm very interested in the shift-commuting continuous endmorphisms for algebras over S^Z induced by finite algebras S 21:22:24 there is no f way i'm going to try to understand that. 21:22:28 linearity of couse being the most studied case 21:22:55 "shift-commuting continuous endomorphism" just means it doesn't matter whether you take ands of points before or after the map 21:22:59 and or's 21:23:03 *and's 21:23:15 or maybe you meant that actual proof 21:23:21 yes. 21:26:10 basically i just said ...0001000... cannot map to all-0, or lattice-linearity would be contradicted, so the image has a 1 somewhere. but every point having a 1 somewhere is greater than or equal to a shift of ...0001000..., so you'll have that same 1 in the image of every point. 21:26:32 the same distance away from the 1 in the preimage 21:26:41 or to be precise, i meant _math in general_. 21:26:50 :D 21:26:52 okay sorry 21:27:04 everyone except oerjan: what i just said 21:33:13 btw it's kind of fascinating that we apparently still don't know if the automorphism groups of the full 2-shift and the full 3-shift are isomorphic 21:34:33 i should probably check this factoid, might've been solved now 21:36:45 "All fnord fnord always fnord"? 21:36:57 fungot! 21:36:58 Phantom_Hoover: again why does the market put up with an mclput message ( and 2.3 displays it correctly, maybe i want to buy a " revision" of circa 1989 ( from the user's full name later. 21:37:12 Taneb: words of wisdom by fungot 21:37:12 oerjan: hell, sendmail, inserts return-path headers at will and does not have a lot 21:37:18 fizzie, hey, any chance of homestyle in the near future? 21:39:52 Should I define the Numberwang operation in Numberwang, or keep it vague? 21:40:00 Vague. 21:40:40 Taneb: you should define it with a program in numberwang. 21:40:49 I reckon Numberwang is Turing Complete without it 21:42:04 I have it print "It's Numberwang!\n" 21:42:53 *may 21:43:58 Or run the Numberwang program "12! 4.4! 92! 10! 49.8! 2! 2! 2!" with the current tape and everything 21:45:12 Except I have no idea if Numberwang can do loops 21:45:26 It probably can. 21:45:31 It has a GOTO command 21:46:15 Which decimal → 1..4 thing did you use? 21:46:28 http://esolangs.org/wiki/Numberwang this isn't your numberwang I hope 21:46:50 because that numberwang has loops and is bad 21:47:00 No 21:47:16 We'll just sweep it under the rug. 21:47:31 Move it to Numberwang (crappy BF derivative) 21:47:44 oerjan, motion that the wiki has a Brainfuck: namespace. 21:48:28 *have 21:48:31 so how does numberwang work? 21:49:15 I may write an interpreter and release it closed-source 21:49:32 Just to watch everyone not bother to do anything about it 21:49:35 In that case, may I ask if you know how the wiki's copyrights are set up? 21:49:37 no spec? 21:51:26 motion that people stop thinking i'm a wiki admin 21:52:56 So, may I move the existing Numberwang? 21:53:18 Which is: a) Orphaned 21:53:24 b) uncategorized 21:53:39 c) a brainfuck derivative 21:53:55 Do it and see if anyone bothers to undo it. 21:54:01 d) not actually uncategorized 21:58:35 Is there a proper way to link to Wikipedia, or do I just use the external links? 21:59:16 External links. 21:59:23 We don't have fancy interwiki stuff. 21:59:25 Thanks 21:59:48 Nor fancy anything, since the version of MediaWiki used is like 5 years old. 22:04:01 Phantom_Hoover: actually [[Wikipedia:...] works afair 22:04:12 er *]] 22:04:53 but it may not be a good idea since it makes the link look internal 22:05:01 (also afair) 22:06:44 What do you call it, when you've got the list, the text between the items? 22:07:02 what 22:07:34 clarify please 22:08:12 Like, if I wanted to have Numberwang programs as 13! 42! 2! 7! 9!, it would be "!" 22:08:19 delimiter 22:08:21 Thanks 22:09:15 Also, is moduloed a word? 22:09:20 As in, moduloed by four 22:09:41 heh in math one usually says "modulo four" 22:09:42 misewell be 22:09:54 oerjan: indeed, but in programming we have the modulo operator 22:10:11 or (mod 4) in symbols 22:11:32 although it is not _exactly_ the same as the result of applying modulo by four, it modifies a congruence 22:11:59 7 = 11 (mod 4), where the = should have 3 lines 22:12:10 (ideally) 22:12:54 and that use is afaik considerably older than the use as an operator name 22:14:00 If I said "modulo 4", etc, the sentence would be ambiguous. 22:14:04 I've worked around it 22:14:59 you could use remainder 22:15:17 but i guess that gets more verbose again 22:21:45 http://esolangs.org/wiki/Numberwang 22:22:32 i'm offended by the name 22:23:47 -!- Rugxulo has joined. 22:23:49 It should be Numberwank. 22:29:53 Gregor, that would completely defeat the point of the reference. 22:30:01 Although my idea was way cooler. 22:30:09 I wish I was actually able to make it work. 22:32:13 What was your idea? 22:32:39 The enterprisey jargon that made it look like there was a language where there was none. 22:35:47 I've been away from here too long ... is there a good message board / forum to frequent these days? 22:36:07 * Rugxulo is not interested in searching months of backlogs ... 22:36:21 I probably missed some interesting stuff ... is fizzie here now? perhaps he can sum it up for me 22:36:22 the message board / forum is too dead to be good 22:36:29 Rugxulo: we mainly just discuss things here and on the wiki 22:36:31 -!- copumpkin has changed nick to Vectron. 22:36:39 the forum gets the rare message 22:36:55 I always forget to check the wiki (and should signup / add some stuff one day, e.g. ETA page is woefully slim) 22:37:57 fizzie seems to have been silent for a while 22:38:05 Rugxulo, you mean the general haps of the community, or specific esolang stuff? 22:38:23 -!- Vectron has changed nick to copumpkin. 22:38:36 (OK, community is entirely the wrong word, but whatever._ 22:38:42 *) 22:39:08 It's more like a gentlemen's club. 22:39:55 Oh god, that term has been appropriated for strip clubs. 22:40:03 WHY DO YOU HAVE TO RUIN EVERYTHING, AMERICANS 22:40:04 WHY 22:40:09 It is a club, that is for gentelmen 22:40:15 As in, men who are gentle 22:40:39 Where they can sit quietly and read, or play bridge if they desire 22:40:58 Well, there you have it. 22:41:13 no were a strip club 22:41:17 Who wants a game of bridge, then? 22:41:25 Don't know how to play 22:41:27 monqy, who's stripping? 22:41:35 Nor I! 22:41:43 I should learn to play bridge sometime 22:42:14 I understand that you can play it on these new-fangled computing machines though. 22:42:41 I was directed to http://www.chroniclogic.com/bcs_download.htm when I inquired. 22:42:56 well i've pasted videos of myself naked here 22:43:07 On a bridge? 22:43:21 Taneb, yes. 22:43:32 oklopol, sure, but other than augur, who was watching it? 22:43:53 oklopol: WAT 22:44:03 We haven't had a female member in forever. 22:44:09 WHERE ARE THESE NAKED OKLOPOLS 22:44:14 You don't know what gender I am 22:44:20 (Lymee is almost certainly a 40-year-old man.) 22:44:33 But yeah, I'm male 22:44:39 how did i miss naked oklopol :( 22:44:40 T_T 22:44:43 augur: i played something on the piano 22:44:50 hot 22:44:54 nekkid 22:44:59 Isn't it rich? 22:45:00 augur, you'll have to comb the logs. 22:45:02 Aren't we a pair? 22:45:07 Me finally here on the ground, 22:45:11 You in mid-air 22:45:13 actually the vids have been moved to a better place. 22:45:16 Taneb, ah, but are you 40 years old? 22:45:19 oklopol: gimme :D 22:45:24 WAIT 22:45:25 CPRESSEY 22:45:28 IS LIKE 40 22:45:34 AND HE HASN'T BEEN HERE LATELY 22:45:40 augur: you can't actually see anything :D 22:45:46 IT ALL MAKES SENSE 22:45:49 oklopol: well what CAN i see 22:45:57 i mean on the vid 22:46:09 oklopol: no i know 22:46:13 Phantom_Hoover: I'm not going to be 40 for a while 22:46:15 you can see my naked arms i suppose 22:46:19 24 years 22:46:26 and maybe, MAYBE, part of my penis 22:46:32 but nothing else 22:46:46 oklopol: :O 22:46:49 i'd watch that 22:47:01 i actually love banging my dick against the keys 22:47:02 < augur> oklopol: :O <-- you would, wouldn't you 22:47:10 coppro: yes, i would 22:47:20 i believe i just said that 22:47:39 I am regretting joining this chat 22:47:44 ;_; 22:47:51 It's too... 22:47:58 Taneb, gay? 22:47:59 Wrong-gentlemen's-club-y 22:48:01 HOMOPHOBE 22:48:12 Nah, too sexual 22:48:18 SEXOPHOBE 22:48:32 Now, that just sounds like a woodwind instrument 22:48:50 speaking of being gay, maybe i should've gone to america instead of europe for my vacation, augur would probably have agreed to meet me (unlike SOME PEOPLE :||) 22:48:55 I'b sorry, I can't play the sexophobe right now. 22:49:01 I hab a cold. 22:49:04 oklopol: ;D 22:49:13 i tried to meet elliott 22:49:14 and he's like 22:49:15 oklopol: depends on what you were looking to be agreed with about 22:49:17 sorry i'm busy 22:49:20 lol 22:49:35 "how about next week?" "hmm hmm it seems i'm busy sorry" 22:49:41 Phantom_Hoover: um we have at least two people here right now who may be female 22:49:45 "uhhuh, and the week after that is busy i guess?" 22:49:50 "sure seems that way" 22:49:51 oklopol, TbH, the part of England elliott lives in is so boring it'd be a waste. 22:49:56 Which part? 22:50:12 Taneb, well, that'd be telling. 22:50:21 (Lymee is almost certainly a 40-year-old man.) <-- oh, ok. 22:50:29 oerjan, wait, who's the other? 22:50:30 aloril? 22:51:41 (I vaguely remember coming across something mildly indicative of femaleness while trying to unravel the mystery of who the hell all these lurkers are.) 22:51:49 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 22:52:34 I am regretting joining this chat <-- you know, there used to much more of this stuff a few years ago :P 22:52:56 I'm sincerely glad I'm a newb, then 22:53:16 You mean the legendary days of 2008, when in the words of elliott the channel should have been renamed to ##gaysex? 22:53:26 oerjan: i was more active a few years ago. 22:53:46 Phantom_Hoover: Elizacat 22:53:52 Oh, right. 22:53:54 Duh. 22:53:59 ive been in #haskell and #agda primarily, recently 22:54:39 oerjan: i was more active a few years ago. <-- THAT WOULD EXPLAIN IT YES 22:54:56 :) 22:55:01 personally i find gay sex WAY more interesting to talk about than software/unix/compiles/whatever that stuff is you ppl are always whining about 22:55:07 *compilers 22:55:45 oklopol: oh myyyy 22:56:24 :F 22:56:36 you know that's not saying much 22:57:00 I'll admit *nix is boring, but not THAT boring! 22:57:15 Okay, I've created three esoteric programming languages this year, and they all begin with N 22:57:18 Taneb: although funnily i can only recall two people on the channel who are openly gay. (augur being one, of course.) 22:57:22 BTW, new FreeDOS kernel 2040 released a few weeks ago ;-) 22:57:28 i have a complete mental ignore for all of that computer stuff, despite (and perhaps due to) years of trying to get interested in it 22:57:52 in fact, I'm using it now! :-)) 22:58:10 I'm not homophobic, I just don't like talking about sex or nakedness 22:58:14 ive been in #haskell and #agda primarily, recently 22:58:24 agda? 22:58:27 agda! 22:58:34 agda. 22:58:36 Taneb: why? 22:58:38 its like epigram except it gets released xP 22:58:39 So is #agda now full of dependently-typed gay sex? 22:58:48 Phantom_Hoover: oh yes 22:58:54 oklopol: parents raised me that way, maybe 22:59:04 Or maybe it's because I'm asexual. 22:59:11 `addquote ive been in #haskell and #agda primarily, recently So is #agda now full of dependently-typed gay sex? 22:59:13 you are? cool 22:59:15 503) ive been in #haskell and #agda primarily, recently So is #agda now full of dependently-typed gay sex? 22:59:18 Phantom_Hoover: that and insights from mcbride and other shit 22:59:28 Bi- leaning hetero-romantic 22:59:34 augur, why, is he an expert on gay sex? 22:59:43 oh 23:00:05 Taneb, I recall reading the log of the first time CakeProphet came here and seeing pikhq_ claim that asexuality was literally biologically impossible. 23:00:11 well that's kinda gay, i hoped like complete disinterest in relationships 23:00:12 I wanted to go into the past and slap him. 23:00:25 Phantom_Hoover: Uh, what did I what what? 23:00:35 oklopol: Nah, just I rather ironically find sex a turn-off 23:00:44 Phantom_Hoover: no, but hes an expert on dependent types! 23:00:48 xD 23:00:50 icky gross yuck 23:01:45 Taneb: you have been in relationships, yes? 23:01:49 No. 23:01:50 Taneb: what about MAKING LOVE? 23:02:09 THAT'S JUST A EUPHEMISM FOR THE SAME ACT! 23:02:23 coppro: Got a crush on this girl, though 23:02:29 Mike Love? nah, he's a Beach Boy ^_^ 23:02:32 no, there's way more love involved 23:02:40 spewing everywhere 23:02:44 Taneb: uh, i dont know about you but when i make love it requires milk, flour, eggs, sugar.. 23:02:47 and semen 23:03:02 Oh, look, it's tomorrow 23:03:05 I better go now 23:03:21 This has nothing to do whatsoever with where the conversation has turned 23:03:23 ...you chased him away. i should ban the lot of you :P 23:03:24 have fun 23:03:25 Bye 23:03:36 Goodnight. 23:03:40 -!- Taneb has left. 23:04:03 mwahahaha 23:04:32 1-0 for the sexual people 23:05:49 -!- elliott has joined. 23:06:01 hi elly 23:06:25 Three minutes too late. 23:06:49 elliott! 23:06:53 you missed all the gaysex 23:07:33 yeah me and augur had a "conversation" 23:08:01 -!- Rugxulo has quit (Quit: boring). 23:08:18 btw who reads scandinavia and the world? 23:09:40 eh, scandinavians? 23:09:57 i think it's reasonably funny 23:10:07 at least the ones i've seen linked 23:10:44 augur: i actually started binging it yesterday 23:11:20 oklopol: you are finland. just sayin 23:11:32 you missed all the gaysex <-- ok new theory, elliott _is_ Taneb 23:12:11 Just as cpressey is Lymee. 23:12:18 i'm a pretty stereotypical finn in many ways 23:12:30 oerjan: wat 23:12:49 oklopol: so you are precisely like that finnish guy on satw, right? 23:12:56 just checking 23:13:04 i don't know that much about him 23:13:06 what's he like 23:13:13 apparently you 23:13:16 huh 23:13:25 elliott: you arrived 3 minutes after we embarassed him to leave 23:13:44 you think we embarassed him? 23:14:15 oerjan: I TOLD YOU WE HAD GUESTS 23:16:11 really asexuality is pretty awesome, i could do way more mathing if i was asexual 23:16:25 elliott: recap: Phantom_Hoover called #esoteric a gentlemen's club and then realized what that meant in american. then the discussion passed on to naked pictures of oklopol and someone woke up augur. the rest should be obvious. 23:17:09 oklopol: he _said_ he didn't like the subject. 23:17:26 really asexuality is pretty awesome, i could do way more mathing if i was asexual 23:17:30 he also denied that was why he left, but... 23:17:36 there are testosterone inhibitors available HTH 23:17:40 not liking it != being embarrassed about it 23:18:26 elliott: the problem is not so much that i need my 2-5 orgasms a day, more that i start feeling like life is completely pointless if i don't get laid for a week 23:18:57 that is, with a living object other than myself 23:19:53 oklopol: i'd be happy to help you with that 23:20:08 so would the retarded girl! 23:20:21 actually i think it was just a sick joke, since she then just left. 23:20:22 yeah but a) retarded, b) girl 23:20:26 and broke my heart 23:20:33 oklopol: what happened to your girlfriend, anyway 23:20:47 augur, she wouldn't have sex with him in a bath of coke. 23:21:11 horrible 23:21:59 i had some issues with her starting serious relationships with other guys, and things lead to another and now she's in africa. 23:22:09 :\ 23:22:25 i was fine with an open relationship ofc but i'm not really a polyamorist 23:22:37 i mean a hole is a hole 23:22:58 oh also what Phantom_Hoover said 23:23:03 that was really the main thing 23:23:29 oklopol: well, come to maryland. :D 23:23:36 oh you 23:25:33 Hi, 23:25:33 You're receiving this because at some point in the past, the dice roller 23:25:33 at nomic.net (dice@nomic.net) received a request purporting to be from 23:25:33 your email address. 23:25:33 We are happy to announce the deployment of a new dice roller to replace 23:25:34 the original one, which is now more than 10 years old. 23:25:47 A NEW AGE OF NOMIC DICE ROLLERS HAS ARRIVED 23:26:15 ... 23:27:44 spamic 23:29:00 my lines or the email 23:29:19 7 lines is not very spamic here 23:29:32 7 screenfuls maybe 23:29:59 i'm proud to be a spamerican 23:29:59 oklopol: if its 7 screenfulls of lambdabot, its a regular occurance 23:30:05 or of some other evaluator 23:30:16 -!- ralc_ has joined. 23:30:28 -!- ralc has quit (Ping timeout: 240 seconds). 23:30:31 eviluator 23:30:37 oerjan: 07:26:45: -!- BeedaWeeda has joined #esoteric. 23:31:06 hm, i didn't notice 23:31:10 is boily back from wherever he went off to? 23:31:18 < 1310542005 7325 :BeedaWeeda!~BeedaWeed@74-45-176-122.dr01.pasn.ca.frontiernet.net JOIN :#esoteric 23:31:24 wtf, is that a different isp? 23:31:35 ic 23:31:56 augur: exactly 23:32:00 or debugging 23:32:22 12:06:55: The book held the record for the longest sentence in English literature with 13,955 words. That record was broken by Nigel Tomm's one-sentence, 469,375-word book, The Blah Story, Volume 4. 23:32:23 oh wow 23:32:26 that thing has like fifteen volumes 23:32:41 "The tenth volume of The Blah Story by Nigel Tomm was published in 2008. In this volume Nigel Tomm shocks us with (only) one unthinkable word, which is 2,087,214 letters long (read more)!!!" 23:32:58 what 23:33:02 Also 'The Blah Story, Volume 10' encloses the world's longest word which contains 2,087,214 letters. The ultra long word was created using very simple algorithm. Nigel Tomm joyfully explains an algorithm of building his extra size word: "Fuse separate words together no matter how cool you think they look singly." 23:33:22 i 23:33:23 i mean people have spent HOURS just debugging bots and shit here which is often just repeating " hello everyone !do stuff the wrong thing to say fucking ass-originating shit bye" 23:33:31 Let me summarize some facts about world’s longest book/novel - The Blah Story. Nigel Tomm’s abstract novel The Blah Story was begun to publish in the October 2007. In 2007 first 4 volumes were published. In 2008 next 19 volumes were published. For now, 23 volumes of The Blah Story are published, they contain 11,338,105 words; 61,745,771 characters (with spaces); 17,868 pages. 23:33:36 http://theblahstory.files.wordpress.com/2008/12/the_blah_story_covers_big.jpg 23:33:38 literally amazing 23:34:10 12:14:57: blah and blah blah to his blah character and then blah blah she was blah blah blah years old she blah blah boys about her so blah blah blah, her blah blah eyes blah blah along the blah blah blah his blah blah lips blah the pattern of a blah of blah on the blah as she blah blah blah and blah him with a blah 23:34:10 12:15:03: ...this sounds like such a good read. 23:34:22 oklopol: e_e 23:34:51 is that an actual quotation from an actual volume of that actual story 23:34:56 maybe it's art or something 23:35:02 elliott: it seems somewhat dubious to consider this "english literature" 23:35:09 oerjan: i object, this is awesome literature 23:35:14 art 23:35:17 or arey ou objecting to the english part :D 23:35:20 yeah 23:35:31 i want to own everyvolume 23:35:59 " is that an actual quotation from an actual volume of that actual story" <<< someone answer plz 23:37:37 i believe so 23:37:45 i want to read that shit 23:38:01 http://theblahstory.wordpress.com/ 23:38:02 you're welcome 23:38:05 twenty-three volumes 23:38:09 seventeen thousand pages for you 23:38:23 oklopol: oh and it's available to download. 23:38:33 Book Title: The Blah Story / Author: Nigel Tomm / # of Words: 11,300,000[citation needed] / Language: English / Reason for Dispute: Text composed mainly of 'blah's.[citation needed] 23:38:37 Here’s an excerpt (the first page of The Blah Story, Volume 8): 23:38:37 Then blah again to blah this time, where she blah blah with arty blah and blah in blah, took blah the simple blah, and wrote some blah blah poetry, supposedly the blah of a blah blah blah on the blah of the blah blah title My Blah Story: 23:38:37 Blah me. Blame you. 23:38:37 Blah you. About you. You blame me. Blah you. 23:38:37 I blah as you or blah by blah, 23:38:39 You know. You blah. You blah it out of blah. 23:38:41 Blah blah. Blah blah. 23:38:43 Blah blah, a blah, 23:38:45 Blah in blah. 23:38:47 Discovers blah and circles 23:38:49 Into blah. ‘My eyes,’ I scream. 23:39:02 to blah or not to blah, that's the blah. for whether it's nobler to blah or to blah, perchance to blah 23:39:06 Longest sentence continues – “The Blah Story, Volume 18″ 23:39:07 June 12, 2008 by theblahstory 23:39:07 The eighteenth volume of The Blah Story by Nigel Tomm was published in 2008. The Blah Story, Volume 18 continues the longest sentence everrrrrrrrrrr (sorrry for rrrrrrrrrr’s, sometimes I just can’t control myself). The ultra-long sentence was started in Volume 16 and continued in Volume 17 (read more). For now, the sentence occupies three 812-page The Blah Story volumes (16, 17 and 18) and… there’s still more behind! 23:41:17 *'tis 23:41:30 12:49:44: Perl takes lists from Lisp, hashes ("associative arrays") from AWK, and regular expressions from sed. These simplify and facilitate many parsing, text-handling, and data-management tasks. 23:41:30 12:49:54: that's quite a stretch to say that Perl takes lists from Lisp... 23:41:40 I think Lisp actually introduced the dynamically-sized list structure 23:41:48 As a language element, I mean 23:47:30 14:30:47: I've just had an idea 23:47:30 14:31:01: An esoteric programming language based on Numberwang 23:47:30 14:31:12: From That Mitchell and Webb Look 23:47:30 WE ARE CULTURED, WE KNOW WHAT NUMBERWANG IS 23:48:02 14:38:31: something wrong with an infinite -> tree? 23:48:08 I believe this makes the type system unsound (oerjan?) 23:49:00 14:44:45: also, the type of fix is basicaly ((a->b)->(a->b))->(a->b) 23:49:00 14:44:50: *basically 23:49:00 14:45:12: but writing it as (a->a)->a looks cooler and is marginally more general, even though a not being a function type isn't actually useful with the standard definition of fix 23:49:05 oh, he already got told right after 23:49:50 14:48:31: the best you can do is do, say, (int -> int) for [int] 23:49:50 14:48:37: where it's a function from index to value 23:49:54 int is a recursive type 23:49:57 (bad terminology...) 23:51:18 only if unbounded... 23:52:18 oh, i see, the context is not lamdba calculus 23:52:19 I believe this makes the type system unsound (oerjan?) <-- ocaml manages... i'd imagine it doesn't hurt more than non-termination in general? 23:52:30 *ocaml with -t 23:53:00 14:58:50: I love how magical fix is, while being completely definable in Haskell, and also very simple to define. 23:53:00 14:59:35: just shows how powerful the semantics are. 23:53:00 14:59:45: what's the Haskell definition? 23:53:00 14:59:56: fix f = f (fix f) 23:53:01 wrong 23:53:11 oerjan: ocaml has a weaker type system than Haskell's... 23:53:14 < elliott> oh, he already got told right after 23:53:27 dammit oerjan why didn't you tell CakeProphet he was wrong :(((((((( 23:53:39 um i did? 23:53:46 oh you did 23:53:48 thnx 23:54:43 15:11:06: @pl fix f = let x = f x in x 23:54:43 15:11:06: fix = fix id 23:54:43 wat 23:55:22 16:24:01: Selected style: jargon (UNIX-HATERS mailing list archive) 23:55:22 still love this 23:55:22 elliott: why not support certain common denominators in the towel and start learning perl. i've been using ftp software's network monitor program and mis-typed a command to execute something like that, you 23:55:29 elliott: in any case i've always heard that the reason haskell doesn't allow implicitly recursive types is not something fundamental but because it would make too many obvious errors type (presumably involving missing function arguments) 23:55:45 oerjan: fair enough, but I'm still Suspicious(tm) 23:55:57 elliott: i suspect that @pl is confused because it contains fix which @pl uses internally 23:56:26 @pl fix f = fix f 23:56:26 fix = fix id 23:56:44 ?pl alakazam f = let x = f x in x 23:56:44 alakazam = fix 23:56:46 heh 23:57:51 19:55:14: Hmm, all of TV Tropes' "You Fail X Forever" pages have been renamed to "Artistic Licence - X". 23:57:51 wow. 23:57:52 @pl ap = liftM2 id 23:57:52 ap = ap 23:57:57 bah 23:57:59 just wow. 23:58:18 And it's for the exact reason you fear it is. 2011-07-14: 00:00:55 (cur) (last) 22:20, 13 July 2011 Taneb (Talk | contribs) (Replaced with new esolang) 00:00:55 (cur) (last) 21:53, 13 July 2011 Taneb (Talk | contribs) (Numberwang moved to Numberwang (brainfuck derivative)) 00:00:59 I find this precedent disturbing 00:01:13 I'm going to invent a language called brainfuck and move the old article away 00:01:20 (perhaps to Brainfuck (brainfuck derivative)) 00:01:54 21:51:26: motion that people stop thinking i'm a wiki admin 00:01:54 NEVER 00:01:58 oerjan: delete a page for me plz 00:02:35 I'm going to invent a language called brainfuck and move the old article away 00:02:44 Yeah, but I told him to try it and see if anyone stopped him. 00:02:51 I WILL STOP HIM WITH MY POWERS 00:02:54 22:36:07: * Rugxulo is not interested in searching months of backlogs ... 00:02:54 22:36:21: I probably missed some interesting stuff ... is fizzie here now? perhaps he can sum it up for me 00:03:00 fizzie: your true purpose in life revealed. 00:03:15 Oh, you're just before the gay stuff. 00:03:19 Poor Taneb. 00:03:25 My cringing is ready. 00:03:58 22:44:14: You don't know what gender I am 00:04:03 i forget what i was giong to say 00:06:08 22:47:39: I am regretting joining this chat 00:06:08 I am regretting reading this log. 00:08:22 -!- copumpkin has joined. 00:10:43 22:57:18: Taneb: although funnily i can only recall two people on the channel who are openly gay. (augur being one, of course.) 00:10:44 wait who's the other I KEEP A REGISTRY 00:10:56 elliott: you, ofcourse 00:11:15 22:59:11: `addquote ive been in #haskell and #agda primarily, recently So is #agda now full of dependently-typed gay sex? 00:11:15 FOLLOW THE FUCKING RULES 00:11:19 `delquote 503 00:11:21 ​*poof* 00:11:26 `addquote ive been in #haskell and #agda primarily, recently So is #agda now full of dependently-typed gay sex? 00:11:28 503) ive been in #haskell and #agda primarily, recently So is #agda now full of dependently-typed gay sex? 00:11:48 elliott: whats the rules 00:11:55 is that a double space 00:12:16 oic 00:12:17 I can't see because it breaks the line and I'm too lazy to adjust my terminal 00:13:13 yes 00:15:28 elliott: wait what 00:15:36 oerjan: ? 00:15:38 the two spacing rule 00:16:11 elliott: it _was_ two spaces O_O 00:16:27 i have no idea why you didn't see that 00:16:39 oh was it 00:16:45 hm 00:16:46 logs stripped it 00:16:46 heh 00:16:56 bad logs 00:17:57 elliott: also, slereah 00:18:29 I pronounce 'Slereah' as 'Slerah' in my head for some reason. 00:18:42 -!- kwertii has quit (Quit: bye). 00:18:54 Of course, I thought 'Fibonacci' was 'Fibocanni' for quite some time, so I'm not terribly good at that. 00:19:26 http://esolangs.org/wiki/Nthern_archive 00:19:30 itt: userspace 01:08:04 O...K... 01:08:09 I hear seagulls outside. 01:08:18 This suggests that it is uncomfortably close to morning. 01:08:24 * Phantom_Hoover → sleep 01:08:26 -!- Phantom_Hoover has quit (Quit: Leaving). 01:08:34 It's two am, you idiot. 01:29:05 -!- Sgeo_ has joined. 01:30:45 -!- Sgeo has quit (Ping timeout: 255 seconds). 01:35:49 "More than 6,000 people with pillow-related injuries check into U.S. emergency rooms every year!" 01:36:00 Thanks, I really, really, wanted to know that 01:37:18 Do you have... pillowphobia. 01:37:36 pobia 01:38:05 No, but I've never feared dying from pillow before 01:38:18 and now you do 01:38:38 you're probably more likely to die in a pillow-related accident than by shark bite. especially if you never swim in the ocean. 01:50:46 Guys how does Maven even work. 01:51:00 -!- hagb4rd has quit (Ping timeout: 240 seconds). 01:54:25 how can you "die from pillow"? 01:54:52 you know that thing in the movies where they put a pillow on someone's face and try to suffocate them 01:54:57 that doesn't work. 01:55:13 a pillow fight gets violent 01:55:16 we tried that with my ex once, but we just couldn't kill each other that way 01:55:27 you can just breathe through it or slightly tilt your head 01:55:32 you know that thing where you sneak rocks into your snowballs because you're mean 01:55:37 it works with pillows too 01:55:44 ah 01:56:04 im a porks 01:58:03 `addquote you know that thing in the movies where they put a pillow on someone's face and try to suffocate them that doesn't work. we tried that with my ex once, but we just couldn't kill each other that way 01:58:04 504) you know that thing in the movies where they put a pillow on someone's face and try to suffocate them that doesn't work. we tried that with my ex once, but we just couldn't kill each other that way 02:01:54 oklopol: it is possible to suffocate someone with a pillow though. you have to shove it down her throat. hard. just because the movies do it wrong doesn't mean it can't be done. 02:04:52 well right or you could set the pillow on fire and then shoot the girl 02:18:29 -!- derrik has joined. 03:02:23 -!- azaq23 has quit (Quit: Leaving.). 03:15:54 -!- oerjan has quit (Quit: Good night). 03:22:49 -!- derrik has quit (Quit: left). 03:24:08 -!- yorick has quit (Ping timeout: 240 seconds). 03:25:23 -!- jix has quit (Ping timeout: 240 seconds). 03:28:00 -!- ralc_ has quit (Remote host closed the connection). 03:29:27 -!- jix has joined. 03:37:15 ...wait 03:37:22 what? 03:40:50 ? 03:47:48 would you touch a boob that was on fire? 03:48:05 Gregor: Debian are always right, right? 03:48:21 #!/usr/bin/make -f says no. 03:48:40 What? 03:48:59 That's the first line of boilerplate in pretty much every debian/rules file. 03:49:07 ...so? 03:49:32 My point is, "Their packaging scheme is absurd." 03:49:45 That's just the most easy to spot absurdity. 03:52:01 -!- yorick has joined. 03:55:06 Gregor: OI 04:01:02 Gah, someone else answer :P 04:01:08 Is Apache Two a DFSGLSGLSG-ok license? 04:01:47 elliott: It's DFSG, FSF, and OSI approved. 04:01:53 In addition to being GPLv3 compatible. 04:02:21 Really, it's only a non-copyleft license with a patent clause. 04:02:46 THEN WHY ISN'T INTELLIJ IDEA IN DEBIAN (As someone suffering with Java, I am trying to find a tool to make it as bearable as possible, and Intellij IDEA looks well-liked :P) 04:03:31 DFSG is pretty good 04:03:36 Probably because it became free software only a couple years ago. 04:03:42 debian packaging scheme is ridiculous 04:03:51 Oh boy, their Linux distribution is a tar.gz. 04:03:52 but then again, so are all packaging schemes 04:03:56 INSTALLATION INSTRUCTIONS 04:03:56 Unpack the idea-10.0.tar.gz file using the following command: tar xfz idea-10.0.tar.gz 04:03:56 Run idea.sh from the bin subdirectory. 04:04:09 coppro: Some more so than others. 04:04:15 Maybe I'll just try NetBeans; that has the advantage of being packaged in my distribution. 04:04:29 Most the source-based distros have at least *respectable* packaging schemes. 04:04:38 s/Most t/T/ 04:05:01 (I might just stick with Eclipse if I can get a tolerable build system working with it :P) 04:05:25 And I give Slackware props for simplicity, though Slackbuild scripts are way too complicated for my tastes. 04:05:50 (mostly due to being *entirely standalone*) 04:07:12 Oh, good, IDEA doesn't install globally. 04:07:19 It... just has no installation script. 04:07:26 elliott: try Groovy 04:07:31 That's a language. 04:07:32 -!- oklopol has quit (Ping timeout: 252 seconds). 04:07:41 (in relation to your Java suffering) 04:07:44 It's also a fairly crappy one, but more importantly, an excruciatingly slow one. 04:08:11 Plus I'd have to bundle the entirety of Groovy in. 04:08:13 java? aren't there other languages that run on the jvm and can interface with java, or are they bad too, or do you really have to use java 04:08:26 groovy is one such language. 04:08:42 monqy: I'm writing a Bukkit plugin, so it has to be JVM based; any language will add heaps to my filesize; and I don't know of any languages that run on the JVM that are sufficiently good to make this worthwhile. 04:08:44 and Clojure 04:08:53 elliott: ah 04:09:00 Scala is a mess. Clojure is also a mess. 04:09:08 Jython! 04:09:14 Python is... Python. 04:09:14 python is a mess 04:09:32 is there a perl for jvm 04:09:39 doubt it 04:09:43 there's only one perl. :) 04:09:46 jerl 04:09:51 Jacl. 04:09:56 jaskell 04:09:58 aren't there multiple perl6s at least 04:10:03 there's only one perl. :) 04:10:08 http://www.perlmonks.org/?node_id=272641 04:10:16 right parrot 04:10:19 rather dead now, I think 04:10:43 what other languages exist 04:10:46 elliott: http://jtcl.kenai.com/ 04:10:48 bancstar 04:10:52 pikhq_: "lol" 04:11:01 elliott: why not just code in JVM. 04:11:08 -!- oklopol has joined. 04:11:10 like a real programer. 04:11:16 ...yes, with one m 04:11:21 Or, more realistically, write your own Forth for JVM. 04:11:22 zepto for jvm 04:11:26 j zepto 04:11:31 Jepto. 04:11:36 WARNING: You are launching IDE using OpenJDK Java runtime 04:11:37 no that ruins it 04:11:37 THIS IS STRICTLY UNSUPPORTED DUE TO KNOWN PERFORMANCE AND GRAPHICS PROBLEMS 04:11:59 ugh IDEA why are you using ugly Javaish text rendering 04:12:00 ... I was unaware there was any notable difference between OpenJDK and Sun JDK. 04:12:06 also, ugly javaish ui 04:12:12 pikhq_: there is 04:12:19 elliott: Like? 04:12:29 known performance and graphics problems 04:12:33 openjdk = java seven backported to work with previous java versions 04:12:39 with a bunch of proprietary stuff rewritten 04:13:00 http://en.wikipedia.org/wiki/Category:JVM_programming_languages 04:13:38 are any of them minimal 04:14:08 Pizza is a superset of Java. 04:14:10 IDEA you are not being nice to me. 04:14:26 jscheme is r4rs is r4rs any good is jscheme any good 04:14:31 with generics, function pointers, and "class cases and pattern matching (a.k.a. algebraic types)" 04:14:41 oh, pizza == gj predecessor 04:14:51 "It was designed by Gilad Bracha, Martin Odersky, David Stoutamire, and Philip Wadler to offer developers a smoother transition and better Java compatibility than the Pizza programming language, previously created by Odersky and Wadler." 04:14:53 big names 04:14:54 pizza tastes good 04:16:32 GJ? 04:16:41 And only one I recognize is Bracha :/ 04:16:42 why is there php for jvm 04:16:53 the only one I recognize is odersky 04:17:06 does this make me a bad person 04:17:47 Sgeo_: you don't recognise odersky? wadler? 04:18:02 elliott, I only recognize Bracha because of Newspeak, tbh 04:18:11 odersky is the scala guy right 04:18:20 if I ever knew who wadler is, I forget now 04:18:38 monqy: odersky = creator of Scala, Wadler = populariser of monads in functional programming, populariser in general of functional programming, influential in development of Haskell, author of "Theorems for free!", which popularised the study of parametricity in functional languages 04:19:17 Larry Wall = God of teh computers 04:19:17 sounds decent 04:19:22 impressive 04:19:23 CakeProphet: r u srs 04:19:31 teh is a serious word 04:19:36 ya srsly 04:19:58 bleh, IDEA is complex 04:20:06 I dislike IDEs 04:20:08 what does it stand for? 04:20:16 IDEA, I think 04:20:23 monqy: yeah but with Java it's not an IDE so much as... 04:20:26 monqy: the real language 04:20:36 what 04:20:37 would it be possible to change the D to a K and make furniture puns? 04:20:45 elliott, um, it's not Smalltalk.. 04:20:48 monqy: you might see , but the actual language behind it is is [File → New → Class] 04:21:07 it just erases that information after you write it, because java is stupid 04:21:11 so you can't reify intentions 04:21:28 can you do it with reflection 04:21:34 that's a joke right 04:21:36 yes 04:21:45 I was going to continue it 04:21:49 and make it better 04:21:53 but then you killed it 04:21:54 ok 04:21:57 monqy: go on 04:21:57 basically the answer to any problem in Java is "define a class" 04:22:00 let's pretend i said nothing 04:22:01 I can't 04:22:02 it's dead 04:22:04 gone 04:22:08 :< 04:22:23 IntelliJ IDEA Q[ampersand]A for Eclipse Users 04:22:23 Q: What happened to my Workspace? Where are all my projects? 04:22:23 A: They're OK, but in a slightly different way. 04:22:34 they're in a better place 04:22:40 they have been converted into a hilarious furniture themed interface! 04:23:01 Q: I feel that the editor behaves differently. Am I right? 04:23:01 A: Yes, you are. 04:23:15 these answers are so helpful. 04:24:37 all of your files are in drawers, the current file being edited is on the table. You have a handy wardrobe of tools, and you compile with the coffee cup. 04:24:59 there's longer answers below :P 04:25:43 IDEA what are you doing, you confuse me even more than Emacs :( 04:25:45 CakeProphet: the homespring of ides? 04:25:56 asterisk HOtMEfSPRIbNG 04:26:02 I can't bother to remember that 04:26:23 elliott can always be bothered. 04:26:44 This is his youthful superpower 04:26:51 apparently jaskell is a thing but instead of being like haskell it's weird 04:26:55 young whipper-snapper 04:27:19 Nice apparently has ideas from ML and Haskell 04:27:29 but that's all I know about it. Also I think it's dying. 04:27:48 ...I wish io wasn't dead. Such a good idea.. 04:27:50 oh god yeah jaskell 04:27:52 we found that before 04:27:53 it's amazing 04:28:05 it has like, literlaly nothing to do with haskell? 04:28:05 does anyone know what its deal is 04:28:07 literally 04:28:10 literally 04:28:38 There's OCaml-Java 04:29:20 Erjang, and Micro Focus JVM Visual COBOL 04:29:29 IDEA is upsetting me 04:29:29 these are your best choices. 04:29:31 JOBOL 04:29:32 like 4 java schemes, 2 java phps, 3 java clisps, two cobols, awk, ada, 2 logos, 3 luas, 2 pascals, perl6 04:29:44 i'll write it in logo then 04:29:46 or pascal 04:29:50 cobol 04:29:50 twice 04:29:52 I probably missed some interesting stuff ... is fizzie here now? perhaps he can sum it up for me <-- Just paste the last year of logs into Microsoft Word and use the "auto-summarize" option. 04:30:08 there's a C to JVM compiler... 04:30:08 oh wow IDEA wasn't joking about letting you place the cursor outside of a line boundary 04:30:25 you know what IDEA reminds me of 04:30:27 IDEA reminds me of J 04:31:00 I've never bothered to understand J 04:31:14 no the other J 04:31:17 oh 04:31:21 Alef++, a programming language inspired by Perl and Lisp. 04:31:24 Sounds good to me. 04:31:24 J the language is awesome you sohuld understand it. 04:31:29 CakeProphet: ahahahaha what 04:31:36 There are two Js? 04:31:44 http://en.wikipedia.org/wiki/List_of_JVM_languages 04:31:45 I'll put J in my reading pile 04:31:51 under "New JVM languages" 04:31:56 http://alefpp.sourceforge.net/ 04:32:04 how can a language have ++ in its name that's obscene 04:32:11 how can a language be influenced by both perl and lisp 04:32:14 that's obscene 04:32:40 oh, IDEA is kind of slow when i type, prolly cause of openjdk 04:32:41 i think 04:32:42 that i 04:32:44 am going to try netbeans 04:33:09 I use Eclipse for Java IDEs.. 04:33:16 me too, it sucks 04:33:27 I remember J is related to APL and it's good for golf and it's "function-level" but that's it 04:33:29 it's the best one I've found. I don't like netbeans at all. 04:33:36 ok it wouldn't suck if i had the patience to get the build system working 04:33:55 elliott: be a snob and use emacs for everything. 04:33:56 investigating alef++ now 04:33:58 monqy: it's actually a really powerful paradigm and understanding it brings a great insight into why programs in it are so short 04:34:02 monqy: J, that is 04:34:14 monqy: hint: J would be just as good as golf if every operator had a word-long name 04:34:39 function-level is a misnomer, it basically just has higher-order functions (every function is an operator, functions have one or two arguments only) 04:34:40 elliott: yeah it's on my reading pile. I read about that function-level paradigm once but I never really tried doing anything with it. I will. eventually. 04:34:46 not full higher-order functions, just second-level 04:34:52 but it has things like forks 04:35:17 (unopa binopb unopc) x = (unopa x) binopb unopc x 04:35:24 Now if only the functions were even slightly possible to remember 04:35:25 I remember there are no values things in "function-level" languages and that's it 04:35:29 wrong 04:35:31 that's bullshit 04:35:34 oh 04:35:36 Sgeo_: they are. 04:35:43 Hmm, maybe I should make an Ahnk deck thing 04:35:55 monqy: so sum is +/%# = +/ % # 04:35:58 % is division 04:36:02 # is length 04:36:05 erm 04:36:08 monqy: mean 04:36:08 not sum 04:36:13 / is over (fold) 04:36:17 mm 04:36:20 Sgeo_: they are hard to remember forever without making a mnemonic. they are easy to remember while you're actually reading and using it. 04:36:23 so it's just (sum fold) divide length 04:36:23 *or 04:36:37 monqy: and basically, every operation is lifted to arrays 04:36:41 i.e. array+array does the obviousa 04:36:45 (arrays are N-dimensional) 04:36:50 (and fixed-size) 04:37:02 yes, they always have 7 elements 04:37:04 :D 04:37:14 monqy: basically the J approach to solving problems is to look at the problem so that everything is an array, and then you just construct the array operation out of the primitives. :) 04:37:24 you very rarely see explicit loops or recursion of any sort 04:37:32 yeah I need to learn this. I'll do it after I finish my busy. 04:37:32 I think they have this thing called map that kind of works like that. 04:37:37 and fold.. 04:37:37 monqy: busy is a bad thing to do. 04:37:42 and zip 04:37:46 CakeProphet: yes, and J takes that idea to the entire language. 04:38:51 oh right and I'm suspending my busy until I get on this alef++ thing. good time management. 04:39:17 Why "Alef++"? 04:39:17 Well, some day I'm bored -- no project no idea --, but magically, i Googling a magical words "Creating my own programming language", by finding, reading, and testing some Open Source projects based in Java Virtual Machine like ObjectScript, Sleep, JRuby ..., i want to create my own dynamic programming language with a design like Perl. but recently, Artificial Intelligence has attracted my curiosity by programming with Lisp. 04:39:23 After, i decided to forge a revolutionary design for a programming language, between my imagination and (Perl, Lisp) syntax, by giving birth for Alef++. 04:39:26 is this for serious 04:40:06 * elliott attempts to counteract the horrible with http://inamidst.com/pluvo/ 04:40:17 a Perl-influenced language that's actually interesting 04:40:45 onto the reading pile 04:41:05 * elliott barf all over netbeans 04:41:35 eclipse it is 04:41:47 alef++ is, unsurprisingly, horrible 04:42:00 "Its syntax owes much to Bash" ;; hehe, these words rarely signify goodness 04:42:03 I demand a J/Perl hybrid. 04:42:10 actually I demand that there be Perl hybrids of every language. 04:42:20 perl/lisp oh wait 04:42:24 perl/per 04:42:25 l 04:42:35 actually alef++ doesn't seem anything like lisp to me 04:42:37 what am I missing 04:42:39 FOR THE LOVE OF ALL THAT IS HOLY WHY WOULD ANYONE WANT BASH INSPIRED SYNTAX 04:42:44 hi sgeo 04:42:48 Sgeo_: pluvo is actually good, shut your trap. 04:43:05 even alef++'s website is broken wtf 04:43:09 Oh, thought we were talkig about a different language 04:43:25 logic 04:43:39 Alef++, is a new programming language like Perl and Lisp syntax, with a many changing in classical languages designs, her specification designed to be implemented for any VM, by default can access to any private/protected/default Java fields or methods. 04:43:55 lolwhat 04:44:00 alef++ 04:44:01 Can access any private Java field? 04:44:41 ...don't tell me encapsulation isn't enforced at the JVM level.. or is it workaround-able like in Ruby? 04:45:04 conclusion of my java ide exxxploration: everything sucks, eclipse slightly lessso 04:45:06 I believe access modifiers are compile-time only. 04:45:20 CakeProphet: They definitely exist on the bytecode level in Java. 04:45:21 elliott: I have reached the same conclusion. 04:45:35 I vaguely recall you can go around them with the reflection API, though. 04:45:36 fizzie: oh, well, shows what I know about JVM. :P 04:46:07 oh hey, you can configure eclipse to use less ugly tabs 04:46:40 http://radio.javaranch.com/val/2004/05/18/1084891793000.html "Hack any Java class using Reflection" (first Google hit on some relevant keywords) 04:46:43 * elliott configures Eclipse to automatically close tabs. good idea. 04:47:00 okay enough alef++ for me 04:47:41 "[X] Show affordance in hover on how to make it sticky" 04:47:42 what 04:47:50 elliott: oh hey Pluvo looks pretty cool. 04:48:30 i just wish Eclipse was slightly less laggy than it is 04:48:33 the syntax looks like someone mixed Haskell and Perl. 04:49:08 a good idea 04:49:09 but I suspect this is superficial. 04:49:19 "You put shit in my jelly!" "You put jelly in my shit!" 04:49:47 syntax is good at being superficial 04:50:01 does eclipse really rebuild every project whenever i save a file 04:50:24 monqy: superficial in some sense, but not superficial in the "unimportant" sense. 04:51:54 it's mostly concrete syntax that invites superficial; abstract syntax is nice and structurey 04:54:07 concrete syntax is concerned with layout, abstract syntax is the structure. I think both are important. 04:54:37 one thing that makes Haskell nice is the user-defined infix operators. A small change in syntax layout that improves the coding experience. 04:55:25 notice the subtle difference between "is" and "is good at being"/"invites" 04:56:33 yes it's important (at least at some level), but it invites lots of concern/hype/whatever about things that really don't matter 04:56:38 wow, Eclipse actually wraps to eighty chars by defaul 04:56:38 t 04:57:32 monqy: depends on what you think matters. The concrete layout of the syntax is important to me, especially as the semantics become more complex. 04:59:15 reiteration: it matters, but is, in my opinion, more prone to invite superficial nonsense than other aspects of language design 05:00:13 elliott: awesome 05:00:35 CakeProphet: Because a ***<>* b makes code so clear 05:00:55 ha, no, not quite. 05:01:06 I mostly prefer things to be convenient. This is why I don't like Java. 05:01:07 coppro: "awesome"? 05:01:12 elliott: yes 05:01:19 coppro: i too use a vtonehundred 05:01:26 Having short infix operators composed of just a few symbols is rather convenient. 05:01:45 elliott: 80cols is important for putting multiple files up simultaneously 05:01:59 elliott: also reducing horizontal scan 05:02:11 CakeProphet: Yes except all the good ones are taken 05:02:11 this is java 05:02:17 eightycols just makes boilerplate spread across multiple lines 05:02:22 I dislike infix operators due to alignment/precedence/yuck issues but I don't know of anything better :( 05:02:41 coppro: I very rarely run into wanting to name an operator a name that's already taken in Haskell 05:02:50 I don't believe it's an issue that exists in practice 05:03:09 The only duplicates I get are for Parsec, which has names identical to ones in Control.Applicative for backwards-compat, but they do the exact same thing as the Applicative ones 05:03:11 So that's not even a conflict 05:03:27 When I see code using operators like ||| or *** I cringe 05:03:35 I don't even have a fucking clue what they are supposed to do 05:03:38 I've used *** 05:03:38 they're just symbols 05:03:40 not ||| yet 05:03:49 For me it's Java syntax that mostly ruins Java for me. Semantically I actually consider somewhat elegant due to the minimalism, but the syntax is verbose and that makes simple things very inconvenient. 05:03:50 I'd much rather `infix` operators at that point 05:03:50 coppro: (***) is called split 05:03:54 somehow I don't think that would enlighten you either 05:03:59 ....not that I like Java semantics, I was just comparing it to the syntax. 05:04:09 coppro: Before you learned , you didn't have a fucking clue what was supposed to do. 05:04:16 Except by familiarity with things you already know. 05:04:17 monqy: ||| is used in xmonad for composing layout strategies or whatever they call them 05:04:19 Learning curves are not bad. 05:04:34 coppro: oh I know (|||) from the ArrowChoice or whatever it is definition 05:04:35 elliott: This is true 05:04:42 coppro: (and (***) from Arrow) 05:04:48 The only reason you could possibly think learning curves are bad is because you have rarely strayed outside your circle of knowledge, i.e. you've only used languages that are really no improvement on what you know. 05:04:49 elliott: 05:05:12 Programming languages are... well, languages; they should optimise for concision for powerful/general/useful/common operators. 05:05:40 see: Perl. :D 05:05:45 *elliott: However I find that the Haskell community's treatment of abstract symbols are an unnecessary addition to the learning curve 05:05:47 The Arrow options are pretty much as general as they come, so they have short, concise names; some of them are infix operators because any alphabetic name would either be far too long, or incomprehensible. 05:06:05 also alphabetic names for everything suck. see: Java 05:06:14 *sucks 05:06:17 coppro: I hear that complaint a lot, but never from someone who actually uses Haskell for actual projects. 05:06:37 I find that, usually, valid complaints are echoed from within a community; certainly for Haskell there are many valid complaints that are echoed within the community. 05:06:50 (Actually most valid complaints about Haskell are heard /only/ within the community because they require an understanding of the language to form.) 05:07:31 When using Haskell I basically never think "oh, these infix operators sure are a drag"; usually, replacing infix operators with alphabetic ones would make my code's structure harder to see. 05:07:33 I agree with these statements, elliott.. 05:08:00 I must congratulate you on one of the most lucid arguments I have heard you make 05:08:30 elliott: now extend the arguments to complaints about Perl, plz. :) 05:08:40 Although I would say that part of the reason these sorts of complaints don't get heard as much within the community are that the learning curve is steep enough to discourage the people who would complain about that sort of thing 05:08:43 Compare (f `blahBlah` g) with (f >>+ g); you may not know what (>>+) does, but you probably wouldn't know what blahBlah does either; you're pretty much going to have to look it up no matter what you do. At least with the latter, those who know the operator can more easily scan the code, because the symbols make a distinction between "branch"/"structural" elements and "leaf" elements of a tree of compositional-style code. 05:08:48 perl is a mess end of argument 05:08:48 CakeProphet: not on your life 05:09:37 elliott: perhaps this is an implicit goal of the haskell community 05:09:38 coppro: Certainly true, but the Haskell community is big enough that I feel that just about any argument should have someone arguing for it from within. For chrissakes, I even saw someone argue, on /r/haskell -- someone who actually used Haskell to write actual code -- that nobody uses the monads that aren't basically StateT IO, and that they should be removed. 05:10:24 hahahaha 05:10:24 yeah, no one uses [] or Maybe... 05:10:44 or -> 05:10:57 The closest thing I ever wrote to a real project in Haskell used Parsec 05:11:09 sometime I should learn what the (-> a) monad instance means 05:11:12 and I still consider Parsec to be one of the greatest things about Haskell 05:11:26 coppro: Another thing on infix operations: If you read a paper about Haskell, the operators are almost universally prettied up with LaTeX along with the rest of the code, 05:11:29 [asterisk]code. 05:11:37 f >>= g a = g (f a) a 05:11:41 coppro: <*> is a lot nicer when you see it as "star in a circle". 05:11:43 return = const 05:11:49 That's basically a limitation of ASCII, though. 05:12:02 Ideally we'd write Haskell programs on whiteboards. :p 05:12:06 I dunno; the angle bracket shape is pretty groovy 05:12:39 Parsec is certainly a great way of showing how Haskell's abstractions help in writing actual code. 05:13:29 and also how infix operators help to make code more concise. 05:13:31 elliott: out of curiosity, how familiar are you with category theory in the rigorous sense? 05:13:53 coppro: Not nearly as much as I'd like to be, but learning it properly isn't on my short-term todo list. 05:13:59 *proper use of infix operators 05:14:06 elliott: ok 05:14:29 coppro: I feel a little twinge of disappointment in myself every time Edward Kmett posts something and I don't "get" it. :) 05:14:40 Not "get" as in understand why the code works, but "get" in a more abstract sense. 05:14:48 (my experience with Haskell tells me I would be best served learning proper category theory and considering Haskell to be an application of the category theory) 05:14:49 does perl properly use infix operators, or is that just unary prefix and those wacky sigil things and whatever /// and friends are? 05:14:55 a: no 05:15:09 monqy: a useful function is ap. ap f g = (\a -> f a (g a)) 05:15:18 coppro: There are a significant number of prominent Haskell programmers that consider the category theory relation to not actually be that useful to understanding Haskell code 05:15:33 I wouldn't be able to say who's right, though. 05:15:33 > ap(++)show$"ap(++)show" 05:15:35 "ap(++)show\"ap(++)show\"" 05:15:36 CakeProphet: S is nice, yes; I usually use (<*>) instead though 05:15:49 But there is obviously much of Haskell that does not actually originate from category theory. 05:15:55 and return is K 05:16:03 There's only a handful of main abstractions from category theory to understand, I would say. 05:16:03 right. 05:16:05 Maybe two handfuls. 05:16:24 Does anyone know how to get Eclipse to unindent blank lines as soon as I leave them? 05:16:31 It really irks me to have those tabs lying around. 05:16:34 Tab characters, that is. 05:16:44 I know that Clean Up does it, but that's another step. 05:16:56 and I think fmap is composition 05:17:06 can't remember anything else at the moment 05:17:09 monqy: not familiar with how <*> works for the (e ->) instnace 05:17:17 monqy: correct. 05:17:22 :t fmap.($) 05:17:23 forall a b (f :: * -> *). (Functor f) => (a -> b) -> f a -> f b 05:17:31 ugh 05:17:37 :t flip (flip fmap.($)) 05:17:38 forall a b a1. (a -> b) -> (a1 -> a) -> a1 -> b 05:18:00 CakeProphet: (<*>) is literally ap but defined as a part of applicative functors rather than in terms of monad stuff 05:18:19 sigh, we really need a better hierarchy for those typeclasses 05:18:36 monqy: oh, so it's identical. 05:18:48 but <*> looks a lot nicer than `ap` 05:18:51 right. 05:19:19 and <*> is more general, assuming someone bothered to define applicative instances for every monad 05:19:19 elliott: or perhaps something better than typeclasses.. 05:19:30 CakeProphet: perl allusion? 05:19:44 I have done no alluding to Perl.... 05:20:00 or? 05:20:03 what are you talking about? 05:20:18 I was asking if you were in the process of alluding to perl 05:20:22 oh, no. 05:20:22 apparently not 05:20:32 Typeclasses are pretty good. 05:20:38 no Haskell has generally figured shit out better than Perl has. 05:20:54 it would be silly to allude to Perl as a means to improve Haskell. 05:21:15 silly is good so long as not everyone is serious 05:21:17 05:21:20 eclipse, u r being bad. 05:21:24 meaning of good depending on who is serious 05:21:40 hehe ant 05:22:05 all I know about it is it uses xml 05:22:13 it sucks 05:22:17 if you had dynamic typing like Perl, then typeclass hierarchies wouldn't even be an issue! 05:22:31 monqy: how was that? 05:22:39 if you had loose typing like forth, type errors wouldn't even be an issue! 05:22:46 I've seen antfiles and heard stuff and stuff 05:22:57 elliott: notwithstanding the dumbstupid bits of design whereby Haskell concepts don't map cleanly onto category-theoretic ones, my main issue with Haskell is simply one of comphrehending the reason each particular abstraction exists 05:23:19 who thought xml was a good idea suited to build process definition or whatever the term is for what antfiles do 05:23:22 abstraction for the sake of abstraction, duh. 05:23:34 coppro: I feel like "issue" places the blame unnecessarily on Haskell, since the problem seems to be mainly one of ignorance 05:23:53 elliott: sorry, yes, that was phrased badly 05:24:04 Perl fixes all of these issues by not allowing you to define other data structures besides the ones it provides you. 05:24:17 then it gives you oop 05:24:17 coppro: I mean, understanding why monads are useful is pretty easy (IMO; way too much emphasis is placed on monads as being a Thing in writings about Haskell by people who don't know Haskell, which is unfortunate) 05:24:22 and my small experience with formal category theory tells me that this is the best approach. I shall eventually follow it up with learning examples (both in mathematics and in Haskell) 05:24:36 agreed on that point 05:24:37 e.g. Alternative is an abstraction that is very easy to understand the use of: 05:24:40 class Applicative f => Alternative f where 05:24:41 empty :: f a 05:24:41 (<|>) :: f a -> f a -> f a 05:24:41 some :: f a -> f [a] 05:24:41 many :: f a -> f [a] 05:24:52 if you know Parsec, you understand Alternative's use, and can easily visualise its generalisation to failure handling of various kinds 05:25:03 if you know the list monad, you can come up with the implementation pretty easily 05:25:29 (well, some and many are confusing, but they have defaults) 05:25:54 the shame with Alternative is that it's separate from Monoid and MonadPlus, sigh 05:26:11 but I mean, sure some abstractions are difficult to see teh application of 05:26:14 what's arrowplus' deal; I forget 05:26:17 but it's hard to think of a solution to that other than reading a bunch of code 05:26:28 or does it have a different name like arrowadd 05:26:40 elliott: it would be nice if the only thing that mattered was the type of the function and not the name for the purposes of being an instance, but I think that would create some ambiguity. 05:26:48 CakeProphet: uhhhh, yeah. 05:26:49 elliott: I'm sorry, but I have to be honest; the defintion of Alternative provides me little insight into what it does 05:26:56 coppro: well it has documentation, I elided it 05:27:02 coppro: it "does" nothing, it is a typeclass 05:27:11 coppro: you've used Parsec, you know what <|> does 05:27:15 empty is the failure value 05:27:20 some and many are irrelevant (they have defaults) 05:27:42 i wish i hadn't picked it now since it's part of the Great Number of Typeclasses That are Actually Just Monoids, sigh 05:27:48 elliott: I'm lookingat the documentation 05:27:53 the list implementation is empty = []; (<|>) = (++) btw 05:28:11 elliott: what do some and many do? 05:28:18 @src ArrowPlus 05:28:19 Source not found. Are you on drugs? 05:28:27 :( 05:28:37 coppro: like I said, they're basically just library functions; they're in the typeclass so you can give them more efficient implementations 05:28:38 fungot: why is lambdabot so mean? 05:28:38 CakeProphet: i'll bet that lurking further down the road is some sort of magic shell script that gives you ( complaints/ bugs to: 05:28:49 they're irrelevant for this quickly-becoming-disasterous example 05:28:54 ooh ArrowPlus is actually split up into ArrowZero and ArrowPlus 05:28:55 snazzy 05:29:25 -!- elliott has left ("Leaving"). 05:29:32 -!- elliott has joined. 05:29:42 may your example rest in peace 05:29:53 guh, Eclipse's generated ant build.xmls are so ugly 05:29:53 elliott: ok let's pretend you did MonadPlus then 05:30:04 coppro: that's just as bad. 05:30:11 only Monoid should exist :P 05:30:20 elliott: ok fine 05:30:30 elliott: monoid it is 05:30:31 (oh hey, new homestuck albums) 05:30:36 I really think that Monoid would be vastly improved by having (++) instead of mappend 05:30:39 coppro: well, you know whawt a monoid is. 05:30:41 presumably.c 05:30:44 CakeProphet: hysterical raisins 05:30:48 base sucks, get used to it :P 05:31:00 caleskell caleskell 05:31:43 also, since monoids are pretty common, it seems expected that there would be a number of typeclasses that are supersets of Monoid. 05:31:54 elliott: This is a real complaint about the Haskell community: They let the abstract algebra leak into 'how to program in this language' way too quickly 05:32:01 at least they use better names like (<|>) instead of mappend... 05:32:06 CakeProphet: supersets/identical???????? 05:32:11 Thankfully I enjoy abstract algebra so I am not significantly discouraged by this 05:32:19 CakeProphet: except requiring a different kind 05:32:28 coppro: every other language lets sloppy engineering leak into "how to program in this language" way too quickly 05:32:55 but for newbies, the Monoid a => Monoid (Maybe a) instance documentation is horrendous 05:32:56 monqy: well yes, some are identical. It's nice to not have to newtype for every possible monoid. 05:33:02 (for instance) 05:33:09 instances need documentation? 05:33:19 elliott: I think so, yes. 05:33:36 well, some types have more than one possible instance for a typeclass 05:33:40 but most of the time they don't 05:33:45 so any documentation would be... boilerplate. 05:33:55 isn't Maybe like that 05:34:03 so there's what First and Last 05:34:05 > Just 2 `mappend` Just 3 05:34:06 Ambiguous type variable `t' in the constraints: 05:34:06 `Data.Monoid.Monoid t' 05:34:06 ... 05:34:13 use +++ 05:34:14 I mean 05:34:15 ++ 05:34:16 elliott: "Lift a semigroup into Maybe forming a Monoid according to http://en.wikipedia.org/wiki/Monoid: "Any semigroup S may be turned into a monoid simply by adjoining an element e not in S and defining e*e = e and e*s = s = s*e for all s S." Since there is no "Semigroup" typeclass providing just mappend, we use Monoid instead. " 05:34:17 bleugh 05:34:19 :t (++) 05:34:20 forall m. (Monoid m) => m -> m -> m 05:34:25 coppro: ok, I agree that's ugly inline 05:34:42 monqy: wait, (++) = mappend? Is that standard Haskell? 05:34:46 CakeProphet: caleskell 05:34:51 coppro: it's wrapped in the code which is slightly better http://hackage.haskell.org/packages/archive/base/4.3.1.0/doc/html/src/Data-Monoid.html#Monoid 05:35:02 coppro: but basically ... well 05:35:06 coppro: ok, what you're saying is: 05:35:16 :t (.) 05:35:17 forall a b (f :: * -> *). (Functor f) => (a -> b) -> f a -> f b 05:35:20 coppro: that documentation is not helpful for a newbie who doesn't know abstract algebra 05:35:21 CakeProphet: caleskell 05:35:39 which is true, but the newbie probably either doesn't want to use the instance, or will just use it without the documentation by experimentation 05:35:55 sometimes just a brief explanation of how a particular instance works would be nice. 05:36:02 coppro: But remember that this is an API reference, not a tutorial 05:36:07 elliott: This is true 05:36:14 CakeProphet: tbh, I find sourcediving the quickest way to answer such wishes 05:36:21 yes, that's normally what I do. 05:36:30 elliott: Thus it becomes apparent that knowing the abstract algebra is useful 05:36:39 still it doesn't describe intent/use-cases and such. 05:36:43 coppro: I agree that the Haskell... "experience" for a newbie could use improvement, but on the other hand, I don't really care much about the experiences of people coming from "traditional" imperative languages. 05:37:18 I mean, not that they're bad people or anything, I just think that "dumbing down" Haskell to make it easier for them would miss the point of Haskell 05:37:27 I didn't find Haskell to be particularly difficult to learn, at least the basics anyways. 05:37:38 haskell wasn't difficult at all for me 05:37:48 Not saying I want to be "elitist" about it or anything -- god I love scare quotes -- but I find, e.g. a mathematician wanting to learn Haskell a much more interesting origin to optimise for. 05:37:49 most of the learning curve is in the abstractions that are built from a fairly simple language. 05:38:13 coppro: I also don't think that belittling "traditional" programmers by hiding the abstract algebra, etc. underpinnings of things a good idea, either. 05:38:32 Sure, there are a lot of programmers who would dismiss it as abstract nonsense, but let's be honest, they probably wouldn't end up using Haskell anyway. 05:38:39 elliott: true 05:39:14 (Unfortunately this kind of we're-all-practical-and-those-guys-are-so-abstract-ho-ho superiority complex seems to be distressingly common with programmers on the internet, but well... this is the internet, everyone is an asshole.) 05:39:43 see: Perl programmers 05:39:47 We're "practical" — we believe malloc is cheap and garbage collection expensive. 05:40:05 coppro: I think your criticism is definitely valid, but at the same time I think that the Haskell community should focus on making the language nicer for existing users is more important than making it nicer for newbies, at least in the short-ish term. 05:40:08 what do php programmers think 05:40:13 monqy: Nothing. 05:40:13 elliott: ok 05:40:15 php programmers don't think anything.... 05:40:18 Their heads are entirely empty. 05:40:33 Do they also have a hat full of bomb? 05:40:47 PHP programmers are programmers who are too stupid to be Perl programmers. 05:40:54 or who are paid to be PHP programmers. 05:41:04 who pays someone to program in php 05:41:08 lots of people... 05:41:12 see: the internet 05:41:16 elliott: One thing I wish was possible was a better way to handle cases where a single type may have multiple instances of a typeclass, as with Monoid 05:41:20 sadist? idiot? are there other reasons? 05:41:34 like I said, money. 05:41:47 coppro: Typeclasses are a trade-off: You avoid passing a record to every single function you're using, but you can only have one instance. 05:42:02 but really every PHP script in the world should be replaced with Perl. 05:42:11 elliott: Well you can get around that with newtype 05:42:12 coppro: Actually I hear that ML programmers laughed at Haskell typeclasses to start with, because "ho ho only one instance", but then it turns out that passing around records is a huge gigantic pain and typeclasses are so much more convenient. 05:42:20 coppro: IMO, if there is more than one possible instance, either: 05:42:29 newtype newtype newtype! 05:42:34 - There is one instance that is much more useful than the other, and the other should be provided with a newtype; 05:42:45 - Or both are equally useful, and there should be _no_ instance for the base type, only two newtypes. 05:43:03 It's not ideal, but usually there's only one instance you would actually want to use, so it works out. 05:43:08 Unfortunately the latter seems to be a path not often taken. 05:43:57 elliott: I agree in concept; I just wish the syntax was better 05:44:23 Yeah. 05:44:31 newtype is a pain :'( 05:44:57 Just have Monoid1, Monoid2, Monoid3, ... :) 05:45:02 what could be simpler. 05:45:18 CakeProphet: Actually, not really. 05:45:21 (Note: 'everything else' is not a valid response) 05:45:22 CakeProphet: There'd be only one Monoid. 05:45:44 CakeProphet: There'd be ConcatList and ZipList, though. 05:46:23 (note, not Monoid implementations. My brain sucks at thinking of a more relevant example.) 05:46:28 elliott: for instance, getSum $ mconcat $ map Sum [1..10] 05:46:48 coppro: http://hackage.haskell.org/packages/archive/newtype/0.2/doc/html/Control-Newtype.html 05:46:54 "ala Sum" 05:47:29 elliott: nice, didn't know about that 05:47:32 Conor McBride: always the best? 05:47:33 (Yes.) 05:47:38 that does look very nice 05:48:17 Make Ant easy with Eclipse --http://www.ibm.com/developerworks/opensource/tutorials/os-ecl-easyant/ 05:48:21 `quote have become 05:48:23 498) elliott: You have become the very thing you fought for! 05:48:34 elliott: I /think/, however, you could work this into the type system somehow 05:48:34 -!- cal153 has joined. 05:48:42 this thing is 9 pages lol 05:48:43 elliott: perhaps I should write a paper on it, or do those exist? 05:48:55 coppro: Probably :-P 05:48:58 -!- cal153 has quit (Client Quit). 05:49:15 elliott: Where is a good repo of Haskell papers 05:49:53 http://www.haskell.org/haskellwiki/Research_papers ? 05:49:57 thanks 05:50:02 You should basically just read anything McBride has ever written and be done with it. 05:50:26 coppro: But really, a blog post would accomplish at least as much as far as whatever idea you have goes. 05:51:14 elliott: sure 05:51:23 elliott: but I can do one better with a paper 05:51:33 if I actually go and explain detailed semantics, etc. 05:51:39 You said "sure", then immediately contradicted yourself :) 05:51:50 ok, fine then 05:51:51 I disagree 05:51:53 You can put anything you can put in a paper in a blog post :P 05:52:12 elliott: no one wants a multipage blog post 05:52:14 * pikhq_ is not quite getting what ala Sum would do 05:52:20 coppro: I do. 05:52:36 coppro: This is Haskell, we expect multipage blog posts :) 05:52:46 I'm sure most of Conal's posts count as multi-page. 05:53:11 Some of ezyang's oto. 05:53:13 too. 05:55:40 I mean, would that "getSum $ mconcat $ map Sum [1..10]" example be written as "ala Sum (\_ -> mconcat)", or what? 05:56:07 Erm, "ala Sum (\_->mconcat) [1..10]" 05:57:11 you'd use foldMap, not mconcat 05:57:36 :t foldMap 05:57:37 Not in scope: `foldMap' 05:57:57 @hoogle foldMap 05:57:58 Data.Foldable foldMap :: (Foldable t, Monoid m) => (a -> m) -> t a -> m 05:57:58 Data.Traversable foldMapDefault :: (Traversable t, Monoid m) => (a -> m) -> t a -> m 06:04:37 elliott: my approach to multiple instances would be to basically allow the type system to implicitly create a complex type where multiple instances exist, and then disambiguate it later. Operations on the typeclass would be lazy and thus not performed until at least the disambiguation occurs. There's some deep type system magic that it would entail though. 06:05:04 possibly the issues are actually unresolvable 06:05:28 "Lazy" is way too vague in this context; what you mean is that it'd add a context like 06:05:35 (Num Integer) => Integer -> Integer -> Integer 06:05:48 to the disambiguated signature of (+) whenever you used + on Integer arguments, right? 06:06:02 Where the Integer arguments there are actually the same Integer as that Num instance. 06:06:05 It's really vague :P 06:06:08 Maybe something like 06:06:10 nah 06:06:13 (Num t, t ~ Integer) => t -> t -> t 06:06:22 I mean something like trying to make mconcat [1..10] be well-defined 06:06:29 but useless until you perform getSum or getProduct on it 06:06:31 :t mconcat [1..10] 06:06:32 forall t. (Num t, Enum t, Monoid t) => t 06:06:35 It is. 06:06:40 > mconcat [1..10] 06:06:41 Ambiguous type variable `a' in the constraints: 06:06:41 `Data.Monoid.Monoid a' 06:06:41 ... 06:06:46 > mconcat [1..10] :: [Integer] 06:06:47 No instance for (GHC.Enum.Enum [GHC.Integer.Type.Integer]) 06:06:47 arising from ... 06:06:52 Meh, you can make an instance 06:07:10 well sure you can. 06:10:00 I think it could be done by making a type which is a supertype of Integer, Sum Integer, and Product Integer, and the underlying machinery would actually make an mconcat instance on that type. The actual evaluation semantics would depend on whether you attempt to use the result as a Sum Integer or a Product Integer; an attempt to use it as an Integer would be illegal 06:10:19 actually wait that makes no sense 06:10:36 :) 06:10:41 basically I want the magic type-inference disambiguation of Num 06:10:59 as it works on constants 06:13:10 except applying to ambiguous applications of polymorphic functions 06:13:23 (and this is not the same as overloading, I'll note) 06:16:22 I want Perl contexts in Haskell. :) 06:16:31 except you can define your own contexts. 06:17:22 -!- azaq23 has joined. 06:18:08 basically I want the magic type-inference disambiguation of Num 06:18:08 as it works on constants 06:18:15 not magic; "9" simply doesn't mean "9::Integer" 06:18:21 it means Prelude.fromInteger (9::Integer) 06:18:26 sorry, it means Prelude.fromInteger (9::Prelude.Integer) 06:18:30 ah 06:18:37 there's also IsString with recent ghc and -XOverloadedStrings 06:18:40 from Data.String 06:18:44 that lets you overload string literals too 06:18:56 ah ok 06:19:02 then "x" means Data.String.fromString ("x"::Prelude.[] Char) :P 06:19:08 it wouldn't work quite like that then 06:19:12 it's kind of ad-hoc, but... 06:19:15 although I guess it could 06:19:16 hmm 06:19:25 :t fromString 06:19:25 Not in scope: `fromString' 06:19:33 :t Data.String.fromString 06:19:34 forall a. (Data.String.IsString a) => String -> a 06:19:57 this is a beautiful thing. 06:20:29 as that is pretty much the same thing as read. 06:20:36 Uhh. 06:20:40 No, no it is not. 06:20:47 :t read 06:20:48 forall a. (Read a) => String -> a 06:20:51 hmm 06:20:55 IT HAS THE SAME TYPE OBVIOUSLY THE SAME FUNCTION OMFGWTFBQBQ 06:21:03 For one, the argument to fromString is not expected to be a piece of valid Haskell cod.e 06:21:04 code. 06:21:16 right, this is even better. 06:21:26 It's... 06:21:28 Literally completely unrelated. 06:21:33 It is only for string types like ByteString and Text. 06:21:47 because it means I can take an arbitrary data structure, and implicitly parse a domain-specific language into that data structure. 06:21:54 > fromString "hello" :: String 06:21:54 Not in scope: `fromString' 06:21:56 That is not what IsString is for. 06:22:00 > Data.String.fromString "hello" :: String 06:22:01 Not in scope: `Data.String.fromString' 06:22:03 oops 06:22:04 elliott: k. 06:22:28 but there is nothing stopping this usage is there? so... 06:22:47 CakeProphet: Yes, there is; my real-world ability to club you if you do that. 06:22:51 Do not expect me to back down on this. 06:23:30 I don't see the harm in taking a risk here... 06:24:15 I mean, it's obviously a language extension that needs ridiculous exploiting. 06:24:39 hi, I know someone who thinks it's a good idea to use -XOverloadedStrings so that strings can act as a DSL for any data structure whatsoever. please give me appropriate threats to use in response. thanks 06:24:50 #haskell is on the case 06:25:30 incidentally he also likes perl 06:25:33 "go write perl" seems like an appropriate dismissal 06:25:35 CakeProphet: craet 06:25:43 caret. 06:25:49 ^ 06:27:09 elliott: so I think this is doable within the type system, but not with the existing language constructs 06:27:39 It's way too ad-hoc for me to support it ;D 06:28:08 elliott: since it requires a transparent supertype 06:28:16 Haskell has no supertyping :P 06:28:21 Or, well, subtyping. 06:28:25 I don't think you are using "supertype" correctly. 06:28:26 Not explicitly 06:28:34 You mean: data type with one type argument. 06:28:37 No 06:28:48 I mean "type whose set of values is a superset of the other's" 06:28:57 Right, Haskell does not have those at all. 06:29:03 Sure it does 06:29:04 No. 06:29:06 elliott: I see nothing wrong with my idea. 06:29:18 in fact it is an excellent abuse of a wonderful language extension. 06:29:27 CakeProphet: That's because Perl has removed your sense of taste. 06:29:36 elliott: what type is fromInteger 06:29:40 err sorry 06:29:49 0 06:29:58 (you know what I meant the first time) 06:30:16 pikhq_: but it has given me a newfound appreciate of convenience. :) 06:30:21 *appreciation 06:30:36 dying 06:30:43 coppro: 06:30:43 :t 0 06:30:44 forall t. (Num t) => t 06:30:45 you haven't lived until you've died. 06:30:55 coppro: just like the type of 06:31:00 cool well-designed macros are like convenience except elegant 06:31:02 woah 06:31:05 :t (fromInteger (0::Integer) +) 06:31:06 forall a. (Num a) => a -> a 06:31:07 coppro: is that. 06:31:14 coppro: not subtyping at all, just syntactic sugar. 06:31:16 if you define 06:31:17 CakeProphet: We're talking about a language that enforces a variant of Hungarian notation. Except more confusing. 06:31:25 data Integer = Neg Nat | Zero | OnePlus Nat 06:31:28 data Nat = Z | S Nat 06:31:29 then 06:31:35 0 === fromInteger Zero 06:31:43 see? nothing that even looks like subtyping 06:31:52 template haskell sounds more pleasant than abusing overloaded strings 06:32:02 to me 06:32:06 pikhq_: I'm not even sure if that's the right way to describe sigils. 06:32:15 coppro: well, there is a very shallow form of subtyping; every type has _|_ 06:32:18 monqy: At the very least, Template Haskell is *intended for that*. 06:32:25 coppro: typeclasses are kind of like subtyping, but only if you look at them wonky :) 06:32:36 elliott: Yeah, every type has bottom 06:33:30 what's the fuss about? It is completely harmless to use OverloadedStrings to my own advantage. 06:33:44 elliott: Every type that has an instance of Read also has the type of read 06:33:46 for example, in live coding, it would reduce the amount of typing required to do something. 06:33:47 CakeProphet: I'm crying 06:33:59 CakeProphet: itwould increase the crying 06:34:03 coppro: category error: types don't... have types. 06:34:07 rephrase thx 06:34:11 (pedantic? yup, but so is this discussion :P) 06:34:17 elliott: *value 06:34:20 CakeProphet: just use quasiquotation or something actually meant for what you want to do 06:34:26 coppro: that's overloading, not subtyping 06:34:31 CakeProphet: you know about template haskell, right? 06:34:41 right? 06:34:43 -!- azaq23 has quit (Quit: Leaving.). 06:34:51 monqy: why is the intent of a feature important when the actual utility of the feature is completely exposed for a certain use? 06:35:06 dead 06:35:08 i really want to ban CakeProphet from using haskell 06:35:34 send him to #agda 06:35:34 monqy: and yes I know about it. 06:35:48 what did he do 06:35:49 do you know about quasiquotation specifically 06:36:02 Vorpal: bad things. 06:36:03 if anything, the intent is a completely meaningless assertion. Call me a language anarchist, I guess. :P 06:36:09 elliott, such as? 06:36:13 perlist 06:36:26 CakeProphet: wow are you serious 06:36:28 this has nothing to do with Perl... 06:36:38 Vorpal: bad 06:36:47 CakeProphet: i guess we really do need coq 06:36:56 you actually _cannot_ trust some people to respect non-codified laws. 06:37:04 * CakeProphet was abusing Python's featured for unintended purposes before he ever learned Perl. 06:37:13 *features 06:37:15 you're a bad person 06:37:18 guido is crying too 06:37:20 nonsense. 06:37:32 Vorpal: he wants to use -XOverloadedStrings to use string literals as arbitrary DSLs 06:37:42 I'm merely apathetic to the designers concerns. 06:37:45 because quasiquotation is uncool 06:37:56 instance IsString (IO ()) where fromString = compileAndRunWithGHC 06:37:57 elliott, whoa 06:37:58 CakeProphet: "Apathetic to design", more like. 06:38:03 main = "print ()" 06:38:07 elliott, what does -XOverloadedStrings do now again? 06:38:12 Vorpal: 06:38:15 ?src IsString 06:38:15 Source not found. This mission is too important for me to allow you to jeopardize it. 06:38:16 ugh 06:38:19 elliott: k we're both wrong 06:38:22 Vorpal: class IsString a where fromString :: String -> a 06:38:27 especially when they haven't implemented a means to restrict the usage to the one they intended. It is purely vapor... 06:38:28 Vorpal: "a" == fromString ("a"::String) 06:38:33 elliott, eeeer whoa 06:38:36 Vorpal: just like integer literals are overloaded 06:38:39 Vorpal: it's for ByteString + Text 06:38:39 errrrr* 06:38:43 + other similar packages 06:38:44 nothing wrong with it 06:38:46 elliott, nice 06:38:47 unless you let CakeProphet near it 06:38:51 elliott, I see 06:39:00 elliott, yeah I can imagine where that is heading 06:39:02 one time I read a bug report involving someone using it to embed XML 06:39:04 it was a mess 06:39:06 elliott: I got the relation backwards 06:39:10 elliott, fits into perl though. But not haskell 06:39:15 CakeProphet: You're the kind of person who would use undefined behavior in C because it works with your compiler. 06:39:25 pikhq_: no, that's different. 06:39:37 pikhq_: the difference is that the language spec forbids that :P 06:39:58 that has actual negative consequences. 06:40:14 being clubbed in the head is an actual negative consequence. 06:40:15 please remember this. 06:40:19 i can find out where y oulive. 06:40:29 CakeProphet, I can sell you an iron helmet 06:40:34 CakeProphet: Assume that the next person who will maintain your code is a serial murderer who knows where you live. 06:40:46 they are (it's me) 06:40:48 why would anyone maintain my code? 06:40:50 this is silly. 06:40:55 so i can club you 06:40:58 to be concerned with things that aren't going to happen. 06:41:22 Serial murderer. Who knows where you live. 06:41:24 elliott, ooh what will be required to make you maintain cfunge in the future!? 06:41:29 elliott, pikhq_: hartnell or tennant 06:41:33 Vorpal: loss of soul 06:41:36 elliott, ah 06:41:39 coppro: hartnellant 06:41:42 coppro: an abomination against nature. 06:41:45 elliott, who's soul? 06:41:46 elliott: if anything, you should club whoever designed OverloadedStrings 06:41:47 Vorpal: mine. 06:41:51 elliott, aaah 06:41:51 CakeProphet: no, they were trusting. 06:41:59 why would they ever do that? 06:41:59 elliott: no seriously I have to watch something 06:42:02 HOW DO YOU SPLIT ECLIPSE WORKSPACES 06:42:08 coppro: which episodes are under consideration 06:42:48 trusting anyone and everyone to use something exactly as you intended is like... writing an IRC bot with a command that executes bash outside of a sandbox. 06:42:51 argh, i have no ide ahow you're actually meant to use workspaces. 06:42:55 is anyone an eclipse expert. 06:43:09 CakeProphet: how the fuck are they meant to prevent what you are trying to do? 06:43:12 it's a strong AI problem 06:43:18 CakeProphet: is your fascination with breaking OverloadedStrings just because you want to defy something, or do you just not know about how quasiquotation is what you really want and so much better 06:43:23 elliott: uh.. next up for Hartnell is the Aztecs. Next up for Tennant is start of series 3 06:43:30 CakeProphet: This is like complaining about the design of unsafePerformIO because someone wants to define foo = unsafePerformIO killAllOfHumanity `seq` undefined 06:43:43 elliott, by defining it to be undefined behaviour 06:44:11 coppro: Smith and Jones is, as I recall, quite good; The Aztecs sounds like it'll be cringingly sixties-racist 06:44:14 go for tennant 06:44:35 k 06:44:39 monqy: no, I'm not fascinated. I just see a possible use case that is pretty simple to implement, but really if I need TH I'll use that instead. 06:44:49 on the one hand, this gets me closer to finishing the new series. on the other hand, it doesn't get me any closer to Baker 06:45:14 CakeProphet: This is worse than my C lambda macros. 06:45:33 pikhq_, how so 06:45:37 elliott: why is I am the Doctor only in the 11th doctor episodes 06:46:11 coppro: i haven't seen many of them, so i don't know what you're talking about 06:46:23 Vorpal: There's already something in the language that does this, but better and doesn't involve murder! 06:46:33 elliott: the awesome music 06:46:46 coppro: presumably because it wasn't written until then 06:46:49 pikhq_: but unsafePerformIO doesn't have some arbitrary vaporous restriction attached to it. It is intended to break the rules where appropriate because sometimes it's a good idea. 06:47:06 what 06:47:13 but it does 06:47:23 elliott: I believe I linked it to you 06:47:50 also, I'm not saying OverloadedStrings is a bad idea. I am stating the opposite. 06:47:52 the "arbitrary vaporous restriction" is that application should be referentially transparent 06:48:28 or however the proper terminology says it 06:48:50 that is a perfectly reasonable restriction, in that case. :) 06:49:03 elliott: also yes it was only written by then. But it will probably go away for the twelfth :( 06:49:08 why 06:49:20 And what's so unreasonable about overloaded strings being supposed to represent textual data? 06:50:03 DOES ANYONE USE ECLIPSE HALP;P 06:50:06 no 06:50:14 because you could use it safely for other purposes. 06:50:16 HA;LPERGKJ 06:50:26 elliott: because it is the eleventh doctor's action theme 06:51:11 CakeProphet: safely? If there's any sort of parsing going on, you can't check the wellformedness until runtime 06:51:17 elliott, read the docs? 06:51:23 elliott, try google? 06:51:45 Vorpal: docs don't answer nebulous questions of life 06:51:51 coppro: oh is smith retirin' 06:51:51 I mean 06:51:55 any parsing that might fail 06:51:55 elliott, oh google does 06:51:58 Yeaaah, it pretty much eliminates static guarantees. 06:52:01 Vorpal: no i tried 06:52:14 elliott: well he will eventually 06:52:25 compare template haskell which is good at actually happening at compile time 06:52:32 monqy: well, not safe in that sense, no. 06:52:40 safe in the sense that it's a reasonable use... 06:52:43 no 06:52:45 it isn't 06:52:52 what does reasonable mean 06:53:16 Well, hmm, maybe a (Read a) => String -> IO a? 06:53:18 sane, useful, not buggy. I don't know. 06:53:36 unsafeParse :: (Read a) => String -> IO a 06:54:15 not sane; we already covered buggy; usefulness is covered by template haskell (or just making a function to do the parsing for you) 06:54:26 iWantToKillAndMurderCakeProphet :: (Killing a) => a 06:54:29 it denotes exactly the value you want 06:54:32 in that specific situation 06:54:37 just define an instance and off you go 06:54:47 -!- pikhq has joined. 06:54:47 you have to state your intent to kill and murder CakeProphet to use it though 06:54:51 HOPEFULLY THIS SHOULD BE AN ADEQUATE DETERRENT 06:55:05 intent is meaningless 06:55:13 monqy: but but, quasiquotation involves at least three more characters : ' CRYNIIG ( 06:55:18 [f|uck|] 06:55:59 monqy: how would calling the function explicitly eliminate the horrible possibility of a runtime error. 06:56:20 CakeProphet: it doesn't but it eliminates a good bit of the insanity 06:56:32 a good thing 06:56:58 -!- pikhq_ has quit (Ping timeout: 240 seconds). 06:58:09 http://www.google.co.uk/search?sourceid=chrome&ie=UTF-8&q=how+do+i+use+eclipse+and+workspaces+and+what+is+it+and+also+should+i+have+just+one+per+like+bukkit+plugin+i+am+writing+or+multiple+in+one+or%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F+FUCK+YOU+SHIT+HEAD+HELP+ME 06:58:11 it isn't working 06:58:23 Vorpal: help 06:58:55 http://www.google.com/search?q=eclipse+workspaces does this help i have no clue help me help you 06:59:12 Wait, what does CakeProphet want to do? Complex value literals via overloaded strings? 06:59:18 yes 06:59:27 monqy: i dont .'t;,mk know 06:59:31 im look at eclipse documentation 06:59:41 im also cry 07:00:11 Why even use that instead of (read "Whatever")? 07:00:24 Or, um 07:00:30 Better yet, not use a string 07:00:31 because read is intended to be Haskell code!! 07:00:31 Sgeo_: the better question is why even use that instead of template haskell 07:00:36 Sgeo_: becaue CakeProphet is a trrible ipersonje 07:00:54 what if i just ate my keyboard 07:01:32 CakeProphet, do you object to 60 * 60 * 24 in code? 07:01:47 basically I am thinking it would be useful as a way to describe a rhythm in a library for creating music. 07:01:55 yes, I can just define a function to do that. 07:02:00 and not use overloaded strings. 07:02:08 [rhythm|dumf ook dumf dumf ook|] 07:02:11 "TOO LONG" 07:02:14 [r|dumf ook|] 07:02:26 too long 07:02:26 [r|damf pluk|] --> compile time error 07:02:42 let runtime handle it 07:02:46 monqy im crying irl how do i eworksapce 07:02:50 no, that's fine really. I just didn't consider TH as something to consider. 07:02:58 i should try actually crying irl 07:03:01 maybe it would help ease my suffering 07:03:17 elliott, listen to Nightmare repeatedly 07:03:28 The welcome page is the first page you see when you first launch eclipse. Its purpose is to introduce you to the product. Welcome content will vary from one Eclipse based product to another, it typically includes an overview of the product and its features, tutorials to guide you through some basic tasks, samples to get you started, etc. 07:03:28 There are many possible forms of welcome, ranging from simple static text to elaborate extendable multi-page presentations. The Eclipse platform and platform SDK uses a form known as Universal Welcome, which defines a common page structure, allowing several products to share the welcome space. If your product is using the Universal Welcome, you can customize its appearance using the "customize page" button. Products which use universal welcome w 07:03:28 ill display a welcome page the first time they are restarted after new features with welcome content are installed and highlight the new welcome content. 07:03:31 i dont even know what a workspace is whats ecluispe...... 07:03:43 monqy: ecluispe sounds like the best ide 07:03:59 http://www.google.co.uk/search?hl=en&safe=off&q=good+java+ide&aq=f&aqi=g-c2g-b1&aql=&oq= 07:04:02 help it still shows eclipse 07:04:05 elliott is quickly learning all the programs. 07:04:32 imjust looking at my screen crying softly 07:04:36 http://www.google.com/search?q=bad+java+ide hth 07:04:49 monqy: NO STUOPD MAKING ME CRY 07:04:50 Is that "hope that" helps or "happy to help"? 07:04:51 STOPS 07:04:55 Java IDE ? Or should I even use Java? - YoYoGames Forums 07:05:33 http://gaming.stackexchange.com/questions/26210/my-pet-is-a-public-menace-what-did-i-do-wrong 07:05:39 i saw this ad on stackoverflow w/o it specifying gaming subreddit 07:05:41 i was like wow 07:05:46 so now im not crying any more 07:07:58 so I'm thinking it would be a good idea to write a Perl interpreter as an instance of IsString 07:08:27 unsafePerformIO . runperl 07:08:31 CakeProphet, if by good you mean "insane". Insane isn't bad, of course, just please keep it away from regular projects 07:08:43 don't encourage him 07:09:35 people like IntelliJ IDEA so much 07:09:37 I'm pretty sure that at this point CakeProphet is joking 07:09:49 -!- Lymia has joined. 07:09:56 but you responded so seriously 07:10:04 im confused 07:10:07 :-; 07:10:13 what is :-; 07:10:15 but I should add that I intend all of the Perl code used with this interpreter to be referentially transparent. 07:10:18 ;_; 07:10:31 also ;-; 07:10:39 ....he's 100% serious. And apparently intending to use it in a project? 07:10:41 but i hit the rwong key 07:10:50 Or, no, I'm just reading too much into that 07:11:05 But 100% serious. I'm going to have nightmares now. 07:11:26 [Note: I will not literally have nightmares due to this. I think.] 07:11:26 yeah obviously he's serious 07:11:32 youuve jused good logi =c to that 07:11:38 IM GONNA PUNCH A JAVA SHIT FUCK 07:11:41 kjnmfglhjk;tdrmknohgtreghmtrhn 07:11:49 -!- Lymee has quit (Ping timeout: 240 seconds). 07:11:52 * elliott CRYS; EXTENSIVELY; 07:11:56 * CakeProphet is always serious. 07:12:06 * CakeProphet opens Eclipse. 07:12:16 use a preprocessor or something like that instead of an ide 07:12:16 IntellJ IDEA. I use to have this project with some 2,000 classes and tons of libraries. I swapped from Eclipse to IntellJ, bacause I hated so much the project and I though it was Eclipse fault. The result was Idea was very slow. Workaround? I create a module and use IDEA anyway. :) Idea is awsome!! – OscarRyz Oct 1 '08 at 2:08 07:12:20 im doint like you 07:12:25 CakeProphet: HOW DO I USE WORKSPACES 07:12:30 DO I USE ONE PER ACTUAL LIKE END PRODUCT 07:12:32 OR?////////// 07:12:42 yes. 07:12:42 IM MAKE A BUNCH OF BUKKIT PLUGINS DO I WANT ONE WORKSPACE PER PLUGIN 07:12:47 workspace = project 07:12:49 EBCAUSE THAT SEEMS LIKE A LOT OF WORKSPOCES 07:12:57 CakeProphet: thats clearly bull taken literally 07:13:05 CakeProphet: because a Project is something you create inside a workspace 07:13:15 i guess some big programs are made up of more than one project????? 07:13:15 er, not what I meant. 07:13:22 but it feels like 07:13:23 eclipse 07:13:27 wants you to just use one workspace 07:13:31 like the default is ~/workspace 07:13:37 whats a prbleject 07:13:37 oh, right. 07:13:38 and switching workspaces is kind of a pain??? 07:13:40 but 07:13:43 at the ame time 07:13:46 yeah you normally only use one workspace. 07:13:49 monqy: aksjdg 07:13:52 it's just the... location of all of your projects. 07:13:57 CakeProphet: but thats really weird because like 07:14:02 and each plugin should have its own project probably. 07:14:04 if you import the same builder into two separate java projects 07:14:09 it actually renames them 07:14:13 to have (number) after 07:14:15 since it considers itt a conflict 07:14:16 and im like 07:14:19 these are completely separate 07:14:20 why are you doing that 07:14:21 and like 07:14:23 if the build fails in one 07:14:28 it bothers you whenver you make a change to another plugin 07:14:29 and im like 07:14:35 this is coupling these projects together way more than i want 07:14:35 ...I have never imported a builder. I'm not even sure what that means. 07:14:40 am i meant to use two different workspaces???? 07:14:45 CakeProphet: well i said other things 07:15:26 oh you mean you're importing a package into two different projects? 07:15:38 SEGWAYS 07:16:02 CakeProphet: no 07:16:14 Eclipse can't remotely be called an IDE to my opinion. Okay that's exaggerated, I know. It merely reflects my intense agony thanks to eclipse! Whatever you do, it just doesn't work! You always need to fight with it to make it do things the right way. During that time, you're not developing code which is what you're supposed to do, right? eclipse and maven integration: unreliable! Eclipse and ivy integration: unreliable. WTP: buggy buggy buggy! Ec 07:16:14 lipse and wstl validation: buggy! It complains about not finding URL's out of the blue even though they do exist, and a few days later, without having changed them, it suddenly does find them etc etc. I Could write a frakking book about it. To answer your question: NO ECLIPSE IS NOT EVEN CLOSE THE BEST IDE!!! IntelliJ is supposed to be MUCH better! 07:16:38 how does java 07:16:44 * elliott weep 07:16:54 elliott, why do you need an IDE again? 07:17:00 because java 07:17:02 sucks 07:18:01 I don't know what a "builder" in Eclipse-land is either; but I'd probably still at least try to put multiple plugins in the same workspace as long as there's at least something that could be shared. I wouldn't put any "serious" completely unrelated projects to the same workspace though. 07:18:16 theres nothing that will be shared pretty much 07:18:23 fizzie: a builder is like... 07:18:26 if you build your project with ant 07:18:28 then you have an ant builder 07:18:31 and theres the built in Java Builder 07:18:33 also I believe you merge workspaces by closing Eclipse, merging the two directories, and opening Eclipse again. 07:18:35 each project has a bunch of builders 07:18:39 CakeProphet: no id want to split eclipse 07:19:11 elliott: I can see that; but I've just been using Ant without any "builders". I mean, you can run the tasks from a build.xml just like that. 07:19:20 fizzie: that's not automatic 07:19:47 elliott: I'm sorry, you're probably want some kind of IDE to handle that for you. 07:19:55 CakeProphet: um i mean i want to split workspaces 07:20:03 Yes, well, I only use the ant thing to make .jars and other sort of "releases", I don't see why that should happen automatically. 07:20:18 fizzie: I need jars every single change because that's how bukkit plugins are packaged 07:20:29 so i can't test without the jar being created, at all 07:20:33 elliott: as far as I know Eclipse only uses one workspace at a time... 07:20:59 ffff 07:21:03 i want to make a workspace into two workspaces 07:21:05 because i put too mcuh in one 07:21:28 you could make two directories, but I don't think you can work with both workpaces at the same time. 07:21:43 be productive make a language that compiles to java..... 07:21:44 elliott: It's still just one more click to run the ant task. Presumably you need to do something to reload the plugin in Bukkit too; amortized in that it's not much. 07:21:49 just to get rid of boilerplate 07:22:02 CakeProphet: i dont want to. 07:22:08 it sounds much more pleasant than using an ide 07:22:13 fizzie: i thought an ide was meant to save me work 07:22:15 well then file > switch workspaces > Other.. 07:22:20 ides are hell 07:22:22 CakeProphet: I WANT TO SPLIT A WORKSPACE 07:22:25 god's sake 07:22:27 that is not hard to understand 07:22:34 elliott: man mv 07:22:39 ffs 07:22:44 it has metadata files with references to projects 07:22:49 haha ides 07:22:50 haha 07:23:00 elliott: "cp -a workspace anotherWorkspace"; then delete half of one, switch to the other, delete the other half? 07:23:06 fizzie: gross, but fine 07:23:20 then clean up the metadata? 07:23:35 find would probably be good for that. 07:23:48 deleting things, that is. 07:24:44 About the builder thing, I don't really know; I wouldn't want to run my horrible ant packaging mess after *every* change, just when I'm ready to test it, so I'd keep it non-automatic anyway. 07:24:48 I think you probably just want to use sh from now on instead of Eclipse... 07:24:56 fizzie: Horrible mess = single task to create a jar 07:25:06 -!- Lymia has changed nick to Lymee. 07:25:15 Lymee: WHAT IDE DO YOU US 07:25:16 E 07:25:53 elliott: Still, it feels stupid to build a .jar every time a single file changes. But that's probably just me. 07:26:09 fizzie: It builds the Java files whenever a file changes; why not build the .jar too? 07:26:18 I mean, every time I save, I'm going to alt-tab, /reload, and test it; why add more steps? 07:26:22 If I could make it automatically /reload, I would 07:27:12 you might be confusing Eclipse with something that does everything slightly tedious for you. 07:27:34 that's called automation, yes, and it's what a computer is for. 07:27:50 well, right. 07:28:08 I'm not saying it isn't possible. I'm just Eclipse probably isn't going to do that for you. 07:28:10 -!- Taneb has joined. 07:28:15 *just saying 07:28:22 Hello 07:28:33 I tend to have to make changes to multiple files before a "thing" is ready to test, possibly because of the all-classes-in-separate-files. But anyway, I really suppose it's just my peculiarities why I don't want it to automatically keep updating the .jar file. 07:28:34 hi 07:28:57 Maybe I'd feel differently if it was clever enough to actually update it instead of throwing it out and rebuilding it completely. 07:29:30 What does everyone think of Numberwang? 07:29:33 I also hate how you have to re-import a builder every time it changes for the changes to take effect, sigh. 07:29:34 Hmm... 07:29:39 Maybe I'll just make the single build.xml build all the projects. 07:29:50 Even though that's kind of gross. 07:30:02 sometimes programming is like surgery. 07:30:04 fizzie: I thought you didn't know how to use Ant any other way than incrementally :-P 07:30:12 CakeProphet: What; kind of gross? 07:30:15 yes. 07:30:24 What kind of gross? 07:30:56 ..the kind that makes elliott not want to do something? I don't know. 07:31:05 elliott: That was in the "compiling Java" context. :p 07:31:57 :t if' 07:31:57 Not in scope: `if'' 07:32:14 From the web it sounds like a builder can be "interested in" multiple projects, so having a single all-plugins builder might be possible to automatate properly. 07:32:29 @pl (\c a b -> if c then a else b) 07:32:30 if' 07:32:34 fizzie: Right; that seems like it'd have a lot of duplicated code with Ant though 07:32:36 i.e. one per project. 07:33:07 ah, so it's not standard, pl is just telling you to define that function. 07:33:21 ?hoogle if' 07:33:21 No results found 07:33:24 Meh 07:33:28 elliott: It sounds like it should be possible to re-use a single task but change some properties between the invocation of it. 07:33:48 fizzie: Meh, possibly. It really feels like Eclipse wants me to use one workspace per project if I'm going to bring the BIG GUNS of Ant in. 07:33:50 You mean like a function? 07:34:06 With different stuff put in? 07:34:10 Taneb: this is Ant, it lacks such civilised concepts. 07:34:26 Oh what, is this article kidding me or does the ant builder stuff not actually have compile-on-svae. 07:34:28 God I hate java. 07:34:47 svae 07:34:48 elliott: Having a separate buildfile for each plugin sounds like a lot of duplicated Ant code too, except duplicated in separate files, not in one file. Unless you go into pulling stuff in from some common file, and so on. 07:34:59 fizzie: they all have the same build.xml 07:35:02 So I just store it in a "common" project 07:35:07 > let if' c a b = if (c a b) then a else b in zipWith (if' (>)) [1,3,7,2,45,7,2,4,2,234,4,1,4,-4] [7,3,7,23,5,213,1,5,2356,35,24,21] 07:35:08 [7,3,7,23,45,213,2,5,2356,234,24,21] 07:35:51 not really if' as pl defines it, it's more like a generalization of max and min... 07:37:12 Anyway, there's an task which runs a target from the same build.xml with some defined parameters; that way you could have a single ... and then one-line per plugin. But again I don't know about hooking the Ant builder to the auto-build system. 07:37:27 Ugh this is all so gross. 07:37:32 ISTR that running Ant's awfully slow (more than one second) anyway. 07:38:13 @pl (\f a b -> g (f a b) a b) 07:38:13 flip flip id . (ap .) . (flip . (g .) =<<) 07:39:25 Vorpal: help <-- ? 07:39:33 > let if' c a b = if c then a else b; compareWith = flip flip id . (ap .) . (flip . (if' .) =<<) in compareWith (==) [1,3,7,2,45,7,2,4,2,234,4,1,4,-4] [7,3,7,23,5,213,1,5,2356,35,24,21] 07:39:34 [7,3,7,23,5,213,1,5,2356,35,24,21] 07:41:18 @hoogle Bool -> a 07:41:18 Control.Exception assert :: Bool -> a -> a 07:41:18 Control.OldException assert :: Bool -> a -> a 07:41:19 Control.Exception.Base assert :: Bool -> a -> a 07:41:26 fizzie, I think bukkit uses maven instead 07:41:30 which looks about as bad 07:41:50 elliott: yeah, unfortunately using other peoples stuff can get ugly. 07:43:03 -!- Phantom_Hoover has joined. 07:43:07 ISTR that running Ant's awfully slow (more than one second) anyway. 07:43:09 ugh 07:43:13 Vorpal: yeah i am tempted to use maven myself 07:43:17 elliott, idea for stupid esolang: generic brainfuck variant. Basically you feed a file with string->command mappings for brainfuck and a program to be translated. 07:43:37 :D 07:43:42 that's actually brilliant 07:43:47 meta-turing-complete, too! 07:43:58 elliott, wait what? 07:44:04 meta-turing-complete? 07:44:29 it is just a simple lookup table to translate, say, ook or whatever, into brainfuck, and then it is executed 07:44:32 whoosh 07:44:45 http://esolangs.org/wiki/Talk:Meta_Turing-complete 07:45:09 oh tehz 07:45:10 right 07:45:38 Vorpal: I'm in the slow process of specifying a regular expression based language that would basically be a superset of that. 07:45:48 the mapping file is the program string, the program to translate is the input string. 07:45:49 many languages are subsets of that 07:45:53 ...yes. 07:45:56 *supersets 07:46:07 but also subsets, I guess. 07:46:23 elliott, was " that's actually brilliant" a joke too? I presume so 07:46:36 no 07:46:38 its hilarious 07:46:58 elliott, well I lost my wiki account, you can put it up on the wiki and attribute it to me 07:47:14 yeah but i'll actually spec it so its BY EHIRD WITH INSPIRATION FROM VORPAL 07:47:17 MINOR INSPIRATION 07:47:19 (REALLY MINOR) 07:47:22 ((LIKE, HE SNEEZED)) 07:47:24 wait 07:47:24 (((AT THE TIME))) 07:47:31 elliott, I'll define it more 07:47:35 elliott, file format: 07:47:36 /ignore Vorpal 07:47:42 CANT FUCKING HEAR YOU 07:47:46 fizzie: how does maven work thx 07:47:51 07:47:53 elliott, ^ 07:48:09 followed by newline 07:48:19 http://maven.apache.org/eclipse-plugin.html HWICH DOES I USE 07:48:22 elliott, that is all there is to it 07:48:33 "you should define it like this... 07:48:35 So, it's a brainfuck equivalent creation tool? 07:48:55 Taneb, basically yes 07:48:57 Taneb, :D 07:49:07 ("string to be used" -> "bf code")* 07:49:16 followed by a newline, or.. not 07:49:18 CakeProphet, why that format? 07:49:19 this is the best syntax for it 07:49:23 because it is the best. 07:49:26 why 07:49:39 because then it will be a subset of a language I am working on. :) 07:49:48 CakeProphet, not a valid reason 07:49:55 it is the best reason.. 07:50:08 I suggest string := <4 byte with length of string> 07:50:08 I wonder if it would be possible to make a language using that syntax that's barely like brainfuck at all 07:50:22 then the file is made up with pairs of strings 07:50:24 of* 07:50:37 it should be 07:50:42 /string/bf code/ 07:50:45 because then it's a subset of /// 07:50:49 elliott, :D 07:50:57 wait, bf code can have comments 07:50:59 ok then it's literally /// 07:51:18 elliott: Brainfuck code must have matched [] 07:51:34 elliott, eh the interpreter needs two inputs: language definition and program-to-translate 07:51:52 pikhq: yeah but 07:51:56 you can define loop equivalents with this 07:51:56 elliott, hm we need to be rather advanced to do bitfuck, so that it out of the scope 07:51:57 so 07:53:18 If it could output an interpreter, that would be good 07:53:45 though I might define ->* in a prelude-esque file that is equivalent to (... -> ...)* 07:55:03 Taneb, hm that could work yeah 07:55:10 Has anyone used Maven with Eclipse, I have literally become an insane. 07:55:30 elliott, don't look at me. I don't use eclipse at all 07:56:17 -!- monqy has quit (Quit: hello). 07:56:51 I blame Lymee. 07:57:15 elliott, why 07:58:21 Because she didn't tell me what IDE she uses for Bukkit development which would obviously completely solve my problems by way of expertosity. 07:58:27 okay so I have encountered a problem... 07:58:43 I don't think I can define global substition in terms of single substition and *.. 07:59:01 unless single substition consumes all input up to the point of substition... 07:59:05 which is bad. 07:59:42 Add some sort of multiplication thing 07:59:55 well that is kind of what * is. 08:00:11 Oh, okay 08:00:18 Add some sort of wildcard thing 08:01:07 okay, so everything has a string result, numeric result, and a success or failure value. pattern* repeats pattern zero or more times until it fails. The numeric result of * is the addition of the numeric results of each subpattern invocation, and the string result is the concatenation of the subpattern's string results. 08:01:35 -> is the substition pattern. Originally I intended to make it zero-width, meaning it doesn't consume any input. 08:02:07 but if it doesn't consume input (i.e. "move forward" in the input string), then each invocation of -> within a * will start at the beginning of the input string. 08:02:21 which is inefficient and will lead to strange things happening.. 08:02:35 possible infinite loops and such, which is generally not good. 08:03:16 however, if I make -> work so that it consumes all input up to the point of substition, then that means that using -> by itself will almost never happen. I will have to always enclose within a backtrack operator. 08:03:51 so I think I should define them seperately, as much as I don't want to... 08:04:03 have a -> and a ->* 08:04:26 with ->* not being defined in terms of -> 08:05:05 I'm just gonna wait until Lymee appearss. :p 08:05:43 but I find this exceptionally lame, as the idea is that you should be able to use general-purpose combinators to do complex things with basic expressions. 08:06:46 elliott: in the meantime you should help me with this. :P 08:06:48 no 08:07:19 but you always have good ideas for these types of problems... 08:07:50 Don't define -> without the backtrack operator? 08:08:17 so you're saying make -> inherently zero-width, right? 08:09:06 I have no idea what's going on, I'm just trying to say things so something happens 08:09:06 Maybe 08:09:12 .. 08:09:32 okay so basically I want to define global substition in terms of single substition (->) and * 08:09:58 but to do that I need to make -> not be zero-width.. 08:10:22 because if it's zero-width then things like ('a' -> 'ab')* will loop infinitely. 08:10:58 You could lock text that's been substituted in this cycle 08:11:15 so I either need to change the semantic model, or change -> so that it is not zero-width but instead consumes input, which is lame because then there will be backtrack operations everywhere. 08:11:28 CakeProphet: rename -> to => and make it not zero-width 08:11:38 then make a->b an alias for backtrack(a=>b) 08:11:52 that's a possibility. 08:12:02 that's the obvious possibility. 08:12:04 :p 08:12:14 but couldn't I create some hackish semantic model? 08:12:15 lol 08:12:32 implicit shenanigans. 08:13:13 I think I would prefer --> to =>, or something. 08:13:20 because I am using => for something else. :) 08:14:19 => is a kind of variable modifier thing. The left hand side is a variable name and the right hand side is a pattern. The pattern is evaluated with the string result of the variable as the input string. 08:15:04 and the pattern modifies the contents of the variable. it's basically defined in terms of another operator that I haven't named yet. 08:15:30 I am sure this makes perfect sense to everyone. 08:16:31 ~> looks like a good name for it. left-hand sides result string is used as the input string for the right-hand pattern. 08:17:12 I'm seeing what the Numberwang program 0! 1! does 08:17:21 the a => b := (a = (a ~> b)) 08:17:24 *then 08:17:37 So far, it's into its second Numberwang 08:17:59 I am finding the name Numberwang somewhat hilarious. 08:18:41 CakeProphet: http://www.youtube.com/watch?v=qjOZtWZ56lc 08:19:36 ...what the hell is this. 08:19:49 A sincere and legitimate British institution throughout the ages. 08:20:06 CakeProphet: http://www.youtube.com/watch?v=-r6NY4Kl8Ms 08:20:09 This should be enlightening. 08:21:12 these laugh track things are unnerving. 08:22:20 philosopher and magician Bertrand Russell... 08:27:31 Graaah! I need a numberwang debugger 08:27:34 And a shower 08:27:39 brb 08:27:46 That's Numberwang! 08:27:47 -!- Taneb has changed nick to TanebIsNotHere. 08:31:10 CakeProphet: http://www.youtube.com/watch?v=qjOZtWZ56lc <-- like Mornington Crescent right? But even more senseless 08:31:16 @hoogle (Read a) => String -> Maybe a 08:31:16 Network.CGI.Protocol maybeRead :: Read a => String -> Maybe a 08:31:16 Network.CGI readCookie :: (Read a, MonadCGI m) => String -> m (Maybe a) 08:31:17 Network.CGI readInput :: (Read a, MonadCGI m) => String -> m (Maybe a) 08:32:03 @hoogle String -> Bool 08:32:03 Network.URI isAbsoluteURI :: String -> Bool 08:32:03 Network.URI isIPv4address :: String -> Bool 08:32:03 Network.URI isIPv6address :: String -> Bool 08:37:39 !addinterp numberwang haskell flip when (putStrLn "That's Numberwang!") =<< (any (all isDigit) =<< getContents) 08:37:40 ​Interpreter numberwang installed. 08:37:52 !numberwang 22 34 83 08:38:21 hmmm, parse error. 08:39:53 !delinterp numberwang 08:39:54 ​Interpreter numberwang deleted. 08:46:57 Hello 08:47:01 -!- TanebIsNotHere has changed nick to Taneb. 08:48:15 he;lo 08:51:04 @hoogle f (a -> f b) -> f a -> f b 08:51:04 Prelude (=<<) :: Monad m => (a -> m b) -> m a -> m b 08:51:04 Control.Monad (=<<) :: Monad m => (a -> m b) -> m a -> m b 08:51:04 Prelude (>>=) :: Monad m => m a -> (a -> m b) -> m b 08:51:20 o rly? 08:52:47 none of those appear to match 08:53:00 indeed not 08:54:17 um, yes they do 08:54:23 well, close enough :) 08:54:32 :t (join .) . (=<<) 08:54:33 forall (m :: * -> *) a a1. (Monad m) => (a1 -> m (m a)) -> m a1 -> m a 08:54:40 :t join . (=<<) 08:54:40 Occurs check: cannot construct the infinite type: m = (->) (m a) 08:54:40 Probable cause: `=<<' is applied to too few arguments 08:54:41 In the second argument of `(.)', namely `(=<<)' 08:54:43 hmm wait 08:54:56 ?pl \f x -> f >>= \f' >>=x >>= \x' -> f' x' 08:54:56 (line 1, column 19): 08:54:56 unexpected ">" 08:54:56 expecting operator, pattern or "->" 08:55:06 ?pl \f x -> f >>= \f' -> x >>= \x' -> f' x' 08:55:07 (. (>>=)) . (>>=) 08:55:10 heh 08:55:16 wait hmm 08:55:19 ?hoogle () 08:55:19 Parse error: 08:55:19 --count=20 () 08:55:19 ^ 08:55:20 someone do that plz 08:56:47 @hoogle (<*>) 08:56:47 Control.Applicative (<*>) :: Applicative f => f (a -> b) -> f a -> f b 08:57:51 right 08:57:55 :t (join .) . () 08:57:56 parse error on input `)' 08:57:57 someone do that also. 08:58:06 :t (join .) . (<*>) 08:58:07 forall (m :: * -> *) a a1. (Monad m, Applicative m) => m (a1 -> m a) -> m a1 -> m a 08:58:36 see 08:58:38 now u r the planet 08:59:04 @unpl (join .) . (<*>) 08:59:04 (\ d i -> (d <*> i) >>= \ e -> e) 08:59:31 ......? 08:59:38 >>= id? 08:59:40 yes. 08:59:41 that's join. 08:59:42 :t join 08:59:43 forall (m :: * -> *) a. (Monad m) => m (m a) -> m a 09:00:00 -!- elliott has quit (Remote host closed the connection). 09:00:10 gah I was just about to ask him something 09:06:56 @pl do { f <- when <$> (any isDigit <$> return "22"); f . putStrLn $ "That's numberwang!"} 09:06:56 (line 1, column 4): 09:06:56 unexpected "{" 09:06:56 expecting variable, "(", operator or end of input 09:07:04 aw... 09:08:48 !addinterp numberwang haskell do { f <- when <$> (any isDigit <$> getContents); f . putStrLn $ "That's numberwang!"} 09:08:49 ​Interpreter numberwang installed. 09:08:52 !numberwang 22 09:09:15 I am so bad at this it's ridiculous. 09:10:59 !addinterp numberwang haskell do { c <- (any isDigit <$> getContents); when c $ putStrLn "That's numberwang!"} 09:11:00 ​There is already an interpreter for numberwang! 09:11:06 !!! 09:11:10 !delinterp numberwang 09:11:10 ​Interpreter numberwang deleted. 09:11:12 !addinterp numberwang haskell do { c <- (any isDigit <$> getContents); when c $ putStrLn "That's numberwang!"} 09:11:12 ​Interpreter numberwang installed. 09:11:20 !numberwang I hate you 23 09:11:39 !numberwang 12 09:11:53 it's got a parse error... 09:12:13 !addinterp ! haskell putStrLn "I really hope this works." 09:12:14 Phantom_Hoover: You have 4 new messages. '/msg lambdabot @messages' to read them. 09:12:14 ​Interpreter _ installed. 09:12:16 !! 09:12:18 !_ 09:12:19 I really hope this works. 09:12:21 I really hope this works. 09:12:21 Dammit. 09:12:25 Wait, no 09:12:27 !! 09:12:29 I really hope this works. 09:13:04 you could speed it up by using an interpreted language, since it compiles Haskell every use. 09:13:14 !delinterp ! 09:13:14 ​Interpreter _ deleted. 09:13:35 !delinterp numberwang 09:13:36 ​Interpreter numberwang deleted. 09:15:36 !addinterp numberwang perl print q(That's numberwang!) if grep /\d/, <> 09:15:37 ​Interpreter numberwang installed. 09:15:39 !numberwang 22 09:15:40 That's numberwang! 09:15:43 I succumbed... 09:16:12 !numberwang hello 09:16:23 !numberwang 12 09:16:23 That's numberwang! 09:16:32 I suppose a "That's not numberwang!" would be appropriate. 09:16:50 Or "Sorry, but Brazil isn't a vegetable!" 09:17:07 !delinterp numberwang 09:17:08 ​Interpreter numberwang deleted. 09:18:00 !addinterp numberwang perl print (grep /\d/, <>)? q(That's numberwang!) : q(I'm sorry, but Brazil isn't a vegetable!) 09:18:00 ​Interpreter numberwang installed. 09:18:18 !numberwang when is that? 09:18:23 ... :o 09:18:25 !numberwang 2 09:18:26 2 09:18:28 lol 09:18:58 I believe you have made an error 09:19:03 yes I believe so as well. 09:19:13 http://www.reddit.com/r/Minecraft/comments/iot8b/dear_miners_and_notch_think_bigger/c25jyoh 09:19:16 !delinterp numberwang 09:19:16 ​Interpreter numberwang deleted. 09:19:23 Please please please tell me this person isn't right. 09:19:31 Because if so I'll have to shoot every programmer ever. 09:20:02 !addinterp numberwang perl print (grep /\d/, <> ? q(That's numberwang!) : q(I'm sorry, but Brazil isn't a vegetable!)) 09:20:02 ​Interpreter numberwang installed. 09:20:06 -!- Nisstyre has quit (Ping timeout: 255 seconds). 09:20:07 !numberwang what is this? 09:20:12 :( 09:20:31 !numberwang 44 09:20:52 !delinterp numberwang 09:20:52 ​Interpreter numberwang deleted. 09:21:11 !addinterp numberwang perl print (grep (/\d/, <>) ? q(That's numberwang!) : q(I'm sorry, but Brazil isn't a vegetable!)) 09:21:11 ​Interpreter numberwang installed. 09:21:15 !numberwang 44 09:21:15 That's numberwang! 09:21:18 !numberwang q 09:21:19 I'm sorry, but Brazil isn't a vegetable! 09:21:40 !numberwang I'll give you a tenner if this is Numberwang 09:21:40 yeah, I have a bad habit of not using parentheses on operators... 09:21:40 I'm sorry, but Brazil isn't a vegetable! 09:23:27 Okay, now there's three esolangs called Numberwang 09:23:44 Four, although my one doesn't count. 09:23:46 !numberwang 12! 09:23:46 That's numberwang! 09:23:57 I guess I could have used "" instead of q() but... I'd like to think that I'm making the code more efficient by not interpolating. :) 09:24:14 !numberwang 12! 2! 42.4! 09:24:15 That's numberwang! 09:25:00 Phantom_Hoover: Make your version 09:25:18 Taneb, I want to, but it's not an easy task. 09:26:19 Just say it's imperatively functional and build from there 09:26:50 So how does one make a numberwang programming language? 09:27:24 Step 1: Have an idea 09:27:39 but, what makes it themed off of numberwang? 09:27:43 Step 2: Share idea 09:27:43 Step 3: Build on idea 09:27:43 Step 4: Publish idea 09:27:43 Step 5: ... 09:27:43 Step 6: PROPHET! 09:28:03 Hmm... 09:28:13 It's like calvinball, but with numbers 09:29:06 -!- myndzi has quit (Ping timeout: 246 seconds). 09:30:45 CakeProphet: You could've used '', it's literally the same as q(). 09:31:08 fizzie: well, right, but I used it to escape escaping the ' in the string 09:31:11 My Numberwang has something that's a bit like eval(12!4.4!92!10!49.8!2!2!2!) 09:31:32 For the program 0!1! it's in at least 7 nested ones of those 09:32:33 After 14 instructions 09:33:06 -!- myndzi has joined. 09:34:52 I have no idea if it is Turing-Complete or not 09:35:19 I am interested in defining a language for which the halting problem is solvable, and where programs can halt or not halt. 09:35:27 obviously the halting problem is solvable for a language if it always halts... 09:36:14 Have all loops by definition infinite 09:36:22 If it has any loops, it does not halt 09:36:25 Otherwise, it does 09:37:29 -!- myndzi has quit (Ping timeout: 240 seconds). 09:37:46 -!- myndzi has joined. 09:38:21 Oh dear 09:38:22 Instruction 16 is a successful goto 09:38:34 Taneb: or you could have a finite loop and an infinite loop. The finite loop could not be infinite. 09:39:02 but then there's the problem of conditionals 09:39:11 Like, it exits after n iterations where n is finite? 09:39:14 what if you conditionally infinite loop on the input? 09:39:18 Taneb: right. 09:39:56 I don't think this language will be Turing-Complete 09:41:30 well, the halting problem would still be solvable with conditionals. 09:41:52 what you would do is execute the program, and when you come across an infinite loop construct then you say the program does not halt 09:41:59 if you reach the end of the program, then it does halt. 09:42:31 and the only way to not reach the end of the program would be to use an infinite loop construct. 09:42:43 -!- myndzi has quit (Ping timeout: 258 seconds). 09:43:21 True 09:44:09 so there'd be no conditional loop, only a conditional, a repetition loop, and an infinite loop. 09:44:45 so it probably isn't possible to implement brainfuck since you have no way to implement [] 09:45:20 So it isn't Turing Complete 09:45:22 hmmm, well, you might be able to compile it... 09:45:37 Otherwise, you'd be given lots of money by Cambridge University 09:45:55 but compiling bf does not make your language turing complete. 09:46:36 You can compile HQ9+ into Brainfuck 09:47:41 Here's a almost entirely irrelevant question: 09:48:10 I wonder if you could prove that /any/ Turing complete language cannot have the halting problem solved for it. 09:48:12 How should a goto line number command work with non-integer values? 09:48:41 most likely by mapping each non-integer value to an integer. 09:48:57 this is what a label does essentially. 09:49:02 I wonder if you could prove that /any/ Turing complete language cannot have the halting problem solved for it. <-- hm 09:49:09 CakeProphet, can you explain what you mean 09:49:42 For any Turing-Complete language p, it is impossible to solve the halting problem 09:49:47 Is that statement provable? 09:50:09 depends on if oracle machines can exist surely? 09:50:49 For any program p with input i in Turing-complete language l, it is impossible to solve the halting problem. 09:50:58 the input string is important. 09:51:56 the halting problem itself only asserts that you can't determine whether all programs and inputs halt or not. 09:52:03 CakeProphet, well you could given a program that consists of only the symbol "halt" say that it halts. 09:52:27 right, but it also has to be turing complete. 09:52:34 CakeProphet, or take C, it is trivial to say that #include \nint main(void) { return 0; } halts 09:52:44 I think this was why Alan Turing invented his famous machine 09:52:45 From Wikipedia: "Alan Turing proved in 1936 that a general algorithm to solve the halting problem for all possible program-input pairs cannot exist. A key part of the proof was a mathematical definition of a computer and program, what became known as a Turing machine. " 09:52:59 because the idea is that we want to prove that it's impossible for all turing complete languages. If we can't, then it may be possible that a Turing complete language exists for which the halting problem is solvable. 09:54:09 As any Turing Complete language by definition can be translated into any other 09:54:53 I think that we can't tell whether any program for turing complete language p will halt on input i 09:55:35 ah, yes, that makes sense. 09:56:18 so essentially the inability to determine whether an arbitrary program halts in a turing complete language is built-in to being turing complete... 09:56:23 I also think I need to walk my dog 09:56:23 Bye, everyone 09:56:23 -!- Taneb has changed nick to TanebIsNotHere. 09:56:23 -!- TanebIsNotHere has changed nick to TanebIsAway. 09:56:23 Oh, I've dissappeared 10:00:17 -!- myndzi has joined. 10:02:49 -!- TanebIsAway has quit (Ping timeout: 240 seconds). 10:12:51 -!- tswett_ has quit (Ping timeout: 264 seconds). 10:20:00 so essentially the inability to determine whether an arbitrary program halts in a turing complete language is built-in to being turing complete... 10:20:18 iirc the halting problem is not solvable for some simpler models of execution either 10:39:32 It's not solvable for any model of execution that allows a self interpreter, basically. 10:49:47 CakeProphet, look up the proof on the Wikipedia article; it's very simple. 11:04:44 I'm surprised Wikipedia doesn't have an article on code golf 11:04:52 instead "code golf" redirects to Perl. 11:05:10 Not GolfScript? 11:05:41 well, I think the practice of code golfing might have originated in the Perl community, but it's since become a more general phenomenon 11:10:27 @P=split//,".URRUU\c8R";@d=split//,"\nrekcah xinU / lreP rehtona tsuJ";sub p{ 11:10:27 Unknown command, try @list 11:10:27 @p{"r$p","u$p"}=(P,P);pipe"r$p","u$p";++$p;($q*=2)+=$f=!fork;map{$P=$P[$f^ord 11:10:27 ($p{$_})&6];$p{$_}=/ ^$P/ix?$P:close$_}keys%p}p;p;p;p;p;map{$p{$_}=~/^[P.]/&& 11:10:27 Unknown command, try @list 11:10:30 close$_}%p;wait until$?;map{/^r/&&<$_>}%p;$_=$d[$q];sleep rand(2)if/\S/;print 11:12:41 ''=~('(?{'.('-)@.)@_*([]@!@/)(@)@-@),@(@@+@)' 11:12:42 ^'][)@]`}`]()`@.@]@%[`}%[@`@!#@%[').',"})') 11:12:44 ...what? 11:12:57 I don't even understand how people come up with these. 11:15:37 What, no pack/unpack pair? 11:19:25 http://search.cpan.org/dist/Acme-EyeDrops/lib/Acme/EyeDrops.pm 11:21:49 !perl @{sub b{[@b=(abs||No,bottle.'s'x!!++$_,of,beer),on,the,wall]}b} 11:25:52 !help 11:25:52 ​help: General commands: !help, !info, !bf_txtgen. See also !help languages, !help userinterps. You can get help on some commands by typing !help . 11:25:56 hm it is there 11:30:32 -!- tswett has joined. 11:33:08 -!- Sgeo_ has quit (Read error: Connection reset by peer). 11:41:45 * CakeProphet drinks cow milk like a baby cow 11:44:21 Except I am a large bipedal furless ape. 11:46:23 Meh, a mammal's a mammal. 11:48:35 But as a string-parsing ape creature, I feel strange about stealing delicious fluids from mama cows. 11:48:59 so much so that I am generating strings about it. :) 11:49:36 For some reason I found that whole string-generation thing hilarious. 11:49:45 "Oh look, it's generating strings all flustered there!" 11:50:14 Anyway, it's the cow's fault somehow. It always is. 11:50:41 yes, because their strings do not suggest that they care. 11:51:01 they're all "moooo" 11:51:07 "meeeeh". 11:51:30 I like how one of the 18 pictures in the Mammal_Diversity_2011.png main illustration of Wikipedia's "Mammal" article is the meeting of Nixon and Brezhnev. 11:52:16 Diverse indeed. 11:52:47 Also, a cow: http://isometric.sixsided.org/data/strips/only_when_youre_ready/21.gif 11:53:24 (I had a dot-matrix printer rendition of that on my wall as a decoration, not more than 9 years ago.) 11:56:15 -!- oerjan has joined. 11:56:27 oerjan: Welcome to the cow channel. 11:56:52 Moo! 11:56:58 Correct! 11:57:07 yay 11:59:39 For some reason I found that whole string-generation thing hilarious. 12:00:37 now i am imagining sentient^Wsapient spiders communicating with silk strings 12:02:17 They could form... a SPIDER NETwork! 12:05:52 Step 6: PROPHET! 12:05:59 sounds dangerous. 12:13:41 00:27:50 > let if' c a b = if (c a b) then a else b in zipWith (if' (>)) [1,3,7,2,45,7,2,4,2,234,4,1,4,-4] [7,3,7,23,5,213,1,5,2356,35,24,21] 12:13:45 00:27:51 [7,3,7,23,45,213,2,5,2356,234,24,21] 12:13:45 in fact... 12:13:47 00:28:34 not really if' as pl defines it, it's more like a generalization of max and min... 12:14:09 > zipWith max [1,3,7,2,45,7,2,4,2,234,4,1,4,-4] [7,3,7,23,5,213,1,5,2356,35,24,21] 12:14:10 [7,3,7,23,45,213,2,5,2356,234,24,21] 12:17:14 The zipWith Camel, a famous World War 1 era airplane. 12:24:01 `addquote The zipWith Camel, a famous World War 1 era airplane. 12:24:04 505) The zipWith Camel, a famous World War 1 era airplane. 12:27:06 I was trying to come up with some sort of add-on, maybe a known function that sounded like "Camel" and a related pun, but failed. 12:59:56 :t zipWith (zipWith f) 12:59:57 forall a b c. (Show a, Show b, SimpleReflect.FromExpr c) => [[a]] -> [[b]] -> [[c]] 13:00:48 :t zipWith zip 13:00:48 forall a b. [[a]] -> [[b]] -> [[(a, b)]] 13:00:52 what else would you zip with? 13:10:58 :t zipWith zip3 13:10:59 forall a b c. [[a]] -> [[b]] -> [[c] -> [(a, b, c)]] 13:11:02 A reasonable type. 13:29:41 -!- derrik has joined. 13:30:09 -!- derrik has left. 13:30:59 In 1920, H. G. Wells referred to the Mediterranean race as the Iberian race. He regarded it as a fourth subrace of the Caucasian race, along with the Aryan, Semitic, and Hamitic subraces. He stated that the main ethnic group that most purely represented the racial stock of the Iberian race was the Basques, and that the Basques were the descendants of the Cro-Magnons. 13:40:48 -!- ais523 has joined. 13:53:18 :t zapWith (zapWith zipWith) 13:53:19 Not in scope: `zapWith' 13:53:19 Not in scope: `zapWith' 13:53:27 :t zipWith (zipWith zipWith) 13:53:28 forall a b c. [[a -> b -> c]] -> [[[a]]] -> [[[b] -> [c]]] 13:55:55 -!- Taneb has joined. 13:56:26 Hello! 13:57:10 hi 13:57:13 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 14:02:47 What's happening in the world of esoteric programming? 14:03:41 well i think i just proved DigFill TC, see wiki 14:04:21 I've been thinking about Anarchy again 14:05:18 Anarchy? 14:05:40 it's a programming language I'm working on, possibly an esoteric one, I'm not sure (it's near the boundary) 14:05:44 so far, just thoughts, no code 14:06:04 it's based on algebraic data types where type constructors can mean different things at different points in the program 14:06:12 which is a feature that's both insane, and badly missing from Haskell and OCaml 14:06:23 it's just one of ais523's methods to suppress thinking of fe *hit by falling anvil* 14:07:05 Meta type constructors? 14:07:55 i never m *anvil rolls on top of him again* 14:08:33 that's quite the pesky anvil... 14:08:41 yes. 14:15:12 oerjan: is that a mezzacotta reference (with an indirect reference behind it)? 14:15:46 hm not that i recall 14:15:58 Everything's a mezzacotta reference 14:16:06 There's a lot of it to reference 14:16:14 It's the Turing Oracle of Webcomics 14:17:12 the problem is of course _finding_ the reference. 14:20:28 -!- copumpkin has joined. 14:20:28 -!- copumpkin has quit (Changing host). 14:20:28 -!- copumpkin has joined. 14:22:22 Why can't my German-made French-published game with Italian characters run on my Japanes-designed Chinese-made laptop with a South African OS based on a kernel designed by a Swedish speaking FInn? 14:23:06 The game also has Norwegian and... Argentinian? characters 14:23:29 ah there's the problem. the chinese currently hate the norwegians. 14:23:54 they _really_ didn't like the last nobel peace prize. 14:25:41 That explains 14:25:44 it 14:25:54 I pressed return compulsively... 14:26:30 newline is a punctuation mark on IRC 14:26:37 but one that several channels discourage people from using 14:26:44 also, people tend not to be completely consistent on its meaning 14:27:36 it means "i despise you so much i'm going to steal your screen real estate despite not really saying much." hth. 14:27:58 * oerjan feels out of character. 14:28:25 But yeah, Settlers IV doesn't run on Ubuntu on my Toshiba 14:28:42 what OS is it intended for? 14:28:46 Windows 14:28:55 oerjan: wow, that was out of character for you 14:29:04 Numberwang should clearly just be a stupidly computationally expensive algorithm for generating sequences of numbers. 14:29:21 I could think of a fix, but it's easier just to nick my brother's laptop with Windows 14:29:23 ais523: YOU THINK? 14:29:59 maybe elliott is taking over my brain. except he does the return thing too... 14:30:51 Phantom_Hoover: hey turing proved all computation is really just generating sequences of numbers. well, more or less. 14:31:15 Any data can be encoded as a sequences of ones and zeroes 14:31:42 Taneb, depends on how you define 'data', I suppose. 14:32:45 Give me a definition that you can't 14:33:08 * oerjan gets the virtual popcorn 14:33:20 Well, if you allow arbitrary reals to be data, you can't. 14:33:20 I'm just curious 14:33:44 Can you encode reals as anything, though? 14:34:02 a real is perfectly encodeable as a sequence of ones and zeroes. it just has to be infinite. 14:34:12 oerjan, OK then, P(R). 14:34:36 fiendish. 14:34:54 Just stick Ps on until it gets big enough. 14:37:07 i think if you define data as something you can extract any part of in finite time, Taneb's point may still stand. 14:37:47 I had a really good argument if you said something like "the feeling of happiness" 14:37:56 But it's no use now 14:38:06 And pretty... psychopathic 14:38:36 Um... 14:38:43 Or is it sociopathic? 14:38:51 homeopathic 14:39:05 Oh, right, that actually does make sense. 14:40:54 -!- ais523_ has joined. 14:42:33 Phantom_Hoover: What, homeopathy? 14:42:44 No, what you said. 14:42:51 I thought you'd just gone slightly mad. 14:43:06 Nah, not gone. 14:43:11 And not slightly 14:43:13 -!- ais523 has quit (Ping timeout: 255 seconds). 14:43:15 * oerjan googles for that quote again 14:45:40 "The next time you decide to stab me in the back, have the guts to do it to my face"? 14:45:54 no 14:46:06 "Alice: But I don't want to go among mad people. 14:46:06 The Cat: Oh, you can't help that. We're all mad here. I'm mad. You're mad. 14:46:06 Alice: How do you know I'm mad? 14:46:06 The Cat: You must be. Or you wouldn't have come here. 14:46:07 " 14:46:11 Who's stabbing who in the back? 14:46:23 i was trying to find a version without line breaks, but i gave up 14:46:28 Jayne Cobb and Captain Mal Reynolds 14:46:32 If there's any backstabbing going on, I want to be in on it. 14:46:39 Oh god not Firefly. 14:47:54 That'll be the last Firefly I quote, I promis 14:47:57 e 14:50:37 * oerjan does his regular thursday taneb stalking 14:50:46 -!- ais523_ has changed nick to ais253. 14:50:49 -!- ais253 has changed nick to ais523. 14:50:55 wow, someone else has ais253 registered 14:51:01 stop registering typos of my name, ais253! 14:51:07 ais523: wat 14:51:13 Maybe it's you? 14:51:18 haha, I know who it is, too 14:51:27 it's someone I know from another channel, they must have set that up to troll me 14:52:00 i wonder if e has ever been here without us noticing it... 14:52:27 Just got a 416 error on the wiki 14:52:32 Recent Changes page 14:52:55 it sometimes gets a bit flaky 14:53:02 Never had one of those before 14:53:06 Taneb, the internet is collapsing around you. 14:53:11 Civilisation is at its end. 14:53:24 loads for me 14:53:28 We are actually just chatbots to keep you occupied until you can fulfil your purpose. 14:53:39 4xx errors are client-side 14:53:40 what does 416 even mean? 14:53:50 "Requested Range Not Satisfiable" 14:54:02 Something to do with asking for stuff after EOF or something 14:55:53 It's just the recent changes page 14:57:53 Hang on 14:57:58 My purpose? 14:58:13 Your Destiny 14:58:22 Does it come with a sword? 14:58:40 either that, or a spaceship, i'm not sure which. 14:58:56 Oh, like in Arthur King of Space and Time? 14:59:04 or possibly, a horse and a gun. 14:59:51 if you discover it is a laser sword and a space horse, run away as fast as you can. 15:00:42 I'll keep that in mind 15:03:20 wtf 15:03:25 eiffel in gmail ads 15:03:56 oerjan, on the space horse? 15:04:20 Phantom_Hoover: i'd not recommend that. at least unless you also have a space suit. 15:04:32 Or a terraformed planet 15:04:56 well the trouble here, you see, is keeping the horse _on_ the planet 15:05:12 Taneb, what, you mean I ride away on my space horse on a terraformed planet. 15:10:15 Here's a problem: Is Taneb's Numberwang Turing Complete? 15:10:57 I suspect it is 15:11:05 That's numberwang! 15:13:11 -!- augur has quit (Remote host closed the connection). 15:14:23 ℼ 15:14:28 * oerjan makes it a table so he doesn't need to scroll 15:17:38 hm digital root, so there is a fundamental mod 9 operation in most cases 15:17:52 And a subsequent mod 4 15:18:24 what precisely is "the value of the current command" in command 2? 15:18:57 If your program was 0, 7, 2, and you were on the 7, it would be 7 15:19:16 ok so before any of that summing and moduloing stuff 15:19:42 Yeah 15:20:01 i was a little confused by the "this value" a bit above that, which means something else 15:20:34 (and can only be 1-9 afaict) 15:20:58 I use the word value to mean three different things 15:21:07 I think I'll change the second to number 15:25:43 i think this will not be too hard if you make sure all jumps are by multiples of 9, so the step number is always in synch with the position 15:27:00 oerjan: I have encountered a problem involving my regular expression language I would like to submit to you.. 15:27:27 argh, i mean hm? 15:28:23 Taneb: do step numbers and positions start at 0 or 1? 15:28:45 0 15:28:59 okay so basically the language is composed of patterns, which can also take subpatterns as arguments. A pattern has a string result and a numeric result, which can be based on the string/numeric results of their subpatterns... 15:29:09 so I have -> as a substition operator. It takes the first occurence of the left-hand pattern in the input string and replaces it with the string result of the right-hand side. 15:29:43 I would like to define global substition (s/.../.../g) in terms of ->, as (a -> b)* 15:29:59 where * is similar to * in other regexp languages. 15:30:13 however... 15:30:16 Taneb: ok so if jumps are ensured to be mod 9, then the adjustment to each command is predictable (mod 9) from position: 0,2,4,6,8,1,3,5,7,0 etc. 15:30:55 if -> is zero-width then upon each repetition it will start at the beginning of the input string, which is undesirable because it means patterns like ('a' -> 'ab')* would loop infinitely. 15:30:59 Jumps are mod length of program 15:31:04 I think 15:31:18 Taneb: er *0 (mod 9) 15:32:14 if the length of the program is _not_ divisible by 9, then you should be able to jump from any position 15:32:19 however, if -> consumes the input string after the point of substition, then I can define global substition as * applied to ->, but then.... it consumes the input string that I just made substitions upon, which is generally not desirable. 15:32:37 so I'd have to explicitly backtrack. 15:33:38 so I'm just trying to figure out how to make this work... 15:33:59 -!- augur has joined. 15:34:06 perhaps I need a second method of traversing the input string rather than literally consuming it.. 15:34:22 CakeProphet: i'm afraid my brain refuses to switch context to your problem 15:34:24 or different backtracking semantics... or multiple substition operators. 15:34:30 oerjan: haha, okay. That's fine. 15:34:50 it's obscenely late in the morning for me to be thinking about this. 15:36:11 I may have to ditch defining global substition in terms of a repetition of single substition, and just have -> and a separate ->* defined as built-ins. 15:37:18 elliott suggested a zero-width version and a consuming version of ->.. but a consuming substition operator seems pointless unless the semantics of the backtracking operator magically preserve side-effects of things when backtracking... 15:37:40 which might be undesirable in other cases.. 15:38:05 turns out making a systematically elegant regular expression language is difficult. 15:40:01 You know what would make everything much more confusing? 15:40:26 Making Numberwang have ternary cells 15:41:01 hmmm, perhaps I could add more contextual return values for expressions. Yes, this sounds fun. 15:41:14 string result, numeric result, and NEXT ITERATION RESULT. 15:41:16 ... 15:41:20 no, this is a terrible idea. 15:41:49 Taneb: ternary isn't terribly confusing, but I don't know how numberwang works so... 15:42:20 It's binary 15:42:51 3,6,0, oh hum 15:43:17 With similar changing commands to one of the BF Minimization things 15:43:29 oerjan: what would be awesome about (a -> b)* is that * defines its string result as the concatenation of each iteration of the subpattern, and the numeric result as the addition of the subpattern's numeric results.. 15:44:01 -!- monqy has joined. 15:44:09 -> could return the number of substitions that occurs for the numeric result, which would be either 0 or 1 15:44:23 thus the * would return the total number of substitions... 15:44:40 this is awesome, you see. 15:45:08 I've had a crazy idea for making an esolang 15:45:15 We all say stuff, and see what sticks 15:45:50 http://www.esolangs.org/wiki/Adjudicated_Blind_Collaborative_Design_Esolang_Factory 15:46:59 not an imperative language those are boring if they don't have really good gimmicks 15:47:03 sadly no one ever tried to sort out that mess :P 15:47:38 :( 15:47:51 Taneb: positions 2,5 or 8 (mod 9) are ideal jump points for numberwang, as when the step number and command value are all of the same kind, that gives a jump 15:48:13 Okay 15:48:20 So, this crazy idea 15:48:32 ABCDEF... G 15:48:56 G? 15:49:08 * oerjan swats Taneb for the heinous crime of abbreviating Adjudicated Blind Collaborative Design Esolang Factory 15:49:14 * -----### 15:49:20 (forgot the swatter) 15:49:22 I never abbreviated that 15:49:34 WELL YOU GOT DANGEROUSLY CLOSE 15:50:07 I abbreviated Abbreviation Because Crazy Declarative Esoteric Fantasy... Groans 15:50:12 adjudicated blind collaborative design esolang factory garden 15:50:23 O KAY 15:50:25 garden is a good word 15:50:32 Gaiden? 15:51:18 That means like a spin-off 15:51:37 oerjan: I enjoy your submission the most. :D 15:51:38 oh wait i'm miscalculating, because a jump should go to a position _after_ the current one (mod 9) 15:51:52 an adjudicated blind collaborative design garden of esolang factories 15:52:07 or is it a garden of adjudicated blind collaborative design esolang factories 15:52:29 It's the garden that is attached to an adjudicated blind collaborative design esolang factory 15:55:39 1,4,7, whoops 15:56:04 Taneb: ok my miscalculation corrected, there actually _aren't_ any perfect jump points 15:56:29 I think it's possible to jump from anywhere to anywhere, though 15:56:52 Taneb: it still should work if the length of the program is not 0 (mod 9) 15:57:39 Taneb: the thing is i'm trying to do this without step numbers getting out of synch 15:58:55 it's easy to make it 4 (mod 9) instead, by appending a NOP 1,0,1,0 15:59:33 anyway, later 15:59:36 -!- oerjan has quit (Quit: leaving). 15:59:36 bye 16:00:52 Taneb: the language has only numbers as values 16:01:12 in string contexts, an inverse hash function is applied to the number to get a string. 16:01:24 the hash function is implementation defined. 16:01:48 All functions take strings 16:04:25 all numbers are quantum numbers that can be composed of a possibly infinite number of superpositions. The superpositions collapse based on what context the value is used in. For example, in string context the collapse occurs as the concatenation of the inverse hash value of each superimposed number. 16:06:08 http://shrike.depaul.edu/~mhendri5/CSC394/ConceptDemo/projectManager.html Professor Elliott - 2 l's and 2 t's. 16:06:27 for every context there is an anti-context in which an inverse collapsing operation occurs. For every defined context an anti-context must also exist. 16:07:12 There is one context that is its own anti-context 16:07:41 CakeProphet, are you working on figuring out ABCDEF? 16:07:59 Vorpal: we are defining a language collaboratively via logs. :) 16:08:07 and I am sleep deprived enough to come up with some crazy ideas. 16:08:18 CakeProphet, uh, logs of who and from which time span? 16:08:25 Logs of us, and now 16:08:34 ah 16:09:10 CakeProphet, Taneb whatever it is, the source code (if such exists) should exist on a hyperbolic surface 16:10:58 the anti-string context is the union of each superposition in string-context. There is an operator to induce the anti-context of whatever context an expression is in. 16:11:45 numeric context is the summation of the superpositions. anti-numeric context is the subtraction of each superposition in left-associative order 16:12:27 there is nothing horrible about any of this. 16:12:30 :) 16:12:54 If a context and its anticontext are used in the same function, that function is from thence forth outputs infinity on any input 16:13:11 Why are you discussing hyperbolic surfaces? 16:14:23 Making an esolang 16:15:10 the null superposition is a special value that is empty. It represents the identity element for whatever context it is being evaluated in. 16:15:55 Are you trying to make the semantics as complicated as possible? 16:15:59 yes. 16:16:57 All operations are nondeterministic. 16:17:08 In list context the superposition is merely a linked list. This is the natural state of the superposition. The anti-context of this context is identical. 16:17:09 Except the rand() function 16:17:10 You have to make sure that all eventualities lead to the same outcome. 16:17:24 Which always outputs four 16:17:27 -!- MigoMipo has joined. 16:18:07 In boolean context, only the null superposition is false, all other superpositions are true. The anti-context is the logical negation of this. 16:19:13 In list context the superposition is merely a linked list. This is the natural state of the superposition. The anti-context of this context is identical. <-- shouldn't the anti-context be the reversed list? 16:19:29 -!- MigoMipo has quit (Read error: Connection reset by peer). 16:19:31 well, I guess that would make sense... 16:19:31 Vorpal, did you need to paste the last line of chat to reply to it? 16:19:38 -!- Nisstyre has joined. 16:19:42 Phantom_Hoover, it wasn't the last line 16:19:44 Oh, wait. 16:19:45 Right. 16:20:05 -!- MigoMipo has joined. 16:20:22 CakeProphet, it would make sense? Perhaps we can think of something else then 16:20:24 I think I've got Settlers IV working on Ubuntu 16:20:44 Got a splash and my CD drive is whirringh 16:21:04 And flashinh 16:21:15 You can figure out what I mean 16:22:00 operators can only be named as numbers. 16:22:18 Names can only be numbered as operators 16:22:32 what does that even mean 16:22:38 http://esolangs.org/w/index.php?title=Brainfuck&curid=961&diff=23689&oldid=23593 uhm, can we just split the "implementations" section to the separate comparison page? it is becoming hard to manage. 16:23:10 in function context, a superposition acts as the function with the same name. The result is the superposition of each function in the superposition applied to all of the arguments specified. 16:23:27 The superposition of two superpositions is their concatenation concatenation. 16:23:54 with columns like "implemented in", "targets", "cell size", "behavior on EOF" etc. 16:24:08 thus an infinite superposition of 1s will apply the function 1 infinitely many times to its arguments. 16:24:41 Vorpal: If I wanted to assign a number to a name (like Vorpal is number 6) I would have to say "Vorpal is +" or something 16:24:47 CakeProphet, how would you write such a superposition in the source? 16:24:54 Taneb, ah 16:25:08 Vorpal: just put the bits on your hard drive into quantum entanglement 16:25:12 Vorpal: shenanigans. Probably via some repeat function. 16:25:16 -!- augur has quit (Remote host closed the connection). 16:25:19 which is probably recursive. 16:25:25 ais523, or that yes 16:25:25 Numbers can only been operated as names 16:25:56 it's like... a hybrid between Haskell and Perl. :) 16:26:01 -!- augur has joined. 16:26:06 And befunge 16:26:23 yes, there needs to be more two-dimensionality somewhere... 16:26:43 It's on a hyperbolic surface, isn't it? 16:26:54 I don't even know what that means. 16:27:07 Taneb, suggestion: if you write "foo is" without anything after (except statement delimiter such as newline) it should be assigned a default implementation defined value out of the set {-42, 0, 42, 2-5} 16:27:33 It's not my language, there's nothing I can do to stop it 16:27:34 okay, so that's the extent of my idea-vomit. I am probably going to sleep now. 16:27:39 It's everybody's language 16:27:43 Goodnight 16:28:03 Not only is it two-dimensional, it's non-euclidean 16:28:05 CakeProphet, not sure either. But I guess that mean parallel lines aren't like in an Euclidan geometry 16:28:26 as in, I suggest a hyperbolic geometry (which one: implementation defined) 16:29:45 I don't even know what that means. 16:30:04 Basically, hang on 16:30:09 You can get one by taking a standard triangular tiling and putting seven triangles around a point rather than six. 16:30:10 >v 16:30:12 ^< 16:30:14 Isn't an infinite loop 16:30:18 numbers are delicious fruit. Thus subtraction is the devouring of a number of fruit from a pool of fruit by the interpreter or object code. Negative fruit is fruit owed and thus accumulates compound interest over time. 16:30:20 But does sort of work 16:30:40 Numbers can fall in any direction 16:32:17 Taneb, BtW, I assume you're referring to http://en.wikipedia.org/wiki/Order-5_square_tiling as the tiling used. 16:32:34 That works 16:33:08 (Is it just me or is that projection not a Poincare disc?) 16:33:17 (The lines near the centre seem too straight.) 16:33:57 Oh, never mind. 16:35:28 bbl 16:38:55 negative numbers accumulate continuous compound interest, with an interest rate that is implementation defined. The interest rate must be available to programs as a built-in constant. 16:40:31 -!- MigoMipo has quit (Read error: Connection reset by peer). 16:41:11 -!- foocraft has joined. 16:42:33 local usury laws wherever the program is being run provide a cap for the interest rate. 16:43:06 so...basically, negative numbers get more negative proportional to their magnitude 16:43:12 yes 16:43:35 one can get an exponentially large number by subtracting one, nopping for a while, and then absing 16:43:40 sounds useful 16:43:45 with respect to local legislature on the matter. 16:43:49 -!- Taneb has quit (Ping timeout: 255 seconds). 16:44:08 local usury laws wherever the program is being run provide a cap for the interest rate. 16:44:17 So it's impossible to use in the Islamic world? 16:44:44 is it possible for a program that is destitute and performing nothing but nops to collect unemployment? 16:45:46 I don't know, is it? 16:45:55 is it possible for a program with a large fruit debt to go bankrupt? 16:46:17 Phantom_Hoover: I would presume that in those countries it would either be simple interest or no interest at all. 16:46:23 (knowing that its credit score will weaken and it will be unable to store negative values until it performs well for a while) 16:47:30 would it be possible for it to store a positive value (over some minimum value) in a savings register and collect interest on it? 16:47:49 these are complex financial and legal matters. You will need to contact your program's lawyer and accountant on the matters. 16:48:22 quintopia: sounds resonable. 16:49:19 perhaps also a mutual fund with net loss/earnings based on regional stock quotes. 16:51:06 ABCDEFG, a context, quantum, hyperbolic, numeric, and finance oriented language. 16:51:58 CakeProphet, it's not going to be very helpful for anything hyperbolic, TbH. 16:52:23 Ooh, wait, if it has Befunge-style mutable program space it can construct geometrical things. 16:54:56 well, it might be possible, but perhaps not globally. 16:55:07 making it a fungeoid constricts the syntax to single characters. 16:55:24 but incorporated a 2D code grid as part of the language would be interesting. 16:55:30 *incorporating 16:56:17 code that manipulates quantum superpositions of fruit and fruit-loans, no doubt. 16:56:44 CakeProphet: if it's finance oriented, all output should be as advertising. thus, it must be paid for and associated with some commodity. the value of that commodity will rise depending on the investment in advertising. 16:57:22 I think fruit is a good commodity. 16:57:30 as it is delicious. 16:57:31 all input should be as market research, and may not be possible for some users depending on whether they are in the target demographic 16:57:40 the preferred input method will be multiople choice surveys 16:57:50 ..... 16:58:01 I lol'd 16:59:00 (the nice thing about surveys is that sometimes they include "select all that apply" questions, thus making it possible to input superpositions) 17:01:25 making it a fungeoid constricts the syntax to single characters. <-- unicode is large 17:01:40 CakeProphet, anyway you could construct source lines on the surface or something 17:02:04 CakeProphet, oh and... hm... perhaps the gravity of the program deforms the geometry? 17:02:10 for sufficiently large programs 17:04:22 quintopia, there is only one free text input per program, which is so annoying to get at, that most programs will promptly discard it? 17:05:40 Vorpal: rather, the user can provide as much input as s/he likes, but the program pays by the character to read it 17:05:58 you can have n-character-wide commands too 17:06:00 eventually, this cost is passed on to the user 17:06:04 nothing wrong with that 17:07:49 Phantom_Hoover: well, actually i wanted something like this: http://esolangs.org/wiki/User:Tokigun/Brainfuck_Implementations 17:12:07 lifthrasiir, sure, but it's good to have them out of the main article before experimenting. 17:12:36 yes. that's exactly why i set it up in my user page. 17:48:40 -!- Taneb has joined. 17:48:48 Hello 17:53:01 hi 17:53:02 Laughing at where the esolang I suggested has gone 17:53:14 A context, quantum, hyperbolic, numeric, and finance oriented language? 18:00:43 -!- cheater__ has joined. 18:03:57 -!- cheater_ has quit (Ping timeout: 240 seconds). 18:08:23 -!- MigoMipo has joined. 18:09:58 -!- MigoMipo has quit (Read error: Connection reset by peer). 18:10:32 -!- MigoMipo has joined. 18:31:15 -!- Sgeo has joined. 19:02:57 -!- oerjan has joined. 19:08:58 CakeProphet, are you working on figuring out ABCDEF? 19:09:17 no, ABCDEFG. there is no such thing as a language abbreviated ABCDEF. 19:09:29 * oerjan readies the swatter in case someone disagrees. 19:09:45 It's actually abbreviated ABCDEF...G 19:09:52 The ellipsis is important 19:09:53 aha 19:10:24 However, it can be replaced by a newline in some contexts 19:10:58 -!- cheater__ has quit (Ping timeout: 255 seconds). 19:11:23 also, i realized my former idea of perfect jump points in numberwang works again if the program has an initial 2!, to put things into the correct phase initially 19:11:36 Ooh, brilliant 19:14:15 and then we can put the "real" instructions at spots that are position 2 (mod 9), and pad between with 1,0,1,0,1,0,1,0 nops (although one might manage to put something other than a nop in there too) 19:14:59 since 0 and 1 commands can be achieved easily anywhere 19:15:40 Yeah 19:17:38 How is ... the thing that ABCDEF is not an abbreviation for? 19:17:56 Inactive 19:18:02 Confusing 19:18:06 Self-contradicting 19:18:39 rest in peace abcdef 19:18:49 * oerjan swats monqy -----### 19:18:51 oerjan? 19:19:03 Just as I expected 19:19:29 i guess it was inevitable 19:19:50 rest in peace that thing for which abcdef is not an abbreviation, too 19:23:20 it is also possible to put jumps at positions 5 and 8 (mod 9), although they can only jump to other instructions with consistent phase (lest you make the phase inconsistent :P) 19:24:29 -!- cheater__ has joined. 19:25:30 those jumps can be to next instruction, so you can insert nops that way 19:25:41 *the next 19:25:54 This is too easy to program in 19:26:02 eek 19:26:57 well it looks obvious that you can automatically translate a Wang B-machine to this now 19:27:09 Hence it is Turing Complete 19:28:30 Damn 19:32:25 is it meant to be sub-TC? 19:32:27 hm actually it's not exactly the same, numberwang flips bits while the B-machine only sets them (and the W-machine also clears) 19:32:44 It's meant to be really hard to prove 19:33:12 but nothing really difficult there i guess 19:33:31 It's practically usable 19:33:54 Oozlybub and Murphy is a good example of hard to prove 19:35:41 yes but in a somewhat unsatisfactory way 19:36:11 are there any satisfactory examples 19:37:10 Not off the top of my head 19:37:14 Piet? 19:37:23 well no one has attempted my Malbolge Unshackled yet afaik :P 19:37:30 (not me, for sure) 19:40:29 How can I complicate this? 19:41:02 I want its computational class to be "probably Turing Complete..." 19:41:52 All programs much reach Numberwang so many times? 19:42:13 what does numberwang do 19:42:35 http://esoteric.voxelperfect.net/wiki/Numberwang 19:42:41 I mean 19:42:50 Oh, ok 19:42:50 12! 4.4! 92! 10! 49.8! 2! 2! 2! 19:42:57 Depends when it happend 19:43:00 *happens 19:43:03 right 19:43:18 but does it necessarily have any effects? 19:43:30 It's an almost certainty 19:44:12 -!- ais523 has quit (Remote host closed the connection). 19:44:33 Like, I have no idea what the program 3! does 19:46:30 -!- MigoMipo has quit (Remote host closed the connection). 19:48:02 Taneb: is the digital root of 4.4 or 49.8 defined? 19:48:23 It is, but the most common algorithm doesn't work 19:48:30 8 and 3 respectively 19:48:35 okay 19:49:01 Multiply by 10 until n % 1=0 19:49:03 so that it only affects the interpretation of instruction 2, right? 19:49:09 Yeah 19:49:34 then what on the earth is the command at the fractional index? :p 19:49:52 (given the current cell is marked) 19:49:58 I haven't worked that out yet 19:50:52 i guess some kind of interpolation will be fine... 19:50:58 I think you do the * 10 until n % 1 = 0 19:52:00 e.g. if you go to the offset 4.2 which is between the command 92 and 10, then it is interpreted as the command 26.4 19:52:40 That works, too! 19:52:43 since the initial commands are always integers multiplied with 10^-k (k integer) 19:52:51 there is no problem with recurring decimals etc. 19:53:25 All commands are k/(2^j)*(5^l) 19:53:48 that is k'/10^max(j,l) for some k'. :p 19:54:07 ugh, 19:54:18 no don't mind. 19:54:30 my expression parser seems to be broken 19:56:25 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds). 19:59:39 Your suggestion is now canon 20:00:01 hi 20:00:07 Hello 20:00:08 anyone know what encoding this page is in? http://www.john-a-harper.com/tubes201/ 20:00:40 * cheater__ eyes fizzie 20:00:52 UTF-8? 20:01:05 HTML 3.2? 20:01:25 GIF? 20:01:26 I don't think HTML 3.2 is an encoding 20:01:42 Sgeo, any ideas? 20:01:49 Pretty sure it's UTF-8 20:02:14 With HTML 3.2 markup and images as GIFs 20:02:15 can you search for the text "is a constant for a given electrode geometry. In other words, the actual plate voltage is divided by" ? 20:02:32 does a \mu character show up? 20:02:36 nice 20:02:41 No 20:02:43 Yeah, the "broken" characters seem to be UTF-8 "missing character" symbols. 20:03:11 � ...encoding...:( 20:03:40 looks like U+FFFD in UTF-8. 20:03:56 There's the byte sequence EF BF BD (which is UTF-8 for the U+FFFD) for both the degree signs and the supposedly-µ. 20:04:12 So it's not something you could reverse back to anything sensible. 20:07:16 wtf is an element? 20:07:22 i'm looking at the source of this 20:07:26 Google has a quick-view of a PDF version, second hit for me for the "How Vacuum Tubes Really Work" (in quotes) search. 20:07:46 fizzie, yeah i decided to change everything by hand 20:07:48 i guess someone sent non-UTF-8 to a program that was expecting UTF-8, and the unknown characters were turned into that 20:07:57 And the and tags are used to denote insertations and deletions in a document. 20:09:31 oh oh 20:10:25 20:11:02 I could make a better website with Wine Notepad and a packet of crisps! 20:11:11 By better, I mean better HTML 20:11:17 Not better content 20:11:36 the preview has all the right characters 20:12:04 Replace your mu characters with μ 20:12:51 &moo;. 20:13:21 yeah i will 20:13:29 what's the degree one? ° right? 20:13:54 °, yeah 20:14:00 The semicolon is important 20:24:13 i realize, but it's part of sgml, not the entity 20:24:26 funnily enough i have had to use two different encodings for the mu character 20:24:35 Why? 20:24:36 &mu and µ for different contexts 20:24:41 Huh 20:25:02 mu is used for the prefix "micro" in units as well as for a variable called "mu" 20:25:15 as in "Vari-mu", "low-mu", "high-mu" 20:25:32 What does a zen cow say? 20:25:34 Mu! 20:27:01 why did the kitten stay on the hot tin roof longer than the adult cat? 20:27:07 it had a higher mu! 20:28:17 that made no sense 20:29:01 Today I have ice cream, so I take it away from you. 20:29:12 Tomorrow I have no ice cream, so I give it to you. 20:29:19 This is an ice cream koan 20:37:50 today i had lots of beer 20:37:53 i am a koanhead 20:38:36 I seem to finally have working webernauts. 20:41:04 -!- Taneb has quit (Ping timeout: 264 seconds). 20:46:56 -!- Phantom_Hoover has joined. 20:53:07 -!- Sgeo has quit (Ping timeout: 255 seconds). 20:55:34 -!- Sgeo has joined. 21:03:55 -!- boily has quit (Ping timeout: 255 seconds). 21:04:18 * Phantom_Hoover notes that he just clicked on a YouTube video called "Mitchell & Webb Mac Adverts" on the assumption it would be a parody. 21:05:02 -!- hagb4rd has joined. 21:06:34 * oerjan recalls someone posted an animated gif of a mac advert on reddit the other day 21:07:10 from a norwegian online newspaper 21:16:31 -!- cheater__ has quit (Ping timeout: 255 seconds). 21:17:35 -!- elliott has joined. 21:23:03 something is wrong, elliott joined and the channel is _still_ silent 21:23:12 im logreading -minecraft first is why 21:23:17 ah. 21:23:20 :D 21:23:30 morning 21:23:34 mroing 21:24:18 mwrong 21:29:23 -!- cheater__ has joined. 21:35:19 * oerjan figures -minecraft must have been _really_ active today. 21:35:39 no im just scrolling dwon to find ten am 21:35:44 when i left 21:35:47 down 21:36:37 * oerjan uses ^F for that 21:36:59 ur an f 21:38:20 what's your angle? 21:38:32 14:06:23: it's just one of ais523's methods to suppress thinking of fe *hit by falling anvil* 21:38:32 14:07:05: Meta type constructors? 21:38:33 14:07:55: i never m *anvil rolls on top of him again* 21:38:33 :D 21:38:35 pet anvil 21:38:52 aww :D 21:39:14 14:22:22: Why can't my German-made French-published game with Italian characters run on my Japanes-designed Chinese-made laptop with a South African OS based on a kernel designed by a Swedish speaking FInn? 21:39:14 14:23:06: The game also has Norwegian and... Argentinian? characters 21:39:14 which south african os? 21:39:18 "hihihi here i come oerjie" "AAAAAAARGH!" 21:39:24 oerjie 21:39:42 14:27:36: it means "i despise you so much i'm going to steal your screen real estate despite not really saying much." hth. 21:39:43 oerjan: why 21:39:44 don't 21:39:44 you 21:39:46 love 21:39:47 ME???????????? 21:40:17 14:28:25: But yeah, Settlers IV doesn't run on Ubuntu on my Toshiba 21:40:17 Ubuntu is South African only by very dubious measures :-P 21:40:19 nothing personal, you're just evil newline-spamming scum, is all. 21:40:49 14:34:02: a real is perfectly encodeable as a sequence of ones and zeroes. it just has to be infinite. 21:40:49 14:34:12: oerjan, OK then, P(R). 21:40:49 14:34:36: fiendish. 21:40:49 14:34:54: Just stick Ps on until it gets big enough. 21:40:50 :D 21:41:18 I think domesticated anvils will be made of light metals and have some form of truss-like interior instead of being solid metal 21:41:47 they're just not that cuddly when they still weigh a ton or two (or a half) 21:42:46 http://esolangs.org/wiki/Surface 21:42:56 ITA: Madk doesn't understand fundamental polygons. 21:43:04 aww now i want a pet anvil :D 21:43:20 anvils are not pets! 21:43:23 Phantom_Hoover: I am going to revert your [[Brainfuck implementations]] change 21:43:29 Why? 21:43:34 I had CONSENSUS. 21:43:41 because you moved every single implementation, including the /original/ 21:43:42 they are fierce creatures who hate puns 21:43:42 oerjan: pet anvils are pets 21:43:54 really it would be kind of sad, it moves by jumping so everyone always yells at it if it moves too much because it makes this huge noise :( 21:44:05 elliott, consider simply moving that into the article, rather than moving the whole thing. 21:44:18 And it _is_ an implementation regardless. 21:44:25 and when it tries to come greet its master, it will just often step on his feet and get yelled at again :( 21:45:28 14 July 2011 21:45:28 (diff) (hist) . . Brainfuck implementations‎; 21:44 . . (-8,084) . . Ehird (Talk | contribs) (...better organisation than the current section. I will do a proper move later today or tomorrow.) 21:45:28 (diff) (hist) . . Brainfuck‎; 21:44 . . (+8,024) . . Ehird (Talk | contribs) (Revert; while I support the separation of implementations into a separate article, ''notable'' implementations (e.g. original distribution, esotope) should stay. And any such page should have...) 21:45:33 Phantom_Hoover: (read backwards) 21:46:03 elliott: tokigun is already working on a better implementation listing 21:46:13 -!- cheater__ has quit (Ping timeout: 255 seconds). 21:46:20 oerjan: citation? 21:46:22 not got very far, mind you 21:46:24 oh, I see 21:46:27 i wish i had 100 million moneys 21:46:30 I find that format much worse, I'm afraid 21:46:37 especially since we don't have wikipedia's table sorting JS 21:46:47 i could buy a pet anvil AND pillow shoes for it 21:50:22 oklopol: oh it's all fun and games until one day you want to meet a pun and then *BAM* 21:50:47 -!- sidhe has joined. 21:51:08 :\ 21:51:08 * oerjan smells an elf 21:51:20 -!- pikhq_ has joined. 21:51:47 the name sidhe rings a bell 21:51:56 dresden files 21:52:50 wat 21:53:00 i mean from here. 21:53:22 -!- oklofok has joined. 21:53:52 oerjan: are you the chairman of the "former pet anvil owners who've had enough" club or something? 21:53:57 i was just on ##nomic for a few seconds due to forgetting the name of this channel 21:54:12 one 21:54:13 olsner: no, i never met any other survivors 21:54:14 hundred 21:54:15 million 21:54:16 moneys 21:54:23 though i've never been here before using this nick. 21:54:38 also it's not my pet 21:55:16 -!- pikhq has quit (Ping timeout: 258 seconds). 21:55:25 -!- oklopol has quit (Ping timeout: 240 seconds). 21:55:56 -!- cheater__ has joined. 21:58:03 -!- sidhe has left. 21:58:28 Lymee: OK SERIOUSLY HOW DOES MAVEN EVEN WORK. 21:58:47 elliott: maven? isn't that some java crap? 21:58:52 yes. 21:59:06 lymee is our resident expert on java crap. 21:59:11 olsner: i gather it's less crap than ant, though 21:59:12 but do you really want to know how it works? 21:59:19 elliott, Maven works with magic. 21:59:19 well i need to use it, yes, so i can avoid using ant. 21:59:24 Magic is bad 21:59:30 Lymee: do you have a better suggestion 21:59:30 *shrug* 21:59:33 :-P 21:59:36 I let Eclipse deal with maven. 21:59:45 So, "loldunno 21:59:46 Yeah, but there's two different plugins and no indication of which one to use :-( 21:59:52 It's like fascism. 22:00:38 I get the impression that maven does things that ant users find useful, and it uses xml 22:00:47 Lymee: http://maven.apache.org/eclipse-plugin.html Which one ;_; 22:02:19 *shrug* 22:03:02 Clearly you want me to suffer. 22:03:03 * elliott cries. 22:03:16 No, that's Apache. 22:03:24 -!- cheater__ has quit (Ping timeout: 250 seconds). 22:04:02 Which one do you have installed, I just want something that works :P 22:04:09 Ant has completely melted down under its own shittiness. 22:04:23 Also I think Maven is meant to be a bit faster than Ant, which is nice because Ant is dog slow. 22:06:18 http://www.vjn.fi/temporary%20shit/anvie.png 22:06:22 Maven Integration. 22:06:47 Lymee: Thanks. 22:06:55 oklofok: awwwwww 22:07:30 Now I just have to figure out how to write Maven files :( 22:07:32 oklofok: you drew that? 22:07:40 or is it a photograph? 22:07:54 photograph 22:08:35 yeah i photographed it using my mspaint brand camera 22:09:49 IT'S A TRAP 22:10:30 it's soooooo cute when it bounces around :D 22:11:08 i wish i was awesome at animating shit, hope you're imagining what i'm imagining 22:11:41 bleh, it looks like my eclipse version is too old to use m2e 22:11:50 I blame Lymee for probably not using Linux 22:12:01 I'm just going to blame every Bukkit plugin development problem I have on Lymee 22:12:09 Makes things super easy 22:12:25 oklofok: bouncy bouncy :D 22:12:55 it's like the antidog in the sense that it loves to scratch you with its horn 22:13:22 (it can actually move that thing a bit) 22:13:39 oklofok: also think of the floor repair bills 22:13:59 in fact it wiggles and waggles it like a dog does with its tail, although the movement is slightly slower and much smaller 22:15:11 "The Eclipse software development kit is the development environment used to develop plug-ins for the Eclipse platform." 22:15:18 Eclipse is like the most incestuous piece of software imaginable. 22:15:28 Its main distribution is a tool to extend itself. 22:16:18 elliott, Lymee does use Linux. 22:16:36 PAH 22:17:01 I'm having problems; the only conceivable way anyone else could not be having problems is if they are inferior to me. 22:17:56 holy shit what the hell is maven 22:18:32 a monster raven 22:19:53 awww that's so cute :D 22:20:10 this is like using martian software, if martians were idiots 22:20:33 conclusion, oklofok thinks everything that can kill you is cute 22:32:09 http://www.vjn.fi/temporary%20shit/monsterravie.png 22:32:21 that's my fursona 22:33:44 erm updating a bit 22:34:22 realized i had two ground levels 22:35:03 no thats good 22:35:14 i prefer the new one 22:35:36 * oerjan is disappointed that http://www.vjn.fi/permanent%20shit/ doesn't exist 22:36:32 we emptied vjn.fi, and moved stuff to our new domain, but missed the deadline for cancelling the webhotel thingie we had for it so now we'll just have an empty domain standing there for about a year 22:37:01 so it turns out i love drawing shit 22:37:09 why have i never drawn anything :\ 22:37:31 because you're no good at it? 22:38:10 eh, did you see the pics? 22:38:18 Lymee: if I steal CommandBook's pom.xml and modify it to my own nefarious purposes, do you promise not to tell? 22:38:35 -!- aloril has quit (Ping timeout: 258 seconds). 22:38:51 :3 22:39:02 i don't think i've ever seen a cuter monster raven 22:39:16 or a more terrifying anvil 22:45:57 -!- azaq23 has joined. 22:46:13 Wow OK Maven is literally the slowest thing. 22:46:18 Is it... downloading every dependency each time? 22:46:29 This is the least Zepto I have ever felt. 22:47:44 are you still eclipsimng 22:48:42 elliott, if it is... 22:49:33 What is Maven? 22:50:03 Lymee: It isn't. 22:50:04 the worst build system evern 22:50:05 Phantom_Hoover: Confusing. 22:50:14 [sic] 22:50:21 Mavern. 22:50:24 monqy: Yes. 22:51:02 why haven't you just made something to replace ides yet 22:51:29 or is an ide actually required for whatever you're doing is it a bukkit plugin I don't even know what that is 22:52:25 -!- aloril has joined. 22:53:19 Phantom_Hoover: you can also check you my picture of maven 22:54:05 oklofok, did. 22:54:08 It was best. 22:54:40 i love how paint adds a smoothing touch around every line so that the filler fucks up 22:55:00 of course it would have been hard to have a wing otherwise, but still sorta ugly 22:55:30 Sweet Maven and Hella Oklopol. 22:56:30 X-D 22:56:40 Maven has to download maven-clean-plugin just to clean the repository out. 22:56:42 Beautiful. 22:58:52 14/07/11 23:57:54 BST: [WARN] Some problems were encountered while building the effective model for net.pyralspite:hostilechunks:jar:0.1 22:58:52 14/07/11 23:57:54 BST: [WARN] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-compiler-plugin is missing. @ line 49, column 12 22:58:53 14/07/11 23:57:54 BST: [WARN] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-jar-plugin is missing. @ line 58, column 12 22:58:53 14/07/11 23:57:54 BST: [WARN] The expression ${artifactId} is deprecated. Please use ${project.artifactId} instead. 22:58:55 BLARRRRRRRRRR 23:00:04 :( 23:05:10 WHAT 23:05:19 Lymee: wat 23:05:29 14/07/11 23:57:54 BST: [WARN] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-compiler-plugin is missing. @ line 49, column 12 23:05:35 *boggles* 23:05:39 WHY IS THIS A PLUGIN!? 23:05:41 Yeah, you have to tell Maven the exact versions of every Maven component you want. 23:05:44 It's so great. 23:05:53 Lymee: Like I said, "mvn clean" actually downloaded maven-clean-plugin. 23:05:57 rm -r: a plugin 23:06:19 Enterprisey, eh? 23:06:36 I'm this close to replacing my build system with a shell script and getting Eclipse to run it. 23:06:41 I can understand that level of modularization, but not not including it by default. 23:06:46 including core modules* 23:07:22 But... 23:07:41 If you do that, the only reason you'd remove core modules is for slimmed down bundled releases. 23:08:58 http://www.reddit.com/r/math/comments/iph88/mathematics_questions_over_on_raskscience_are_met/ 23:09:10 r/math vs. r/AskScience: place your bets! 23:09:22 Why you should use the Maven Ant Tasks instead of Maven or Ivy 23:09:23 MARCH 8, 2009 BY PETER THOMAS 21 COMMENTS 23:10:03 oerjan, incidentally, is it possible to have a non-Euclidean space where there is a circle constant which works like it does in Euclidean space? 23:10:44 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 23:10:47 Since radius:circumference clearly isn't constant in an elliptical space, and ISTR it's not constant in hyperbolic space either. 23:10:54 Lymee: hmm, does Maven kill Eclipse's automatic error-highlighting for you, too? 23:11:24 that's actually a kind of interesting question 23:11:49 elliott, havn't used it with anything I actively modified a lot. 23:12:21 Phantom_Hoover: what i recall is that in both hyperbolic and elliptic geometries the limit is the usual pi when you let the radius approach zero 23:12:42 oerjan, sure, but it's not the case for *all* circles. 23:13:06 no, but i mean neither gives the possibility of anything _other_ than pi being special 23:14:39 oerjan, OK, but is it possible to have a space where all circles have radius:circumference = k, k != pi? 23:14:53 hm if you do it around poles in the complex plane don't you get a multiple of pi... although that's just at that point 23:15:28 bleh, i know way too little about lesser mathematics to even *try* to construct such a space 23:15:33 sorry non-discrete mathematics 23:15:48 obviously i don't know the answer either 23:15:55 what's a circle? 23:16:03 i would certainly love to know the exact rules 23:16:09 we talking 2d manifold? 23:16:23 oklofok, that's what I had in mind. 23:16:51 and then some metric for it k 23:16:57 oklofok: Isn't it something like "a set of points equidistant from a given point in a given 2d product space" or some such? 23:17:07 what's a 2d product space? 23:17:11 you mean 23:17:11 i expect it must always be pi in the limit for a riemannian manifold 23:17:14 nono 23:17:21 don't be silly 23:17:27 not a product space 23:17:49 what's a riemannian manifold? 23:18:08 the problem is what's a circumference in general? 23:18:33 maybe the 1-dimensional measure of the radius 1 sphere 23:18:52 assuming its hausdorff dimension is 1 23:19:03 can you define something like that? 23:19:21 hmm 23:19:22 riemannian manifolds are obvious spaces in which you can at least define a circumference (because you have a metric and differentiation) 23:19:36 yeah 23:19:48 hausdorff measure can be supplied with a dimension right 23:19:53 mind you i don't know that much about them 23:20:09 "a rational number is a quotient of two integers. 10 is not an integer." 23:20:34 iirc the hausdorff measure of a set is always 0 or infinite except for at most one dimension 23:20:49 oerjan: how can you define circumference based on a metric and differentiation? 23:20:56 is there a concept of angle? 23:21:06 "A Riemannian metric makes it possible to define various geometric notions on a Riemannian manifold, such as angles, lengths of curves, areas (or volumes), curvature, gradients of functions and divergence of vector fields. 23:21:15 (http://en.wikipedia.org/wiki/Riemannian_manifold) 23:21:49 " iirc the hausdorff measure of a set is always 0 or infinite except for at most one dimension" yes and circumferences should have dimension 1 and their length as the measure in the euclidean case 23:21:59 erm 23:22:01 spheres 23:22:04 *circles 23:22:32 oerjan: i don't see how that still necessarily lets you measure the length of a circle 23:23:41 it lets you measure the length of a differentiable curve 23:23:54 so... what curve do you measure? 23:24:16 we have a set 23:24:23 the set of points at a certain distance 23:25:06 ok i guess i don't know for sure whether that _does_ form a curve 23:25:39 for each point there is an r such that you get a curve out of the r-sphere or smaller i think 23:25:39 although i'm sure someone who actually knew this stuff could answer 23:25:50 that may be 23:25:57 because the metric is compatible with the topology and you need to have R^2 in some neighborhood 23:26:18 so you get something that's homeomorphic to the usual sphere for small enough radius (?) 23:26:20 "In what year was your Gandi account created?" -- worst possible security question 23:26:33 takes exactly /twelve/ tries to beat at most :D 23:26:38 blergh i don't know shit about this stuff 23:26:39 wait no, eleven 23:28:52 https://www.gandi.net/static/contracts/en/whois/pdf/ObfuscatedWhois_1_1.pdf 23:28:56 someone read this for me, thnx 23:29:17 hmm actually i'm pretty sure a circle is a curve 23:29:22 umm 23:29:23 Resell 23:29:23 yesno 23:29:23 Our contract with ICANN requires that we sell our WHOIS database to any party that requests it. However, you have the right to refuse the sending of your personal data in such an event. Only click on YES and proceed to the next form if you accept that your personal data may be sold. 23:29:29 does this mean that it won't let me go past if i don't say yes :D 23:29:58 in any manifold with a metric compatible with the topology, i think it's a path 23:30:13 hmm 23:30:34 well actually dunno, blergh 23:31:03 oerjan: hey btw recall that really interesting thing we proved the other day? 23:31:08 we generalized it yesterday! 23:31:12 now we know it for all chains 23:31:42 (and it seems it's not true for anything else by a simple counterexample) 23:31:51 O KAY 23:31:58 :D 23:32:13 im a chain 23:33:31 basically it just becomes a question of homomorphism from S^n to S where S is a lattice. for chains these are just projection to one coordinate + homomorphism 23:34:05 but there's a nontrivial homo from D^2 to D for the diamond D 23:34:08 -!- copumpkin has joined. 23:34:32 *finding homomorphisms 23:36:43 so what i'm thinking is if you have a diamond (you do if it's not a chain) and take like a minimal one in some sense, then you might be able to homo the whole S^2 into that one diamond 23:37:23 well haven't given it thought really but sounds like it should be doable, solving the problem completely, in a sense 23:38:28 so as everyone here prolly already knows a subshift that's also a group is easily shown to be an SFT 23:38:43 a more recent result is that it is in fact a full shift (or conjugate to one at least) 23:39:06 so perhaps there is something similar for lattices 23:40:02 oklofok: what's my telephone number 23:40:17 a non-trivial binary subshift that's a lattice always contains the all-0 and all-1 points (proof: it's obvious), and if there's a 0-finite or 1-finite point then it's the full shift 23:40:23 elliott: dunno. 23:40:49 but that's all we know so far 23:41:03 but i have a hunch it's really simple as well 23:42:17 like, take a point and shift it a bit, and and or it with itself, if you get something trivial then the point is periodic and otherwise maybe you get something interesting 23:44:26 (i don't actually know if it has to be periodic if what i said happens) 2011-07-15: 00:00:15 numbers, endlessly looping a series of digits are also called periodics, yes? 00:00:37 like, 1,2343434 00:00:55 they are called rationals 00:01:21 and such symbolic sequences are called eventually periodic or ultimately periodic, occasionally also periodic 00:04:12 i guess occasionally periodic when falling back into unstructred? 00:04:28 like 1,234343434343425235623 00:04:52 that's not really a proper definition 00:05:07 ofc you can use that term if you like, haven't heard it 00:05:30 there are many terms for sequences that are sort of periodic, recurrence, quasiperiodicity etc 00:06:21 say if for all words w, there is an n such that every subword of length n in your point (your infinite sequence) contains a copy of w, then the point is, umm, recurrent i think? 00:07:53 if for all i and n there is a nonzero p such that x[i, ..., i+n+mp] = x[i, i+n+mp] for all m, then the point is called quasiperiodic iirc (although quasiperiodic can mean a lot of things, people just love using it for everything) 00:09:31 then you call the point iso...somethingic if that same thing holds, but you might have to move a bit; that is, for all w occurring in x, there is a k and a p such that x[k + pm, ..., k + pm + |w| - 1] = w 00:09:44 following me? 00:09:57 i don't recall the names of the terms because they are not as standard as one would hope 00:10:04 but i can check them if you're interested 00:10:53 or you can check them yourself, kurka has a marvellous book online called topological and symbolical dynamics where he gives the defs for arbitrary dynamical systems 00:10:56 yea thanks you for this nice excursion 00:11:32 well i sort of do it for a living :D 00:12:08 (not very good at remembering terms) 00:12:33 * oklofok wants to talk more 00:13:55 so every subshift has a recurrent point 00:14:24 i'm sure elliott'll be back in a moment ready to kick your ass with his final question :P 00:14:45 we alle wait for 00:15:56 what 00:16:24 life, universe and all 00:17:20 let S be a subshift, and let w_1, ... be an enumeration of all words. if for every word, you have the recurrence property in every point of S, then we're done. otherwise, take the first w_i for which it doesn't hold. then, there is a point x in S which contains arbitrarily big subwords without an occurrence of w_i, so this point x and its shifted versions have a limit point without an occurrence of w_i. so, S \cap Y is a nonempty proper subshift of S, 00:18:07 now, observe that repeating this we obtain an infinite chain S_i of subshifts such that S_i does not have an occurrence of any w_j with j<=i unless w_j appears recurrently in every point of S 00:18:30 btw.. i bought the book ian bell mentioned as his favourite on his homepage ;) ..the cosmic serpent 00:18:44 i can't wait to have it 00:18:57 so, just take the intersection of such S_i, it's a descending chain of compact non-empty shift-invariant sets and therefore the intersection is also a compact non-empty shift-invariant set. 00:19:14 it is clear that in this intersection, every point is recurrent 00:19:52 was nice to get that off my chest 00:27:55 -!- Lymee has quit (Ping timeout: 240 seconds). 00:30:21 -!- foocraft has quit (Quit: So long, and thanks for all the fish!). 00:30:39 -!- foocraft has joined. 00:31:44 -!- Lymee has joined. 00:51:28 i just love shift spaces so much 00:51:41 i just... can't get enough of them 01:07:23 -!- hagb4rd has quit (Quit: hagb4rd). 01:09:12 01:10:01 hi 01:10:24 drugs. 01:10:36 -!- azaq23 has quit (Ping timeout: 250 seconds). 01:12:53 * Phantom_Hoover → sleep 01:12:54 -!- Phantom_Hoover has quit (Quit: Leaving). 01:16:44 -!- azaq23 has joined. 01:25:05 -!- hagb4rd has joined. 01:35:08 -!- azaq23 has quit (Ping timeout: 240 seconds). 01:40:24 > :D 01:40:24 : parse error on input `:' 01:40:38 > : parse error on input `<' 01:40:39 : parse error on input `<' 01:41:19 all error messages from my language interpreters will be valid code. 01:41:28 thus preventing error-based quines. 01:42:47 > 1:Maybe "so" 01:42:48 Not in scope: data constructor `Maybe' 01:42:58 O_o 01:43:02 > Not in scope: data constructor `Not' 01:43:02 : parse error on input `in' 01:43:08 damn 01:43:35 > 1:Just "so" 01:43:36 Couldn't match expected type `[t]' 01:43:36 against inferred type `Data.Mayb... 01:44:16 > 1:hm 01:44:17 Not in scope: `hm' 01:45:12 oh well 01:48:19 (in any dimension, the binary shifts that are lattices are exactly the shifts where the set of 1's is linear) 01:49:03 (linear in the sense used with semilinear sets, that is, each 1 forces a periodic sequence of 1's in different directions) 01:49:22 (just as easy as i thought, and done exactly as i guessed earlier) 01:49:48 -!- azaq23 has joined. 01:51:04 ermerm sorry not linear. but anyway that period thing. 01:57:54 -!- elliott has quit (Remote host closed the connection). 01:58:40 -!- elliott has joined. 01:58:43 as for shift spaces that are boolean algebras, they are just the full shifts and the periodic shifts 01:59:00 binary ones that is 01:59:51 (the general case is slightly more complicated, although i did solve that one too, in a sense) 02:01:56 where's that... whatever his/her nick was last time, that crazy math dude; why is he not here, i need someone to eagerly repeat "uhhuh? i'm listening!" :\ 02:22:44 > fix error 02:22:45 "*Exception: *Exception: *Exception: *Exception: *Exception: *Exception: *E... 02:24:06 not quite what I was hoping for. 02:24:09 :t fix (?f.) 02:24:09 forall b (f :: * -> *). (?f::b -> b, Functor f) => f b 02:24:34 what is the ? 02:24:43 implicit argument 02:25:04 > fix (error.) 02:25:05 No instance for (GHC.Show.Show (f [GHC.Types.Char])) 02:25:05 arising from a use ... 02:25:06 aka dynamically scoped variable 02:25:24 it's not exactly a _variable_ :D 02:25:36 -!- elliott has left ("Leaving"). 02:25:40 -!- elliott has joined. 02:25:54 > fix (error.) "is too!" 02:25:55 "*Exception: *Exception: *Exception: *Exception: *Exception: *Exception: *E... 02:25:55 :t fix (('a':).) 02:25:56 forall (f :: * -> *). (Functor f) => f [Char] 02:26:26 CakeProphet: it's because of lambdabot's (.) = fmap definition 02:26:30 right 02:27:46 :t fix ((.).(.).) 02:27:47 The operator `.' [infixr 9] of a section 02:27:47 must have lower precedence than that of the operand, 02:27:47 namely `.' [infixr 9] 02:27:57 :t fix (((.).(.)).) 02:27:58 Occurs check: cannot construct the infinite type: a = f (f1 a) 02:27:58 Expected type: f2 (a -> b) 02:27:58 Inferred type: f2 (f (f1 a) -> f (f1 b)) 02:28:16 :t ((.).(.)) 02:28:17 forall (f :: * -> *) a b (f1 :: * -> *). (Functor f, Functor f1) => (a -> b) -> f (f1 a) -> f (f1 b) 02:28:25 ugh this is stupid 02:28:38 :t . 02:28:39 parse error on input `.' 02:28:40 :t (.) 02:28:41 forall a b (f :: * -> *). (Functor f) => (a -> b) -> f a -> f b 02:29:11 :t ((.).(Prelude..)) 02:29:12 forall (f :: * -> *) b c a. (Functor f) => (b -> c) -> f (a -> b) -> f (a -> c) 02:29:15 > (const 4) . putStrLn "Hello!" 02:29:16 02:29:28 oerjan: ah. Which (.) are we using? 02:29:35 coppro: fmap 02:29:45 coppro: caleskell 02:29:51 where is it defined? And how does it shadow Prelude's? 02:30:12 coppro: in lambdabot's L module 02:30:19 "how"? 02:30:22 you can shadow anything 02:30:28 on import 02:30:36 elliott weighs in on the matter. 02:30:40 elliott: Really? I thought you couldn't ever have two things with the same name 02:30:51 coppro: what on earth gave you that impression? 02:30:54 O_o 02:30:56 import Prelude hiding ((.)) 02:30:59 module Foo (map) where 02:31:01 import Prelude hiding (map) 02:31:03 map = 99 02:31:04 and then: 02:31:07 import Prelude hiding (map) 02:31:08 import Foo 02:31:10 main = print map 02:31:14 -- program will print 99 02:31:33 elliott: derp ok 02:31:50 coppro: you can also e.g. 02:31:52 > let map = 99 in map 02:31:53 99 02:31:59 wait no, still doesn't answer my question 02:32:01 also if you qualify the name then you can have both in scope. 02:32:03 Prelude is imported by default 02:32:15 coppro: yes, but adding an explicit import declaration overrides that 02:32:18 ah ok 02:32:24 also there is no shadowing there 02:32:28 (except in the 'let' declaration) 02:32:30 alternatively, NoImplicitPrelude or whatever it is 02:32:33 coppro: yes there is 02:32:35 which also does other stuff 02:32:41 > let {map = 99} in {9 + map} 02:32:41 : parse error on input `{' 02:32:45 > let {map = 99} in 9 + map 02:32:46 108 02:32:50 coppro: map is shadowed in the scope of the in expressio 02:32:51 n 02:32:52 I believe import Prelude () will hide it entirely? 02:32:54 I forget what else, aside from letting you use your own monad definition for do notation 02:32:55 elliott: I said except in the let declaration 02:33:00 coppro: well, duh :) 02:33:16 CakeProphet: do you feel an urge to abuse NoImplicitPrelude 02:33:25 I don't see how it could be abused. 02:33:31 unless improving the Prelude is abuse. 02:34:08 dammit mvaen i want automatic builds in eclipse 02:34:08 I'm sure there's some way to abuse it 02:34:51 any kind of abuse I can think of would be highly contrived. 02:35:01 not as obvious as the ways one can abuse OverloadedStrings 02:35:39 of course by "abuse" I mean "use in ways that are completely allowed by Haskell and typecheck with no special hacks required" 02:35:48 haha monqy 02:35:48 what if 02:35:50 i asked stack overflow 02:36:19 CakeProphet: do you find unsafecoerce hilarious 02:36:27 elliott: what would happen I'm not a stackoverflow guy 02:36:35 I'm not even sure what the hell that is supposed to do. 02:36:41 :t unsafeCoerce 02:36:41 Not in scope: `unsafeCoerce' 02:36:43 the notion of coercing types in Haskell confuses me. 02:36:44 oops 02:36:52 @hoogle unsafeCoerce 02:36:52 Unsafe.Coerce unsafeCoerce :: a -> b 02:37:05 it's used in Data.Dynamic or whatever it is 02:37:08 do you find Data.Dynamic hilarious 02:37:35 monqy: stackoverflow ims a bad persons 02:37:36 ...I don't find anything in Haskell particularly hilarious. 02:37:47 Dynamic is interesting and possibly useful. 02:38:21 it demonstrates that Haskell can support dynamic typing, which is pretty incredible 02:38:36 CakeProphet: also when I said NoImplicitPrelude I meant RebindableSyntax (which implies NoImplicitPrelude) 02:38:37 :t fromDynamic 02:38:37 forall a. (Typeable a) => Dynamic -> Maybe a 02:38:49 CakeProphet: What does Haskell look like? 02:39:01 elliott: what the hell kind of question is that. 02:39:10 CakeProphet: What country are you from? 02:39:22 .... 02:39:29 CakeProphet: "...." ain't no country I ever heard of. They speak Haskell in ....? 02:39:33 I refuse to answer all of these questions. 02:39:42 HASKELL MOTHERFUCKER, DO YOU SPEAK IT? 02:39:50 CakeProphet: DESCRIBE WHAT HASKELL LOOKS LIKE. 02:40:00 what? 02:40:16 okay we cannot quote Pulp fiction anymore. 02:40:18 I am leaving now. 02:40:19 please tell me if i am dying or crying i cannot tell 02:40:28 they rhyme this is confusing to me 02:40:28 CakeProphet: God dammit just get to the bitch part so I can ask if Haskell looks like Perl. 02:40:39 LAME 02:40:41 NO 02:40:58 also you will have to ask why I am trying to fuck it like a Perl. 02:41:04 which is pretty disturbing. 02:41:06 CakeProphet: http://www.haskell.org/ghc/docs/7.0.2/html/users_guide/syntax-extns.html#rebindable-syntax 02:41:06 No; code it like a Perl. 02:41:34 so you're saying that Dynamic is only useful if you want to code Perl in Haskell? is this the grand point? 02:41:44 !haskell {-# LANGUAGE RebindableSyntax #-} import qualified Prelude; a >>= b = b a; main = Prelude.print $ do x <- 3; y <- 4; x Prelude.+ y 02:41:53 ​/tmp/input.30856.hs:1:13: unsupported extension: RebindableSyntax 02:41:56 :( 02:42:04 GRMBL 02:42:32 actually, that's a potential use case, writing a Perl interpreter in Haskell could make use of Dynamic. 02:42:43 oerjan: NoImplicitPrelude used to do it, IIRC 02:42:46 embed perl in haskell 02:42:49 oh 02:43:02 !haskell {-# LANGUAGE NoImplicitPrelude #-} import qualified Prelude; a >>= b = b a; main = Prelude.print $ do x <- 3; y <- 4; x Prelude.+ y 02:43:12 though I suspect not using Dynamic could lead to better results. 02:43:19 heh 02:43:34 oerjan: that doesn't absolve you of the need to type main properly :P 02:43:36 since Perl has a finite number of types, using a single PerlData type would work. 02:43:51 !haskell {-# LANGUAGE NoImplicitPrelude #-} import Prelude hiding (>>=); a >>= b = b a; main = print $ do x <- 3; y <- 4; x + y 02:44:10 !haskell {-# LANGUAGE NoImplicitPrelude #-} import Prelude hiding ((>>=)); a >>= b = b a; main = print $ do x <- 3; y <- 4; x + y 02:44:28 wtf 02:44:31 !haskell {-# LANGUAGE NoImplicitPrelude #-} import Prelude hiding ((>>=)); a >>= b = b a; main = print $ do x <- 3; y <- 4; x + y 02:45:12 TH + Dynamic = fun abuse of Haskell 02:45:22 oh whatever 03:00:38 Java is literally intolerable. 03:01:37 are there any jvm languages worth using 03:02:01 * Sgeo wants Seph 03:02:42 monqy: it isn't even the language that's giving me pain 03:03:39 if it's the ide, don't use the ide, but then the language gives you pain, at which point fix that??? 03:04:44 monqy: it's the combination of ide and build system 03:04:51 quick, what's the last word that pops into your head 03:04:56 oklofok: head 03:05:06 :o 03:05:17 my words are still popping 03:05:19 when will they stop 03:05:31 i hope he didn't type that in and quickly shoot himself before anything else did 03:10:28 > fix monqy 03:10:28 Not in scope: `monqy' 03:11:04 im long gone 03:13:08 > fix ?monqy 03:13:09 mueval-core: internal error: PAP object entered! 03:13:09 (GHC version 6.12.3 f... 03:13:24 MWAHAHAHA 03:13:45 :t fix ?monqy 03:13:46 forall a. (?monqy::a -> a) => a 03:14:02 IM STAB A FORK THROUGH THE CHEST OF JAVA 03:14:09 CRYING ALWAYS 03:15:26 -!- CakeProphet has quit (Ping timeout: 252 seconds). 03:21:15 "Develop with pleasure!" --IDEA 03:22:52 diaf 03:23:21 rude dude rude 03:30:43 -!- azaq23 has quit (Ping timeout: 276 seconds). 03:41:48 monqy: oh i found out why people like IDEA 03:42:01 does it pay them money 03:42:09 elliott: what is the prefix ?? 03:42:15 coppro: ? 03:42:19 elliott: in ?monqy 03:42:22 monqy: it might be slow and weird, but it works with maven without idiocy :D 03:42:25 coppro: oerjan already told you 03:42:29 oh did he 03:42:31 i fogtor 03:42:40 coppro: implicit parameter 03:42:40 elliott: and why do people like maven 03:43:04 monqy: it might be weird and verbose, but it does stupid java things for you without (much) idiocy 03:43:06 elliott what does that do 03:43:15 coppro: it does nothing, it's a language feature 03:44:33 ah i see it now 03:44:38 -!- ruku56021 has joined. 03:45:17 i am ambivalent about this extensions 03:45:48 -!- ruku56021 has left. 03:48:03 > let f = ?x in let ?x = 3 in f 03:48:04 3 03:48:22 > ?y 03:48:23 mueval-core: internal error: PAP object entered! 03:48:23 (GHC version 6.12.3 f... 03:50:38 elliott: there is no way to provide a default value for an implicit parameter? 03:50:56 eh? 03:51:03 you can say 03:51:06 main :: IO () 03:51:11 main = let ?foo = default in realMain 03:51:12 I guess 03:51:20 or well 03:51:22 main :: IO () 03:51:23 main = do 03:51:26 let ?foo = default 03:51:29 ... 03:51:32 (does that work? oerjan?) 03:51:44 hm it probably should 03:52:07 so you can do ?foo <- x? :D 03:52:07 > do let ?foo = 3; [?foo] 03:52:08 : 03:52:08 The last statement in a 'do' construct must be an ... 03:52:13 o_O 03:52:17 oh 03:52:26 > do let {?foo = 3}; [?foo] 03:52:27 [3] 03:52:33 wat 03:52:48 the let block wasn't ending 03:53:47 i don't think you can do ?foo <- x, since that's desugared into lambda 03:54:05 > do ?foo <- [3]; [?foo] 03:54:05 : Parse error in pattern 03:54:07 elliott: I mean that if I have a function with an implicit parameter, I cannot give it a default right? 03:54:13 the calling context must have it declared at some level? 03:54:25 coppro: sure, but the question seems to imply some confusion to me 03:54:37 elliott: I was just asking for clarification 03:54:43 then, yes, that's true 03:55:01 elliott: because the docs give an implicit-pameter version of sort and I wanted to make sure it wasn't drop-in replaceable 03:55:16 > ?cmp = cmp 03:55:16 : parse error on input `=' 03:55:25 right 03:55:32 I'm not sure why implicit parameters exist, tbh 03:55:33 they're kind of ugly. 03:55:53 I'm not really partial to them myself 03:56:00 they would be nice as a sort of 'named argument' thing 03:57:10 they're supposed to be a way to pass configuration without making your code all monadic 03:57:37 ah 03:58:01 that smells of an excuse to retain technical purity 03:58:19 while introducing all the issues of global state 03:58:48 it's not truly global, you can redefine implicit parameters in different calls 03:59:53 yeah, and they only affect calls later in the stack 04:00:00 I still wouldn't want to use it for that though 04:00:12 * elliott has never used them apart from to make lambdabot give nicer signatures for examples. 04:00:52 Why didn't I use IntelliJ IDEA from the start, this is so much less painful. 04:01:46 face magice 04:01:56 coppro: wat 04:02:06 elliott: it is magical ice of the face 04:02:09 face magice 04:02:13 ah. 04:02:43 oleg et al. made a different method to put configurations in typeclasses, which uses a horrible hack passing through the ffi to support inserting arbitrary runtime values. it's in the reflection package on hackage. 04:02:44 you see, face magice is notable for its complete lack of zepto 04:03:09 your problem, lack of zepto, was probably caused by it 04:04:00 @hoogle reify 04:04:01 Language.Haskell.TH reify :: Name -> Q Info 04:04:01 Language.Haskell.TH.Syntax reify :: Name -> Q Info 04:04:01 Language.Haskell.TH.Syntax qReify :: Quasi m => Name -> m Info 04:04:06 bah 04:04:13 http://hackage.haskell.org/packages/archive/reflection/0.4.0/doc/html/Data-Reflection.html 04:04:15 @hoogle Reified 04:04:15 No results found 04:04:19 yw 04:04:21 yes 04:04:28 um i know where it is 04:04:36 reify :: a -> (forall s. Reifies s a => Proxy s -> w) -> w 04:05:30 that part is rather elegant, but the horrible hack to get around ghc's lack of any way to put runtime values directly into typeclasses, not so much. 04:06:21 a Functional Pearl 04:08:16 oerjan: :D 04:08:32 oerjan: what does that actually mean, runtime values directly into typeclasses? 04:08:52 Behold my ugly, heavy iron: http://i.imgur.com/PkWCv.png 04:09:18 in pure haskell there is no way to make a new class instance whose methods depend on a runtime value 04:09:34 this abstract is funky 04:09:40 oerjan: that's as easy as just unsafePerformIO (readIORef globalIORef) isn't it 04:09:48 I mean, sure, /ugly/, but not _that_ ugly 04:09:51 This 04:09:52 problem is common in all software systems, but particularly acute 04:09:52 in Haskell, where currently the most popular solution relies on un- 04:09:52 safe operations and compiler pragmas. 04:09:52 We solve the configurations problem in Haskell using only sta- ble and widely implemented language features like the type-class system. 04:10:16 elliott: well it's ridiculously inefficient if you want to many reifications :P 04:10:23 *to do 04:10:37 this makes it sound so clean 04:10:40 internally I mean 04:10:59 like if you want to do modulo arithmetic with many different moduli in the way the paper shows 04:11:51 ok where does it do the horrible ugly ffi stuff 04:12:41 to handle an arbitrary value it makes an ffi pointer to the value, then converts that pointer into a string 04:12:56 mind boggled 04:12:57 then encodes the string in the type system 04:13:05 double boggle 04:13:41 oerjan: amazing 04:13:49 ffi in the type systme 04:13:50 thanks oleg 04:14:25 which then gives a type which has the right Reifies instance to reconstruct the string, convert back to the pointer, and then extract the value :P 04:14:45 and of course the ffi part uses unsafePerformIO 04:15:43 -!- xxxx has joined. 04:16:14 [Haskell-cafe] Type checking oddity -- maybe my own confusion oleg at okmij.org 04:16:14 yeah _right_ 04:16:48 oh wait 04:16:51 that was a reply :) 04:20:17 elliott: the thing is, afaict there is almost certainly a way to do this type wrapping _directly_ in ghc core. but iiuc ghc doesn't currently have a way to compile from core format... 04:20:21 -!- zzo38 has joined. 04:20:56 -!- xxxx has quit (Quit: Leaving.). 04:31:50 -!- elliott has quit (Remote host closed the connection). 04:33:25 xkcd :D 04:35:50 * Sgeo has actally held his laptop like that :/ 04:35:59 -!- elliott has joined. 04:36:30 I don't suppose there are any Maven experts that haven't answered previously just hanging around :) 04:39:27 only mavericks 04:40:38 -!- oerjan has quit (Quit: Good night). 04:42:22 so it seems it doesnt take randall long to go from saying "i want to make cancer jokes" to making things that aren't really jokes but are definitely about cancer... 04:43:30 -!- azaq23 has joined. 04:43:32 when did he say that 04:44:41 this week i think 04:44:51 on the blog 04:45:46 He said "talk (and draw comics) about stuff", not "make jokes". 04:46:18 fizzie: I bet you're a total Maven expert. 04:46:22 Mexpert. 04:46:33 (There's a "new blog post" link on at least the m.xkcd.com comic page, otherwise I wouldn't have noticed.) 04:46:51 Mav-pert. Per-vert. No, I'm really not. 04:47:05 Not even the LITTLEST bit???? 04:47:19 fizzie: sorry i didn't mean to imply that a humor comic strip should be jokes 04:48:07 Not even the. I know about some projects that use Maven, but I've never even taken a look. 04:48:21 fizzie: SOOOOOOOOOOOOO LAAAAAAAAAAME 04:50:20 I can't believe this is non-trivial >_< 04:55:49 I'm not sure which I like more, Homestuck music or some Doctor Who music 04:56:02 http://www.youtube.com/watch?v=I80pc9jZ_t8 (The Pandorica Opens spoilers) 05:01:24 "I use XML for complex config, and haven't gotten very many complaints from it. Nothing like the YML issues Permissions and GM cause." 05:01:33 ah yes; XML is much simpler than YAML 05:09:37 -!- cheater_ has joined. 05:21:11 -!- cheater_ has quit (Ping timeout: 255 seconds). 05:24:22 -!- pingveno has quit (Read error: Operation timed out). 05:26:08 -!- olsner has quit (Ping timeout: 255 seconds). 05:27:02 -!- Lymee has quit (Ping timeout: 255 seconds). 05:28:36 -!- pingveno has joined. 05:31:59 I have checked what happens when sending a message from the UNIX mail account at FreeGeek to the internet (I used Mailinator service to test). What happens is the from address is specified as black@beryllium.shop.lan (which is not a valid internet email address) 05:32:13 I told them to use telephone, though, so it is OK. 05:33:39 zzo38, not this FreeGeek? http://www.freegeek.org/ 05:33:58 Correct, not that FreeGeek. It is this FreeGeek: http://www.freegeekvancouver.org/ 05:34:37 Sgeo: you're a bit late on linking that here 05:34:50 Sgeo: I linked it a few days ago 05:35:07 I'm only linking it because it made no sense as being something that zzo38 was talking about 05:35:15 But zzo38's thing is the same sort of thing 05:35:19 not that 05:35:21 the doctor who 05:35:25 Oh 05:35:50 I love that they included the awesome speech 05:36:31 The speech is kind of [spoiler] given the later context 05:36:52 only a little 05:37:09 it doesn't spoil any major twists 05:37:36 No, I don't mean that it's a spoiler, just that later events in the episode kind of ... 05:37:57 uh... pm? 05:38:04 I fixed some things for them at FreeGeek, including fixing the drive wiping script, and I use TeX to print out stuff they need. 05:39:18 -!- olsner has joined. 05:39:30 Wow. Headphones in my ownership tend to die within days, apparently 05:43:15 Is there such a thing as headphones that don't get damaged easily? 05:45:03 yes, headphones you don't own 05:45:20 lo 05:45:21 lol 05:46:44 Perhaps you are just using them wrong? 05:47:08 I need headphones that can take the abuse 05:47:31 Hmm, now I'm wondering if I could replace my HD with solid-state 05:47:32 dont abuse them 05:47:46 Or get a box that can take the abuse, and put them in that. 05:48:05 put head in box 05:48:10 quality audio 05:48:29 It also doubles as the canonical paper bag to hide your FACE in. 05:48:34 (Was that mean?) 05:48:40 sgeo has an ugly face 05:48:45 oh 05:48:51 I misread 05:49:11 I thought I was building off of a sort of joke I would make, not spoiling one of the sort someone else would make 05:49:14 :'( 05:49:31 :D 05:50:10 My personal problem with 'phones is that if I ever accidentally leave the cord visible, the cat's attacking it within ten minutes. 05:50:39 * pikhq_ did not realise just how absurd modem autonegotiation is... 05:50:58 It goes down to 300 baud. 05:51:29 In precisely the same format as the second model of modem. 05:51:46 second model? What about the first? 05:51:47 From 1962. 05:51:56 Sgeo: 110 baud. Can't negotiate down to that. 05:52:33 Hmm. 05:53:10 Incidentally, it's a bit too slow to get TCP working. 05:53:18 (though IP works just fine) 05:54:44 And, of course, you could dial into a terminal server. 05:54:55 One with a modern, off-the-shelf 56k modem. 05:55:01 Using a 300 baud modem from 1962. 06:03:21 I wonder how well that works in practice with the specialized v.90/v.92 uplink hardware, which aren't off-the-shelf modems. (Two nominally "56k" modems can't get that speed when connecting to each other; you can only get 56k downlink when connecting to something that has an all-digital connection to the telephone service.) 06:03:38 There were all kinds of modem incompatibility issues in the dialup days already. 06:10:06 fizzie: Actually, in order to work *at all* a modem has to support 300 baud. 06:10:31 fizzie: The autonegotiation works by initiating a connection in 300 baud, and then communicating what rates they support. 06:11:21 Well, there is that. I don't envy modem-makers, what with all the different modulation schemes and all. 06:16:49 Maybe I should use wireless headphones? 06:17:45 Wikipedia's view on the speed negotiation is a bit different, though. 06:18:06 http://en.wikipedia.org/wiki/Microcom_Networking_Protocol#MNP_6 06:18:09 "A less notable addition to MNP 6 was Universal Link Negotiation. With the introduction of additional modulation modes, notably v.32 and later additions, the modems on either end of the link had to spend an increasing amount of time negotiating a common standard. For instance, a v.32bis modem would first send tones into the line to try to get a 14.4 link; if that failed after a time, it would try 9600, 2400 and finally 1200 bit/s. Since each of these standards 06:18:09 defined a minimum period of time to "try" for a link, the delay grew over 10 seconds. 06:18:09 ULN avoided this delay by always negotiating the link at 2400 bit/s with no error-correction turned on. Although this eliminated compatibility with older 1200 bit/s modems, by this point in time they were extremely rare. Once the connection was made, which occurred quickly, both modems sent a small identification string to the remote modem. Both modems then examined the string and selected the fastest common mode. The caller then re-negotiated once at that high 06:18:13 er speed." 06:18:25 (I make no claims of having any knowledge about this.) 06:19:19 Maybe the later LAPM thing does autonegotiation like that. 06:32:05 -!- foocraft has quit (Quit: if you're going....to san. fran. cisco!!!). 06:39:41 -!- monqy has quit (Quit: hello). 06:43:21 The speakers in my computer is a bit broken 06:43:43 just a little bit? 06:44:42 It toggles a bit here and there, I suppose. 06:45:28 Now I put my own D&D character and also my brother's D&D character into the computer. I still don't have my brother's D&D character's name yet. 06:46:10 My character helped his character to escape from an island of slaves by going on a merchant ship. 06:47:15 Do you think it is a good story? 06:50:04 http://zzo38computer.cjb.net/dnd/recording/level20.tex 06:53:09 fizzie: OK Java has just done something so mind-boggling to me that I absolutely must speak to someone with a basic knowledge of Java to confirm that this is the case do you know someone. 06:55:25 I've heard of Java, doesn't it have something to do with coffee? 06:55:31 Yes. 06:55:48 (In that when you see some Java, you'll spit your coffee on the screen.) 06:55:54 Is Map, String> seriously incompatible with HashMap, String> because Set =/= HashSet? 06:56:08 And doesn't that completely defeat the point of using abstract interfaces?! 06:59:13 It is, yes, but HashMap, String> is compatible with Map, String>. 07:00:20 fizzie: Yeah, but I'm not typing "? extends Set" into the type signature of a local variable that I instantiate to a concrete type on the same line. 07:00:23 That's just too ridiculous. 07:01:18 I wouldn't necessarily bother using the abstract names on things that are instantiated on the same line, anyway. It's still one "place" to change, even if it's a bit bad. 07:01:43 Well, at least when they cause problems, anyway. 07:03:53 I don't understand your second sentence there. 07:03:56 One place to change what? 07:06:45 When you have a "HashMap foo = new HashMap();", it's still just one line to edit if you change from HashMaps to TreeMaps for some reason. Though on a second look I guess your case is a bit different, since it's the "inner" type you didn't want to fix in place. 07:07:45 @SuppressWarnings("unchecked") List commandAliases = (List) command.get("aliases"); 07:07:45 I wonder what this even compiles down to. 07:07:52 I mean, it has no concrete interface to go by. 07:09:12 Now that I look at it, why can't you just have "Map, String> foo = new HashMap, String>();" as your concrete-typed local variable? You can use HashSets as the keys of that map just fine then. 07:10:20 Someone in here (I think it was quintopia) asked me to write document of FurryScript in esolang wiki. Now I did it is User:Zzo38/FurryScript 07:12:33 (Document is currently incomplete) 07:13:11 If you have more script, type on User_talk:Zzo38/FurryScript and I might add the script into my collection 07:13:26 fizzie: Oh, you can? Cool. 07:21:52 I have a idea of format of playing pokemon card. Both decks are made at random (with some constraints). Second time, swap decks. At beginning of game after picking up 7 cards, bet secretly who win, and separately bet method of winning (regardless of winner). When a side card is picked up, previous bet is revealed and both players bet secretly method of winning. Each correct bet +1 point, winner +3 points, overmate +2 each, tie +1 each player. 07:23:20 After 2 duels, make up random deck again but players have choice to retain some cards from the 120 pooled cards you can pick. First player 60 points wins a match. 07:29:04 If both players make or exceed 60 at the same time, whoever has more points wins the match. If both players make or exceed 60 at same time and also have the same number of points in total, the match ends in a tie. If no player makes at least 59 points in 20 duels, the match ends in a draw (if you make 59 you can play once more hopefully you can win) 07:29:43 Sorry, it should be 30 duels or 40 duels, not 20 duels 07:31:43 And you refrain from betting if one or both player has no more side cards remaining. 07:33:03 Bet who wins: * Self * Opponent * Tie 07:33:43 Bet method of win: * Zero side cards remain * No opponent's card in play * No opponent's card in deck * Simultaneous no side card and no card in opponent's play * Tie game 07:34:40 no 07:35:23 elliott: Are you answering me? If so, which one? Nothing after your previous message, I type questions! 07:35:32 It is not questions. 07:39:42 -!- cheater_ has joined. 07:40:29 -!- cheater_ has quit (Client Quit). 07:40:34 -!- cheater_ has joined. 07:40:48 Method of overmate: If you take more side cards than you have, each side card you would take extra is worth one overmate. If you run out of side card and opponent no cards in play simultaneous, is worth one overmate. If winning by no side card or no opponent's card in play, you score one overmate for each player with zero cards in draw pile. 07:41:10 That makes you can have potentially a maximum of eight overmate. 07:42:04 These betting and overmate can affect the strategy and bluff and other aspects of the game!! 08:03:16 -!- Phantom_Hoover has joined. 08:04:40 -!- zzo38 has quit (Remote host closed the connection). 08:20:59 -!- Taneb has joined. 08:21:57 Hello 08:22:02 hi 08:25:40 What's up? 08:27:09 ↑ 08:49:42 -!- elliott has quit (Remote host closed the connection). 08:50:20 -!- elliott has joined. 08:50:23 -!- elliott has quit (Changing host). 08:50:23 -!- elliott has joined. 09:01:29 -!- elliott has quit (Remote host closed the connection). 09:01:54 -!- elliott has joined. 09:11:21 -!- rodgort has quit (Quit: ERC Version 5.3 (IRC client for Emacs)). 09:11:35 -!- rodgort has joined. 09:23:44 -!- cheater_ has quit (Ping timeout: 255 seconds). 09:27:52 -!- cheater_ has joined. 09:30:49 -!- CakeProphet has joined. 09:31:04 :o 09:31:42 why on earth is TypeSynonymInstances not default for GHC... 09:32:01 Because life is not perfect 09:32:12 This is a good reason. 09:36:06 I wonder where my mind went. 09:40:13 I nicked it 09:41:16 That's an idea 09:41:27 An esolang with only the keyword "Nicked" 09:42:11 I believe that would imply that the set of valid programs is countable. 09:42:29 Nicked has two meanings 09:42:34 stolen and arrested 09:42:46 You can map each program to a natural number by counting the number of "Nicked" substrings. 09:43:52 I'm pretty sure most languages' set of valid programs are countable 09:44:19 Brainfuck, for example, each character can be converted into a base-8 digit 09:44:48 I don't know. It gets more complicated to map each program to a natural number with languages like C. 09:45:06 but... I have difficulties determining what is countable and what isn't... 09:45:12 No it doesn't, as long as you don't need each natural number to be a valid program. 09:45:38 but then you haven't found the set of valid programs... 09:45:55 yeah the number of valid strings in an alphabet is countable. 09:46:20 > (`replicateM` "abc") >>= [0..] 09:46:21 Couldn't match expected type `[[GHC.Types.Char]] 09:46:21 ... 09:46:30 > (`replicateM` "abc") =<< [0..] 09:46:31 ["","a","b","c","aa","ab","ac","ba","bb","bc","ca","cb","cc","aaa","aab","a... 09:46:38 there, I counted them. 09:46:42 :D 09:48:58 By definition, any Turing-Complete program can be translated into Brainfuck 09:49:15 Therefore, any Turing-Complete language has a countable number of prograns 09:49:20 *programs 09:49:22 but it's possible that each valid C program can be assigned a natural number. I'm just not really sure what kind of algorithm would apply the mapping... 09:49:37 it seems that for each subexpression there are infinitely many variations, so it can't be counted. 09:49:52 There are infinitely many integers 09:50:14 but it's possible that each valid C program can be assigned a natural number. I'm just not really sure what kind of algorithm would apply the mapping... 09:50:15 Taneb: is that true? I don't think a C to brainfuck translator has ever been made. 09:50:22 yes, it has 09:50:22 twice 09:50:32 argh, Bifro has been removed 09:50:48 so, is it true that you can translate every language to another? 09:50:54 (I wrote a computable BF<->nat bijection once) 09:50:58 Every Turing-Complete part 09:51:01 right. 09:51:08 CakeProphet: Dude, being able to run other Turing-complete languages is pretty much the DEFINITION of Turing-completeness. 09:51:21 Excluding file-manipulation and IO and stuff 09:51:25 that's not the same thing as being translatable. 09:51:42 It is in all non-contrived examples. 09:51:53 For contrived examples see http://esolangs.org/wiki/%E2%84%92. 09:52:19 anyways, I'm not claiming to know the answer. I'm just reasoning by intuition. 09:52:39 Intuition doesn't really work with countability 09:52:50 this is probably why I am terrible at that. :P 09:53:20 Right. Mapping brainfuck programs to integers is trivial 09:53:25 of course. 09:53:28 Taneb: It's not quite trivial if you want a bijection 09:53:30 (with the naturals) 09:53:38 It's not _difficult_ 09:53:48 Although finding an encoding that doesn't blow up into massive numbers for anything with nested loops is 09:54:26 Just convert each character to a base-8 digit! Integer mapping! Unique number for each programming! 09:55:28 And, as, by definition, any turing-complete language can simulate any other, all turing-complete languages can be simulated by brainfuck 09:55:45 Taneb: Nope 09:55:50 [ is not a valid brainfuck program 09:55:52 Nor is ] 09:55:56 Nor is anything without balanced brackets 09:56:14 Don't bother continuing the train of thought, I already spent a day doing so and thus was produced Bifro :-P 09:56:15 > filter (even . length . filter (`elem` "[]")) $ (`replicateM` "+-[]<>.,") =<< [0..] 09:56:17 ["","+","-","<",">",".",",","++","+-","+<","+>","+.","+,","-+","--","-<","-... 09:56:28 That's why you should use befunge instead, no such thing as an invalid program 09:56:32 no, that doesn't work... 09:56:32 CakeProphet: [ is not a valid brainfuck program. ] is not a valid brainfuck program. 09:56:38 CakeProphet: oerjan also already made a oneliner to do it 09:57:00 It generates even larger naturals, however, and isn't constant-time to map prog->nat 09:57:08 Well, not even the other way, but that's because of the choice of data structure 09:57:43 Just because it allows invalid programs doesn't make the system invalid 09:57:53 Taneb: It makes it not a bijection 09:58:00 > filter (\x -> (length . filter (=='[') $ x) == (length . filter (==']') $ x)) $ (`replicateM` "+-[]<>.,") =<< [0..] 09:58:02 ["","+","-","<",">",".",",","++","+-","+<","+>","+.","+,","-+","--","-<","-... 09:58:15 Taneb: Because if the non-program [ maps to 9, then what program does 9 map to? 09:58:19 And as long as you don't need a bijection, the same thing in C is equally trivial, just with a larger alphabet. 09:58:20 But still countable 09:58:57 that's not including comments. 09:59:24 Comments do not affect the program. 09:59:43 Neither does replacing quicksort with mergesort 09:59:48 elliott: but what you are saying is that I can make a Java to bf translator. It is completely theoretically possible? 09:59:52 You think those should produce equal numbers too? 10:00:04 CakeProphet: I am rather disturbed that you haven't realised this earlier. 10:00:08 CakeProphet: Obviously this is ignoring I/O issues. 10:00:13 CakeProphet: Ask ais about gcc-bf. 10:00:22 Any ASCII string can be converted into a base-128 number 10:00:52 Taneb: that doens't really prove anything about programming languages. 10:01:37 As the vast majority of programming languages use ASCII, there must be less valid programs for a particular language than there are valid ASCII strings 10:01:38 hmmm, well, okay yes it does. 10:01:56 because the valid programs of a language are a subset of this. 10:02:36 elliott: but isn't ignoring IO issues a huge problem in writing a complete translator? 10:02:44 Hmm, I need Lymia here so I can get her to coerce the right people to expose something through the Bukkit API 10:02:53 CakeProphet: IO is not part of the definition of computational classes. 10:03:18 elliott: "Besides, with PSOX..." 10:03:23 CakeProphet: Nothing's stopping you giving brainfuck file capabilities, say, by feeding its input and output to a program ... yeah, what fizzie said. 10:03:31 Honestly you should know this off by heart. :p 10:03:41 okay, but it's still impossible to write a Java to bf translator because of that. 10:03:51 because Java can read from multiple input and output sources. 10:03:54 while bf has only one 10:04:22 Not necessarily 10:04:31 You could have a Java implementation that errored out on every file operation. 10:04:33 That's as simple as mapping rational numbers to integers 10:04:47 elliott: ha... 10:04:47 Anyway, you're confusing library and core language. 10:04:58 Not "ha"; that's how Microsoft got Windows declared POSIX-compliant. 10:06:19 Actually, I think you're confusing "a Java to bf translator" with whatever you think I'm talking about. 10:07:01 I'm feeling bored, I may install Haiku 10:07:54 Taneb: Install Debian GNU/Hurd, they're going to give it an "official release" status in Debian wheezy, I hear. 10:10:18 so, I believe a translator is possible if the input string is known at translation. 10:10:39 "Input string"? 10:10:54 ah, no, because Java can also write to multiple output sources. 10:11:40 Java's class library can also speak to the network and open windows on some screens, but all those are just boring practical details that you can ignore and/or work around. 10:11:58 If you say "theoretically possible", it's not very surprising people interpret you in a theoretical computer science context. 10:12:02 Like I said, you can map all that to the byte input and output facilities BF has. 10:12:06 It's all a matter of interpretation. 10:12:09 "boring practical details you can ignore" means that the kind of translator I'm talking about is impossible. 10:12:15 Ooh, ooh, wait. 10:12:18 * [PoppaVic] (~pops@unaffiliated/poppavic): It's all translators and context 10:12:24 It's all translators and context, that's what it is. 10:12:42 CakeProphet: It isn't; you just need to interpret the input and output streams unconventionally. 10:12:58 Rather than a console, you just need to interpret it as an IO layer. 10:13:04 It's nothing special/interesting/theoretically important. 10:13:08 -!- rodgort has quit (Quit: ERC Version 5.3 (IRC client for Emacs)). 10:13:11 elliott: yes, there needs to be a seperate program to map the input and output streams to locations. 10:13:24 -!- rodgort has joined. 10:13:36 because for bf, the inputs all have to be concatenated together, as do the outputs. There is a seperate program that has to sort out what goes where... 10:13:44 which means that bf cannot do everything Java can do. 10:13:50 "Separate program" 10:13:54 A console is a "separate program" in that sense too. 10:14:12 indeed. 10:14:15 Sorry, but if you're going to use the word "theoretically", you can't jumble it up with vagueness related to the various minutiae of operating systems. 10:14:34 Such a translator is perfectly possible, it would just require another program to implement /on Unix/. 10:14:39 You said "theoretically", so Unix is irrelevant. 10:14:53 It is possible to translate Java programs to brainfuck programs. 10:15:10 okay, but why is there no theoretical way to talk about input and output to multiple sources? 10:15:46 When did I say there isn't? The question is completely irrelevant to the question of whether there exists such a translator. 10:15:52 For any Turing-equivalent machine m, it is possible to map any initialization for m to a unique integer. 10:16:49 Can we agree that true? 10:17:31 yes. 10:17:42 here is my question 10:17:45 -!- zzo38 has joined. 10:17:55 what is it that makes a Java program identical to a bf program for the purposes of translation? 10:18:02 turing-completeness 10:18:08 well 10:18:10 turing-equivalence 10:18:19 which is? 10:18:35 Being computationally equivalent to a Turing machine 10:18:43 intuitively, at least, I would that they perform the same computations. 10:18:47 Taneb: universal turing machine 10:18:50 *would think 10:18:51 CakeProphet: do you know the definition of turing complete 10:19:06 Not formally, no. 10:19:08 this article might help clear up any questions you have: http://esolangs.org/wiki/Turing-complete 10:19:14 ugh wait 10:19:17 the first paragraph is idiotic 10:19:24 http://en.wikipedia.org/wiki/Turing_completeness 10:19:27 heh, i guessed right, it's cpressey's fault 10:19:48 Taneb: that might be better, yes. 10:20:05 okay, so I certainly belive that bf and Java can compute anything a universal Turing Machine can. 10:20:24 but... I do not believe that can be translated perfectly. A complete mapping of valid Java programs to bf programs. 10:20:35 then you are wrong. have a nice day. 10:21:02 because I cannot translate netbeans to bf. 10:21:07 You can't say that, you have to say why he is wrong 10:21:10 Elliott 10:21:45 Taneb: I would, but he's expecting explanations like a teacher would give, while arguing like a peer, and I'm busy 10:22:00 Fair enough 10:22:15 I've got the time, but not the know-how 10:22:34 We just need oerjan to out-grumpy everyone until they shut up and agree. 10:22:47 For any algorithm that can be defined in Java, that algorithm can be defined in brainfuck 10:23:08 And, indeed, Lazy K or Befunge-98 10:23:11 hmmm, okay, I think I understand actually. 10:23:11 CakeProphet: Seriously, if you talk about "translating in theory", then people are going to take the computational-complexity view on this. If you say something like "Java runtime has all kinds of IO-related features that Brainfuck implementations don't tend to have, and the Brainfuck language doesn't exactly define", then I don't think you'll get so many people disagreeing. 10:23:41 (Though the latter's a really inane statement to make.) 10:23:42 no, I was not originally talking about theory, it came up as part of the conversation. I am saying that you cannot translate to Jave to bf perfectly so that the same thing happens despite a change in language. 10:24:01 but, I understand, that for theoretical purposes, where the IO goes does not matter. 10:24:06 the only thing that is important is the computations. 10:24:27 fizzie: thanks 10:24:39 (for saying what i would have, but better) 10:24:53 and that Java programs themselves rely on other programs to put the input and output of programs into different locations.. 10:25:12 yes, this is pretty vague.. 10:25:24 Such as OpenGL 10:25:32 CakeProphet: what you do not realise is that brainfuck's IO perfectly admits _interpretations_ that allow it to do just as much as Java. 10:25:43 there is nothing saying that the input stream has to be hooked up directly to the user, or the output stream directly to the user. 10:25:59 I didn't suggest that. 10:26:12 but, if two programs in two different language compute the same thing, shouldn't they produce the same output? 10:26:12 Java-the-language doesn't really define any form of IO, anyway. There's Java-the-class-library (also called Java) which does, but the part that's called "Java language specification" doesn't. 10:26:15 well, what you are saying is so completely vague that I have no idea how to respond to it apart from that. 10:26:36 Turing machines are the archetype of turing completeness, and yet have no IO 10:27:06 I is manipulating the data tape before runtime and O is looking at the data type after the program halts 10:27:13 *tape, not type 10:28:18 but I still feel that there should be some way to explain why Java programs cannot perfectly translate to bf and produce the same result... 10:28:27 but, if two programs in two different language compute the same thing, shouldn't they produce the same output? 10:28:27 Phantom_Hoover: You have 1 new message. '/msg lambdabot @messages' to read it. 10:28:45 I *think*, but don't quote me on this, that it can be phrased in terms of bijections. 10:29:16 Phantom_Hoover: that is basically what i was trying to convey with my interpretation-of-IO talk. 10:29:23 PSOX being a "real-world" example. 10:29:33 CakeProphet: There is no way because they can. 10:30:08 PSOX? Phantasy Star Online for XBox? 10:30:09 I cannot be convinced until there is a bf program that is equivalent to netbeans. 10:30:28 CakeProphet: Enjoy wallowing in your self-created ignorance then? 10:30:30 Taneb, check the wiki; also years of logs because it turned into a Sgeo-meme. 10:30:48 CakeProphet:The framework or the IDE? 10:30:53 the IDe. 10:31:24 What's a Sge​o-meme 10:31:38 FFS, is the term for computational equivalence not 'computational equivalence'? 10:31:39 Deewiant: A rare South-American insect. 10:31:46 Googling it only turns up Wolfram crap. 10:32:07 but I was never really talking about computational equivalence... 10:32:09 Deewiant: No cheating please. 10:32:10 not initially. 10:32:28 Deewiant: Yeah, don't you cheat 10:32:30 I understand that all Java programs are computationally equivalent to some BF program. 10:32:31 zzo38: What am I cheating 10:33:16 but I am specifically saying that the BF language, by itself, cannot be used to create an IDE, while Java can. 10:33:19 Or maybe I just have the wront fonts or encoding selected. 10:33:31 and that there is something that makes these languages non-equivalent for the purposes of translation. 10:33:32 Deewiant: Stop that incessant cheating! 10:33:43 Deewiant: CHEATING IS FUCKING UNACCEPTABLE 10:34:09 I think I'll just keep doing what I was doing 10:34:19 brb 10:34:23 -!- Taneb has changed nick to TanebAway. 10:34:24 Deewiant: I have no idea what zzo is talking about, I just felt like accusing you 10:34:31 Deewiant: Same here. 10:34:37 Yeah, I realized that 10:34:40 Deewiant: You're somehow so... well-accusable. 10:34:41 I do know what he's talking about 10:34:43 It is also possible I am wrong 10:34:55 Due to wrong fonts or encoding 10:35:02 otherwise I could run a magical program that transforms every piece of Java software into a BF program that is exactly the same in every way. I run the BF program, and I can use it to edit text files on my file system. 10:36:13 CakeProphet: Your repeated refusal to understand how IO streams can be viewed in different ways and this is the only thing that makes BF IO's normal interpretation different from the Java class library IO's normal interpretation will not make your statements any more relevant, or your objections any more true 10:36:31 You should probably focus on trying to understand why you're wrong instead of convincing us we are 10:36:33 elliott: His point is just that you need a wrapper written in non-BF 10:36:47 elliott: I am saying that no one has shown that I am wrong. 10:37:03 Deewiant: That's an operating system detail; nothing says the BF streams have to be connected directly to a console 10:37:32 Like I said, a Java program could output and take input in PSOX form directly with a console, just as much as a BF interpreter could have PSOX built right in 10:37:34 elliott: when have I mentioned a console? I am talking about input and output... 10:37:50 CakeProphet: I give up. 10:38:03 -!- TanebAway has changed nick to Taneb. 10:38:06 Back 10:38:46 As far as I can make out, the point is the "Java runtime has features that Brainfuck implementations don't have, and the Brainfuck standard -- such as it is -- doesn't require" one, but I can't quite figure out why that's a point that would be necessary to make. 10:38:58 because it's all he has left? 10:39:16 because that point makes a complete translation impossible. 10:39:21 wrong. 10:39:28 As bf does not have a standard IO implementation, it could be assumed that the IO uses PSOX 10:39:29 The point is just that you need to distribute something non-BF in the BF environment that implements the Java 10:39:40 without relying on a seperate program, yes. 10:39:42 Deewiant: You need to distribute something non-BF in the BF environment 10:39:44 i.e. a BF interpreter 10:39:56 elliott: and these interpreter will write to different files how? 10:39:56 elliott: Right, just as you need a JVM in the Java 10:39:58 CakeProphet, where does it say in the spec, for instance, that , and . read and write ASCII characters? 10:40:01 Deewiant: Right 10:40:01 by.... creating a new language. 10:40:06 Deewiant: So that's really not what he's saying 10:40:31 Phantom_Hoover: nowhere. 10:40:45 ..that isn't what I'm talking about. I haven't even mentioned ASCII. 10:41:00 Phantom_Hoover: 10:41:00 . Outputs ASCII code under pointer 10:41:01 , Reads char and stores ASCII under ptr 10:41:37 Deewiant, dammit. 10:42:00 It is impossible, in one bf program, to output "Hello" to stream A, and "World" to stream B, without fundamentally altering the language. 10:42:05 Deewiant: If we go by Müller, BF is sub-Turing and this whole idiocy is irrelevant 10:42:15 it is very possible in Java to do this. 10:42:24 elliott: I figure the difference is just that if you take a standard JVM that's all you need, but if you take a standard BF you need something on top 10:42:27 Deewiant: Anyway, you could easily implement a conversion layer on , and . without violating the spec 10:42:34 elliott: Müller's spec doesn't look sub-Turing 10:42:41 Well, OK, but his impls were 10:42:42 Deewiant: Sure, but "standard" is purely a cultural/conventional thing 10:42:45 CakeProphet, hey, suppose I make an interpreter that writes every other character output to a different stream? 10:42:53 this has nothing to do with theoretics. I am saying no practical translator exists. Why is my assertion immediately interpretered as theoretical? 10:43:01 Deewiant: CakeProphet cannot prove something mathematically impossible just because of cultural norms 10:43:35 elliott, FFS, he has acknowledged that they're computationally equivalent. 10:44:15 Phantom_Hoover: Yes, but he's still trying to make a separate point, and that point is wrong 10:44:32 CakeProphet: Because you said "theoretically"? 10:44:37 CakeProphet: Because you're using absolutes like "cannot"? 10:45:32 right, I asked "is it theoretically possible?" 10:45:39 and it is not.. 10:45:41 I've completely lost focus on this debate, so I'm going to make a bf interpreter piping all IO through PSOX 10:45:43 If your statement is "You can't expect a translated Java-to-BF program to have the same IO semantics when interpreted by an implementation that has different IO semantics in practice"... well, that's literally a direct tautology, and also not what you're saying. 10:45:45 CakeProphet: Yes, it _is_. 10:45:53 I am done with this. 10:46:06 CakeProphet: Also defining in which "streams" (whatever they are) the BF output goes is very much not "fundamentally altering the language", since the language doesn't say where it goes. 10:46:12 I think I'm done here too. 10:46:13 You are wrong and until you accept you are wrong and try to understand why, you can continue believing whatever you want as far as I'm concerned. 10:46:27 You'll still be wrong, though. 10:46:35 fizzie: but in Java, the language does say where the streams go. 10:46:40 there is some difference 10:46:52 in the language itself. 10:47:03 CakeProphet: The "Java Language Specification" does not even say how to make any output, so... 10:47:25 The "Java" system does, yes. 10:47:27 CakeProphet: Those streams can work just as well in the BF, with a wrapper that handles it. 10:48:28 hmmm... 10:48:52 Huh 10:48:54 You can compare the Java Language Specification document, which -- I mean, just read the name -- defines the "language itself", with the rather less formal BF language specification. 10:49:12 A bf interpreter with PSOX is suggested right in the PSOX readme 10:49:14 okay, the output has to change in order to accomodate the wrapper. 10:49:36 "python PSOX.py bf somebf.bf" 10:49:49 CakeProphet: Right, but that's internal to the translation process and doesn't matter. 10:49:53 Taneb: Well, yeah, it /is/ Sgeo's pet vapourware 10:50:21 -!- elliott has quit (Remote host closed the connection). 10:50:22 elliott, wait, PSOX was vapourware? 10:50:41 I think you just missed him 10:50:53 -!- elliott has joined. 10:51:09 Sorry, X messing up again. 10:51:11 10:50:22: elliott, wait, PSOX was vapourware? 10:51:11 Yes. 10:51:19 but doesn't the program have to compute something that is non-equivalent to the source language in order to output data differently? 10:51:22 I thought there was a kind of implementation. 10:51:31 *source program 10:51:31 There is, but it was late, and woefully incomplete. 10:51:33 Sgeo, FFS, fix your goddamn site. 10:52:37 * CakeProphet understands, to an extent, what is being said, but still thinks there is a discrepancy 10:52:38 CakeProphet: Depends on how you define "compute something that is non-equivalent". If you think printing "please print 'x' to stdout" is computationally nonequivalent to printing "x", then yes. 10:53:54 Deewiant: Oh man, that means that your libc introducing another layer of abstraction behind the scenes could cause your interpreter to become "computationally nonequivalent". 10:53:56 Sweet 10:54:10 elliott: Yep, exactly :-P 10:54:53 these differing abstractions require different computations in order to generate the write output. 10:55:04 ...heh, s/write/right/ 10:55:07 Quite true. 10:55:19 Depending on the compiler and compiler flags used, you'll also get different computations. 10:55:22 And the hardware, etc. 10:55:31 Deewiant: If those two things are not equivalent, I find it hard to believe a BF method of summing up two numbers in multiple distinct steps could ever be "equivalent" to the "computations" a JVM 'add' instruction does. 10:55:41 Deewiant: Also the underlying fabric of the physical universe your computer is in. 10:55:54 fizzie: Right. 10:55:55 Deewiant: That's what REALLY drives the computations, after all. 10:56:03 elliott: Well, the universe we can maybe assume to be constant. :-) 10:56:10 elliott: No, it's YOUR MIND that is IMAGINING the universe that drives it. 10:56:14 Deewiant: DON'T BE SO SURE 10:56:24 It's actually my mind 10:56:25 elliott: Maybe not in practice, but in theory. 10:56:39 Deewiant: But I thought CakeProphet was talking about practice now >:) 10:56:52 I am trying to fit practice with theory. 10:56:55 You are all figments of my imagination 10:57:09 Hence the silly names 10:57:25 because the theory is inadequate if it can't describe what is happening in practice. 10:57:37 Deewiant: Have fun 10:58:24 Gonna make another statement: 10:58:57 Four score and seven years ago, ... 10:59:05 Any algorithm that can be encoded in brainfuck can also in executed by Java, and vice versa. 10:59:32 *encoded in, not exexuted by 10:59:53 Right, they can both output the C code for the algorithm 11:00:15 Deewiant: DON'T BE SO SURE 11:00:20 And they can both run the algorith, if it encoded correctly 11:00:39 Well, if it isn't constant, you can assume there are some rules for the inconstancy, which is just another kind of constant. 11:00:39 There is a program compiling brainfuck codes to LLVM. And it can use optimizations of LLVM. 11:01:22 hmmm okay... 11:02:29 I don't believe a translator can determine the output of a Java program that will match the output of a bf program running in the same IO layer... 11:02:38 this makes no sense. 11:02:48 It makes perfect sense 11:02:54 It's just tricky to implement 11:03:40 None of it makes sense! It's all baloney! Aaaaaah! *sets self on fire, runs to the forest* 11:04:02 See, that's why we can't have nice stuff 11:05:26 I don't believe the formation rules of the Java language provide enough information to determine the exact output of a Java program in a way such that a bf program can be constructed that produces the same output. 11:05:34 Don't worry, the snow in the forest should put him out. 11:05:59 CakeProphet: i'm afraid you've ceased to make any sense 11:06:02 CakeProphet, *sigh*. 11:06:04 Phantom_Hoover: Oops that is too bad, because now you cannot see because there is no more fire 11:06:11 It is too dark 11:06:15 because the output of a Java program is dependent on its environment. 11:06:21 Take every output function, translate it into Brainfuck. 11:06:38 OK, you don't understand basic *programming* now. 11:07:00 zzo38, ah, but it's light until like 1 o'clock in the morning in Finland. 11:07:18 CakeProphet: indeed, a java program is a function from World to World 11:07:20 /claps 11:07:36 Phantom_Hoover: O, then it is OK. I didn't know that at first. 11:07:57 so how can a language translator, which is given only the languages and source string, know which output to produce. 11:08:01 -!- Vorpal has quit (Quit: ZNC - http://znc.sourceforge.net). 11:08:02 And dawn is so early, it's actually before midnight. 11:08:07 CakeProphet: ... 11:08:08 CakeProphet: Compilers 101 11:08:17 what Deewiant said 11:08:32 CakeProphet, are you actually studying anything? 11:08:39 Is there programs that can convert a native binary into LLVM code? 11:09:03 He's probably studying more than me. I just read Wikipedia from time to time. 11:09:14 "I'm a visual thinker which makes me a poor quantum physicist." 11:09:16 Phantom_Hoover: Helsinki at 01am, http://www.flickr.com/photos/ihmis-suski/4722433968/sizes/z/in/photostream/ (at least based on the name) 11:09:17 Die in a fire. 11:09:34 Phantom_Hoover: I don't know. Are you actually holding a conversation with me, or just being condescending? 11:09:36 fizzie, dear god, I was actually right? 11:09:39 zzo38: libcpu 11:09:54 CakeProphet, I'm curious, because I have absolutely no idea what you actually do. 11:10:18 Phantom_Hoover: To some degree, sure. Though only the northern part of the country's actually above the arctic circle and gets the whole "sun does not actually have time to set" thing. 11:10:25 Most people here over 18 are doing some form of CS at university. 11:10:30 Nothing. I might as well be a ghost. 11:10:35 Phantom_Hoover: Or at least some form of BS. 11:10:57 CakeProphet: let's be honest, you've been pretty condescending in assuming that you've proved everyone in here as well as pretty much everyone who has ever done CS fundamentally wrong 11:10:59 CakeProphet, it's the best. 11:11:00 Deewiant: OK. Would instruction trace data help? Some instruction trace data (not necessarily all, except in the case of restricted harvard) can be figured out by static analysis. 11:11:14 elliott: I haven't proved anything. 11:11:26 Back when I was just Hoover life was just full of walls and doors and things holding me back. 11:11:38 I am seeking to understand a discrepancy that I am seeing between theory and practice. 11:11:51 No your not! 11:11:56 zzo38: I don't know, I know almost nothing about libcpu. 11:11:59 You're being overly pedantic! 11:12:16 And things seem wrong to you because you expect them to be wrong! 11:12:42 Nothing wrong pedanticism, as long as it's correct 11:12:44 [asterisk]wrong with 11:13:06 Unfortunately the highest layer of pedanticism on this issue definitely states that Java is equivalent to BF :-P 11:16:26 !perl print "Java" eq "BF" ? "equivalent" : "not equivalent" 11:16:26 not equivalent 11:16:30 Ha, proved you worng! 11:17:02 I am seeking to understand a discrepancy that I am seeing between theory and practice. 11:17:09 *There is no discrepancy*. 11:17:26 You just don't understand what computational equivalence means. 11:17:38 Phantom_Hoover: It isn't even about computational equivalence and it hasn't been for like an hour. 11:17:50 And things seem wrong to you because you expect them to be wrong! 11:17:55 It's about CakeProphet not realising that the only thing distinguishing Java and BF's IO models is basically conventional implementation techniques. 11:18:00 Is that how quotes are done here? 11:18:01 It's about cookies now. 11:18:05 Taneb: Yes. :p 11:18:12 Oh, good 11:19:12 Is that how quotes are done here? 11:19:14 -!- Vorpal has joined. 11:19:23 They're done differently elsewhere? 11:19:33 I dunno 11:19:39 I'm very rarely on IRC 11:19:57 In fact, this is pretty much the third channel I've ever been on 11:20:02 And the first on Freenode 11:20:35 The first two were pretty crazy and even less on-topic than here 11:20:47 We have to beat them! 11:21:08 The topic of discussion is now the historical merits of the Whig party. 11:21:22 Taneb: Is that... possible? 11:21:36 Evidentally 11:21:46 Evidentistry. 11:21:47 We occasionally discuss esoteric programming languages 11:22:01 Phantom_Hoover: Which Whig Party? 11:22:01 Just like here! 11:22:07 Taneb, you choose! 11:22:32 Let's do the first one on the Wikipedia redirect page 11:22:42 "A faction of the Scottish Covenanters during the 17th-century Wars of the Three Kingdoms, and the original Whigs. (See also Whigg and Whiggamore Raid)" 11:22:43 Did the two others in fact have a topic? 11:22:52 Yes 11:23:08 A small MSPAFA on the MS Paint Adventure forums, and TV Tropes 11:23:13 Respectively 11:23:20 TV Tropes does IRC? 11:23:25 Yeah 11:23:32 Taneb, oh, you're an MSPA fan too. 11:23:38 Yep 11:23:43 main = readFile "a.txt" 11:23:46 translate to bf plz 11:23:57 fizzie: http://tvtropes.org/pmwiki/pmwiki.php/Main/TroperIRCChannel 11:24:22 * CakeProphet was told that IRC is a turing complete language. 11:24:40 You're talking about IRP, aren't you? 11:24:42 You mean IRP, right 11:24:44 Ninja'd 11:24:49 Error 709: Ninja'd 11:24:59 er, yes, that. 11:25:30 CakeProphet: .[>.] where EOF=0 11:25:30 #irp 11:25:46 But seriously, it's just a joke. 11:26:36 Please write this exact line unless it has been written more than once before. 11:26:53 Done. 11:27:06 IRP is a bit nondeterministic. 11:27:11 CakeProphet: ++++++++++[>++++++++++>+++++++++>++++++++++>+++++++++++>+++>++++++>+++>+++++++++++>++++++++++>+++++++++>++++++++++>+++++++>++++++++++>++++++++++>++++++++++>+++>+++>+++++++++>++++>+++++++++++>++++++++++++>+++++++++++>+++<<<<<<<<<<<<<<<<<<<<<<<-]>+++++++++.>+++++++.>+++++.>.>++.>+.>++.>++++.>+.>+++++++.>.>.>+++++.>++++++++.>+.>++.>++++.>+++++++.>++++++.>++++++.>.>++++++.>++++. 11:27:18 http://www.reddit.com/r/askscience/comments/iq2nk/how_can_autistic_savants_like_kim_peek_completely/c25sdgc 11:27:31 What is it with people believing this is how the brain works. 11:27:36 Could someone roll a standard D6 and tell me the number? 11:27:38 !bf ++++++++++[>++++++++++>+++++++++>++++++++++>+++++++++++>+++>++++++>+++>+++++++++++>++++++++++>+++++++++>++++++++++>+++++++>++++++++++>++++++++++>++++++++++>+++>+++>+++++++++>++++>+++++++++++>++++++++++++>+++++++++++>+++<<<<<<<<<<<<<<<<<<<<<<<-]>+++++++++.>+++++++.>+++++.>.>++.>+.>++.>++++.>+.>+++++++.>.>.>+++++.>++++++++.>+.>++.>++++.>+++++++.>++++++.>++++++.>.>++++++.>++++. 11:27:38 Deewiant: Is that the PSOX version? :) 11:27:39 main = readFile "a.txt" 11:27:49 Aww, you should have made it the PSOX version. 11:27:50 elliott: Nah, it needs a GHC wrapper 11:27:58 Deewiant: That doesn't count, it's Turing-complete :-P 11:28:17 okay, so what you're saying 11:28:19 Well, it can be done with a simpler wrapper too 11:28:43 Deewiant: I dislike the use "wrapper" here as it implies the standard IO interpretation isn't a wrapper mapping it to standard C IO 11:28:48 Which it is, just as much as any other wrapper 11:28:53 It's not something additional 11:29:07 is that the bf program . is Turing-equivalent to main = readFile "a.txt", since there exists some wrapper that takes a null character and as a result outputs that string. 11:29:15 It's an additional layer between it and the platform 11:29:45 CakeProphet: I think everyone's lost interest in seriously "debating" this with you, so I'm just going to poke fun at the sidelines 11:29:51 At the sidelines. On the sidelines? Along the sidelines? 11:29:52 God knows. 11:30:01 Sidelines: Poke 11:30:03 Deewiant: So is C stdio; you'd need read/write to be direct 11:30:05 until the sidelines 11:30:08 (On Unix) 11:30:18 elliott: Yes, it is 11:30:36 elliott: that's fine, I'm only looking for serious discussion on the matter. 11:31:04 any fun-poking just suggests that you have nothing to contribute. 11:31:26 That's fighting words! 11:31:30 CakeProphet: Sure thing, Mr. Albert "Computer Science is Inadequate Because Java has GUI Widgets" Einstein. 11:31:34 fizzie, *them 11:31:48 I tried to contribute a PSOX version, but it's so complicated. :/ :\ 11:32:06 Well, unwarranted arrogance is at least not an uncommon trait in CS, so maybe CakeProphet could capitalise on this somehow. 11:34:02 fizzie: what does the PSOX version output, out of curiosity 11:34:58 The contents of a.txt. 11:35:10 awesome, thanks zzo 11:35:16 no, that's what PSOX outputs. 11:35:24 Nope. 11:36:11 Hang on, wasn't this debate originally about countability? 11:36:37 http://www.reddit.com/r/askscience/comments/ipsly/how_do_bananas_exist_why_dont_they_just_explode/ 11:36:37 Best question. 11:37:21 so then . instruction BF does not actually produce any output? 11:37:24 +of 11:38:02 CakeProphet: Do you seriously still believe you're right about this? Honestly curious. 11:38:06 because I am pretty sure a BF program that was written over PSOX would output something different than the contents of a.txt 11:38:15 I believe that would imply that the set of valid programs is countable. 11:38:21 That's what started the debate 11:38:28 "Debate" 11:38:44 CakeProphet: fiz‍zie doesn't know what the BF would output because "it's so complicated" so he didn't do it. 11:38:48 debate := shouting match 11:38:52 The PSOX version would output the contents of a.txt, when you run it in a compatible BF system, yes. As for which strings are needed to make PSOX do that, I just said it's too complicated. 11:38:56 g2g, bye 11:39:04 -!- Taneb has changed nick to TanebBeLunching. 11:39:49 so then are the Java programs that output the PSOX string required to output a.txt, and the Java program that outputs a.txt, computationally equivalent? 11:39:51 Deewiant: At the very least, when run on a non-PSOX-compliant BF systems (assuming you can find any in this day and age of PSOX dominance), it'd just output the init string and wait for you to respond. 11:40:00 because it seems they would translate to the same bf program. 11:41:17 The PSOX version of a Java program that pretended to speak the PSOX protocol in the standard output would, when run in a PSOXy BF, output whatever the PSOX version of the a.txt-outputting Java program would output when ran in a non-PSOXy BF. Clearly. 11:42:13 ...lol 11:42:18 Clearly! 11:42:31 (but no really, that makes sense) 11:43:52 Anyway, in the PSOX version you'd need to use both the . and , instructions to cause output, or even to get past the PSOX init. It's still very much BF, nevertheless. The difference would be sort-of analogous to using either fwrite() or write() in a C program to write something out. 11:47:32 hmm, so let's say I had a bf to Java translator. 11:47:32 it's very simple. constructs a resizing array and then translate bf instructions to standard Java operations on the array, with stdout and stdin IO for . and , 11:47:32 can I translate every Java program into this subset of Java? 11:47:32 With a different IO interpretation to the interpretation the programs you're translating were written for, yes. 11:47:32 doesn't that imply that the IO is meaningless? There is always a suitable interpretation for the output. 11:47:32 -!- Gregor has quit (Ping timeout: 240 seconds). 11:47:32 If you like things to imply ridiculous things that they don't actually imply: definitely. 11:47:32 -!- lambdabot has quit (Ping timeout: 240 seconds). 11:47:32 -!- glogbot has quit (Ping timeout: 276 seconds). 11:47:38 -!- esowiki has joined. 11:48:02 -!- esowiki has joined. 11:48:23 -!- esowiki has joined. 11:48:44 -!- esowiki has joined. 11:49:07 -!- esowiki has joined. 11:49:08 -!- glogbot has joined. 11:49:35 Translating Java to BF isn't really related to how your BF implementation is done, or even whether you have one. Though as a practical matter maybe you could consider a built-in PSOX support using the Java runtime's facilities. 11:49:51 -!- boily has joined. 11:49:54 That would let you stick an arbitrary amount of BF-based layers in Java programs, if they happened to run too fast. 11:50:00 (A common complaint about Java systems.) 11:50:40 it seems to me that changing the nature of the IO changes the computations required. 11:51:04 in order to make Java programs PSOX-compliant, you would first have to translate all Java programs into PSOX-compliant versions 11:51:10 then translate those to bf 11:51:26 -!- Gregor has joined. 11:51:49 in order for the bf code to be computationally equivalent to the original Java code, would means that the original Java code is computationally equivalent to the PSOX-compliant version 11:51:51 -!- Gregor has changed nick to Guest64652. 11:52:02 CakeProphet: As Deewiant has painstakingly pointed out, if you take that view, then a change in the internals of your C library can cause a program to "compute something different". 11:52:06 even though they compute differently 11:52:35 elliott: no, because changing the C library changes the C program. 11:52:35 In fact, you can't compile anything, unless it causes the universe to make the exact same state change. 11:53:00 Deewiant: Ugh, please deal with this or pass the buck on to somebody else, I'm way too busy to restate the obvious. 11:53:30 CakeProphet: If you include the dynamic libraries as part of the C program, you have to include the PSOX as part of the whatever-is-using-the-PSOX program etc 11:53:52 CakeProphet: The point in the computational equivalence is not the exact sequence of operations followed when executing; those are obviously going to be different for different languages. They're going to be different for the same language when using different compilers, too. 11:54:16 what is computational equivalence then? 11:55:15 Read the Church-Turing thesis. 11:56:03 Deewiant: What definition are you using there? Computational equivalence seems to me a much more formal notion than Church-Turing 11:56:41 A compiler from Java to BF is not going to be able to straight-forwardly map each separate Java "computation" (statement? expression?) into a distinct piece of BF code, anyway. 11:56:55 elliott: Dunno, just blurting stuff 11:58:01 So translating file.write(42); into whatever sequence of BF that is required to output the byte 42 in a PSOXy system is not really changing the "computations", or what the program in general does. 11:58:06 -!- TanebBeLunching has changed nick to Taneb. 11:58:10 Hello again 11:58:18 Taneb: hi, nothing has changed 11:58:21 Taneb: As you can see, we've been making lots of progress. 11:58:30 (Detect the optimist and the pessimist.) 11:59:04 Mumble mumble "realist" 11:59:06 so for the purposes of computation, IO is effectively a no op? 11:59:14 Yes 12:00:05 O is 12:00:09 I isn't, since it's... well, input. 12:00:14 And I can depend on O 12:00:24 But all input is available as a stack at the start of the program 12:00:56 isn't the order important? 12:01:03 Actually, for the purposes of computation, all I has already happened 12:02:17 CakeProphet: Like I've said, every program is a function from RealWorld to RealWorld 12:02:32 You can model IO of any type merely by implementing the type RealWorld 12:02:50 So PSOX provides a stream-based RealWorld type for anything with byte-based IO that handles things like file IO, networking, etc. 12:03:14 Compiling Java to BF is just picking a concrete RealWorld type, then compiling the resulting function appropriately. 12:04:26 and so that function is considered to not compute anything, or be part of the program. 12:04:43 Eh? 12:04:45 That function _is_ the program. 12:05:06 So, strictly speaking, the second part of that is true 12:05:31 The first part isn't, though 12:06:22 so a valid string in a programming language does not correspond to a program that can be translated. 12:06:44 until the source and target environments are known as well 12:06:56 What? No 12:07:07 The program doesn't need to know the source or target enviroments 12:07:23 It takes a string, and converts it into a different string 12:07:26 CakeProphet: Do you really not understand how you can compile a function without knowing its input at compile-time? 12:07:39 If you don't, I really question whether you have the slightest bit of programming knowledge at all. 12:08:10 -!- lambdabot has joined. 12:08:13 elliott: more like, without knowing how its output is supposed to be structured. 12:08:31 I just talked about defining the structure of a RealWorld type, for christ's sake. 12:09:06 The program will know the input and output formats 12:09:15 Right 12:09:19 The compiler will know it's outputting for PSOX 12:09:20 Or whatever 12:10:36 I feel like I haven't different defintiions of program and language than what you guys are talking about. 12:10:39 *have 12:10:59 To be perfectly honest I doubt you have a clear definition of either 12:12:50 from my understanding of what you guys are talking about, the actual concrete layout of a program has nothing to do with the theoretical program itself. 12:13:11 Define concrete layout 12:13:17 they do not correspond in any way. 12:13:37 If you mean that the syntactic structure of a program and the abstract computation it represents are not necessarily similar, well duh 12:13:53 CakeProphet: Do you consider gcc not a translator because it can change the logical structure of a program due to optimisation? 12:14:27 the string, or list of tokens, or whatever, that makes the source code. I have a bf program that consists of ".", and because it is hooked up to a certain environment, it is computationally equivalent to a Java quine. 12:15:04 How the hell would that work? 12:15:15 Are you saying that you want a Java quine to compile into a BF quine that outputs the same as the Java program? 12:15:18 Herp derp 12:15:19 It outputs "0" 12:15:33 I have the CakeProphetBF environment, a bf program that outputs a single null character is a quine. 12:15:36 Taneb: You could have a FuckedUpPSOX where the way to output is by printing a nul byte 12:15:46 But it's really irrelevant, CakeProphet is just confused 12:16:20 CakeProphet: You can therefore make a Java environment that does similar 12:16:36 elliott: I am saying that a Java quine is computationally equivalent to the bf program ".". 12:16:37 Except you're probably not that good at programming 12:16:44 because this environment exists. 12:16:50 No it's not 12:16:54 CakeProphet: Like I said: you're confused. 12:17:00 A quine is a program that outputs itself 12:17:05 I'm going to use my legendary buck-passing skills by pinging Deewiant and fizzie now, and go back to coding Java. 12:17:24 By translating it, unless it is a cheating quine, it outputs the untranslated version 12:19:32 I'm just going to hide here behind this convenient tree; I'm supposedly at work and all. 12:19:52 fizzie: You can't pass the buck to a TREE! 12:19:54 but I have an environment that outputs a Java quine when given a null character from the BF program. Therefore "." is computatinally equivalent to both the Java quine that it outputs and the bf program that is hooked up to stdio that outputs the java quine. 12:20:42 Only if computatinally isn't a typo and it means something that I have no idea what 12:21:25 I am not going to be able to explain what is confusing me. 12:22:04 it is computationally equivalent _in the context of your environment_. 12:22:24 In your environment, a computationally equivalent Java program would output "." 12:22:47 Taneb: um, no 12:23:30 what if the environment of the target language is restricted and cannot do the same things that the source environment can do. 12:23:31 Okay, trust elliott, he's probably more right than I am 12:23:44 for example, Java runtime compared to the standard bf environment (stdio) 12:24:24 in the context of those two environments, there are Java programs that are not translatable to bf programs. 12:24:41 Example? 12:24:47 Deewiant: Buck-passin' = bassin' 12:24:48 brbr 12:25:03 Java program that reads a.txt and outputs it. 12:25:10 to stdout 12:25:27 ah, no, that's not a good example. :P 12:26:18 anyways, it is pretty fucking early and I am tired of this... so... yeah 12:26:43 I think I have made some progress towards clarifying what I was confused about. 12:26:48 Let me know when you realise you're wrong 12:28:38 I am still positing that you cannot translate netbeans source code to a bf program that will do the exact same thing. 12:28:44 Well he's right in that the Java standard library does more than brainfuck's , and . do 12:29:09 standard bf, as it is specified. 12:30:05 Deewiant: If hooked up to a console, yes 12:30:28 CakeProphet: If you take "standard BF" to mandate the interpretation of IO, then sure. Now imagine this scenario: 12:30:33 "do the same thing" as in, windows will appear in your window manager, it is responsive to keyboard and mouse input, it will not work in the same systems that netbeans will not work in. 12:30:38 CakeProphet: The program prints out "draw a box"; "draw a line inside box A"; etc. 12:30:48 Deewiant: Two hours ago: CakeProphet: Seriously, if you talk about "translating in theory", then people are going to take the computational-complexity view on this. If you say something like "Java runtime has all kinds of IO-related features that Brainfuck implementations don't tend to have, and the Brainfuck language doesn't exactly define", then I don't think you'll get so many people disagreeing. 12:30:51 CakeProphet: If some underpaid worker read these instructions off a normal BF console output, 12:31:04 CakeProphet: And manually constructed the UI objects on a screen, 12:31:15 CakeProphet: Then they would have caused the implementation to stop being standard BF by your argument. 12:31:21 fizzie: Yes, I recall that 12:31:28 Deewiant: O 12:31:54 elliott: and so, nothing has changed, it is still impossible. 12:31:57 Deewiant: I just had a sense of that dezza fu. 12:32:10 (And the "O" was a typo.) 12:32:51 CakeProphet: You're straying really close to "stubborn idiot" territory. When the entirety of #esoteric is telling you you're wrong about a point of basic computer science, you should probably admit you're almost certainly wrong and try and understand why, rather than arguing back. 12:32:58 (Sure, that's an appeal to authority, but then so is education of all sorts.) 12:33:58 Oh god, you're still at this? 12:34:09 Phantom_Hoover: CakeProphet is, yes. 12:34:32 Back 12:34:38 Taneb: hi, nothing changed 12:34:44 Okay 12:37:00 the entire point of this conversation has been to understand why I might be wrong. So far you have explained how theoretical computer science handles the issue, but not why I am wrong. In any case, I'm done. 12:37:30 fuk theoretics, we gangsta computa programmas on the street no the real computaional equivalence 12:37:43 its a gun pointed 2 ur head//// and a bf implementation with only console io 12:37:47 no, not what I said. 12:38:17 I am not a "fuck theoretics I am a pragmatist" stereotype. 12:38:42 but I guess not fully understanding a subject = personal flaw 12:39:24 -!- Sgeo_ has joined. 12:39:29 -!- Sgeo has quit (Ping timeout: 255 seconds). 12:39:44 CakeProphet: it wasn't anything related, i was just being silly 12:40:08 next time I talk about something on #esoteric I will make sure I know everything about it, otherwise I will be met with personal insults about how I haven't really been studying anything / can't program / etc 12:40:16 -!- CakeProphet has left. 12:41:15 It reminded me a bit of that Swordfish hacking scene, in fact. 12:42:01 oh, i figured it was only a matter of time before he took being wrong personally 12:42:19 kinda thought it would be sooner tbqh 12:43:29 } else if (command.get("aliases") instanceof List) { 12:43:29 commandAliases = (List) command.get("aliases"); 12:43:37 IntelliJ, you can't seriously be complaining about that cast on the second line. 12:43:46 There's... no way that value is going to change. 12:43:50 It is so not an unchecked cast. 12:43:54 Why don't you love me. 12:43:56 elliott: It could change concurrently 12:44:21 Deewiant: It's part of the command description YAML for the Bukkit plugin 12:44:37 I don't even think you're /allowed/ to change it, even theoretically 12:44:41 IntelliJ can't know that 12:44:49 Or maybe it can 12:44:53 Yeah but you can't SuppressWarnings an assignment :-( 12:44:59 Bukkit? The Minecraft thing? 12:45:04 Having said that IntelliJ knows way more than any computer should 12:45:06 Taneb: Yes. 12:45:08 elliott: Sure you can 12:45:12 Deewiant: How 12:45:14 Or maybe only a definition 12:45:17 Yeah 12:45:28 But that's a nasty double-lookup anyway :-P 12:45:41 Just name it 12:45:47 Deewiant: If it was d[k] instead of d.get(k) you wouldn't bat an eye at it :) 12:45:55 Yes I would 12:46:08 Deewiant: Would you bat an eye at array[0] being used twice? 12:46:10 Just as if it was *p 12:46:11 Yep 12:46:14 Seriously? 12:46:16 Yep 12:46:22 if (*p =/= badValue) 12:46:23 f(*p); 12:46:26 I wouldn't necessarily care 12:46:31 But I would bat an eye at it 12:46:38 Do you name every subexpression? :-P 12:46:47 If they have more than one use, I try to 12:46:56 Java really needs a casting operator that converts nulls 12:47:06 elliott: Incidentally, what's the type of "command"? 12:47:33 fizzie: Map, grossly enough 12:47:39 Bukkit's API for this is kind of shitty 12:47:45 It doesn't even expose it as the normal YAML API 12:47:49 elliott: Right, so that can change concurrently and IntelliJ can't know 12:48:29 Maybe if it were a HashMap or whatever's not synchronized it'd think it knows 12:48:30 if (commandPermissionObject == null 12:48:30 || !(sender instanceof Player) 12:48:30 || permissionHandler.has((Player) sender, (String) commandPermissionObject)) { 12:48:32 Deewiant: Bat an eye plz 12:48:38 At this GROSSE MULTI-LINE CONDITIONAL 12:48:46 RELYING ON SHORT-CIRCUITING FOR CORRECTNESS 12:48:50 Nah 12:49:18 elliott: Well, you can cast it (List) without warnings, just avoid the generics there. 12:49:37 Heh. 12:49:40 That should get you a warning about not using generics :-P 12:50:03 You do use -Xlint:all,-serial don't you 12:50:06 Java is such a strange language, for what is essentially the most "standard" language out there 12:50:20 I think "instanceof List" is equivalent to "instanceof List", anyway, since due to that type erasure thing the generics don't exist any more at runtime. 12:50:28 Deewiant: I just use whatever IntelliJ uses by default, which I think is actually based on its own static analysis framework rather than javac 12:50:34 It's certainly faster than javac :-P 12:50:47 Java is such a strange language, for what is essentially the most "standard" language out there 12:50:55 I think that's a covert tautology 12:51:02 Quite possibly 12:51:21 But still, Java's the weirdest member of the mainstream OOP canon by far 12:51:31 It's got as many quirks as Eiffel 12:52:45 I've had an idea 12:52:48 Take brainfuck 12:53:05 Add as many new features and syntax sugar as you can 12:53:15 In the hope of making a new language 12:53:25 That's been done accidentally many a time :-P 12:53:31 That is sensible and usable enough to go mainstream 12:53:43 But still has brainfuck at its core 12:53:55 Deewiant: 12:53:56 } else if (aliasesObject instanceof List) { 12:53:56 aliases = (List) aliasesObject; 12:53:59 Deewiant: Still complains 12:54:05 I wonder if there's technically a way to make that fail :- 12:54:06 P 12:55:05 Deewiant: fizzie: "Illegal generic type for instanceof" 12:55:06 That's why 12:55:17 Different idea: functional brainfuck 12:55:18 You can't instanceof a generics type 12:55:22 :( 12:55:24 Yes, I thought so. 12:55:38 But since you already pasted it, I thought it just did the same as instanceof List. 12:55:47 Deewiant: fizzie: Which also means that the only way I can do a "checked" cast is with (List). 12:55:53 I like that you only looked at the diagnostic now 12:55:53 IM GOING TO KILL MYSELF 12:56:04 The "checked" doesn't mean that you have checked it at runtime, I don't think. 12:56:10 I've been trained to ignore squiggly red underlines by word processors 12:56:31 fizzie: It's about scoping isn't it 12:56:37 instanceof definitely lets you do a checked cast I thought 12:56:41 It'd be a permissible cast to (List) even if you didn't instanceof-test. 12:56:56 It's not, because of the type of aliases being List 12:57:07 And "aliases = (List) ((List) aliasesObject);" is also complained about :P 12:57:17 Yes, but that's because you try to cast to List. 12:57:32 It's about the compile-time type-checking of generics, and casting to a genericized type goes around that. 12:57:35 Right. 12:57:41 You know what would be fun? 12:57:46 Can you make an if branch body @SuppressWarnings easily? 12:58:01 Porting Netbeans to brainfuck just to annoy CakeProphet 12:58:02 I'm not especially well-versed on the details. But you can always cast to plain (List), which is what the runtime type of the object is in reality. 12:58:13 Then you'll just need another cast to String when you get objects from it. 12:59:04 IIRC the point is that you shouldn't have a List anywhere without the compiler being able to really check (not just trust your casts) that it in fact is a list of strings. 12:59:19 fizzie: So basically Java wants to be Coq :) 12:59:59 I'm not sure if there were some any cleaner workarounds than just avoiding the use of generics for the cases where your API gives you just an Object that you happen to "know" is a List. 13:00:18 @SuppressWarnings("unchecked") List tmp = (List) aliasesObject; 13:00:18 aliases = tmp; 13:00:27 Now IntelliJ complains that tmp is a redundant variable :-D 13:00:29 I CAN'T WIN 13:00:44 fizzie: It could technically be a Map or anything else, it's just that that would be an invalid plugin YAML 13:00:49 Dunno if it'd let you load that 13:01:01 One field that's meant to be a list also accepts a string as the single element, sigh 13:01:05 (This one, even) 13:01:37 If you want to have a generic there, it is permitted for you to cast it to List. 13:01:49 Not that it's much of an improvement over List. 13:01:59 Literally going to commit suicide 13:02:38 And I think you're allowed to cast to List too if you like. 13:02:55 But not List, because that'd be a list of Objects only. 13:03:31 I vaguely recall there was some way of narrowing the types down without a warning, but I may be just misremembering that. 13:03:38 elliott: Make an identity function and try id(tmp) 13:03:43 Probably ais could tell you, being a more Java guy. 13:04:11 Deewiant: Hahaha 13:05:21 Deewiant: I bet there's an IntelliJ SuppressWarnings annotation I can use :-D 13:06:04 Oh, right, I recall the reason for the "unchecked cast" warning more properly now. 13:06:09 I have just finished playing a game of pokemon card. This is probably the first time I have done, I have evolved for the sole purpose of increasing my own retreat cost! (And I did win. Both players 1 side card remain, opponent 0 cards in draw pile, me 7 cards in draw pile) 13:06:24 fizzie: You do? 13:07:23 elliott: See, in "List tmp = (List)obj", the run-time checking is able to actually check the cast, and throw a ClassCastException if it fails. But in "List tmp = (List)obj", the run-time type of "obj" is "List", and the cast would succeed with no exceptions even if it were in fact List instead. So that's why it's "unchecked". 13:07:53 And then you'd get a ClassCastException from Cock to String on some later tmp.get(42) where you'd least expect it. 13:07:58 This is why languages shouldn't include cocks 13:08:02 fizzie: Hey, wait, I could do case analysis 13:08:06 If the list is empty, just construct a new empty one 13:08:14 Otherwise, instanceof the first element... 13:08:19 oh wait, it could be List 13:08:20 SIGH 13:08:28 Java: The worst? 13:08:55 You could iterate the list, instanceof-test all the elements against String, and build your own List. 13:09:12 You could even make a helper static List stringifyMyRide(List lst) method. 13:09:25 Is there a more Javacally way to say assert(false);? 13:09:29 if (aliasesObject instanceof String) { 13:09:29 aliases = new ArrayList(); 13:09:29 aliases.add((String) aliasesObject); 13:09:29 } else if (aliasesObject instanceof List) { 13:09:29 aliases = (List) aliasesObject; 13:09:30 } else { 13:09:31 assert(false); // meh 13:09:34 } 13:09:46 Some sort of a RuntimeException, maybe. 13:09:50 about CakeProphet's silly stuff about computational equivalence, we just had an international, rather well-known conference where one of the speakers whined about the exact same thing for half an hour 13:10:58 haha 13:11:02 For example, javax.xml.bind.TypeConstraintException has a description that sort-of matches your case. :p 13:11:05 did he storm off afterwards too 13:11:12 oklofok: hey wait you told us about hat at the time :)))))))) 13:11:34 } else { 13:11:34 throw RuntimeException("fuck this"); 13:11:34 } 13:11:34 good 13:11:44 elliott: yes 13:11:48 i did tolded us. 13:11:49 s/new/ 13:12:22 -!- Guest64652 has changed nick to Gregor. 13:12:51 -!- Gregor has changed nick to Guest36411. 13:15:12 elliott: You could put the assert in front of that :-P 13:15:16 I invented a notation of pokemon card deck list using ASCII. 13:15:32 -!- Guest36411 has changed nick to Gregor. 13:15:47 Deewiant: Eh? 13:16:03 I did too: times 13:16:22 elliott: If you can manage somehow to get a Class> object c (though I have no idea how, since only List.class is a valid class literal...), you can "List l = c.cast(obj)" without any warnings about uncheckedity. But I suppose that may be impossible too. 13:16:27 elliott: Before the throw 13:18:58 Deewiant: It took me quite a while to puzzle out how " times " is putting the assert before a throw. 13:20:03 4#92L17+2L17,L26+2L38 3#96L12+2L36 #124L23 #150L30 #21L13 #35L15+D33 #108L26 #249L55 22{@} {dc rc} ENERGYREMOVAL ENERGYRETRIEVAL ENERGYSEARCH 2POTION GAMBLER ITEMFINDER CHALLENGE GUSTOFWIND FULLHEAL SWITCH 2POKEMONTRADER BILL MASTERBALL 13:20:25 Is it good format OK? 13:26:43 Of course there is the more common long form, but I prefer short form deck listing. 13:40:01 -!- Tritonio has joined. 13:47:26 -!- Taneb has quit (Ping timeout: 240 seconds). 13:54:57 zzo38, what are you doing 13:55:06 ... 13:55:20 cheater_: I am reading your message about what am I doing. 13:55:51 i would like to see the syntax tree of that sentence. 13:57:23 [I] am [reading [your [[message] about [what am I doing]]]] (maybe I did this wrong I don't know for sure) 13:58:13 -!- Tritonio has quit (Quit: Leaving). 13:58:26 I also do other things too. 13:59:01 Such as, pokemon card, and writing the document of FurryScript, and writing the D&D character sheets both mine and my brother. 13:59:27 are you okay? i just dropped you people on the floor by accident 13:59:41 nah just kidding, i know you're not real 14:01:21 Yes it is OK, in case my bed broke, I should sleep on the floor instead. 14:08:59 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 14:12:46 Please tell me if this document is understandable to you: http://esolangs.org/wiki/User:Zzo38/FurryScript 14:14:05 -!- hagb4rd has quit (Quit: hagb4rd). 14:20:50 ǐ̷̭͙̭ͪ͒̅ͥṡ̶͔̼̒́ ̸͓͕̭̲̬̺ͩ͐ͮ̽͛ͪ́͡y̶͈̹̺̙̘̓ͦͥ͗̾̐̒ọ̤ͮu̪̭̦̺̼̪ͨ̌ͫ̎ͪ͗̎̋͛͞r̢͕̞̦̣̩ͤ̅ͩ̐͑̕ ̖̲̺̘͔͕̞̰̤ͯ̉m̝̗͓̺̳͙̬̜̮͗̔͋ͬ͆͂́ͦ̚ỏ̶͉͉̲̙̭͓̼̌̀n̼̮̱̳̼̮̣̹̈́ͩͩ̊͘͝i̗͂ͫ͗̿ͯ̚ţ̢̗͎̃ͭͣ͆̋̂͑͘ọ̸̐̓̑̌̇͗̎̒͟r̥͙͌͋͢͞ ̮̤͈͚̯ͬ̐̋ͫ͗͟͞b̴̨͈̭̄ͧr̸͎̃͌͑o̩̘̝̜̍ͪ̓͑͘͡ͅk̟̻̥ͧ̑ͥ͡e̶̪ͨ̏ͥ͟ 14:20:55 ̩͎͇͈̹n̡̬̬ͣ̋̈̒̐͑̃͛́ͅ?̴͙͈͈ͥ̌ 14:21:22 oklof̥̟̫̺̤ͮ̀̃͒̎ͪ̌ͩo̡̪͈̫ͮ́ͪ̋ͭk̛̻ͨͦ̉̉̕ͅ ̣̫̗̘͕̾ͧͅḓ̴̘͉̪̭̤̔ͤ͛̿ͤ̚͝i̗̜̯̤͇͐ͦ̋̌ͮ͒̈́̐̕d̋ͦ͏̞̲̦͖͇̪̤ͅ ̴͙̻̪̫̻̒ͥͬ͞͡y̝̪͙̰̖̼͖ͬͬ̍͂͐͊̎̚ͅǒ̘͍͔̫̤̻̠͗ͫ͘u̸͂̓͗ͫ͏̭̠͉̣̜̘̖̻ ̸̛̫͖̰̲͙̻͋̍̉̈d̪̤͎̗̟̪̩̦̗͗ͬͧͧͮ͆ͫ̑r̭̱̳̰̟̰ͭ͑ͥͤ͊o̶͇̪̖̒̑ͣͫͅp̺̩͛ ͕̦͈̲͎͖̐͛ͬ̈ͯy̺̹̫ͧ̈́̈́͌̍͝͝o̹͐͌͋͋̑͗͘ 14:21:23 ̜ų̣̙̙̗̮̝̌̇ř̗̙̩͗̈ ̨̝̤̩̬̺̖̑ͩ̃̾̅̃̓̓͘͝l̴̔̒̃͋͂͆҉̧̬̗͇̫̬͇̦̱ȁ̴̽͜҉̖̙̫̠̙͔p̬͈̮̘͉̒ͯ̉̆̊͌ͧ͐ͅͅtop 14:21:35 What are you trying to type now? 14:21:45 It seems like mixed up. 14:22:42 it mus͔͓͕̄͊͋͘͞t̸̯̟̮͋̆̍͗̑ͫ̚͘ ̳̬̫̆ͣ̓̈́̂̀̚͞b̤͍̱̮̮͇̫́͒ͯ̽̀̓͆͑ę̹̗̉̅ͫ͋ͬ͌ͤ̂͟ ̆ͤͯ͏̘̯͠yͣ̓̊̊̾҉̤̰̦͕̯õ͌͆ͬ̓̽̂̚҉͓̟̱̬̰̻̯u̘̱̺̤̲͑r monitor 14:24:03 -!- Taneb has joined. 14:24:24 Now I can read it a bit. But, no it is not my monitor is broken. The monitor is working correctly. It is the speaker which is broke. But that doesn't cause the mixed up text on screen. 14:24:38 Hello 14:27:24 Hello Hello Hello Hello Hello 14:27:26 Taneb: 5 14:27:31 yw 14:30:35 -!- BeholdMyGlory has joined. 14:32:27 -!- copumpkin has joined. 14:32:28 -!- copumpkin has quit (Changing host). 14:32:28 -!- copumpkin has joined. 14:35:45 Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello 14:58:26 -!- lifthrasiir has quit (Ping timeout: 252 seconds). 15:28:04 -!- monqy has joined. 15:28:53 -!- foocraft has joined. 15:49:23 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds). 16:02:31 I still think Numberwang is too useable 16:11:49 How can I make it less useable? 16:12:01 make it sub-tc 16:12:10 While still a) Turing complete and b) deterministic 16:13:01 determinism is boring 16:13:37 Have you seen the Numberwang spec? 16:13:45 I think so 16:13:50 I have no idea what the program 3! would do 16:14:19 speaking of esolangs, what is it with people and replacing the list of ideas with magic the gathering card deck of brainfuck 16:15:15 Has that happened a lot? 16:15:20 twice 16:15:22 I'm gone now 16:15:30 -!- derrik has joined. 16:15:34 Bye 16:16:02 Man, that must seem pretty non-sequitur for you, derrik 16:16:42 true 16:17:08 It almost made sense in context, though 16:17:33 possible 16:17:46 What do you think is the best way to make a language less usable while keeping it a) Turing Complete and b) Deterministic? 16:18:22 i am not so sure that numberwang is tc myself 16:18:27 although that's more oerjan's forte >:D 16:18:29 Oerjan proved it 16:18:47 oh hm it's close to the b-machine thing 16:18:50 Taneb: ah, okay 16:18:59 Taneb: i'd say it's as confusing as you're going to get 16:19:13 But it was so easy to prove Turing Complete! 16:19:17 And it's usable! 16:19:18 Taneb: as of right now you can ignore command three, though 16:19:27 integrate some vital operation into it 16:19:35 (this maintains tcness only by power of hope) 16:19:36 Good idea 16:19:51 I'll also add IO in the same move! 16:20:19 Taneb: just make 3 print "That's Numberwang!", and 0 print... something else 16:20:28 that's all anyone could possibly need 16:20:37 0 is flip and move left 16:20:51 yeah, the point is that you have two instructions that print different things 16:20:57 that should be enough, if the instructions are vital enough 16:21:16 Heck, I think that Unary program shows us that that isn't even necessary 16:21:45 unary looks like it has normal output 16:22:05 i'm just saying, you can do output by just making two of your commands print two different things as a side-effect 16:22:07 input is for the weak 16:22:07 I mean, it shows meaning can be demonstrated with only one character 16:22:19 um well yes but if your program doesn't halt that doesn't work 16:22:24 because the value is encoded into the length 16:22:35 Hmm, yeah 16:25:24 Changed spec 16:25:47 still doesn't require using three for turing-completeness :P 16:26:00 But it does for any output. 16:26:06 true, but who needs that? 16:26:20 People making Hello World programs? 16:28:14 i doubt that's possible, considering the program that three starts running 16:28:21 i.e. I rather suspect it'll output other values beyond your control 16:28:39 With the right setup, it should be theoretically possible 16:29:41 that's a proposition stated without proof :P 16:29:49 it could very well be completely impossible to output hello world 16:29:51 Make that hypothetically 16:31:00 It's just considerably easier to get the entire population of the UK to agree on football teams 16:38:10 -!- elliott has quit (Ping timeout: 252 seconds). 16:47:05 I want to play pokemon card, please. 16:47:20 I want to play chess 16:47:32 Normal (FIDE) chess or some variant? 16:47:40 FIDE 16:47:47 Or maybe Threechess 16:51:23 Now invent pokemon card chess 16:51:45 But I have no pokemon cards 16:54:02 Use computer to make up cards 16:54:17 And I'm going out for dinner in 6.5 minutes 16:54:52 http://zzo38computer.cjb.net/img_14/pokemon_card_01.png Pokemon Card GB2 16:55:37 Do you know how to do this one? 16:55:45 No, and I have to go now 16:55:48 Goodbye 16:58:31 -!- lifthrasiir has joined. 17:00:11 -!- Taneb has quit (Ping timeout: 252 seconds). 17:11:28 -!- Phantom_Hoover has joined. 17:31:23 -!- DocHerrings has joined. 17:33:35 Boredom is a terrible thing - I am writing a series of Markov productions that calculate Keymaker's Clue language. 17:42:47 -!- Sgeo_ has quit (Ping timeout: 255 seconds). 17:52:18 -!- Sgeo has joined. 17:53:40 Hey, PSOX was useful for something! 17:53:52 (If arguing with CakeProphet is considered useful) 17:55:46 I am very much doubtful that the "conversation" today was anything that'd count as "useful". 17:57:43 http://www.smbc-comics.com/?id=2208 17:59:40 -!- ais523 has joined. 18:00:30 That's... Perverse. 18:00:39 "Gtk Hello World in Qt C++". 18:00:50 Hmm? 18:01:00 Phantom_Hoover, my site is not up-to-date wrt PSOX 18:01:17 The wiki's link to the assembla stuff is 18:01:51 Sgeo: Well, Qt is both a UI toolkit and a library providing a fairly simple extension to C++'s standard semantics and some replacement standard library functions. 18:03:29 -!- cheater_ has quit (Ping timeout: 255 seconds). 18:04:59 Anyways. Someone bound GObject into the Qt C++ type system. 18:08:02 elliott, Phantom_Hoover, John/[SPOILER] panels are up 18:16:27 -!- cheater_ has joined. 18:19:06 -!- oklopol has joined. 18:20:51 -!- oklofok has quit (Ping timeout: 252 seconds). 18:24:18 OMG an [S]. 18:28:31 -!- zzo38 has quit (Remote host closed the connection). 18:28:32 -!- derrik has quit (Quit: nights). 18:39:31 Okay, Markov production rule finished (so now Clue has a Thue interpreter). 18:39:42 I suppose I'll add that. 18:42:14 Well, maybe later. Markov to Thue conversion is messy. 18:54:42 -!- MigoMipo has joined. 18:57:48 -!- foocraft has quit (Quit: So long, and thanks for all the fish!). 18:58:19 -!- foocraft has joined. 19:08:24 -!- DocHerrings has quit (Quit: ChatZilla 0.9.87 [Firefox 5.0/20110615151330]). 19:14:58 -!- oerjan has joined. 19:19:08 Wow. Headphones in my ownership tend to die within days, apparently 19:19:35 it's because of the radiation from the brain implantat the aliens put in you. hth. 19:20:41 *implant 19:21:00 so now i too can learn to hate the new google top bar 19:21:06 -!- pikhq_ has quit (Read error: Operation timed out). 19:21:10 in what way in particular is it irritating you? 19:21:15 also, which Clue was DocHerrings talking about? 19:21:21 it does not disappear when i scroll 19:21:24 (it'd be extra fun if it wasn't either of the ones I know of) 19:21:24 -!- pikhq has joined. 19:21:29 oerjan: gah, I hate bars that do that 19:21:34 (I hardly ever use Google, so I didn't notice) 19:21:51 @tell elliott SUNDAY IS GREGOR'S BIRTHDAY TAKE NOTE. ALSO PRESENTS. 19:21:51 Consider it noted. 19:24:12 I thought I was building off of a sort of joke I would make, not spoiling one of the sort someone else would make 19:24:21 LEAVE THE BAD JOKES TO THE PROFESSIONALS 19:30:23 Any ASCII string can be converted into a base-128 number 19:30:26 -!- zzo38 has joined. 19:30:52 > readInt 128 ord "abcd" 19:30:53 Couldn't match expected type `GHC.Bool.Bool' 19:30:53 against inferred type ... 19:30:59 mph 19:31:05 :t readInt 19:31:06 forall a. (Num a) => a -> (Char -> Bool) -> (Char -> Int) -> String -> [(a, String)] 19:31:36 > readInt 128 (<'\128') ord "abcd" 19:31:37 [(205042148,"")] 19:32:16 > showIntAtBase 128 chr 205042148 "" 19:32:18 "abcd" 19:32:39 actually it won't handle leading NULs 19:33:31 shouldn't you delete all DELs? 19:33:45 and all NULs, for that matter? 19:33:54 v 19:33:55 also, which Clue was DocHerrings talking about? 19:33:58 the purpose of those characters is that you can leave chunks of NULs that don't mean anything on your tape in case you need to correct things 19:33:59 Keymaker's. 19:34:06 hm if you delete DELs, shouldn't you also delete the following character? 19:34:17 and then add extra things in the NUL space if you need to add 19:34:26 and to delete, just punch out every hole on the tape for that character and you get DEL 19:34:36 aha 19:34:38 I think DEL originally was a placeholder for things that had already been deleted 19:34:40 not a delete character 19:34:46 hm clever 19:34:57 nowadays, we don't use paper tapes, so the whole trick is sort-of moot 19:35:50 hmm, I should tell C-INTERCAL to ignore NUL and DEL 19:35:55 Linky? 19:35:59 ais523: well there are still write-once media 19:36:13 working well with write-once media is exactly the sort of feature that works well with it 19:36:22 Oh, we're talking about ASCII? 19:36:40 but i don't know if they support changing single bytes after the fact 19:36:41 oerjan: modern write-once media, like CD-Rs, unfortunately don't let you overprint 0s with 1s like tape did 19:36:49 ah. 19:37:11 basically, because CD-Rs need a separate encoding layer because they can't represent two 1s in a row 19:37:29 there's some sort of transformation done on bytes in order to change them to longer codewords with no consecutive 1s 19:37:52 I'm not sure how many 0s they can have in a row; presumably there's some limit to avoid the read head losing count, as it needs to know where it is on the CD somehow 19:38:03 and mechanical imperfections prevents you just using the timing, if the distance is too long 19:38:24 Could said limit be larger than number of physical bits on the disc/ 19:38:31 in theory, yes 19:38:40 in practice it's very unlikely 19:38:41 hm with such a scheme an ascii 0 would be a placeholder that could be replaced with an arbitrary digit 19:39:07 statical tape typing! 19:39:41 oh, that reminds me, I've written an informal Anarchy spec 19:39:42 although i guess there are non-digits possible as well 19:40:00 still unfinished, still not mentioning a lot of things that would have to be mentioned in order to get an actual language 19:40:07 but enough there for people to get what's going on 19:40:22 hopefully it won't turn into a second Feather; at least, there are no obvious inconsistencies or difficulties in the spec 19:40:51 interestingly the Wang B-machine which numberwang alludes to allowed only setting bits, not clearing. (although numberwang doesn't follow that, using flipping) 19:41:04 There is still possible such media such as print. And if it is scanned into the computer, or using a camera. 19:42:00 hmm, like those optical scan forms used for multiple-choice tests? 19:42:14 Yes 19:42:29 there's some sort of transformation done on bytes in order to change them to longer codewords with no consecutive 1s <-- well the "obvious" way is to use fibonacci base 19:42:45 oerjan: hmm, I wonder if that is it? 19:43:01 here we go: http://pastebin.com/raw.php?i=MDEebq26 19:43:40 In fact something I designed which is similar, is FORMCARD, which also uses delete characters similar to ASCII using them in that way, although FORMCARD is based on Hollerith instead of ASCII (although it can also use POSTNET for purely numeric data). 19:43:57 ais523: well fibonacci base doesn't support limiting the number of 0's, which i vaguely recall seeing before 19:45:01 I have no idea if the limit is a small integer or of the order of hundreds 19:45:17 in practice, they probably just make sure each word has at least one bit set 19:45:24 or at least two or three, if more are needed 19:46:12 istr it was pretty small, so there was a fixed length encoding of some length of bits 19:49:03 that seems about right 19:51:40 "The pits and lands themselves do not directly represent the zeros and ones of binary data. Instead, non-return-to-zero, inverted encoding is used: a change from pit to land or land to pit indicates a one, while no change indicates a series of zeros. There must be at least two and no more than ten zeros between each one, which is defined by the length of the pit." 19:52:35 "no more than ten", that's god to know 19:53:15 "Under EFM rules, the data to be stored is first broken into 8-bit blocks (bytes). Each 8-bit block is translated into a corresponding 14-bit codeword using a lookup table. 19:53:28 The 14-bit words are chosen such that binary ones are always separated by a minimum of two and a maximum of ten binary zeroes." 19:53:57 hmm, so I expect some byte transformations are possible on CDs 19:54:03 as you can burn a land into a pit 19:54:04 but not very many 19:55:51 "EFM requires three merging bits between adjacent 14-bit codewords to ensure that consecutive codewords can be cascaded without violating the specified minimum and maximum runlength constraint. The 3 merging bits are also used to shape the spectrum of the encoded sequence. Thus, in the final analysis, 17 bits of disc space are needed to encode 8 bits of data. 19:56:09 -!- Taneb has joined. 19:56:13 (http://en.wikipedia.org/wiki/Eight-to-fourteen_modulation) 19:56:18 Hello 19:56:21 hi 19:56:42 heh, CDs read fast enough that they need to have a consistent spectrum? 19:57:00 I was surprised at that, but suppose it was inevitable 19:57:04 > readInt 128 (<'\128') ord "abcd" -- repeat what i tested above based on a comment by Taneb 19:57:06 [(205042148,"")] 19:57:11 as if there's a simple trick to read faster, people are going to use it 19:57:37 And modern CD drives are at the physical limits on read speed. 19:57:43 (any faster and the disc would shatter) 19:57:57 They've got data transfer at 26 Terabits a second in some lab somewhere 19:58:01 perhaps they don't need to make the spectrum that consistent after all, then 19:58:02 Not CDs, but it works 19:58:16 And the technology is comparatively simple 19:58:26 Taneb: Well, it's the physical limits of what can be done *with the CD spec*. 19:58:33 i hear CERN transfers some huge data amounts 19:58:35 Obviously you can get higher rates with differing media. 20:01:15 -!- copumpkin has quit (Remote host closed the connection). 20:01:40 -!- copumpkin has joined. 20:01:41 -!- copumpkin has quit (Changing host). 20:01:41 -!- copumpkin has joined. 20:03:34 -!- pumpkin has joined. 20:03:35 -!- pumpkin has quit (Changing host). 20:03:35 -!- pumpkin has joined. 20:06:17 -!- copumpkin has quit (Ping timeout: 264 seconds). 20:09:29 Man, I just got confused when Wikipedia didn't have an article on the Churing-Turch Thesis 20:10:17 shocking! 20:13:02 -!- pumpkin has quit (Remote host closed the connection). 20:13:38 -!- copumpkin has joined. 20:13:38 -!- copumpkin has quit (Changing host). 20:13:39 -!- copumpkin has joined. 20:14:16 * oerjan swats copumpkin -----### 20:14:39 Did he abbreviate something to ABCDEF? 20:16:13 :) 20:16:15 no, he is quit-join spamming with a bad connection _and_ a broken cloak setup simultaneously 20:16:22 sorry :P 20:16:35 I've done it three times in the past 20 minutes haven't I? 20:16:37 it isn't that bad 20:16:49 well it looks worse when no one else is talking 20:17:07 I got a tetanus jab last year, later that month I got over 1000 friends on Facebook 20:17:11 Connection? 20:17:44 Taneb: probably coincidence 20:18:00 no, correlation implies causation, obviously 20:18:20 oerjan: are correlation and causation correlated? 20:18:21 yes? 20:18:26 then correlation /causes/ causation! 20:18:31 yep 20:18:34 I think it's connected to the time I watched the director's commentary for Finding Nemo 20:18:48 -!- ais523 has set topic: correlation causes causation | Esoteric programming languages | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 20:19:00 anyone looked at Anarchy yet, btw? 20:19:15 Anarchy? 20:19:31 You mean, this channel? 20:19:54 this is channel is anarchy? shocking! someone should fire the ops 20:19:58 *-is 20:20:38 Taneb: no, my language 20:20:43 http://pastebin.com/MDEebq26 20:20:46 well, one of mine 20:21:02 it's unusual for esolang design, as I invented it not because I thought it would be a fun basis for a language 20:21:06 but because I needed it to write prorgams in 20:21:13 unfortunately, it looks like a pain to implement 20:21:19 not massively difficult, but timeconsuming 20:21:28 also, I need to get a constraint solver from somewhere 20:21:32 So it's actually quite close to the actual meaning of esoteric? 20:21:36 i looked far enough to think you're going to have some trouble with the type inference there 20:22:14 oerjan: quite probably 20:22:18 i mean if that was not unsolvable it would probably be supported by ML already... 20:22:49 mind you ocaml _does_ have something similar doesn't it 20:22:57 What's a good language for someone with no knowledge of programming? 20:23:05 I'd be surprised if it were unsolvable 20:23:27 Taneb: Prolog, because if you do have knowledge of programming, your mind will explode trying to learn it 20:23:32 well i did not think about it very deeply (my eyes started to glaze over) 20:23:47 so learn it first, then you don't have to have an exploded mind trying to learn it later 20:23:49 haskell, for the same reason :P 20:23:52 oerjan: right 20:24:13 err, do you have to learn them simultaneously, then? 20:24:34 Taneb: um you don't have no knowledge of programming do you? 20:24:53 ais523: you could do Mercury for that 20:24:54 No, I'm trying to get a friend into computer sciency topics 20:25:07 oerjan: someone mixed Haskell and Prolog? 20:25:19 anyway, why did you think Anarchy's type system is uncomputable? 20:25:38 ais523: well not directly mixing but ideas from both prolog and ML/haskell sides 20:25:41 it just seems like sugar around an existing type system 20:26:02 it's a statically typed, pure, logic language 20:26:13 I like duck typing 20:26:23 It helps prevent forest fires 20:27:01 ais523: well it was that thing about having constructors not associated with a single datatype. although i guess that ocaml thing _does_ that. 20:27:15 -!- MigoMipo has quit (Read error: Connection reset by peer). 20:27:27 Oh god, that was pretty much the stupidest thing I have ever said online 20:27:48 it might help if you think of the type constructors being different type constructors on call and return 20:27:53 that's how I'll probably implement it 20:28:03 Taneb: in that case, you haven't been nearly as stupid online as most people 20:28:07 ais523: also, afaik most things grafted onto hindley-milner tend to make type inference undecidable 20:28:27 well, I just do type inference via constraint solving 20:28:35 I assume hindley-milner works like that too as it's the only sensible way 20:29:06 ais523: you might have trouble with having "principal types" (i.e. a unique inferred type for your terms which works in all contexts) 20:29:42 oerjan: oh, I was just going to duplicate every use of a function 20:29:46 and yes, hindley-milner is mostly unification on the type level 20:30:01 C++-style template specialisation 20:30:19 in fact, I might have to inline every use of a function other than recursion, but even so, I think it still ends up decidable 20:30:22 ais523: hm iirc there is a sense in which hindley-milner is equivalent to doing that 20:30:25 anarchic? I think so 20:30:49 well good luck anyway 20:31:29 I'm just annoyed at having had to do the relevant desugaring by hand at my day job 20:31:41 or else bodge it by using types more general than are actually needed 20:32:56 ais523: btw iirc there is also a (probably dead) logic language based on haskell 20:33:03 i think that was the one named curry 20:33:09 hmm, perhaps 20:33:33 Anarchy's constraint solving is uncomputable because you can express Diophantine equations in it 20:33:37 http://en.wikipedia.org/wiki/Curry_(programming_language) 20:33:41 but interps are allowed to go into an infinite loop if you do that 20:36:44 the curry mailing list doesn't seem to be entirely dead 20:37:45 -!- rodgort has quit (Quit: ERC Version 5.3 (IRC client for Emacs)). 20:41:31 -!- rodgort has joined. 20:50:42 Teaching someone Lambda calculus 20:51:39 Someone who has very little programming background 21:01:36 Taneb: the same guy? in that case what about scheme, it may the simplest "real" language to do LC faithfully... 21:01:46 just don't mention call/cc :P 21:02:04 The same person. 21:02:10 Just doing it theoretically 21:03:01 *may be 21:03:18 I didn't actually realise there was a typo... 21:03:39 INSUFFICIENT OC(P)D DETECTED 21:04:09 geek license suspended pending review 21:04:42 I'm not a very good teacher... 21:04:52 Just said "So, when f is inputted, m replaces all the fs with fs and takes out the f in the input" 21:05:22 hard at work replacing fs by fs 21:06:16 i think of lambda calculus as the simplest possible mathematical model of naming things 21:07:12 just don't mention call/cc :P 21:07:25 Come on, call/cc is pretty simple once you get your head around it. 21:07:52 always mention call/cc 21:08:02 Like monads, really. 21:08:17 like algebraic topology 21:08:54 and category theory 21:09:27 and zygohistomorphic prepromorphisms 21:10:19 xenolinguistic polysyllablic neomorphemes? 21:10:35 *polysyllabic 21:11:04 but of course. 21:11:23 except for the neo- part 21:11:32 -!- boily has quit (Ping timeout: 276 seconds). 21:12:15 i didn't make up any of those words 21:13:05 Although zygohistomorphic prepromorphisms are kind of only used as a joke, AFAIK. 21:13:06 the last one _is_ used as a joke on that though 21:13:24 yeah but it _does_ have a real meaning, if obscure 21:13:37 not that i can recall what it is 21:14:38 I suspect I'd be a better computer science teacher if I had actually ever taken a computer science class 21:17:03 But did Alan Turing ever take a computer science class? 21:17:08 :P 21:17:15 Did Alonzo Church ever take a computer science class? 21:17:32 did newton ever take a physics class 21:18:31 No! Isaac Newton (who was kind of a dick) learnt about physics on the internet! 21:18:34 Did Thog ever take a fire-building class? 21:18:37 they almost certainly did take math classes though 21:18:48 except thog 21:19:03 Meh, I've got a GCSE in stats. 21:19:06 That should be enough 21:19:36 -!- Nisstyre has quit (Ping timeout: 260 seconds). 21:19:51 anyway, as an amateur very-occasional programmer i didn't learn most computer science i know from classes either 21:20:33 I have never been near a computer science class, which is why nobody listens to me. 21:20:48 Meh, I've got a GCSE in stats. 21:20:49 NO 21:21:20 oerjan: Well, *programming* is a practical skill best learned by just doing it, and *computer science* is a particular form of mathematics. 21:21:20 STATS 21:21:23 I have approximately 2.16 A levels in Maths 21:21:25 IS AN ABOMINATION 21:21:29 STATS 21:21:32 ais523, elaborate. 21:21:32 IS AN EXTRA GCSE 21:21:33 some proportion of that is stats 21:21:55 oerjan: And seeing as you have a Ph.D. in math, well, it makes sense you'd find CS easy... 21:21:59 I find out if I've got a maths GCSE in August 21:22:09 Phantom_Hoover: the way it worked when I did maths A level (and still works similarly nowadays, although some of the details have changed) is that you do "modules" 21:22:16 this is when we find out Phantom_Hoover has too passionate enemies in life: brainfuck derivatives and statistics 21:22:25 and six modules, subject to some constraints, gives you an A level; your grade is the average grade of the modules 21:22:36 *two 21:22:41 another (distinct) six gives you a second A level 21:22:44 although possibly too, too 21:22:57 time for a brainfuck derivative based on statistics, or perhaps statistics about brainfuck and derivatives thereof 21:23:01 a good time 21:23:02 the actual names vary based on which modules; I did a balance mix and ended up with simply Maths and Further Maths 21:23:06 Stochastic Brainfuck, eh? 21:23:15 But, by the time I'm 23, I could have a Masters in Maths! 21:23:15 and did thirteen modules, so I still have one left over (the one with the lowest mark that wasn't compulsory) 21:23:32 oerjan, I'm not sure if I hate stats itself or not. 21:23:39 presumably this would mean that if I did another five, I could get Even Further Maths 21:23:42 or maybe there's a time limit on the things 21:23:45 But the way it's taught is *unquestionably* abysmal. 21:23:47 To far you've past it maths? 21:24:23 Phantom_Hoover: Math generally is taught poorly. 21:24:30 And so *utterly* slowly, too. 21:24:37 wait is that what gcse means, i thought Taneb was older than that :P 21:24:39 I was quite lucky, they sat me in a corner and gave me a bunch of textbooks 21:24:43 and told me to go learn maths 21:24:44 I'm 16 21:24:47 I have... 1.07 A levels. 21:25:03 According to UCAS, at least. 21:25:07 Phantom_Hoover: is that to do with the fractional adjustment between English and Scottish tariffs, or something else? 21:25:07 I have 0 A-Levels, and 1 GCSE 21:25:11 ais523, yeah. 21:25:14 ah, the UCAS reference cleared it up 21:25:15 I find out in August if that goes up to I think the equivalent of 12 21:25:22 I agree with them that the Scottish qualifications are worth more 21:25:29 oerjan: It's one of the testing bits towards the end of secondary education in England, I think Scotland, and no idea about Northern Ireland or Wales. 21:25:34 but Universities generally admit based on English scales 21:25:41 Wales is the same as england 21:25:59 pikhq: the general rule is that England and Wales are the same, and Scotland and Northern Ireland are different from those and from each other 21:26:03 ais523, although I only have 0.75 A*As on A levels with additional AS (9 units). 21:26:08 Whatever that is. 21:26:16 ais523: Yeah, but I prefer to make no assumptions about the UK. 21:26:17 Phantom_Hoover: an AS is the first half of an A level 21:26:27 you do that first, then you do an A2 that upgrades the AS to a full A level 21:26:29 by averaging marks 21:26:52 pikhq: the general rule is that England and Wales are the same, and Scotland and Northern Ireland are different from those and from each other 21:26:58 you can stop after the first half if you like; for instance, I have an AS in Electronics (as well as a GCSE in Systems and Control, which is a euphemism for electronics, and a MEng in Electronic Engineering) 21:26:59 NI uses the same names, though. 21:27:05 So it might well be the same. 21:27:08 perhaps 21:27:13 It's the easy solution for Americans who actually know that England, Wales, Scotland, and Northern Ireland have different systems for things. 21:27:25 (or, indeed, that they are *actually different*) 21:27:32 very few things are different between England and Wales in terms of administration 21:27:42 they're starting to diverge a bit more now Wales has its own government, but that's pretty recent 21:27:43 And the lack of a separate table in the tariffs suggests that they do use the English system. 21:27:48 That's because England actually conquered Wales pretty early on 21:27:52 (and Wales speaks a mix of English and Welsh) 21:27:53 Taneb: yep 21:28:01 Rather than had a weird political union 21:28:11 Caused by ending up with the same guy in charge 21:28:14 and Scotland was never successfuly conquered by the English; rather, intermarrying lead to England and Scotland having the same king at the same time 21:28:14 ais523: Still. England and Wales are *likely* to not diverge, but they do on some things. 21:28:18 Taneb, they conquered Ireland as well, though. 21:28:42 which lead to a mess, as the way inheritance works, you can't diverge from thatp oint 21:28:43 *point 21:28:51 Phantom_Hoover: And then had a series of conflicts about it, bringing a big mess. 21:28:58 which lead to a mess, as the way inheritance works, you can't diverge from thatp oint 21:29:05 It's... a bit more complex than that. 21:29:06 ais523: If they had differing laws for inheritance. 21:29:11 Phantom_Hoover: I know it is 21:29:18 I know it's more complex than I understand 21:29:25 There was a short period where England was at war with itself 21:29:28 There would be even more headaches, though. 21:29:31 Ended up with Christmas parties being banned 21:29:35 Taneb: do you mean the Civil War? 21:29:42 Yeah 21:29:50 Scotland wasn't at war with itself, though 21:29:51 that was pretty complicated too 21:30:06 and England wasn't at war with itself, it was basically people loyal to the King versus people loyal to Parliament 21:30:26 Okay, a bit of England versus a different bit of England 21:30:52 But the end result was a very weird school and political system 21:31:00 it's just like any other rebellion, really, except that a) both sides were technically in charge beforehand, and b) both sides were pretty large 21:31:04 rebellions are normally rather asymmetrical 21:31:23 But Cromwell banned Christmas 21:31:25 nowadays, incidentally, the Queen still has to ask for permission to enter Parliament, as a result of all that 21:31:27 parties 21:31:39 and a guy with a sword stands inside the door of Parliament just in case it gets invaded again 21:31:41 The Queen is banned from the House of Commons 21:31:41 Taneb: You already had a weird school and political sstem. 21:31:49 Just got *further* weirdness. 21:31:59 (rather awesomely, a couple of years ago a protestor broke into Parliament and the guy with a sword actually drew it and pointed it at him) 21:32:05 Such as the House of Commons, the whole ceremony with the Black Rod, etc. 21:32:10 The Serjeant at Arms 21:32:22 It's... a bit more complex than that. <-- yeah i recall Hanover split from the UK when victoria became queen because they did _not_ have the same succession rules 21:32:24 Is the name of the guy with the sword 21:32:27 Erm, the House of Commons' 21:32:38 Taneb: yep, compleat with old-fashioned spelling 21:32:39 oerjan, no, I mean more how James ended up being I and VI. 21:33:02 That's because Scotland and England didn't officially become the same country until Anne 21:33:09 We use the lowest possible number now 21:33:16 I think 21:33:20 Or is it the highest? 21:33:24 I think it just follows English numbering 21:33:32 presumably there are Scots annoyed at that 21:33:49 Taneb, it was a roundabout way of indicating the whole situation that led to unification. 21:33:49 Probably also annoyed at the English Parliament becoming the UK Parliament. 21:34:04 pikhq, nah, we got a pretty sweet deal out of that. 21:34:08 Free tuition, anyone? 21:34:31 Phantom_Hoover: Actually, yeah, that's probably more annoying for people in England. 21:34:37 If I lived TWENTY MILES WEST, I would get free University tuition 21:34:39 indeed, Scotland got the best end of that deal 21:34:47 TWENTY MILES 21:34:50 Taneb, ...what? 21:34:56 I'm a Northumbrian 21:35:01 presumably Taneb lives near the English/Scottish border 21:35:03 Not being able to have any legislative process that applies to them exclusively is probably a bitch. 21:35:09 Sure, but the shortest distance would be normal to the border. 21:35:17 So NW. 21:35:22 this also implies that he's a Northener, and thus anyone from London is contractually required to hate him 21:35:29 Phantom_Hoover: well yeah i hear some scots insist on calling the current queen Elizabeth I ... 21:35:39 oerjan, I haven't met any. 21:35:42 (I'm from Birmingham, which means that nobody has a regional requirement to hate me, but many people have a regional requirement to laugh at me) 21:36:05 Goodnight 21:36:06 oerjan: If only the Commonwealth Realms did that. 21:36:07 Taneb, oh, huh, the border is more vertical on the east than I thought. 21:36:19 As technically Her Majesty *is* their first Queen by the name of Elizabeth... :P 21:37:21 Phantom_Hoover: indeed, I was thinking "why west? oh right, the border isn't straight" 21:37:32 hmm, has Scotland /ever/ been successfully invaded? 21:37:42 I know the Romans tried and failed 21:37:49 and so did the English, multiple times 21:38:17 oh, I think it was successfully invaded by people from modern-day Ireland once (which is where the name Scotland comes from) 21:38:27 -!- azaq23 has quit (Quit: Leaving.). 21:39:06 I'm a Northumbrian <-- and you say that after i was joking the other they that you were coincidentally Elliott's next door neighboor 21:39:10 Apparently some parts of it were actually occupied by Rome. 21:39:15 ... For 40 years. 21:39:19 ais523, I don't think they got all that much of it, though. 21:39:53 Phantom_Hoover: probably not 21:40:02 I imagine invading Scotland gets really difficult after a while 21:40:08 past a certain latitude, even the A-roads are single track 21:40:16 Up there with invading Russia, it seems. 21:40:23 -!- Taneb has quit (Ping timeout: 255 seconds). 21:40:47 Best way to do it is just to luck out in having the same monarch as Scotland. 21:42:08 one amusing thing to do is to look at a map of Scotland colored by which way people vote 21:42:32 because basically the whole country votes for Labour, sometimes the Liberal Democrats (although probably not next time round...), or the SNP 21:42:42 and there's one constituency which is staunchly Conservative, looking out of place 21:43:34 I think it's a lowland place full of richish farmers, whereas most of Scotland is hilly or mountainous 21:43:48 *day 21:44:01 also, *neighbor 21:44:06 *neighbour 21:44:14 we're discussing the UK here, you should use British spellings! 21:44:19 argh 21:44:39 * Phantom_Hoover notes that the only places that voted Lib Dem were Orkney and the Shetlands. 21:45:00 Phantom_Hoover: oh right, Scotland has had a full election since the Lib Dem collapse 21:45:13 `quote Scotland 21:45:19 399) Scotland turns from red and yellow to A DIFFERENT SHADE OF YELLOW 21:45:37 (for people who don't know: the Lib Dems were the third party for ages, and due to a near-tie in the UK general election, actually ended up in power, much to everyone's surprise) 21:46:02 "were"? did they collapse that much? 21:46:07 (and then when they didn't keep every promise they'd ever made, especially with having to negotiate with the Conservatives, everyone abandoned them in disgust) 21:46:16 oerjan, well, they're in power now. 21:46:16 oerjan: they've been coming fourth or fifth or sixth in by-elections 21:46:24 That too. 21:46:30 they're still in power with the Conservatives, ubt only because there hasn't been an election since 21:46:31 *but 21:46:36 which is a pity, because I rather like them 21:46:48 ais523: basically british voters don't understand the concept of coalitions, i guess 21:46:49 and think that most of the reasons people are hating them are stupid 21:46:53 oerjan: yep 21:47:11 also, there's the whole tuition fees thing (which Phantom_Hoover won't have noticed, being Scottish) 21:47:26 basically, after the election, all three parties did a U-turn on what to do about university funding 21:47:41 ais523, hey, some of us go to university in England. 21:47:43 and the Lib Dems had the most popular viewpoint beforehand, so people got most annoyed about them changing their mind 21:48:02 the funny thing is, all three parties are actually proposing the same thing, just with language that makes it seem different 21:48:35 ais523: with the two party systems of the UK and the US, it's a wonder that the two top parties have ever changed 21:48:38 the difference is between people going to university "for free" and paying a percentage of their income afterwards for a while (popular opinion) 21:48:50 i guess it took some _major_ societal change 21:49:06 ais523: with the two party systems of the UK and the US, it's a wonder that the two top parties have ever changed 21:49:15 and people going to university and paying a lot of money, but then getting a loan for the same amount of money, and paying off the loan with a percentage of their income afterwards for a while (unpopular opinion) 21:49:32 Well, in the UK the 2-party system is *far* less pronounced than that in the US. 21:49:33 I can't figure out why one opinion is popular and the other is unpopular, given that with a bit of number-tweaking they come to the exact same thing 21:49:50 and yes, the US has a very strong 2-party system, the UK doesn't 21:50:03 "Hard-coded" more like. 21:50:50 The last time we had a vaguely viable third party was when Theodore Roosevelt started the Progressive Party. In 1912. For 4 years. 21:51:08 basically, think of it this way: if both the top 2 parties were simultaneously embroiled in a major scandal in the UK, it would be enough to tip a third party ahead of them across a wide spread of the country 21:51:12 in the US, it wouldn't 21:51:17 Even then, he didn't *win*. Just got second place. 21:51:31 probably a third party wouldn't win anywhere, or even come second 21:51:45 also, you get occasional oddball wins in the UK as well 21:51:51 like the Green Party winning a seat last election 21:52:08 the evidence is very clear that they'd decided that it was the seat they had the best chance of winning, and focused all their efforts on it 21:52:09 It's a freak occurance for a third-party candidate to win a state or local seat. 21:52:29 Even less likely to win in the House. 21:52:32 the general election before last, the Save Kidderminster Hospital Party won a seat 21:52:35 Nearly impossible to win in the Senate. 21:52:36 or was it two seats? I can't remember 21:52:47 (presumably more than one constituency lives within range of Kidderminster Hospital) 21:52:56 And for President, it takes the third party *replacing* a party. 21:53:28 and as a result, the BBC ended up having to come up with a color for them on their maps (I think it was a dark greyish reddish-purple) 21:54:19 oh, here we go: http://en.wikipedia.org/wiki/Independent_Kidderminster_Hospital_and_Health_Concern 21:54:23 looks like they only got one seat 21:55:09 and have been trying to expand their manifesto to not be specific to the one hospital (which obviously doesn't come up in debate in Parliament all that often) 21:55:20 (although I bet they tried to change the subject to it whenever they could) 21:55:24 (so as to have a reason for existing) 21:56:08 it doesn't say whether they managed to save the hospital unit 21:56:37 I know, that's the reason I went there in the first place :( 21:58:12 it doesn't seem to say in the Kidderminster article either 21:58:40 I checked there too 21:58:45 http://www.reddit.com/r/philosophy/comments/ih7qd/how_can_some_people_be_so_sure_that_we_cant_know/c23rb67 21:59:04 so, I tried to go to their website, http://healthconcern.org.uk/ 21:59:14 and wow, website design from 199x (I forget which x, can someone remind me?) 21:59:57 ah, the website implies that they downgraded the hospital in 2000, before the party won its seat 22:00:06 and they've been fighting to have it restored to its former state 22:11:39 -!- Nisstyre has joined. 22:11:52 -!- olsner has quit (Ping timeout: 252 seconds). 22:12:18 -!- Vorpal has quit (Ping timeout: 264 seconds). 22:13:01 -!- Vorpal has joined. 22:13:20 -!- olsner has joined. 22:29:30 Phantom_Hoover, what? Is it wrong to correct someone who's mistaken? 22:29:43 Sgeo, it's how mistaken he is that is amusing. 22:38:51 -!- Sgeo_ has joined. 22:40:15 -!- Sgeo has quit (Ping timeout: 255 seconds). 22:45:35 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 22:48:12 "Our most common question these last few days has been, "The email address 'submit at machineofdeath dot net' doesn't work! My email program says 'Invalid address!' How do I send in my story??" 22:48:12 In response we must gently explain that it is actually "submit@machineofdeath.net". " 22:48:37 Hmm, crud, wonder if spambots read these logs 22:52:40 well google rarely finds them 22:58:27 > 0.6*49.8 + 0.4*2 22:58:28 30.679999999999996 23:18:25 -!- quintopia has quit (Ping timeout: 260 seconds). 23:19:32 "Many natural dog food supplements boast garlic as a natural flea preventative. 23:19:32 "? 23:19:34 WTF? 23:20:26 presumably fleas don't like the smell of garlic 23:20:33 secretly, it's really to ward against vampire dogs 23:20:42 -!- quintopia has joined. 23:23:19 But garlic in dog food just... 23:23:29 -!- NihilistDandy has joined. 23:23:38 Or is it just large amounts that are bad? 23:25:13 i only know about chocolate and dogs... 23:33:25 -!- CakeProphet has joined. 23:33:25 -!- CakeProphet has quit (Changing host). 23:33:25 -!- CakeProphet has joined. 23:46:30 And the whole thing with chocolate and dogs thing is overblown. 23:46:45 It's actually pretty hard to give a dog a lethal dose of chocolate. 23:47:04 Too little, and it doesn't matter much. Too much and the dog vomits it right away. 23:47:05 even so, mildly poisoning a pet is a bad thing to do, right? 23:47:12 ais523: Yes, I wouldn't *recommend* it. 23:47:24 Cause you'll either have diarrhea or vomit to clean up after. 23:52:06 -!- CakeProphet has quit (Ping timeout: 276 seconds). 23:52:27 -!- CakeProphet has joined. 23:52:28 -!- CakeProphet has quit (Changing host). 23:52:28 -!- CakeProphet has joined. 2011-07-16: 00:00:57 -!- itidus20 has joined. 00:01:08 * Phantom_Hoover → sleep 00:01:10 -!- Phantom_Hoover has quit (Quit: Leaving). 00:03:27 -!- copumpkin has joined. 00:03:27 -!- copumpkin has quit (Changing host). 00:03:27 -!- copumpkin has joined. 00:17:51 I have now made approximately one third of the DVI optimizer program. 00:45:28 -!- hagb4rd has joined. 00:50:18 -!- Sgeo_ has quit (Ping timeout: 255 seconds). 01:10:40 -!- BeholdMyGlory has quit (Remote host closed the connection). 01:12:31 -!- myndzi has quit (Ping timeout: 258 seconds). 01:13:47 -!- myndzi has joined. 01:21:00 -!- Sgeo has joined. 01:35:18 -!- Sgeo has quit (Ping timeout: 255 seconds). 01:35:42 -!- Sgeo has joined. 01:43:43 -!- Sgeo_ has joined. 01:45:39 -!- Sgeo has quit (Ping timeout: 255 seconds). 01:46:32 -!- CakeProphet has quit (Ping timeout: 246 seconds). 01:47:22 I found list of spells of D&D game including "Explosive Familiar" it makes the caster's familiar explosive, and "Feign Invisibility" which causes others to believe the caster is invisible even though they can clearly see the caster, they must think they can see him somehow even if he is invisible. 01:48:21 -!- yorick has quit (Ping timeout: 255 seconds). 01:50:08 -!- yorick has joined. 02:43:18 Do you know Double Fanucci? 02:58:26 -!- pikhq_ has joined. 03:02:06 -!- pikhq has quit (Ping timeout: 264 seconds). 03:40:55 zzo, sort of like how stage hypnosis is supposed to work eh. 03:42:10 i've seen an [obviously staged] video of a guy who hypnotized a woman to think he was invisible and then he would tickle her with a feather and make her look up with confusion 03:42:20 on youtube 03:42:45 zzo38: do you know any good math games? 03:43:00 but i am trying to put such bizzare fetishes behind me. 03:43:22 it might not have been youtube :-? i forget 03:44:17 and there is that book whose name i am not sure of which apparently has this word fnord which the citizens have been conditioned to block out 03:44:32 instilling fear in them because it is present in their texts even though they cannot conciously see it 03:46:59 as far as I know, the actual experience of such things is a deep form of submission whereby you let someone force you to fake it till you make it 03:47:21 fungot: do you know anything about this? 03:47:22 oerjan: computergram via first! peter norton, founder of peter norton, founder of peter norton, founder of peter norton, founder of peter norton, founder of peter deutsch and warren teitelman ( all the major problems, consider that " if the translators of the 03:47:29 ^style 03:47:29 Available: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc jargon* lovecraft nethack pa speeches ss wp youtube 03:47:35 ^style irc 03:47:35 Selected style: irc (IRC logs of freenode/#esoteric, freenode/#scheme and ircnet/#douglasadams) 03:47:49 fungot: could you elaborate on that? 03:47:50 oerjan: 1-based would be confusing? i hope i someday understand call/ cc will restore the stack and the registers. 03:48:04 fungot, you disappoint me. 03:48:04 oerjan: i'm just curious if he had his student do it :) 03:49:00 something is wrong, i cannot see fungot's fnords. oh wait... 03:49:01 oerjan: yes... roots are bad... 03:49:37 So, who has the mysterious libc.so? 03:50:05 it was after a girl in a chatroom started actually doing this to me that I knew I had to leave her. 03:51:54 Sgeo_: some guy called Error: Malformed requestDomain Name 03:55:47 -!- Lymee has joined. 04:07:39 quintopia: I don't know a lot of math games 04:07:54 Although there are some games that you can possibly involve mathematics with 04:07:58 hmm 04:08:02 math games.. 04:08:04 for example? 04:08:42 quintopia, single or multiplayer? 04:08:47 multi 04:09:02 I don't have a specific example; I just mean in general some specific things having to do with certain games might be related to mathematical involving things, or maybe I wrote something wrong I don't actually know how to say this so I write like this is all mixed up sorry 04:10:52 I have a small stash of ebooks which I more or less just hoard and don't investigate, some of which may actually be relevant. 04:13:30 * Sgeo_ vaguely remembers some computer game from when he was a kid 04:14:03 When playing pokemon card I play for overmate. (Even if overmate is not relevant to the rules being used; it is certainly not relevant in the standard rules.) 04:14:25 lewis carroll, raymond smullyan, douglas hofstadter 04:14:46 i don't know if they entirely reach the topic. 04:14:52 I have one book written by Douglas Hofstadter. 04:16:16 i am sure john conway is relevant to the topic but i don't have any ebooks that are really related to him 04:19:41 winning ways, probably 04:20:39 puzzles are more common than actual games 04:21:16 * oerjan has simon tatham's lightup in the other window 04:23:26 depressing wiki comment backs me up "This article is about using mathematics to study the inner-workings of multiplayer games which, on the surface, may not appear mathematical at all. For games that directly involve mathematics in their play, see mathematical puzzle." 04:25:12 maybe things aren't so bad 04:25:19 anyway here is the page: http://en.wikipedia.org/wiki/Mathematical_game 04:28:07 all the math games i know are too hard for mere humans to do in their heads 04:30:34 As a wannabe game designer it gives me great pain to think about how the only reason games are possible is due to imperfections in the players. 04:31:08 relative to perfect play that is 04:31:37 but thats probably a naive view i hold too often 04:32:13 -!- oerjan has quit (Quit: Good night). 04:32:49 That is the cynical depressing view that all gaming is to demonstrate some level of deviation from perfect play higher than the opponent. 04:33:35 Then again we find that perfect play is a waste of time. 04:34:02 And yet it helps motivate us to play if we idealize perfect play. 04:34:18 All of this of course is my cynical views which are probably wrong. 04:35:57 this is only true of mathematical games 04:36:08 and not even all of those 04:36:17 im full of shit ^_^; 04:36:42 here's an example: the simple three player game help-or-hinder 04:36:56 it's practically unanalyzable 04:37:16 so winning has nothing to do with perfect players... 04:37:39 i analyze things too much 04:37:39 -!- Elizacat has quit (Read error: Operation timed out). 04:38:03 i can think of arguments against my earlier comments but its all just a pile of crap comments 04:38:41 -!- mtve has quit (Ping timeout: 252 seconds). 04:38:49 humm 04:39:03 you know what i havent seen much is coop games 04:39:34 i was talking to this guy once about it 04:40:32 -!- Elizacat has joined. 04:41:49 Now I have the DVI file of my and my brother character sheet. Currently it has no story text or footnotes. 04:42:26 omg the first result on google is an xkcd page 04:42:36 -!- mtve has joined. 04:42:49 Result of what? 04:43:20 http://forums.xkcd.com/viewtopic.php?f=3&t=16990 04:43:42 omg quintopia posted on that page 04:44:41 yeah, i am skillful googler 04:45:31 good find 04:46:47 Did you expect the Spanish Inquisition? 04:47:13 well i searched on: "3 player game" "help or hinder" 04:47:24 didn't work in bing so i proceeded to google and it did 04:47:41 OK now I know what you search 04:47:56 yet an MS spokeswoman says "if google didn't exist bing would be good enough" 04:48:52 i didn't remember that that guy invented that game 04:49:01 anyway, it's a good example 04:49:15 yeah good enough for me to use as fertilizer 04:49:47 3 player eh 04:50:00 so.... by having an odd number of players the dynamics become much more complex 04:50:42 Isn't Diplomacy a 7 player game? 04:50:55 Not really mathematical in that way though 04:51:12 Although I wonder what would happen if you took the board out and just made it that sort of game 04:52:08 this very sort of topic is what eventually led me to a chatroom for esoteric programming languages 04:53:14 so this page is like anti-3 player games 04:53:17 but i am all for it 04:54:21 ashbash makes the point 04:54:23 Theoretical maximum overmate in pokemon card is eight. Try to design a situation using only cards in Pokemon Card GB2 where the player whose turn it is can win with eight overmate on this turn. Better if the number of things that must be done is increased and/or if chance based things are involved although when combining them properly you can guarantee a win 04:54:50 chance is fun. 04:55:42 oh 04:55:50 an idea just came to me, 04:56:28 http://en.wikipedia.org/wiki/Phutball this one is good. solving it is PSPACE-complete! 04:56:29 Alternatively, instead of overmate (since overmate is not standard rule), do such that you have six side cards remain and zero cards in draw pile, opponent has many cards in draw pile but only one side card remain. And you are poisoned. 04:56:48 i am a genius of course.. so ideas often come to me 04:57:33 but you are keeping it to yourself 04:57:34 tell me 04:57:37 ok i am "confident" you have not heard of this game before 04:57:51 This is "The Ultimate Pokemon Card Puzzle Game". 04:58:01 so.. each player has 2 private 8x8 boards 04:58:17 following with me so far? 04:58:50 itidus20: OK. So far. But that isn't much. 04:59:02 they each have a pair of 8x8 boards that only they can see.. thus a total of four 8x8 boards 04:59:09 OK 04:59:34 they also have a bunch of tiles... lets say 128 tiles just to be safe 04:59:45 128 each 04:59:55 OK. 05:00:16 That should be sufficient to cover the board unless they are allowed to be stacked. 05:00:25 and uh.. 2 more tiles of a second color.. and 2 more tiles of a third color 05:00:50 so.. color 1) 128 tiles, color 2) 2 tiles, color 3) 2 tiles 05:00:51 OK what are these second and third colors mean? 05:00:56 hehe 05:01:26 I understand so far what you have written, but not sure of its significance yet due to you can write it later the rules, and then is known its significance to the game. 05:01:43 ok now.. they begin by placing color 3 tiles on the boards.. 1 on each board 05:01:59 at location.. x = 4, y = 8 05:02:31 OK. What next? 05:02:37 now, on one of the boards, they place a color 2 tile somewhere 05:03:09 so far so good? 05:03:31 OK. Do you place of your choice position? Is it allowed to stand on top of the other tile or not? 05:03:48 oh.. its allowed anywhere except the first tile position 05:03:55 OK. 05:04:10 for now.. that rule might turn out to need altering 05:04:52 ok.. next.. you build a maze with the color 1 tiles leading to the color 2 tile 05:05:14 from the color 3 tile to the color 2 tile 05:05:26 OK. (I was going to ask exactly that) 05:06:50 diagonal moves are not possible, but the maze has to be a solid object in the way that a tetris piece is a solid object 05:07:00 uhh sort of 05:07:04 OK, I think I understand what you mean. 05:07:07 maybe it can have gaps 05:07:14 but uhhh 05:07:17 hummm blah 05:07:21 yeah anyway moving along 05:07:21 Have gaps? How would that work? 05:07:32 well im not sure.. this part is tricky to formalize in words 05:08:03 If you cannot do it in words, do it in pictures, or in mathematics. 05:08:11 so anyway... what happens is.. in any order.. doesn't matter.. each turn.. both players are told which directions have walls 05:08:21 so it might be like "east and west have walls" 05:08:34 OK 05:08:51 itidus20: the easiest way to say what i think you are trying to say is "no 2x2 region can contain no color 1 tiles" 05:09:08 and then the player tells the other player which direction he makes his move 05:09:13 I think I can see what this is doing a bit 05:09:33 and both players update their boards.. and its a race to reach the end of the maze 05:09:37 but 05:09:44 why does each player have two mazes 05:09:49 oh 05:10:01 so they can construct the other player's maze on their own board 05:10:04 yup 05:10:14 its not a bad idea right? 05:10:16 Yes I think I know exactly what this is now. 05:10:17 it's like multiplayer adventure game :P 05:10:40 except you can never be in a maze of twisty little passages, all alike 05:10:46 -!- mtve has quit (Ping timeout: 260 seconds). 05:10:49 Something like battleships, except not battleships at all. 05:11:20 an idea: what if the mazes can be arbitrary graphs but every node has unique number? :P 05:12:10 sorry, i always try to make things difficult. for instance when i saw the phutball game i said "i wonder if it would be harder on a projective plane?' 05:12:20 Then it is somewhat similar to Wumpus game?? 05:12:21 oh i am empty of ideas now. just had to spill that one 05:12:39 or you can make it so the mazes are on tori! 05:12:47 that would be super interesting 05:13:04 quintopia: Have you ask on this channel a few days ago about FurryScript document? I have now written the document in case you were looking for it. Or, was it someone else who asked for it? 05:13:14 yes i saw you said that and thanked you 05:13:40 Maybe you can make a maze with the tiles and also chess as well. 05:15:48 it is by jumping into such random convos that such ideas come to me 05:15:51 i never get them on my own 05:17:04 zzo, yeah i like to consider every possible use of the chessboard other than to play chess :-? 05:18:37 itidus20: Yes you can make other games using the same or similar board. Some game similar to chess includes Xiangqi, Shogi, played with their own board, but it is still like chess, you still take turn moving 1 piece each, you attack opponent's king and can win, etc. 05:18:48 i actually created a wild image with my wacom tablet the other day to show my desire to stretch the game of chess 05:20:42 There are many variants and I have invented some chess variants. Some which are played with the same board. I made one game "123456 Chess" which is a chess variant that you can use a chess/checker/backgammon set. You start with rook standing on checkers, and two dice each with 1 on top at start. You can advance the dice which uses up a turn. Capture with checkers must be done if able. 05:22:05 Or, another game, once my brother put eight checkers in front of the pawns for joke. But then we decided to actually play that way. We discussed the rules although as it turned out both of us already agreed on the exact rules to use in our mind, before discussion! 05:22:11 I liked the chess variant shown on the big bang theory 05:22:26 i made my own game with chess pieces once. it had a much higher branching factor than chess, because it was possible to respawn captured pieces 05:22:53 http://oi55.tinypic.com/15n2fro.jpg 05:22:55 but the goal was simpler...simply to get a pawn to the opponents first rank 05:23:16 but i forgot the initial configuration and rules of motion 05:23:31 never wrote it down 05:24:34 damn 05:24:42 I have read of another variant where that is the case, win by a pawn on opponent's first rank. 05:25:09 But in that variant, it was otherwise as normal (FIDE) chess and you can win by checkmate too. 05:26:01 i dont like chess because i have no clue how to play.. and that being the best is ridiculously difficult 05:26:37 and a game like chess to me is the perfect thing to exploit into other games 05:28:33 I once had idea in Magic: the Gathering cards, a card, both players assign permanents to each chess piece (with not allowed two pieces for the same permanent), and then play chess. Any captured piece causes corresponding permanent to be discarded. In case of checkmated, losing player permanent corresponding to their king is discarded. 05:29:09 the maze thing is probably not as good in practice as it sounds. 05:29:33 itidus20: I believe you. 05:29:51 but the idea is fun 05:31:01 -!- rodgort has quit (Quit: ERC Version 5.3 (IRC client for Emacs)). 05:31:10 Yes, I think it is something like battleships, except that it isn't battleships at all. 05:31:13 -!- rodgort has joined. 05:32:05 Do you know how to play Magic: the Gathering card or play pokemon card? 05:32:10 you're right... its basically battleships except reduced down to 1 small ship 05:33:23 no i don't. 05:33:42 itidus20: i am getting another idea for a maze game 05:34:41 If anyone has idea, try to invent "The Ultimate Pokemon Card Puzzle Game". 05:34:57 this one will take some thinking since it is not symmetrical 05:35:03 zzo38: i'm not really into pokemon 05:35:52 quintopia: OK. You are not really into pokemon 05:35:57 quintopia: I once had an idea about generating a maze by dice rolls 05:36:57 itidus20: i want to make a cross between pacman and fox-and-geese, where the geese player is the only one who knows the maze and the positions of everything. 05:37:21 and only four geese/ghosts 05:38:01 zzo, i am fascinated by some dragonball z emulated roms based on card games 05:38:22 ah fox and geese.. i have a book around with a lot of games described 05:38:24 but the problem is you can't let the maze be designed by the geese player because they could make it a labyrinth (unicursal) and trap the fox too easy 05:38:24 I once had an idea about making up an entire set of rules for a chess variant by dice rolls. 05:38:44 zzo38: such games have existed since the beginning of chess 05:39:19 No, I mean, before the game starts roll the dice to determine each individual small part of the rules. And then the game is played without dice. 05:39:20 theres 1 special book about chess history which i have been unable to locate on the internet 05:40:02 oh 05:40:03 What book? 05:40:18 ill check my browser history 05:40:23 zzo38: make it a drinking game too 05:40:28 I do know, however, of chess variants with dice, including Ludus Equitum (roll two d6 dice to determine which two pieces you are allowed to move, and it is allowed to pass one or both parts) 05:40:35 quintopia: That's the only way I get anything done anymore~ 05:41:11 zzo38: that sounds similar to one particularly ancient one i was thinking of 05:41:13 A History Of Chess by some H.J.R. Murray 05:42:06 Ludus Equitum is not particularly ancient. It is relatively modern. However, it is the Society of Creative Anachronism game, so it is using old style rules. 05:42:43 itidus20: Surprisingly, I can't find it either. I thought I had a near comprehensive set of books on chess. 05:42:54 its very special that one 05:43:01 will be hard to find 05:43:52 I learned about it when I started to want to know about the very origins of chess 05:44:48 I hope I solve chess. That'd look great on a resume~ 05:47:27 theres something so compelling about chess.. but yet for me there is a certain boredom that i imagine with it 05:48:27 Chess is always exciting, unless you play with people who know a little about it 05:48:42 People who know nothing are interesting because they are hard to predict 05:48:56 People who know a lot are exciting because they think in the metagame 05:49:20 People who know a little have a small repertoire and decent middlegame. No fun at all 05:49:52 itidus20: I think I have also played some kind of card game Dragonball Z on NES, although I am unsure of the rule. Each card two numbers, one above is dots tell you how many times to move, the one below I am not sure what it means. 05:50:15 But I like pokemon card. 05:50:18 zzo38: I remember that game :D 05:50:20 zzo38: yeah.. thats exactly the kind of game i mean. they're fun to watch 05:50:31 I much prefer Magic to Pokemon 05:50:36 i have no clue what goes on though 05:52:20 I do know reading numbers with kanji, and also some words with hiragana and katakana, a bit. 05:52:48 oh well i think theres some translations anyway 05:52:56 but even still i would have no idea 05:54:27 so, zzo, did you learn much about chess variants? 05:55:22 i actually basically independantly discovered the theory of chess variants 05:55:45 and, at the end i googled it and found out with dismay that what i had discovered was nothing new at all 05:55:57 -!- Taneb has joined. 05:56:10 Hello 05:56:32 Theory of chess variants> 05:56:42 How is there a "theory" of such things? 05:56:51 But what I can tell is you are allowed to step in the same square twice when walking, and that when you have to fight it might be useful if Gokuu and Pikkoro stand in the same place because then you can have both on your side fighting. And there are also some item cards. And different tiles have different effect stepping there. Also "Z" seems to mean eight 05:56:56 perhaps theory is the wrong word.. but i will explain 05:56:59 itidus20: http://chessvariants.org/ 05:57:25 Anyone want a game of chess? 05:57:27 oh, well, by discovering it myself i had insight into exactly what chess variants are. 05:58:07 they are taking the properties of the individual pieces and forming an abstract class which you might call "chesspiece" 05:58:21 and.. deriving from that class.. new pieces 05:58:42 this general process is exceedingly powerful 06:01:40 Apparently a Whaling meeting ignored Whales! 06:01:44 http://www.bbc.co.uk/news/science-environment-14153779 06:04:55 so naturally most chess moves resolve into vectors. either specific lengths or unlimited 06:05:40 now .. this creates a problem if you imagine a chessboard of say 1000x1000 ... do you still want some pieces crossing it in one go -- that is -- are unlimited movement vectors implied on boards > 8x8 06:05:57 its all very fun for a rainy day 06:05:57 I would assume so 06:06:55 Pieces such as the queen and the rook have less of a vector and more of an angle 06:07:40 of course one way around that would be to divide the board up into districts 06:07:54 where a piece has to stop at the edge 06:08:00 sort of 06:08:54 how about making it instead of pieces moving, they clone themselves into some available square. no piece ever moves, but they die after some fixed number of moves. 06:09:06 But what would happen at the border to districts? 06:09:20 Trees seem to be the most correct representation, at least to my mind 06:09:41 representation of what 06:09:46 chess games? 06:09:46 Chess 06:10:03 it is too general 06:10:11 any game is represented as a tree 06:10:14 What if they're moving in some sort of jelly? 06:10:21 Generality is a flaw? 06:10:28 yes 06:10:32 Different pieces can move further through the jelly 06:10:37 the trouble starts when you start trying to abstract moves like en passant and castling 06:11:10 then it feels like a scripting language would be useful 06:11:21 in the definition of the pieces 06:11:22 when a representation is too general to give insight to a human individual, it is not a useful model 06:11:28 -!- zzo38 has quit (Remote host closed the connection). 06:11:29 You know, I've only played en passant once? 06:11:33 Ever? 06:11:47 en passant was a very late addition to the game 06:11:51 What insight are we after? Optimal strategy? 06:12:21 Optimal description of pieces and how they work, I think 06:12:47 En passant is the rule that no one knows about unless they play regularly. Most of the adults I played with recreationally when I was younger had never heard of it 06:13:05 Taneb: Ah, I see. Well, that does make a tree a little ridiculous 06:13:31 I've beaten someone who's beaten someone who was at one time the chess champion of Australia 06:14:28 I suppose what I'm curious about is what exactly we are trying to quantify about the pieces and their movements. 06:14:48 back 06:14:57 dandy: variant pieces 06:15:09 Ah, okay 06:15:12 well, i don't know. perhaps the conversation has multi-threaded too 06:15:22 which is nice 06:15:30 I'm pretty much in a conversation with myself 06:16:06 -!- hagb4rd has quit (Ping timeout: 255 seconds). 06:16:57 So I decided when I was thinking about chess variants that the minimal conditions I would find acceptable is a system which could describe all the rules of chess 06:17:27 including castling and pawns moving 2 spaces on their first go, and queening, and en passant etc 06:17:51 hmm 06:18:27 Are we talking a computational system, or a general formalization? 06:18:46 I did try for a little while. I think as I became aware of the existence of professionals who had already done a lot of it, I lost interest. 06:18:52 both :D 06:19:45 I had plans on making a program to do it but it started to make me sweat so by then i had thrown in towel 06:20:07 I wouldn't have done that 06:20:15 I would have used the towel to dry off the sweat 06:20:19 And then continued 06:20:27 Maybe got someone to bring you a new towel 06:20:29 I didn't have any exciting ideas anyway 06:20:48 Depends what you find exciting, I guess 06:20:49 I simply realized that chesspieces could be highly generalized. 06:21:48 Also, there is the draw I feel towards making a realtime chess 06:22:00 I have seen a youtube video of kungfu chess. 06:22:30 http://www.tempestchess.com/ 06:25:51 I feel a small joy reading "I would rather take the real-time chess concept as far as it can go." 06:26:52 but yeah.. sumo volleyball sounds like the kind of nonsense I would be looking to create 06:30:34 I would define a piece as: a list of vectors/angles defining how it can move 06:30:47 A boolean defining whether it can "jump" like a knight 06:31:10 And a series of scripts for special events such as castling, en passant, and promotion 06:31:29 Of course, pawns are weird 06:31:38 well, i decided to define a boolean named virgin for whether or not a piece has moved yet :D 06:32:27 How about a second series of vectors/angles defining how it can take, and if this is omitted, the movement one is used for this as well 06:33:08 i also abstracted the role of the king into an idea of like a squad leader 06:33:19 Also, somebody's spammed the wiki 06:33:22 http://esoteric.voxelperfect.net/wiki/100_free_dutch_dating_sites_2008 06:33:26 Can anyone here fix that? 06:34:20 First let me grab those sweet free Dutch dating links!~ 06:35:08 so uh.. you could have a chess army consisting of multiple squads.. 06:35:15 and if you take down the leader, the whole squad falls 06:35:58 yeah, i am full of ideas on this kind of thing.. it provides me some kind of perverse pleasure 06:38:15 I need to find a charger cable 06:38:31 Actually, can anyone recommend an IRC client for Windows XP? 06:39:06 YChat works. 06:39:08 Taneb: mIRC, Leafchat 06:39:11 I dunno how it compares 06:39:36 * Sgeo_ uses Silverex, which has "YChat" in the title bar 06:40:13 hmm.. seems they are related 06:40:29 Leafchat looks cool 06:40:41 looking on the about box one of the devs of this ychat has an email address silverex@silverex.org 06:41:15 I'm going to leave, shut down, have breakfast, turn on a different computer, install leafchat, and return 06:41:18 itidus20, so basically, you're using Silverex, which just puts YChat as the name of the program 06:41:20 Taneb: Leafchat's got perl scripting and so on, which is neat 06:41:21 But not yet 06:41:33 im using some version of it 06:41:40 i dont know 06:42:05 its listed as: X Chat 2 in the start menu 06:42:46 weird 06:45:29 Silverex is just a build of XChat 06:45:49 Use irssi-proxy and any client you like 06:45:53 Problem solves 06:45:57 *solved 06:46:21 -!- Taneb has quit (Ping timeout: 276 seconds). 07:08:12 -!- ais523 has quit (Remote host closed the connection). 07:08:18 -!- myndzi\ has joined. 07:10:33 -!- myndzi has quit (Ping timeout: 264 seconds). 07:11:03 -!- Taneb has joined. 07:11:14 Hello 07:11:32 Hiyo 07:13:25 This computer is quite slow 07:13:38 It was a normalish computer in 2006 07:13:44 So what did I do? 07:13:49 I installed Dwarf Fortress 07:14:30 Naturally 07:20:28 -!- mtve has joined. 07:24:30 So, what's happening in the world of esoteric programming? 07:25:04 You wouldn't have heard about it B-\ 07:25:35 "it B-\"? Sounds interesting 07:25:39 Could you elaborate? 07:26:27 http://blogs.discovermagazine.com/discoblog/files/2010/11/hipster-cat.jpg 07:26:44 There's no ironic hipster emoticon 07:26:50 This is their greatest triumph 07:32:33 Oh, why are ink cartridges so tricky to replace? 07:32:53 So you'll ruin them and have to buy more. 07:33:50 To punish you for not buying a laser printer. 07:34:31 I was holding it upside down 07:35:02 Still, you should definitely invest in a laser printer. 07:35:19 Y'know, a printer that you'll probably have to put in your will for your grandchildren. 07:37:23 I can't afford one of those! 07:37:37 A grandchild, not a laser printer 07:37:42 Ah. 07:37:46 You can afford only one or the other 07:38:00 NihilistDandy: Clearly the laser printer is the superior choice. 07:38:06 But you can't use Postscript on a grandchild 07:38:08 pikhq_: Exactly 07:38:18 Also, you need to have children first. 07:38:42 And in this anti-sanity economic climate, children are likely to cost you twice all the money. 07:38:45 pikhq_: Unless you're a creative adopter 07:40:18 Adopting pregnant adults, to minimise effort to gain grandchildren? 07:40:45 Taneb: You can have pregnant non-adults, y'know. 07:41:03 At least, as far as the US is concerned. 07:41:15 (it's a fairly common thing, though) 07:41:43 Yeah, but then you need to look after them 07:42:02 I was trying to minimise long term effort 07:42:41 I think it may be undoable in the Status Civitatis Vaticanae... 07:44:49 The way things are with the people of the Vatican? 07:44:56 As long as you didn't pronounce that in the style of Church Latin, I'm okay with it 07:45:22 stahtus kiwitahtis waticahn-eye 07:45:27 <3 07:45:40 GCSE Latin, hopefully coming this August 07:45:41 NihilistDandy: I actually find Church Latin somewhat unnatural. 07:45:47 pikhq_: Exactly 07:45:55 It's good for ominous chanting 07:46:05 Taneb: I'm so glad I'm not the only one who took Latin 07:46:10 I don't even really know Latin, I just know that Church Latin sucks. :P 07:46:34 (my knowledge of Latin is limited to: orthography, pronunciation, obvious cognates) 07:46:36 Church Latin is what happens when you let Italians ruin things :| 07:47:04 (and random things memorised courtesy of high school choir) 07:47:17 lingua latina Pateri mala est 07:47:26 Taneb: The age of consent in the Vatican is 12. 07:47:30 I learned more about English in two years of Latin than I did in all my other schooling 07:48:11 pikhq_: And no one is surprised~ 07:48:24 * NihilistDandy is a master of outdated topical humor 07:48:36 NihilistDandy: They copied most of the laws in existence in Italy in the early 1900s. 07:48:41 Including their age of consent. 07:48:49 And have since not changed it. 07:49:00 God did it. His Laws are unchanging. 07:49:01 "The claim is sometimes made that "In the Vatican State, there is an equal age of consent set at 12 years of age",[48] but this is incorrect. In 1929, when the Lateran Treaty was signed, the age of consent in Italy was 12,[49], and this was indeed adopted by the Vatican. However, as stated above, the rise in the Italian age of consent applied automatically to the Vatican City." 07:49:03 Duh.~ 07:49:09 ^From Wikipedia 07:49:17 Taneb: D'awww. 07:49:24 Well, that's my vacation shot 07:49:36 D: 07:49:44 It's 13 in Spain 07:49:47 -!- monqy has quit (Quit: hello). 07:50:24 And 12 in parts of Mexico 07:50:26 Spanish is an awful language :/ 07:50:26 o.O 07:50:31 But that's just me 07:50:39 Hong Kong has an age of consent of 16 for heterosexual sex. 07:50:44 And no age of consent for homosexual sex. 07:50:57 It's 9 in Yemen 07:51:03 But you have to be married 07:51:08 Precisely 07:51:10 Not because it's illegal to be gay. 07:51:13 Esoteric, indeed 07:51:30 But because the only law estabilishing an age of consent was struck down in the courts. 07:51:37 If the FBI asks, this was a very complex conversation about combinators 07:51:55 So, it's legal for Catholic priests to fuck little boys in Hong Kong. 07:52:09 "Note all the 'Y's" I'll say 07:52:13 But not little girls. 07:52:27 pikhq_: I'm sure complaints are minimal 07:52:35 My English Teacher moved to Hong Kong 07:52:53 And my piano teacher moved to China 07:53:06 Pedophiles, all 07:53:12 or *paedo, I guess 07:53:51 *pædo 07:58:42 -!- Sgeo_ has quit (Ping timeout: 255 seconds). 08:00:09 -!- esowiki has joined. 08:00:50 -!- esowiki has joined. 08:01:39 -!- esowiki has joined. 08:02:18 -!- esowiki has joined. 08:03:01 -!- esowiki has joined. 08:03:01 -!- glogbot has joined. 08:03:22 Also, is it properly Mancuvian, or Mancunian? 08:03:36 For someone from Manchester? 08:03:46 yeah 08:03:54 Mancunian 08:04:14 Where the hell did I hear Mancuvian, then? :/ I've thought that that was the term for ages 08:04:27 I have no idea 08:04:33 Bizarre 08:04:43 I'm a novacastrian, incidentally 08:05:00 That's even better than liverpudlian :D 08:05:02 *novocastrian 08:05:33 Don't have a thick enough accent to be a geordie 08:06:03 Haha 08:06:26 Damn, I was wondering what was killing my battery life. Had some Monte Carlo Java nonsense running in the background 08:06:29 * NihilistDandy not amused 08:06:31 *is 08:08:04 There's a geordie comedian I see on QI occasionally that I find very funny, but I can never remember his name 08:08:14 Ross Noble? 08:08:34 That's the one 08:09:14 I'm mostly in it for the Stephen Fry goodness, but they get some good people on there :D 08:09:26 I watch it for Alan Davies 08:09:39 Also a winner 08:10:38 How about... an esolang based on QI! 08:12:06 I'm sure it's already been done and abstracted to some absurd level already :D 08:12:22 whats QI? 08:12:29 British panel show 08:12:41 is it IQ backwards? 08:12:48 It stands for Quite Interesting 08:12:57 Sort of a trivia show, but with vague points and barely any right answers 08:13:06 ah yes 08:13:17 "What language did the Romans speak?" 08:13:20 News items, too 08:13:23 *silence* 08:13:29 "...Dutch?" 08:13:42 "Name a poisonous snake." 08:13:44 You lose points for saying the obvious answer 08:13:47 "Piers Morgan" 08:14:02 "What was the great dissapoitment" 08:14:10 "Have you been talking to my husband?" 08:14:14 "last night" 08:14:16 hehehehe 08:14:41 Ross Noble had some surprisingly accurate answers about hedgehogs a few weeks ago 08:14:48 A few weeks ago? 08:14:58 Man, where was I a few weeks ago... 08:14:58 May have been more 08:15:17 I doubt that there is a QI esolang though. 08:15:24 I download it since I can't do the BBC video thing from here and they don't show it on BbCA 08:15:28 *BBCA 08:15:37 There's a very good reason for that 08:15:44 They use a lot of copyrighted stuff 08:15:48 True 08:15:50 Which is licensed only for the UK 08:15:51 although.. much to my surprise, a term i thought up "hashashins weed" has already been used 08:15:54 And New Zealand 08:16:01 http://www.youtube.com/watch?v=mqRkkVQ6OSE 08:16:34 Oh, good, they finally updated the HTML5 player on youtube 08:17:01 Pubenda is a great word 08:17:19 Might have to name our QI esolang that 08:17:45 How about BCL with Q and I instead of 1 and 0 08:17:54 Or Alan Davies and Stephen Fry 08:18:18 The Davies constant 08:19:38 http://www.youtube.com/watch?v=PA8qT5PzSS4&feature=related 08:20:40 David Mitchell's brilliant, as well 08:22:23 Grover Cleveland was two presidents of the United States :D 08:23:26 http://www.youtube.com/watch?v=kndxsByVscA&feature=related 08:25:02 http://www.youtube.com/watch?v=BfDCwP2SnI4&feature=related 08:41:21 http://www.youtube.com/watch?v=9aX26k5ZNzI&feature=related 08:41:41 Comedic timing at its finest 08:43:30 -!- pikhq has joined. 08:46:11 -!- pikhq_ has quit (Ping timeout: 260 seconds). 09:25:21 -!- azaq23 has joined. 09:25:26 -!- azaq23 has quit (Changing host). 09:25:26 -!- azaq23 has joined. 09:27:55 Back 09:39:44 Hello? 09:46:50 morning 09:47:11 My town's got a music festival this afternoon 09:47:15 i just did a full 14'er 09:47:38 14'er? 09:47:44 we had a music festival a few weekends ago 09:47:48 well you know a full night's sleep 09:47:54 Ah 09:48:14 I don't think i've ever been asleep that long 09:48:27 Had about two hours last night 09:48:42 But yeah, I remembered why I don't like it when I'm cleanshaven 09:49:34 I look like a freakin' elf 09:50:26 you make the awesomest palindromes, you don't need sex and you don't need sleep. you are a fucking superhuman :| 09:50:37 oh and you can transform into an elf 09:51:10 people think i'm 5-10 cm shorter than i actually am because of my crouching 09:51:20 but i'm not sure that's transforming into an elf 09:51:30 That's a dwarf 09:51:33 Or maybe a hobbit 09:51:38 Depends on your facial hair 09:51:39 santa's elves are drarves 09:51:50 Santa's elves are gnomes 09:52:42 but they have the property of dwarves which made you say dwarf in the first place 09:52:45 *dwarves 09:52:53 Except for facial hair 09:53:26 If anything, Santa's elves are Sami 09:53:37 well yeah but i have my own way of elving up and it uses a different breed of elf 09:54:47 ?pl i f x = i f $ f x 09:54:47 i = fix ((.) =<<) 09:55:00 ... 09:55:01 What? 09:55:06 Can you make Lambdabot call itself? 09:55:30 no know 09:55:36 @src lambdabot 09:55:36 Source not found. BOB says: You seem to have forgotten your passwd, enter another! 09:55:47 @src LambdaBot 09:55:47 Source not found. I can't hear you -- I'm using the scrambler. 09:56:04 @src foldl' 09:56:04 foldl' f a [] = a 09:56:05 foldl' f a (x:xs) = let a' = f a x in a' `seq` foldl' f a' xs 10:05:10 so did i tell you i met this canadian guy who thought stars are planets and was pretty sure scientology is the science of studying science 10:05:18 No 10:05:31 But one of my friends thought the capital of the US was in British Columbia 10:05:44 ...how? 10:05:59 Got mixed up with Distric of. 10:05:59 Washington BC 10:07:08 but anyway it was kinda fun, 21yo dude who had never been told the first thing about space (perhaps they teach something that's actually useful instead in canada, dunno what tho) 10:07:22 then again knowing the capital of anything is useless trivia, especially when it isn't the largest or most famous city in the country 10:07:23 Fighting polar bears? 10:07:31 hmm, true 10:07:33 And take in mind that some people just can't be taught. 10:08:01 (i.e. the capital of america is new york) 10:08:12 After we did the early USSR in History for about three months, some people in my class still had no idea who Lenin was 10:08:20 (and Australia's is Sydney) 10:08:38 he was studying accounting and i'm like isn't that stuff just adding up numbers? and he says nono there's so much more there's, let's see, managerial accounting, and then ummmm cost accounting, and well that's all i've had sofar. and i ask what those are and he's like 10:09:40 ...which i assumed meant "adding up numbers". 10:10:19 Sylvester McCoy is going to play Radagast the Brown in the Hobbit movie! 10:13:13 http://www.youtube.com/watch?v=HMGIbOGu8q0&feature=related fny sho 10:14:51 I'm going to quote you on my user page 10:15:51 go ahead, although it's HackEgo quotes i'm after 10:21:42 hehe :P 10:26:37 oklopol, your message got cut at "he's like" 10:29:36 cheater_: no it didn't, actually 10:29:44 sorry, i suppose that's a bit confusing of a thing. 10:32:00 he made a reaction of the kind that you would assume meant "adding up numbers" 10:32:17 no actually he said nothing 10:32:25 erm 10:32:37 well what olsner said but my cutting it off meant precisely what i said 10:33:35 pretty cool: https://markup.mozilla.org/en-US/#/mark/new 10:36:51 It's essentially a simpler version of DeviantArt Muro? 10:37:16 they won't let ie users in 10:37:29 What, DeviantArt? 10:38:31 On another not, Oerjan demonstrated how easy it is to program in NUmberwang 10:38:35 This is a problem 10:38:42 It should be hard to program in 10:41:13 no what cheater_ linked 10:41:37 ^*note 10:43:41 i preferred on another not 10:49:09 Bye 10:49:19 -!- Taneb has changed nick to TanebIsGone. 10:52:11 That's Numberwang 11:18:05 -!- Phantom_Hoover has joined. 11:24:32 http://www.youtube.com/watch?v=uRbj1Q4tXNo&feature=related these are just amazing 11:27:47 Casting them for the Mac ads was genius. 11:28:02 Webb plays the smug, pretentious git so well. 11:36:53 ^style 11:36:54 Available: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc* jargon lovecraft nethack pa speeches ss wp youtube 11:44:13 shit these are good 12:07:54 Rsvsv 12:08:38 Same to you 12:18:45 -!- augur has quit (*.net *.split). 12:18:45 -!- itidus20 has quit (*.net *.split). 12:19:58 -!- itidus20 has joined. 12:19:58 -!- augur has joined. 12:24:47 -!- foocraft has quit (Quit: So long, and thanks for all the fish!). 12:24:49 -!- BeholdMyGlory has joined. 12:49:28 -!- CakeProphet has joined. 12:49:28 -!- CakeProphet has quit (Changing host). 12:49:28 -!- CakeProphet has joined. 13:05:04 -!- tswett has quit (Ping timeout: 252 seconds). 13:07:28 doesn't causation correlate to correlation? 13:07:49 yes, but that doesn't mean there's a causation 13:08:28 THEREFORE CAUSATION DOESN'T CAUSE CORRELATION 13:08:29 my god. 13:08:51 this should be published. This is world-breaking research. 13:09:05 i'm not following you, but i'll gladly coauthor it with you 13:09:36 speaking of which, i should get my euler number in august yay 13:09:42 I don't think you actually have to be right to get published in an academic journal. 13:10:12 I think you just need to have a lot to say and a lot of sources. 13:10:13 why so :o 13:10:26 i don't have a lot to say? 13:10:50 i wrote two articles last week 13:11:07 well, it's not strictly required that you be full of shit to publish something, of course. 13:11:16 but I think it happens. It's just a hunch, really 13:11:20 It helps 13:11:34 Read the last 6 preprints on arXiv 13:11:38 oh i misread you :D 13:11:43 I'll bet 3 of them are bullshit 13:11:58 i read " I don't think you actually have the right to get published in an academic journal." :D 13:12:05 4 if you only read the physics section 13:12:20 i'll gladly admit i'm full of shit but i certainly have a lot to say :D 13:12:51 oklopol: and lots of sources, no doubt. 13:13:50 i'm sure i do 13:19:00 -!- tswett has joined. 13:42:21 -!- TanebIsGone has quit (Ping timeout: 260 seconds). 13:43:26 taneb is gone is gone 13:52:59 Floodatkaa. 13:53:12 Flöödätkää. 13:53:42 Turhauttavinta. Käyttämisessä. Pitää. 13:53:54 okokokokokokokoko 13:53:55 okokokokoko 13:53:57 okokokokokokokokokokokoko 13:53:58 okokokokokoko 13:53:59 okokokoko 13:54:01 okokokokokokokokokokoko 13:54:02 okokokokokokokoko 13:54:03 okokokokoko 13:54:06 okokokokokokokokokokokokokokokoko 13:54:07 okokokoko 13:54:09 okokoko 13:54:11 okokokokokokokokokoko 13:54:16 kaikkein turhauttavinta. 13:54:56 Laumastastasta suomi. 13:55:10 Okokoko turhauttavinta. 13:56:11 i don't think a double elative is very meaningful 13:56:27 "from from a herd" 13:56:37 Is elative for when you're very happy. 13:56:51 yes, lauma = herd, laumasta = happy herd 13:56:52 Triple, isn't it? 13:57:00 whoops 13:57:04 sorry misread 13:57:08 been doing that a lot today 13:57:23 read laumastastansa 13:57:25 close enough 13:57:35 Raikuja! Raikuja koirut siviisetsa! 13:57:37 that is, from from his herd 13:58:45 Sölötölövölötölöstän. 13:59:03 Laumassa. Laumat. Laumoineen. 13:59:53 oklopol: say, didn't I plan to meet you somewhere in Finland some time in the year 2014? 13:59:57 I'm afraid I must reschedule. 14:00:05 why? 14:00:11 you coming early or dying of cancer? 14:01:47 Well, I've forgotten the time and place, for one. 14:02:15 if someone were to find that promise in the logs, would there be further problems 14:02:55 also what did you end up studying at the uni, i only recall your prechoice mumblings on the matter 14:03:19 Math. 14:03:49 cool so how many years now, 1? 14:04:47 and what have you learned 14:06:52 i don't know if you know this but i love math 14:10:38 -!- oklofok has joined. 14:11:28 -!- oklopol has quit (Ping timeout: 258 seconds). 14:11:34 correlation correlating with causation is correlated with correlation causes causation, and thus causes correlation to cause causation 14:11:40 er 14:11:47 correlation correlating with causation is correlated with correlation causing causation, and thus causes correlation to cause causation 14:13:08 -!- sebbu2 has joined. 14:13:08 -!- sebbu2 has quit (Changing host). 14:13:08 -!- sebbu2 has joined. 14:15:18 -!- sebbu has quit (Ping timeout: 264 seconds). 14:18:40 just think about what you could do with a hundred million moneys 14:19:22 i mean you have to admit 14:19:25 that's a manyload of moneys. 14:21:44 yes it is almost too many manyloads, so many I cannot think of many more. 14:22:50 that is a hundred of a million. I don't even know what kind of math you would need to calculate one hundred millions. 14:23:16 more math than you can carry around in a purse that's for sure. 14:23:37 > just consider having eight sevens. 14:23:38 : parse error (possibly incorrect indentation) 14:23:47 what does that even mean? 14:23:54 no idea 14:23:57 fucking miraculous. 14:24:09 It means that your expression is so wrong it can't even work out where to start. 14:24:26 ^ 14:24:49 what if I have a pizza and a choice of 3 out of 12 toppings. 14:24:58 like, I don't think they've gotten enough math for that. 14:25:10 you mean you have a choice of 1 out of 4 toppings 14:25:37 What? no, that's uh... three less of those. Fuck how do you even describe that. 14:25:49 3/12 = 1/4 14:26:02 it's like having the thing that a hundred millions makes, but then reversing it. 14:26:06 what does that even mean. 14:26:22 I'm so confused. I think I'm going to go to sleep. 14:26:27 good night 14:26:36 * CakeProphet should have majored in the maths. 14:26:40 CakeProphet, you mean 000000001? 14:26:41 you should have. 14:26:54 everyone should major in maths, because maths is better 14:27:19 you know, better than. 14:27:58 er wait, is 12 choose 3 == 1 choose 4 14:28:05 I am pretty sure it is not. 14:28:12 obviously, you choose every fourth 14:28:12 It is not. 14:28:14 but do not feel like getting my computer to calculate it. 14:29:10 pascal's triangle would be so fucked.. 14:29:34 oh whoops 14:29:42 yeah 12 choose 3 != 1 choose 4 14:29:46 it's 4 choose 1 14:29:55 in any case, I didn't really make it entirely clear that that was the actual problem. 14:30:25 but yeah, math can't even do that shit. it's unpossible. 14:30:43 anyways, good night. 14:30:50 what can't math do? 14:30:52 math can do it 14:31:13 obviously you have never read the definition of unpossible. 14:31:29 STOP MAKING ME REPLY. yes, you are making me, with voodoo. 14:31:31 indeed i unhave read it 14:31:59 should go out but i can't find my unbrella 14:34:22 http://www.reddit.com/r/askscience/comments/ir3xv/we_know_the_universe_is_very_nearly_flat_does/ 14:34:39 "[I] have taken an advanced undergrad course in topology." 14:34:49 "I accept this assumption, but even with it I'm not seeing the connection between the universe's boundary and its geometry." 14:43:09 -!- sebbu2 has quit (Read error: Connection reset by peer). 14:44:14 -!- sebbu has joined. 14:44:14 -!- sebbu has quit (Changing host). 14:44:14 -!- sebbu has joined. 14:44:49 Rsvsv 14:56:21 -!- Taneb has joined. 15:02:49 3 choose 12 is equal to 1 choose 4. 15:05:49 Is it? 15:05:54 No. 15:05:59 Yes, it is. 15:06:13 I have no idea what you are talking about 15:06:27 They're equal. 15:06:28 I think you're trying to do division, but have chosen the wrong word 15:06:37 Nope. It's the "choose" operator. 15:06:37 tswett, it... really doesn't seem like it should be. 15:06:48 What language? 15:07:00 Taneb, maths. 15:07:02 3 choose 12 equals 1 choose 4 equals zero 15:07:22 x choose y is the number of subsets of size y of a set of cardinality x. And 3 choose 12 is equal to 1 choose 4. 15:07:28 12 choose 3 does not equal 4 choose 1 15:08:51 It's definitely different. 15:09:07 Sure, but 3 choose 12 is the same as 1 choose 4. 15:09:15 Oh, right. 15:09:17 And 7 choose 71278 15:09:25 Taneb, also zero. 15:09:29 Whenever the second is more than the first, it's 0 15:09:32 Just looked it up 15:09:38 But I always forget which way round it is. 15:09:59 Well, just remember the phrase. "From 3, choose 12." 15:11:04 I had never encountered that operaor before 15:11:44 Taneb, wait, you have a GCSE and stats and you'd never encountered the choice function? 15:11:55 Nope 15:12:00 O.o 15:12:38 All we seemed to learn about was the difference between primary and secondary research and how we could do market research 15:12:43 Taneb: quick, express (a + b)^n as a summation! 15:13:46 Now you're just making fun of the poor quality of my education 15:17:56 I have no idea what I'm even trying to do 15:29:51 Could you explain it? 15:30:33 Taneb, give a closed form for the nth term of (a + b)^n, basically. 15:32:53 no one's saying 12 choose 3 is equal to 4 choose 1 AS A NUMBER, but they are PHILOSOPHICALLY the same 15:33:09 Phantom_Hoover:... 15:33:55 Taneb, well, it should be the mth term, since the two ns aren't the same. 15:34:13 Or better still, the kth term. 15:34:26 yeah and when you're done, give us the third term of the set {1, 5, 4, 6, 2, 76, 8, 4, 2} 15:35:30 so GCSE means what exactly, i think i asked this recently 15:35:46 A relatively low level qualification 15:36:02 but you haven't done any math, cs or physics? 15:36:06 By which you mean the lowest-level qualification. 15:36:24 oklofok: Kind of like ylioppilaskirjoitukset but done after the yläaste-equivalent 15:36:30 oh okay 15:36:32 Done maths and physics, awaiting results 15:36:35 i bet i didn't know that operation at that point either 15:36:45 Although our qualifications in Scotland go insanely low; there are like 4 types of idiot exam. 15:37:08 actually i had taken a few high school courses in elementary school so i guess i did know it 15:37:34 but i don't recall choice having been taught there otherwise 15:38:25 Although nobody ever actually takes the lowest 3 to my knowledge. 15:39:22 ppl so stuppid rite? :DD 15:39:34 we... we something upper than that. 15:39:48 You something upper than that 15:39:51 *? 15:40:03 upper an idiot i'm way! :\ 15:40:20 so i tried borrowing people's cellphones 15:40:50 Wh... what? 15:41:03 idgi, in paris and other third world countries the streets are full of all sorts of crooks and everyone still treats you like you're a person; out there everyone assumed i was going to do something fishy 15:41:07 i asked like 20 ppl 15:41:10 two gave me their phones 15:41:26 one typed the number in himself, and looked a bit scared 15:41:37 (i'm pretty scary) 15:41:53 and the other one was a druggie so he was nice ofc 15:41:57 Maybe if you didn't go around wearing a stocking on your head all the time. 15:42:28 well i was driving around on my scooter/kickboard/whatever, which makes people look at you a bit weirdly as only kids use those 15:42:32 http://www.youtube.com/watch?v=37X4WAmwiJQ 15:43:17 Taneb, I was also referring to that picture of oklofok I've seen. 15:44:31 oh. that was a football though 15:45:17 no bank robber would wear something like that 15:45:52 I reckon that nowadays a bank robber would wear their underwear and never leave their house 15:46:42 well true 15:47:19 Oh dear god the weather 15:47:27 so umm were those real reactions? 15:47:29 wtf 15:47:44 I've lived in the UK for 14.5 years and I'm still not used to the weather 15:47:48 why would you assume someone's a robber before they have stated this 15:48:05 i hate people 15:48:06 Because they are prejudiced 15:48:17 Especially the Asians. 15:48:46 why be prejudiced about something that's not true 15:49:08 a robber wouldn't wear something like that because you can see their face 100% 15:49:12 That is the best thing to be prejudiced about 15:49:32 oklofok, I'm guessing it makes it harder to make it out on CCTV. 15:49:42 oh that's actually a good point 15:50:13 I've lived in the UK for 14.5 years and I'm still not used to the weather 15:50:32 Have I mentioned that my breath fogged up in mid-morning in May inside my house. 15:50:35 still, the guy with the stocking on his head did nothing wrong, bite your fucking tongue 15:50:46 horrible people 15:50:59 They're in Australia 15:51:09 They have to assume that everybody is trying to kill them 15:51:13 It's the safest way 15:53:17 Well, the rain is really heavy 15:53:24 i love the rain 15:53:27 <3 15:53:48 My front road's going to flood again 15:54:49 small price to pay 15:55:11 The majority of my towns sewage flows through a small pipe along my roud 15:56:01 *roud 15:56:03 *road 15:56:16 so? 15:56:32 When my road floods, it smells awful 15:56:34 we don't have floods here, so maybe i'm missing something 15:56:37 oh 15:59:28 Well, now one side of the road is dangerous to drive through 16:00:12 Both paths 16:00:29 That bus just left a freakin' wake 16:00:48 The majority of my towns sewage flows through a small pipe along my roud 16:00:58 well don't drive 16:01:00 Please don't tell me you live in Hexham. 16:01:06 How did you know 16:01:23 Seriously, you just worked out where I live 16:01:23 You... you do live in Hexham, don't you. 16:01:28 Yes 16:01:31 wat 16:01:31 he can't 16:01:33 This 16:01:34 No 16:01:35 that would be too cool 16:01:45 I do 16:01:55 no you don't 16:01:58 The rain's just stopped 16:02:01 I honestly do 16:02:10 how many people live in hexham? 16:02:17 Just short of 12000 16:02:35 then either you do not live in hexham or we know who brought you here 16:02:47 neither seems that unlikely 16:03:20 I seriously do live in Hexham 16:04:14 then you were brought here by your irl contacts 16:04:33 msg me a name? 16:04:42 it's not a secret, so no 16:04:44 And I wasn't 16:04:59 I got here from the wiki, which I got from Wikipedia 16:05:08 huh. well elliott lives in hexham as well 16:05:22 Mann? 16:05:26 Elliott Mann? 16:05:27 mann? 16:05:30 no 16:05:34 Taneb, Hird. 16:05:40 do you know him? 16:05:46 No, I do not 16:05:53 he's this kid who refused to meet me a few weeks ago 16:06:07 He lives in Hexham? 16:06:30 Age range? 16:06:51 12 iirc 16:07:02 or maybe he's 18 now 16:07:14 WE MAY NEVER KNOW 16:07:16 I know neither any 12 nor 18 year olds 16:07:27 Taneb, yes, this is because he is neither of these. 16:08:26 I can conlude he probably doesn't have a Facebook account 16:08:53 someone still uses facebook? 16:08:54 lol 16:09:28 I let my Facebook get out of hand. 16:09:37 -!- monqy has joined. 16:09:37 1789 friends 16:10:06 Man, what a crazy day 16:10:10 yep 16:10:26 I can prove that I live in Hexham! 16:10:37 Earlier today, I said I was going to a music fest in my town 16:11:05 http://www.visitnorthumberland.com/site/events/shows-and-festivals/selefest-2011-p573711#ProductList-/site/events/shows-and-festivals/selefest-2011-p573711 16:11:26 That's... not very good proof. 16:11:35 a guy with your palindrome talent could easily work it out we were going to ask you if you lived in hexham. 16:11:42 *-it 16:12:01 I had no idea that you were going to ask me if I lived in Hexham 16:12:27 But if you look at the date of that website, it's today! 16:12:46 how many festivals a year does hexham have? 16:12:57 As far as I know, 1! 16:13:23 But then there's that other time when the rollercoasters come 16:13:39 XD 16:13:42 And that other time when there's a historical redoey thingy on about the Hexham Protests 16:13:55 Reenactment 16:13:57 Riots 16:14:30 ""Hexham" was used in the Borders as a euphemism for "Hell"." 16:14:43 I've never heard that except on Wikipedia 16:14:52 Sure, but do you live in the Borders? 16:15:02 True 16:15:43 That is, I don't live in the Borders 16:15:49 Except by a really loose definition 16:15:57 Taneb didn't you say you have read the whole wp 16:16:05 No 16:16:12 I said I read Wikipedia often 16:16:17 well right 16:16:23 That includes my hometown 16:17:34 I've edited the Wikipedia page for my School! 16:17:35 http://en.wikipedia.org/w/index.php?title=Queen_Elizabeth_High_School,_Hexham&action=history 16:18:01 http://en.wikipedia.org/w/index.php?title=Queen_Elizabeth_High_School,_Hexham&diff=prev&oldid=371171660 16:18:15 that proves nothing, you could've edited every school's wp page at that time. 16:18:30 Why the hell would I do that 16:18:45 the question is.. 16:18:49 why would you *not* do that? 16:18:52 yeah. 16:18:55 and also 16:19:03 you could've done that SO YOU COULD FAKE LIVING ANYWHERE YOU WANTED 16:19:14 what a silly question 16:19:15 except for finland 16:19:21 except for finland. 16:19:40 because i know all the other 4 finns 16:19:49 and they're all drunk 16:19:57 -!- foocraft has joined. 16:20:04 I have no need for alcohol 16:20:13 AHA!!! 16:20:19 THAT PROVES YOU DO NOT LIVE IN FINLAND 16:20:28 WE ARE HOT ON YOUR TRACK, MISTER 16:20:35 Taneb: ...can you fly? 16:20:42 Never tried 16:20:44 hm. 16:20:48 you prolly could :| 16:21:08 * Phantom_Hoover notes that Taneb's user page redirects to "High Middle Ages". 16:21:24 http://esoteric.voxelperfect.net/wiki/ABCD does anyone understand this 16:21:43 21:39:06: I'm a Northumbrian <-- and you say that after i was joking the other they that you were coincidentally Elliott's next door neighboor 16:21:52 New theory: oerjan is actually a prophet. 16:22:03 also http://esoteric.voxelperfect.net/wiki/Category:ABCD_Programming_Language_Family 16:22:04 I was? 16:22:27 also the "revolver architect" deal on that guy's user page http://esoteric.voxelperfect.net/wiki/User:Billlam 16:22:55 I'm in the talk pagges for two of those 16:22:57 Taneb, well, you're practically his next-door neighbour, especially in internet terms. 16:23:19 My next door neighbours are Mr Snowdon and the Bradshaws! 16:23:27 None of whom are called Elliott 16:23:28 * oklofok repeats he has found his next-building neighbor not through this channel 16:23:33 I mean, based on the fact that he probably goes to the same school as you... 16:23:34 erh 16:23:38 * oklofok repeats he has found his next-building neighbor through this channel 16:24:39 Someone's just crossed the still flooded road barefoot 16:24:52 " http://esoteric.voxelperfect.net/wiki/ABCD does anyone understand this" <<< i can honestly say i do 16:25:06 please enlighten me 16:25:25 It's essentially deadfish with no square function, as well as input 16:26:08 monqy, it's basically a matter of "idiots exist". 16:26:24 :( 16:26:49 brb 16:32:54 OK so guys I am being dragged off to Ireland in two days and I need something to stave off the boredom for a week. 16:33:26 err drugs? 16:34:31 also the druggie probably only lent me his phone because he wanted to know where you can get drugs here in turku 16:34:35 oklofok, rather hard to obtain on such short notice. 16:34:54 eh? 16:35:00 -!- copumpkin has changed nick to EstablishmentLov. 16:35:07 -!- EstablishmentLov has changed nick to copumpkin. 16:35:27 walk outside and find a dealer? 16:36:19 oklofok, could take a while. 16:36:46 i told this german girl prostitution is illegal on every street in finland, and she's like "okay, so where do the prostitutes work then?" 16:36:57 i wish we were more like europe 16:37:14 ...you are in Europe. 16:37:33 but we're not like europe 16:38:12 when i say i wish i spoke japanese like a jap i don't mean i wish i spoke japanese like a jap who doesn't have a mouth because he ripped it off 16:38:58 Can't fault your logic. 16:39:40 mostly we just use the phrase "like europe" in here to refer to non-scandinavic europe (oh we also refer to finland as a part of scandinavia usually) 16:40:17 -!- azaq23 has quit (Quit: Leaving.). 16:40:30 i mean we are essentially the same country as sweden except for the language 16:40:35 and the army 16:41:49 -!- azaq23 has joined. 16:45:13 -!- cheater_ has quit (Ping timeout: 255 seconds). 16:45:46 And the ducks. 17:01:30 okay this chasers thing is incredibly awesome as well 17:01:36 maybe i'm just really easy to impress today 17:01:55 IF I HAVE TOLD YOU YOU'RE AWESOME TODAY, SORRY, THAT'S PROBABLY NOT TRUE AND YOUR LIVES ARE SAD AS SHIT. 17:02:08 just in case 17:02:19 so i was thinking maybe i'll start smoking 17:02:25 like, now 17:02:29 wonder if i have a lighter 17:02:35 oklofok, have you got to their APEC stunt? 17:02:42 nope not yet 17:02:50 link surfing at random 17:08:58 i've actually always wanted to try handing out money on the street 17:16:48 http://www.youtube.com/watch?v=GclCE0cLA-o best ending 17:17:18 "i'm sorry, i outrank you" "can i ask what's going on here?" "sorry, i'm afraid it's classified" "no problem" 17:17:44 -!- cheater_ has joined. 17:22:04 oklofok, that's not the one I was talking about, but I hadn't seen it. 17:22:52 actually when i linked it i had forgotten about your suggestion completely, just randomly linke, so lucky me, what's the real one? 17:24:51 The one with the motorcade. 17:27:21 -!- hagb4rd has joined. 17:27:56 what's SFA? 17:28:05 you mean http://www.youtube.com/watch?v=TdnAaQ0n5-8 ? 17:48:39 i hadn't heard of this but that's like straight outta hustle 17:57:32 Based on the one episode of The Hustle I've seen, I agree. 18:00:01 -!- foocraft has quit (Quit: So long, and thanks for all the fish!). 18:01:19 -!- foocraft has joined. 18:01:33 -!- cheater__ has joined. 18:02:37 -!- cheater_ has quit (Ping timeout: 255 seconds). 18:03:28 http://www.youtube.com/watch?v=S7hcFuxVc_Q&feature=related xD 18:04:22 Hello 18:04:39 hello friend 18:05:59 Still not believing I live in Hexham 18:06:19 ? 18:06:36 i'm currently acting on the assumption that you will consistently claim to be from hexham 18:06:41 if that's what you mean 18:06:46 Yes 18:07:03 I cannot think of a way to prove that I am in Hexham 18:07:10 but i wouldn't say i believe it's a physical fact that you live there, although i currently highly suspect that to be the case 18:07:12 -!- zzo38 has joined. 18:07:17 If you think of one, let me know 18:07:26 there are very easy ways to do that 18:07:39 Such as? 18:08:20 go to one of the things hexham has that is on the internet and put something of my choice there 18:08:32 say a shoe on top of the most famous building 18:08:42 I am not going on top of the Abbey 18:09:09 I will stand next to the abbey in site of the Hexham Courant Webcam for a while with a sign saying "I AM TANEB" 18:09:12 But not today 18:10:05 okay, that would be nice of you 18:10:19 And confusing to everyone around me 18:10:20 i would certainly believe you then 18:11:16 full belief is so liberating compared to even a slight doubt 18:11:28 because all you need to store is the fact, you can just forget the proof 18:11:42 It's like Turing-Completeness 18:12:08 I have no idea how to prove Lambda Calculus is Turing Complete 18:12:20 Quite simply? 18:12:29 Probably 18:12:37 The point is I don't need to 18:12:47 Because everyone who has an interest already knows 18:13:12 i have an interest, but i wouldn't say i actually know, i'm pretty sure i could do it tho 18:13:25 Just use the Brainfuck interpreter Ben Gould provided, then use the reduction from BF to P´´, then use Bohm's proof that P´´ is TC. 18:13:33 but yeah i get your point 18:13:59 (unlike ph, i'm going to guess) 18:14:10 nah he's smart 18:14:16 i couldn't find a lighter :( 18:14:19 gonna go buy one 18:14:46 Does anyone know an IRC client that works on a Kindle? 18:14:48 Just craft one out of flint and steel. 18:15:22 Taneb, it's not on Google, therefore it doesn't exist. 18:15:48 I got Mibbit working for Kindle 18:15:54 But Freenode blocks mibbit 18:16:09 Try Freenode's webchat? 18:16:41 are there any consensus for the bit-packing order of bit input/output operations on esolangs? 18:17:02 What, big-endian or little-endian? 18:17:08 No. 18:17:18 lifthrasiir, why would there be? 18:17:31 There's not even a consensus IRL 18:18:16 IRL here, of course, means in conventional programming 18:18:45 Of course not, consensus is stupid for things like that. 18:19:02 well, i didn't mean whether it'd be big or little endian, i meant whether the bit-packing order *is* fixed. 18:19:09 Consensus is important for stuff like EoF in BF, because they're all meant to be doing the same thing. 18:19:29 Is consensus second or fourth declension? 18:19:36 is there any esolang that may use little endian or big endian for bit packing from time to time? 18:20:35 Not as far as I'm aware 18:20:42 Taneb, 4th. 18:20:46 Okay 18:21:09 There's not even a consensus as to which order to list cases for Latin words! 18:21:29 What's with this Nom, Gen, Dat, Acc, Abl, Voc? 18:21:46 You put voc last? 18:21:50 Eew. 18:21:54 Wiktionary does 18:22:12 Wait, and it puts acc after gen and dat? 18:22:16 Yep 18:22:19 ... 18:22:30 Example: http://en.wiktionary.org/wiki/sensus 18:23:45 I do it like Cambridge Latin Course does. 18:23:58 Nom, Voc, Acc, Gen, Dat, Abl 18:24:12 It doesn't come from sensus also Oxford Latin Course does it the same way. 18:24:33 Maybe it's them who's weird 18:25:21 Other than myself playing 123456 Chess on a chessboard, there have been two other games over computer I am not a player in either one of them. There has been Nicholas Wolff against Vitya Makov and je ju against Nicholas Wolff. Wolff won the first game and I think they will probably win the second game as well. 18:26:23 What? 18:26:51 It's best to just ignore him. 18:27:45 You know, I'm told over and over again to not release any personal details on the internet 18:27:56 But when you do, nobody believes you! 18:28:17 Then don't release any personal details on the internet. 18:28:39 They worked it out. 18:28:44 Some people ask me so hard that I lie. But, they are making up lies to try to get my information too. (It is on IRC) 18:29:41 I'm pretty sure you're not listening to anything I say except the first comment of 19:27 BST 18:30:37 Do you mean me? Also it is not my timezone 18:30:46 Yeah 18:30:53 Except it was the last of 19:26 18:30:55 I misread it 18:31:16 I am not always connected to IRC 18:31:27 It didn't say you had left 18:31:58 I still don't know what comment you refer to since that isn't my timezone 18:32:21 You know, I'm told over and over again to not release any personal details on the internet 18:33:17 " What's with this Nom, Gen, Dat, Acc, Abl, Voc?" <<< obviously acc comes before dat 18:33:31 also what Phantom_Hoover said 18:33:32 i watched this amazing video on yt.. "history of fps-games 1974-?" ..notice the performance of the first 3D shooters is unrecheached (and mabe finds its most darkest hour) for the next 15yrs 18:33:46 " What's with this Nom, Gen, Dat, Acc, Abl, Voc?" <<< obviously acc comes before dat 18:33:57 i watched this amazing video on yt.. "history of fps-games 1974-?" ..notice the performance of the first 3D shooters is unrecheached (and mabe finds its most darkest hour) for the next 15yrs 18:34:00 http://www.youtube.com/watch?v=aipGP5oAuWQ&feature=related 18:34:02 sry 18:34:08 Um, the One True Ordering is nom, voc, acc, gen, dat, abl. 18:34:54 " You know, I'm told over and over again to not release any personal details on the internet" <<< eh? have you heard of facebook, no one says that anymore, nowadays everyone says STOP BEING AN ASSHOLE AND PUT YOUR FACE ON FACEBOOK. 18:35:15 yay darkest hours are always the most thrilling 18:35:17 I never said I wasn't recieving conflitcting messages 18:35:23 * Phantom_Hoover wonders what oklofok has as his profile picture on Facebook. 18:36:27 so after years of wanting to start smoking, i just managed to smoke a cig! 18:36:36 Once I start a business I might release some information on internet, such as telephone 18:36:45 And also full name 18:37:34 oklofok: Today was the first day I could bear the smell of ciggarette smoke. 18:37:51 " Um, the One True Ordering is nom, voc, acc, gen, dat, abl." <<< well i dunno latin, just that in german it's nom acc dat and gen is last because it's not used that much 18:38:31 "* Phantom_Hoover wonders what oklofok has as his profile picture on Facebook." <<< i don't have a facebook account 18:38:46 Taneb: how come? 18:38:52 because it's coincidence day? 18:38:57 i've always loved the smell 18:38:59 Possibly 18:39:06 Or possibly because some of my friends smoke 18:39:09 but i'm not very good at doing things 18:39:18 i mean 18:39:29 in the sense that i usually don't really do anything. 18:40:04 at least it feels that way 18:40:44 and oh wow do i love the high cigs give you, way better than weed and alcohol 18:43:53 http://www.youtube.com/watch?v=ecO6uWCEgec&NR=1 xD 18:44:19 What are the dimensions of the bars in POSTNET? 18:44:27 Lumistalka. 18:44:38 2 by 4 18:45:03 -!- oerjan has joined. 18:45:10 hi oerjan 18:45:17 g'day 18:45:20 Hey 18:46:30 hagb4rd, is your point that the first 3d shooters are more awesome than the ones which followed? 18:46:38 noo! ----### 18:46:42 this is batland 18:46:50 yea 18:46:56 what was the first 3d shooter? 18:47:02 i mean the first one that had 3d physics 18:47:02 * oerjan is worried about a proliferation of fake swatters 18:47:08 at least for about 10 -12 years 18:47:13 anyone have a time machine? 18:47:14 yea 18:47:21 it was moving 18:47:29 in bout 6fps 18:47:32 !! 18:47:35 oh wait i can actually get to the future myself 18:47:51 just sit back and wait :> 18:47:58 By sitting in a broken oven 18:47:59 no we just have an archive 18:48:00 on it! 18:48:40 so i'll just come back and report on the first 3d shooter when they make it. 18:48:42 OH WAIT 18:48:47 hagb4rd: I have become aware in my thoughts that software developers tend to take credit for improvements caused by hardware 18:49:01 the point is.. ih this guys were still livin, hell.. what would they out of the machines of today? ..maybe they'd turn them off 18:49:23 +put/pull 18:49:33 peek 18:49:37 &poke 18:49:58 hagb4rd: are you happy with 6fps? im a little confused where you actually stand on this 18:50:24 okay.. let there be ten, and yes.. look at the first games in 90s 18:50:54 and then back to this awesome atari game, what was it called? 18:50:56 dunno 18:51:09 i am amazed atari had a fps 18:51:32 a mean frames per second ;) 18:51:42 first person shoote 18:51:56 need new keyboard 18:52:21 this one smells like...beer 18:52:50 Can you make Lambdabot call itself? 18:52:57 you can chain commands somewhat 18:53:36 and i'm still waiting for you guys io implement this planet processing engine for my elite sequel 18:53:49 so keep your eyes on it 18:53:50 ;)= 18:53:51 oh speaking of oerjan, tswett: why did you never tell me what you've learned? :\ 18:54:17 @@ @run 3 + @read @run '5' : @show 9*2 18:54:18 121 18:54:49 wait what 18:54:56 @@ @read @run '5' : @show 9*2 18:54:57 59*2 18:55:01 oh 18:55:12 oklofok: oh, right. 18:55:13 @@ @run 3 + @read @run '5' : @show @run 9*2 18:55:15 8 18:55:17 I've learned... mathematics. 18:55:23 wtf 18:55:28 Specifically, things from analysis and algebra. 18:55:30 @@ @read @run '5' : @show @run 9*2 18:55:32 5 18 18:55:40 what have you learned about algebra? 18:55:44 what's an algebra? 18:55:49 hm that's not what i was going for 18:55:56 oerjan script is busy 18:55:58 I haven't learned what an algebra is. 18:56:13 you have learned no definitions for the term "algebra"? 18:56:19 @@ @run 3 + (@read (@run '5' : (@show (@run 9*2)))) 18:56:21 8 18:56:27 wat 18:56:34 Well, I learned what an algebra for a monad is. But not in class. 18:56:36 we wish we could have him that far, but ..ya know always busy 18:56:37 @@ @show @run 9*2 18:56:38 " 18\n" 18:56:59 hm 18:57:01 i still don't really know what monads are in math 18:57:18 pesky spaces 18:57:23 i'm not really smart enough for category theory 18:57:24 They're tribes who move from place to place 18:57:31 Oh, they're just this thing equipped with that thing such that yonder thing commutes. 18:57:50 oh i see 18:57:53 Anyway, I learned that at GVSU, "ring" means "pseudoring". 18:58:03 modands is used to impress human resources @ 1st case 18:58:20 are you familiar with the idea of having a set S and a set of operations with type S^n -> S for various n? 18:58:27 sophisticated stuff 18:58:37 that's one of the definitions for an algebra 18:59:11 but it can mean all kinds of other stuff as well 18:59:19 what's your favorite theorem in algebra? 18:59:24 That sounds like it's almost the definition of an algebraic structure. 18:59:41 or subtheory that you enjoy but can't quite reduce into one main theorem 18:59:48 tswett: yeah those are called algebras 19:00:27 Anyway, I don't really have a favorite theorem in algebra. 19:00:42 but an algebra is also when you have a vector space but you can multiply vectors afaiu 19:00:46 my favorite theorem is the various compactness theorem 19:00:55 there are no structires out there but the ones we might have tried to engrave in stone! 19:00:55 How about... the matrix theorem. 19:00:58 I like the axiom of choice 19:01:07 I don't know of any theorem called "the matrix theorem", but I would probably like it. 19:01:27 I like the axiom of constructibility. It answers a lot of questions. 19:01:41 i guess my favorite algebra stuff is in semigroup theory, idempotents and all that shit 19:01:42 "Any sci-fi movie with Keanu Reaves made post-2000 sucks" 19:01:51 The Matrix Theorem 19:01:58 especially inverse semigroups 19:02:08 lol 19:02:20 You know, I like free objects. 19:02:40 is the axiom of constructability "that object of yours? yeah it exists all right." 19:02:49 oklofok: I've heard square matrices of a given dimension referred to as 'linear algebras' with reference to their properties as a vector space plus the multiplication operation (or, similarly, linear maps on a given vector space, being themselves vectors in a different space, form a linear algebra with composition) 19:02:59 oklofok: nah, it says that every set is constructible. 19:03:43 I like the interesting number theorem 19:03:53 That's interesting 19:03:58 Theorem: every number is interesting 19:04:00 coppro: well i dunno what the consensus is on these terms, i don't think there really is one, but that would certainly make sense, and is what i'm referring to. 19:04:13 I disagree with the interesting number theorem. I think the smallest uninteresting number is 217. 19:04:34 what's the matrix theorem? can't find it 19:04:40 Proof: Consider the set of non-interesting numbers. If it is non-empty, pick the least element under some ordering. 19:04:49 tswett: That's a centred hexagon number 19:05:02 Taneb: so? I don't know what those are. 19:05:09 This element is the least non-interesting number under that ordering, which is interesting 19:05:13 http://en.wikipedia.org/wiki/Centered_hexagonal_number 19:05:23 oklofok: http://www.google.com/search?q=%22the+matrix+theorem%22 19:05:24 Thus we have a contradiction, and the set of non-interesting numbers must be empty 19:05:26 It's one of those. 19:06:00 Taneb: well, that's a pretty boring property. 19:06:06 Recreation mathematics: more addictive and worse for your health than cocaine 19:06:16 what's your favorite theorem in algebra? <-- i like that subdirect product of subdirectly irreducible algebras theorem 19:06:56 that's pretty damn neat alright 19:07:03 hagb4rd: I am glad you showed these fps videos. Anyway I think that the fps genre is losing creativity. 19:07:12 the theorem being that gives you all algebras 19:07:15 man, next term is going to be interesting 19:07:15 of a certain type 19:07:29 I'm going to have a linear algebra class that I actually attend 19:07:32 last term's class sucked 19:08:16 i had to learn linear algebra before taking the course on it because we used a lot of the theory for finite fields in coding theory 19:08:17 oklofok: i once used it to prove that kripke models work for intuitionistic logic via heyting algebras 19:08:35 that sounds cool 19:08:41 The seven Huzita-Hatori axioms 19:08:43 you talked about doing some stuff with heyting algebras but i still don't really get what heyting algebras re so 19:08:45 *are so 19:08:48 nor kripke models 19:08:54 and i'm still waiting for you guys io implement this planet processing engine for my elite sequel 19:09:03 Oh jesus are you trying to make an Elite sequel. 19:09:08 oklofok: basically heyting algebras are to intuitionistic logic what boolean algebras are to boolean logic 19:09:17 Why bother? Just make Oolite plugins 19:09:27 oh 19:09:36 I disagree with the interesting number theorem. I think the smallest uninteresting number is 217. 19:09:45 i can't actually see what that means but i'll memorize that factoid for now! :P 19:10:27 Actually, it's 11630. 19:10:54 I think the most interesting number is 12 19:11:06 tswett: i don't think there are any relevant hits on that google page 19:11:53 Why bother? Just make Oolite plugins 19:12:03 You've clearly never looked into the way OXPs work. 19:12:10 They're infuriatingly limited. 19:12:14 oerjan: i only know about heyting algebras from burris and sankappanavar's "a fun little course in universal algebra" and it was just in a list of examples, dunno if there'd've been theory on them later on 19:12:28 they have a lot of stuff on boolean algebras, should prolly read that at some point 19:12:38 oklofok: basically T is a theorem of intuitionistic logic iff T = 1 is a valid equation for heyting algebras, which is exactly the same as for boolean logic/algebras 19:13:02 oh! 19:13:08 that's awesome 19:13:30 What ways more, a pound of gold or a pound of feathers? 19:13:46 Taneb: a pound of feathers 19:13:53 *weighs 19:14:04 Can you explain why? 19:14:08 yes 19:14:13 Good 19:14:18 but then what's intuitionistic logic here, (a -> b -> c) -> ((a -> b) -> (a -> c)) and (a -> (b -> a))? 19:14:44 Taneb, it depends. 19:14:45 oklofok: well those would be theorems yes 19:14:57 but are those the axioms 19:15:04 erm 19:15:14 (a -> (b -> c)) -> ((a -> b) -> (a -> c)) and (a -> (b -> a))? 19:15:35 oklofok: in intuitionistic logic you include more than ->, because the operators are much more independent of each other than in boolean logic 19:15:42 Gold is weighed in Troy pounds and feathers in avoirdupois 19:15:54 oh 19:15:59 so and, or, not as well 19:16:12 avoirdupois is 12.53% heavier than troy 19:16:13 Why bother? Just make Oolite plugins <-- will do, at least for the less math-dependent parts.. still enought to do.. find nice ways to let my spaceilots having a good time interacting with its vivid world.. how bout a lambda bot in the boardcomuter? :D 19:16:25 well non-intuitionistic (you said boolean, does that mean classical?) logic has not as well 19:16:37 oklofok: of course you can probably find axioms for the -> fragment like with boolean logic 19:16:40 Taneb, not to mention the fact that it depends if you're talking about pound mass or pound weight. 19:16:49 oklofok: yeah 19:17:04 Assuming their in the same gravity, does that make a difference? 19:17:05 ah it's metamath 19:17:15 yeah metamath uses those two as the intuitionistic axioms 19:17:26 and then there's umm (not a -> not b) -> (b -> a) 19:17:44 Taneb, ah, but you don't explicitly state that assumption. 19:18:06 Where else are you gonna find both feathers and gold? 19:18:12 for classical 19:18:25 but this doesn't fit on gravity 19:18:56 Taneb, gold is pretty common in space, you know. 19:19:05 But feathers aren't 19:19:19 hag: I had some ideas about planets in 2d. 19:19:38 yea ok.. 19:19:44 oklofok: actually one simplification is possible: also in intuitionistic logic not a = (a -> false) 19:19:50 like this: http://www.youtube.com/watch?v=A8_-78G8D_I&NR=1 19:19:54 looks nice! 19:19:56 The first idea I had is that if you walk far enough to the left or right in 2d you can come up on the other side 19:20:12 itidus20, ... 19:20:14 Um. 19:20:14 we had 2d planets in 85 19:20:17 That 19:20:25 That is not even remotely a new idea. 19:20:37 10 years later we had videos and spites of them (like in wing commander) 19:20:51 itidus20: you mean you came up with the idea of somehow making R^2 into a torus? 19:21:00 oklofok, he's a genius, I tell you! 19:21:01 or do you just mean the torus? 19:21:08 but no matter how long you wre riding ..you didnt get there 19:21:11 :'( 19:21:20 Gonna get some eats now 19:21:28 -!- Taneb has changed nick to TanebIsEating. 19:21:31 hagb4rd, suggest you look at Infinity: The Quest for Earth and despair. 19:21:33 i am happy to admit i am full of crap and can laugh at myself about it 19:21:37 joining the left and right sides can be done like that, or you can add a point at infinity whose open balls are the complements of closed balls around the origin 19:21:46 k.. thx hoover 19:21:51 by "like that" i mean the torus 19:21:51 hehehe, balls. 19:22:19 oklofok: when I was thinking about it what I really wanted to achieve is to do it without a sense of cheating the player 19:23:09 let's forget the player for now and discuss this in the context of topology okay 19:23:45 R^2 is already over my head, but I can still carry on 19:24:45 well in that case, a way to do it without cheating the player is the torus 19:24:49 are you familiar with it 19:24:58 i have wiki at my side 19:25:05 oh don't look at it 19:25:15 torus = take a finite square and glue the ends together. this is done in many 2d games. 19:25:36 in comet busters, the comets would come out the other side when they went over the border for instance 19:25:52 but so this wasn't entirely enough for me. there was more. i wanted to allow the player to "dig through the planet" 19:25:54 but i suppose you want something fancier than that 19:25:59 -!- Sgeo has joined. 19:26:10 can you specify? 19:26:13 oklofok, 'comet busters'? 19:26:21 Is that what you called Asteroids in Finland? 19:26:29 Phantom_Hoover: a game way older than you, i just assume it's clear what the game is about 19:26:30 apparently it is 19:26:33 humm i will make a quick paint pic 19:26:34 http://www.youtube.com/watch?v=7s4G1J9Hiwk&feature=related 19:26:40 Phantom_Hoover: i haven't played asteroids, so i dunno if they had a torus 19:26:49 this looks almost nice (planet renedering 19:26:49 * oerjan wonders how many 2d games do klein bottle gluing instead 19:27:05 comet busters came with my windows 3.11 19:27:47 hagb4rd, seriously, just look at the tech demos for Infinity. 19:27:49 * Sgeo remembbers some game on his computer called... Tempest, I think 19:28:02 k will do next : 19:28:04 :D 19:28:08 Sgeo, sometimes I think you do nothing *but* remembering games on your computer. 19:28:51 Sometimes I play games that will someday eventually just be games I remember playing on my computer. 19:28:54 See: Minecraft 19:29:06 now combine that with CP symmetry and you can have some interesting matter/antimatter effects... 19:29:24 oerjan, :D 19:29:31 so say moving left = moving down the klein tube, and up = around it. then the gluing is, you take a square and if you go up you appear in the same column on the bottom, but going left, you appear on the right, mirrored over the middle 19:29:35 -!- TanebIsEating has changed nick to Taneb. 19:29:37 Back 19:29:43 We guessed. 19:29:45 CP? 19:29:51 oklofok, charge-parity. 19:29:57 Dammit 19:30:01 http://oi51.tinypic.com/nl4u1v.jpg 19:30:12 Basically, the laws of physics stay the same if you turn matter into antimatter and swap the parity. 19:30:12 Just typed "Password" instead of my password 19:30:19 oklofok: means the symmetry where mirroring turns matter into antimatter 19:30:36 oh cool 19:30:44 it's not exactly preserved, but _most_ reaction obey it 19:30:45 in this pic you can sort of see the idea of "digging" through but the first problem arises. it looks very odd if the player does not turn his head around as he falls 19:30:52 *reactions 19:31:36 so i had this idea that the center of the planet could be another torus , to borrow your word 19:31:39 -!- Sgeo has quit (Read error: Connection reset by peer). 19:32:06 no wait, maybe that wasn't the idea 19:32:08 -!- Sgeo has joined. 19:32:22 (the CPT symmetry where you reverse time as well is still not known to be violated, and the math of quantum mechanics + relativity is supposedly such that it would be very strange if it was) 19:32:34 i don't know the proof myself 19:32:34 anyway.. i thought.. when you reach the center of the planet while falling through, you should reach a dark screen where your path follows a U shape 19:32:53 and you start falling upwards without actually turning upside down 19:34:03 itidus20, suggest you read http://everything2.com/title/Using+Asteroids+to+explain+the+topological+classification+of+2-manifolds 19:34:22 ok 19:34:54 -!- shachaf has quit (Read error: Connection reset by peer). 19:34:58 -!- shachaf has joined. 19:37:32 (still reading the article, even while I type this) my more general theorum is that in practice the earth looks flat. It never actually looks like a sphere to anyone standing on it. So it should never have to look round in a video game. 19:38:03 looks like a good enough article 19:38:21 itidus20: what about on mountains near the ocean? 19:38:27 itidus20, what if someon finds a way to lift off into seep space in the game? 19:38:43 *deep 19:38:54 ya ur rite 19:39:01 but.. 19:39:04 itidus20: you want a surface like that of earth's, but infinitely deep? 19:39:10 maybe its possible to do both 19:39:49 well first I imagined a giant circle. and I thought, how big does the circle have to be so that it looks flat 19:40:14 itidus20, it wouldn't be an absolute size, but a size relative to the observer 19:40:27 you could have a 3-dimensional ball and remove its middle, then have coordinates shrink as you go down to make it appear infinitely deep 19:40:31 erm 19:40:33 (still reading the article, even while I type this) my more general theorum is that in practice the earth looks flat. It never actually looks like a sphere to anyone standing on it. So it should never have to look round in a video game. 19:40:37 remove its center point i mean 19:40:37 Toruses can be flat. 19:41:01 cool thing about such a world: the earth would be the center of the universe 19:41:07 Aren't they then called annuli 19:41:11 annui 19:41:15 ? 19:41:29 erm 19:41:32 annulus 19:41:33 right 19:41:34 :DS 19:41:54 Aren't they then called annuli 19:42:05 oklofok, well i decided that as you reach the center you reach a black background and your sprite follows a U path and when it goes up again it is falling upwards to some other point. so i guess that is infinite depth. 19:42:19 Taneb: no, that's a ring shape and is not topologically a torus at all 19:42:32 itidus20: i think it's better to prevent reaching the middle altogether 19:42:45 just have the distance to the center be infinite 19:42:47 Taneb, it's a different kind of 'flat'. 19:42:53 ooooh 19:43:05 a flat torus would not be possible to embed in usual space, but it would _locally_ look like an ordinary flat surface 19:43:23 So, two annuli ontop of eachother? 19:43:31 NO 19:43:33 I don't think I really understand this, do I? 19:43:36 Taneb, well, the Asteroids screen is a good example. 19:43:42 It's topologically a torus, but it's flat. 19:43:44 Oh, you mean like a net 19:43:46 Taneb: it's a shape which cannot exist in the real universe 19:44:00 I am full of crap. I am a whole magnitude below mathematically. ^_^ 19:44:11 But I think up things from left field. 19:44:19 but whose existence poses no actual mathematical contradiction 19:44:22 if you take the closures of two annuli, and glue together the inner and outer circles, don't you get the torus? 19:44:46 oklofok, remind me what closure is set-theoretically. 19:44:58 Phantom_Hoover: take all points you can find arbitrarily good approximations for 19:45:15 that is, if U is a subset of a topological space, its closure is the set of such points 19:45:23 so for the annulus, you'll just add the circles around it 19:45:39 So I was trying to squiash all this into a tile based side scroller (as an idea) which cannot rotate. 19:45:41 (according to wp it's the set of points more than r, but less than R away from 0) 19:46:12 Taneb: imagine a square where the sides are glued to each other, but not by actually bending the square, instead by making the sides be teleportation portals... 19:46:17 (so you'd add points exactly r or R away from 0, and nothing else, as is easy to check if you know how distance is measured in R^2 (pythagorean theorem being the definition)) 19:46:17 that's a flat torus. 19:46:56 Okay 19:47:00 I understand that 19:47:26 yay 19:47:34 I think a flat sphere would be trickier 19:47:50 Phantom_Hoover: did that make sense? 19:47:55 if you take the closures of two annuli, and glue together the inner and outer circles, don't you get the torus? 19:48:09 I think you'd get a torus if you just glued the inner and outer circles. 19:48:22 Phantom_Hoover: what are the inner and outer circles of the annulus? 19:48:39 uh oh al lot for me to read on later, but not to miss actual topcic: the more you get to the sphere the finer is the net.. then comes the transformations.. first of all ther is an irregular noise trasforming the vertexes into rocky landscapes 19:48:41 An annulus is the region between two cocentric circles 19:48:46 for any point on the annulus, you'll find a point even further away from 0 19:48:51 oklofok, how can you ask me definitional questions when you used the same terms? 19:49:12 oklofok, um, surely it's closed? 19:49:13 there must be a few more layers of transformations. but! : 19:49:21 Phantom_Hoover: well "outer and inner circle" makes sense after taking the closure 19:49:29 inner circle = points at distance r 19:49:33 outer = points at distance R 19:49:34 Taneb: yes, that is impossible. it's to do with the plane not being a cover of the sphere - you cannot wrap a plane around a sphere without some exceptional points 19:49:44 Phantom_Hoover: well "outer and inner circle" makes sense after taking the closure 19:49:53 after n transformation the landsape in a specific place always looked the same.. we thank you braben & bell 19:49:53 But... why do you need the closure in the first place? 19:49:54 :> 19:50:07 Phantom_Hoover: because otherwise i don't know what those terms mean 19:50:16 Is it the open circle with radius R less the closed circle with radius r? 19:50:18 ok i guess theres room for compromise 19:50:20 because the points at distance r and R do not belong to the annulus 19:50:31 oklofok, oh, right. 19:50:51 Yes, looking at WP, you're right. 19:51:03 closure was just a technical term because i wanted to be mathematically precise because that gives me a hard-on. 19:51:10 So wait, why did you need two annuli? 19:51:15 so what do you do.. make the character change size? :D :D 19:51:24 well because otherwise it's not topologically equivalent to the torus :) 19:51:28 well 19:51:39 yeah you could just glue together the inner and outer circles, yeah 19:51:41 but 19:51:48 But? 19:51:48 Then it's creased 19:51:49 we can let it compute pi 19:51:50 i was responding to 19:51:51 :P 19:51:53 perhaps as he falls deeper he scales up 19:52:01 I'm pretty sure it shouldn't be creased 19:52:07 " So, two annuli ontop of eachother?" " NO" 19:52:19 i was saying "or perhaps yes?" 19:52:19 oklofok, ah. 19:52:31 like a map projection, when a man goes to iceland 19:52:36 his body probably grows larger 19:52:56 itidus20, what 19:53:08 yea any points run togeter in x the focus 19:53:12 yeah. greenland/iceland is gigantic on most map projections 19:53:25 I used to think Antarctica was HUGE 19:53:29 " perhaps as he falls deeper he scales up" well more like gets smaller 19:53:31 Taneb, it... is. 19:53:34 Now I know, it is, but not as much as I thought it was 19:53:46 i guess that might depend on your point of view maybe 19:53:51 phantom, it has occured to me that the missing link could be that the character could actually change size to make it all work 19:54:04 thanks to listening to this conversation 19:54:04 Of course! 19:54:12 It all makes sense now! 19:54:17 ease up guys 19:54:18 oklofok: but gluing two annuli would give exceptional points at the crease, which doesn't count to me as really flat 19:54:40 plenty space left to log this all :) 19:54:49 So, a quadrilateral with opposite sides of equal length is the way to go? 19:54:57 oh okay i thought you were just talking topology 19:55:00 ok hagb4rd: like suppose uh.. Zelda.. was played on a typical map projection. 19:55:16 but it gives me an even weirder idea: do like i said previously and glue the outer an inner edge of an annulus with teleportation portals, but _which expand or shrink you as appropriately_ 19:55:19 now when he is standing on iceland his body will be stretched :D 19:55:22 *and inner 19:55:24 Why is Canada Post barcode strange? 19:55:38 oerjan, huh? 19:56:15 Phantom_Hoover: the inner circle is smaller than the outer, so if they are to be glued identically you have to change scale while crossing them... 19:56:17 itidus20: i was thinking maybe you could have a metric such that on every level of depth inside earth, you have a surface with the same circumference as earth, but you have infinitely many concentric balls "on top" of each other 19:56:23 oerjan, well duh. 19:57:08 oklofok, i really did actually commit some of this to paper months ago.. but i am clueless on topology 19:57:08 this is of course going to get ugly if anything manages to cross it outwards enough times... 19:57:21 yea but it's alle processed in realtime dude.. not just stated or persistant 19:57:24 so now it comes to life 19:57:37 oerjan, oh, so you only scale when crossing the border. 19:57:54 easy to imagine this for a 2d world, just take a cylinder that's infinitely tall, digging makes you go down, walking forward makes you go around it 19:58:06 So in other words it's identical to Asteroids if things scale linearly when they move down. 19:58:30 Is this still the Elite sequel? 19:58:42 oklofok: well the deeper paradox of falling through earth is that your up vector has to change at some point 19:58:44 Taneb, god only knows. 19:58:56 Phantom_Hoover: oh i see itidus20 was already bringing up similar ideas. btw this reminds me of a valerian comic... 19:59:04 itidus20: unless you just fall infinitely? 19:59:15 so I decided let him fall in U shape 19:59:24 I'm pretty sure there's some groundbreaking pseudogeometry mathematician who would kill to see this log 19:59:26 are you talking about affine transformation to reduce z axis,? 20:00:12 hagb4rd, dunno, I just mean that distance scales linearly when you move up or down, but is preserved when you move over the edge. 20:00:30 http://en.wikipedia.org/wiki/Affine_transformation 20:00:36 because if i didnt say let him fall in a U shape then either the map flips upside down or the character flips upside down and it would look awkward 20:00:55 something would have to flip 20:01:09 i also realize that you couldn't actually fall through.. gravity would pin you in the center 20:01:36 Unless you have momentum 20:01:42 e.g., from gravity 20:01:43 http://en.wikipedia.org/wiki/Across_the_Pathways_of_Space#Funny_Specimens_.28Droles_de_Specimens.29 20:01:57 " I'm pretty sure there's some groundbreaking pseudogeometry mathematician who would kill to see this log" <<< pseudogeometry would be a great name for topology 20:01:57 the idea of falling through is really just to ensure that the planet is real 20:02:37 anyone who quotes that evil man behind general semantics who says the map is not the territory is to be slain >:) 20:03:08 i also realize that you couldn't actually fall through.. gravity would pin you in the center 20:03:10 Um, no. 20:03:12 dont you remember how hard it was to brake soon eough to make a landing? autopilot noobs :p 20:03:18 Learn you some shell theorem. 20:03:26 Unless you had some sort of thrusters (as you are in a spaceship, I'd assume you would), you'd end up falling down then gliding up the other side 20:03:39 In a distanse that approaches zero 20:03:40 otherways you had to go 1 more turn around the sun 20:03:47 Is asymptote the word? 20:04:27 phantom, so uhh.. i don't think any player has any actual reason to dig in a planet. but i think that the idea forces the game to cope with that possibility 20:04:36 if you do something asymptotically, then for any definition of almost doing it, you will eventually be almost doing it. 20:04:52 itidus20, the gravity at a planet's core is 0. 20:05:06 ahh 20:05:18 It averages out to that 20:05:28 does it decrease as you approach the center? 20:05:32 its not 0 20:05:39 I think so 20:05:40 Taneb, no, it's exactly 0. 20:05:45 itidus20, yes. 20:05:59 your impulse is zero 20:06:10 itidus20: basically for a perfectly spherical body, the gravity at a point inside is given by only the part of the body that is further inside from you 20:06:12 not the gravity 20:06:16 I mean, if you just check one side, it'd be 7 or whatever. But because you're being pulled equally in all directions, it's effectively zero 20:06:24 hagb4rd, there is no gravitational force acting on you at the centre of a planet. 20:06:28 Full stop. 20:06:40 Taneb, that's why, yes. 20:06:49 on a related idea. i had this idea of a game of life sort of thing which makes connected clusters of dots have a mass and hence a gravity and to affect each other 20:06:51 Unless there were significant variance in density throughout the planet 20:06:52 gravity is acting on me even if'd be shit out of the universe d 20:07:01 its physics 20:07:16 hagb4rd: we are talking total sum of forces here 20:07:17 not your proffession 20:07:19 Which makes it really hard to compute 20:07:21 yea 20:07:25 the sum is 0 20:07:26 " on a related idea. i had this idea of a game of life sort of thing which makes connected clusters of dots have a mass and hence a gravity and to affect each other" <<< can i steal this idea and try to do something cool with it next week? 20:07:27 correct! 20:07:40 i mean math stuff 20:07:41 As well as the N-body problem 20:07:50 Taneb, the centre of mass always has 0 gravity. 20:07:50 at least, in this encapsuled sim 20:08:08 all of my ideas are free to do whatever you like with as long as i get to use them myself 20:08:14 lol 20:08:25 But the geometrical centre not necessarily, Phantom_Hoover 20:08:38 Which would make the centre of mass elsewhere 20:08:40 Taneb, indeed, but a planet will always have them almost exactly the same. 20:08:43 as in, i don't want to get cut off from my own ideas 20:08:44 i like the idea of gravity for a ca 20:09:01 oklofok, don't you remember when elliott tried that? 20:09:04 Unless the player starts moving dirt from one side of the planet to the other 20:09:17 Phantom_Hoover: i doubt he tried it in the way i'm thinking 20:09:25 so a tetris piece would have a mass of 4 20:09:29 i'm thinking an actual ca that enforces a gravity 20:09:45 so that two of 1 20:09:47 argh 20:09:49 oklofok, elliott was trying to get relativity to work. 20:09:53 So no, he didn't. 20:10:00 so that two clusters of 1's would attract 20:10:06 but if 2 tetris pieces bumped together, they would become one object with a mass of 8 20:10:11 oklofok, you could have gravitational field cells. 20:10:20 Taneb: the shell theorem only works if the planet consists of perfectly spherical shells, naturally 20:10:22 yeah i was thinking some kind of gravitons 20:10:38 if think now you are ready to turn off autopilot and totally get lost behind beteigeuze c 20:10:55 1's need to be preserved in number, and 0's should be a quiescent state, other states can do whatever they like 20:10:57 *perfectly uniform spherical 20:10:59 *0 20:11:01 for me, diagonal connections in CA's (i love the acronyms you guy use so casually) is good enough to share mass 20:11:16 Taneb: the shell theorem only works if the planet consists of perfectly spherical shells, naturally 20:11:29 Not sure about that... 20:11:54 Phantom_Hoover: well those are the ones that integrate to give 0 gravity inside 20:12:09 itidus20: as i love telling people, i get payed to play with ca all day so acronymizing it gets pretty casual 20:12:11 we can reduce complexity to make it fit on a single floppy!!! 20:12:17 unbelievble 20:12:21 hrhr 20:12:43 Phantom_Hoover: i don't know whether those are the _only_ surfaces giving 0 gravity everywhere inside though 20:12:44 oklofok: ok heres another idea i had (i was on a roll that day) 20:12:55 oerjan, Gauss' law for gravity comes to mind. 20:13:12 a chess game CA where the piece type is determined by the pieces around it 20:13:32 Icehouse Chess? 20:13:46 unlike other things this one won't let me stop and wonder 20:13:48 No wait, that's different 20:14:00 well it would be just a CA... but the pieces would exist as uhh 20:14:01 A CA's a cellular automoton, right? 20:14:03 itidus20: huh? 20:14:07 Taneb: yeah 20:14:13 the pieces would be implied by the rules of the CA I guess.. 20:14:41 so say you had a cell on its own.. that could be a pawn 20:14:47 a continuous shift-commuting self-map of S^Z where S is a finite set and Z are the integers. Z can also be Z^n for some n, for instance for gravity 2 is a natural choice 20:14:47 as an example 20:15:13 itidus20: chess pieces are not really mathematically interesting 20:15:19 i actually drew up some ideas of possible rules for which pieces are which 20:15:24 how do they move? 20:15:56 a lonely queen on the plane wouldn't know what to do! 20:16:05 oh.. well.. ok.. so you start with a regular game of life 20:16:09 also how far can a queen move? 20:16:12 and.. in between turns 20:16:16 turns? 20:16:25 generations? 20:16:28 oaky 20:16:29 oklofok.. the problem you have IS a real problem.. and youreflect it that nice. no'ones sure its gonna ex- or implode 20:16:31 brb 20:16:36 and what happens next! 20:16:55 hagb4rd: can you clarify a bit? 20:16:56 ok lets say its not quite game of life.. lets say you have 2 teams .. so trinary state 20:17:01 no 20:17:08 because its chess 20:17:21 or uhh 20:17:24 uhhhmmm 20:17:30 Phantom_Hoover: yes wikipedia's shell theorem article proves it from gauss' law. but the spherical symmetry is still essential to get 0 at every point rather than just as the total integral 20:17:34 i never really thought about it that way 20:17:41 oerjan, hmm, yes. 20:17:59 two teams? a CA that has two players is still just a CA, since they are deterministic. are we talking tilings maybe? that is, nondeterministic CA 20:18:19 well.. you would have a dead cell, a black cell, and a white cell 20:18:49 oaky 20:19:03 istnt it an approximation at least good enough to to wonder what keeps bananas growing with this specific irregular way 20:19:11 not to 20:19:19 i certainly like the idea of alternation for tilings 20:19:20 so at the end of a generation the player can select 1 cell.. whose type is determined by the cells around it 20:19:35 and move it 20:19:52 (in the sense of an alternating turing machine) 20:20:01 and in all likelihood it is now a new kind of piece having moved 20:20:24 and lets say you can capture an enemy cell by moving onto it 20:20:40 okay, well that's a particular game that's kind of weird 20:20:43 dunno what to ask about it 20:20:44 http://www.youtube.com/watch?v=5Ku5G4ovnUU 20:20:49 i try 20:20:51 hehe 20:20:59 and again, how does a queen move? 20:21:02 can you go arbitrarily far 20:21:32 i was discussing that very question in here last night about how far can a chesspiece move 20:21:34 On a pseudogeometrical torus? 20:21:36 if you can, then the set of valid games might not be closed 20:21:46 whatever that means ;) 20:22:03 I think in this context finite would do better 20:22:06 valid drawings of playings i mean 20:22:10 ok finite ca 20:22:21 The Queen That Went Too Far 20:22:43 lol 20:22:46 so the actual pieces are represented as rules of neighborhoods 20:23:17 and the fun of the design is determining which neighborhoods map to which pieces 20:23:49 I came up with a set but I never did anything with this idea 20:24:09 Changing the subject somewhat, is it possible to construct a physical machine that did functional programming at its lowest level? 20:25:19 See: the Reduceron. 20:26:28 The idea could also be extended into fairy chess. 20:27:42 or even result in resignation. 20:27:44 no! 20:28:01 Wrong convo? 20:28:13 sorry taneb 20:28:19 wrong attitude 20:28:23 i will join your convo 20:29:27 Some sort of von Neumman architecture? 20:29:43 Taneb: "And the next command is the one after that." "that" being _both_ the interpolated commands? 20:29:51 Yes 20:30:03 ok then i think i understand 20:31:44 Taneb, http://www.cs.york.ac.uk/fp/reduceron/ 20:35:49 how about: you have a finite set of states S, partitioned into E and U, the existential and the universal states. now for a point x \in S^Z, you can define its E-successors by changing all the cells of x in an E state to their possible successors, and its U-successors similarly; there's a local rule that tells you what changes are legal. now, to every sequence s in {"E", "U"}^N partitions S^Z we get a subset of points from which the game goes on foreve 20:35:59 i'll paste the latter half just in case 20:36:00 there's a local rule that tells you what changes are legal. now, to every sequence s in {"E", "U"}^N partitions S^Z we get a subset of points from which the game goes on forever, say for EUEUEUEU... this means from x, for some choice of new cell values by E, for any choice of any cell by U, for some choice of... 20:36:26 one way to have alternation but i'm not sure that's the most natural thing to do. 20:36:52 argh 20:37:17 *now, to every sequence s in {"E", "U"}^N we can associate the set of points of S^Z from which the game goes on forever, 20:37:21 sry 20:38:10 working on CAs it must be tough to resist the topic i came up with. 20:39:22 What is your opinion of the way the List of ideas has now been formatted on esolang wiki? 20:39:23 we're gettin wam oklofok 20:39:51 what's wanm 20:39:52 *wam 20:40:04 this tends at least to an idea i had of it.. 20:40:18 so, on looking at reduceron page, I feel my ineptitude. what's the best language to learn functional programming concepts? 20:40:30 BYOB 20:40:34 hagb4rd: ? 20:41:03 without beeing able to implement it an alg0 20:41:10 http://byob.berkely.edu 20:41:30 thanks 20:41:53 i have tried reading up on lambda calc once but i never quite got it 20:42:04 That site's got a tutorial 20:42:09 For BYOB 20:42:12 ^ http://byob.berkeley.edu/ 20:42:14 It's how I leant it 20:42:19 *learnt it 20:42:25 Do you know of some Icehouse+Tarot games? I have read about one such game called Gnostica. However, I have neither Icehouse nor Tarot. 20:42:30 oh nice it's visual programming 20:42:41 Yeah, it's based on Scratch 20:42:59 I won't fuck the room again by my ideas about visual programming. 20:43:02 Taneb, that... doesn't look functional. 20:43:07 ill just quiet down 20:43:17 It has functional bits in it 20:43:23 By which I mean it's not functional by any stretch of the imagination. 20:43:30 Functional bits don't make it functional. 20:43:35 the original idea of course was that s = EEE... would give you SFT's, in some sense. but that's not really happening atm... 20:43:47 Functional bits means you can learn functional programming with it 20:44:06 Scheme or Haskell is basically the best way to go. 20:44:10 because if you think my ideas about torus worlds, gravity CAs, chess CAs make a mess. then visual programming is just as bad 20:44:48 i'll save it for another day 20:48:47 you may have already supplied me with next week's research topic (by putting games and CA close to each other), this is actually something i've been wanting to do for ages but i had to work on my master's thesis last time so it never got anywhere 20:49:05 Yay 20:49:14 I smash them together like a particle collider 20:49:40 gravity + ca is certainly interesting but you could ofc only publish it as a joke 20:49:52 =)) 20:50:09 i mean the answer to my particular question of whether you can implement gravity behavior with a ca 20:50:24 > cycle "Haskell " 20:50:25 "Haskell Haskell Haskell Haskell Haskell Haskell Haskell Haskell Haskell Ha... 20:50:29 Basically I see things as existing in academic space and entertainment space. 20:50:56 but actually a somewhat similar (much simpler) question was recently solved in a famous 150 or so page paper in the 1d case, i just realized 20:51:14 I take inspiration from people like lewis carroll 20:51:45 I take inspiration from JRR Tolkein 20:51:52 hmm... 20:51:54 the academic space is a subset of the entertainment space 20:52:04 I say it's the other way round 20:52:09 this may be off topic, but, i had one chess idea about a castle and a forest 20:52:11 Taneb, nah. 20:52:18 I would say the spaces overlap but neither is a subset of the other 20:52:22 the idea is you can enter the forest and emerge from it whereever you like 20:52:29 thus effectively hiding in it 20:52:32 (i can't imagine any chess related idea being mathematically interesting really) 20:53:07 there was something about guards on the castle. i dunno exactly how it went 20:53:10 (A lot of people would say mathematically interesting is a tautology) 20:53:28 Taneb, nah. 20:53:35 oklofok: well there is the question of complexity class 20:53:36 I didn't say us 20:53:39 There's plenty of boring mathematics. 20:53:42 oklofok, well to me, chess is a CA in disguise. 20:54:12 It just needs to be teased out from its disguise 20:54:20 Like a mime 20:54:29 When you try to make one talk 20:54:30 mine the mimes 20:54:40 oerjan: does this sound familiar: take two topological spaces U and T and a point x in T. stick U in place of x. 20:54:40 oklofok, well to me, chess is a CA in disguise. 20:54:48 itidus20, it's non-deterministic? 20:54:59 assume additional stuff for U and T if useful 20:55:00 hmm... 20:55:12 hoover, well it could be deterministic :D 20:55:14 It's a phase sppace 20:55:16 that would be a cool thing 20:55:19 deterministic chess 20:55:30 It's deterministic in the fifth dimension 20:55:31 itidus20, no, it would literally be the most boring thing in the world. 20:55:33 Or sixth 20:55:41 oklofok: i'm not sure if it has a name but it's a pretty obvious thing to do... 20:55:45 but i was thinking open sets are generated by those of U, and those of T with x replaced by the whole U 20:55:54 oerjan: sure 20:55:57 replace the players with a rule for evolving the chessboard closer to an end. 20:56:03 have you seen it done? 20:56:11 oklofok, isn't that a fibre— no, wait, it's just a single point. 20:56:24 " oklofok, well to me, chess is a CA in disguise." <<< i don't see it that way at all 20:56:34 oklofok: you'd probably want U to be closed as a subspace, since {x} is (assuming hausdorff spaces) 20:56:40 I had an idea once, chess with two time dinensions. 20:56:45 (or T1) 20:56:55 I once tried to do battleships as a CA 20:57:06 I didn't get very far 20:57:15 :/ 20:57:19 oerjan: well it would be obviously 20:57:20 Taneb, protip: games are universally nondeterministic. 20:57:26 with my topology 20:57:35 Hence why I didn't get very far 20:57:58 because T - {x} is still open 20:58:11 oklofok: also http://en.wikipedia.org/wiki/Surgery_theory which is somewhat different but feels related 20:58:13 U would be a clopen set tho so hmm. 20:58:17 theres a mix of ideas that come into play. a binary CA is easily computable and could be said to be properly reduced. or more optimized etc, however -- the factor of human comprehension is always important 20:59:04 humans comprehend chess pieces easily. so are they not better for humans to manipulate than binary tiles 20:59:24 I think there is a tradeoff involved with no perfect answer. 20:59:35 oerjan: i should certainly read some literature on this stuff 20:59:40 itidus20, they're fundamentally different abstractions. 20:59:41 on it, but progress is slow 20:59:46 -!- myndzi\ has changed nick to myndzi. 20:59:48 s/abstractions/structures/ 20:59:51 since i constantly come up with new problems to solve :\ 21:00:37 oklofok, meanwhile I still have over a year until university. 21:00:37 well chess has more cell states {pawn, king, queen, knight, bishop, rook} x {white, black} 21:00:41 It's horrible. 21:00:51 Don't forget unoccupied 21:00:54 itidus20: And empty spaces. 21:00:56 yes i forgot that 21:01:04 hmm 21:01:16 ( {pawn, king, queen, knight, bishop, rook} x {white, black} ) + {blank} 21:01:28 oklofok: mind you this is not a field i know much more than the name of either 21:01:36 13? 21:01:49 Where does location fit into that model? 21:01:57 " oklofok, meanwhile I still have over a year until university." <<< math? 21:02:04 oklofok, of course. 21:02:08 :)) 21:02:11 Location is inherent, Sgeo 21:02:12 oklofok: that cell attachment thing mentioned in that article sounds promising but there was no link 21:02:13 yayyy 21:02:19 there are some issues with that model though.. thats true 21:02:28 it is wise to note that theres things missing 21:02:29 By which I mean that these cells are all in the correct location 21:02:33 You could also have additional states if you want to keep track of en passan and castling as cell states as well. 21:02:42 zzo, yup... 21:02:54 itidus20, look, CAs are not well viewed as entities moving around a space. 21:03:05 King-castled and king-notcastled 21:03:05 langton's ant is one exception 21:03:15 Rook-castled and Rook-notcastled 21:03:17 i guess actually the "correct" topology is having T's open sets with x replaced by open sets of U 21:03:26 There are many exceptions, but they are in the minority. 21:03:33 and human intervention is even worse :P 21:03:55 oklofok: interestingly googling "cell attachment topology" is not enough to restrict the hits to mathematics :P 21:04:02 The point is that trying to start viewing CAs that way will just confuse you later on. 21:04:07 like in the movie dark city.. when a generation has finished secret activiies of the night adjust the city 21:04:10 oklofok: interestingly googling "cell attachment topology" is not enough to restrict the hits to mathematics :P 21:04:24 Topologies of biological cells attached to each other? 21:04:27 assuming hausdorff space you will then get the topology of T by taking the open sets of this thing but "rounding elements of U up to x" 21:04:29 Only the rooks need to keep track of castling restrictions, not the king. If the king moves, both rooks change to the one unabled to be castling. 21:04:41 Phantom_Hoover: yeah something like that 21:05:03 I force myself to be iconoclastic and autodidactic in this. 21:05:04 itidus20, and yes, as Sgeo points out, chess has a certain amount of hidden state as well. 21:05:18 yeah i forgot those hidden states, but they can be unhidden :D 21:05:21 Chess doesn't have hidden information. 21:05:22 Hmm, why both rooks, instead of a random rook? 21:05:28 they are sort of hidden 21:05:32 itidus20, yes, but then you're shoehorning. 21:05:34 they were indeed left out of my model 21:05:35 And no, they're not. 21:05:40 They are completely hidden. 21:05:43 its a bit of a kludge, i know 21:05:53 its messy, very messy 21:05:54 Looking at the board, it's impossible to tell if the king has castled. 21:06:02 yes but... you see.. 21:06:08 Yes, and kludges are exactly what you were trying to avoid. 21:06:10 you could add a red king 21:06:10 Unless you had been paying any attention to the game 21:06:12 Sgeo: Both rooks just seems like a better way to do it, it simplifys some things 21:06:13 hahahaha 21:06:24 pre-castled king could be red and yellow 21:06:35 You said yourself you were trying to make a natural chess CA; that is impossible. 21:06:39 thats very creative of you 21:06:42 itidus20, why are you trying to assign colors to this? 21:06:49 Unless you had been paying any attention to the game 21:06:56 Except that's the point. 21:07:03 Game of Life isn't described in terms of black and white, just "living" and "dead" 21:07:04 I think the kings don't need castling state, only the rooks do. 21:07:14 Hidden state means that you can't work out the future moves of the game based purely on its present state. 21:07:14 I'm saying it isn't hidden information 21:07:21 sgeo: because I am trying to not take sides 21:07:31 ...take sides? 21:07:37 yeah 21:07:47 Sgeo: Sometimes black/white, sometimes different colors, by standard called "living" and "dead", although I prefer "on" and "off". 21:07:49 In a game of chess, both players know whether a king has moved, and whether a pawn has just moved twice 21:07:50 OK, I'm defining 'hidden state' to be state not ascertainable by looking at the position of pieces on the board at a given time. 21:07:50 i have proven that you could represent the hidden information if you wanted to 21:08:17 Because the positions of pieces on the board at a given time is all you have in the CA. 21:08:26 yeah thats cos my CA sucked 21:08:37 itidus20, yes, and I have already said that it rules out an elegant representation, which is what you were trying to make. 21:08:39 but i could multiply the states by a few more booleans. i know its ugly 21:08:43 I have also described a few ways in which you can put these information part of the board state, by adding new kind of pieces for this information 21:08:45 :(( 21:08:46 yes 21:08:55 this is true. its inelegant 21:09:01 Phantom_Hoover: well with a CA there is no trouble adding some extra piece types to encode the necessary hidden state 21:09:02 But still what you do not tell, is which player plays next. 21:09:09 oerjan, itidus20, yes, and I have already said that it rules out an elegant representation, which is what you were trying to make. 21:09:33 i never ever ever thought of this before though.. colored pieces 21:09:37 Phantom_Hoover, define "elegant" 21:09:39 yeah, I'm redacting my comment about learning functional programming with BYOB 21:09:49 Now there is 2 kind of rooks, castling allowed rooks, and castling disallowed rooks. 21:09:51 Phantom_Hoover: chess _already_ has pieces which change 21:10:06 Ok I admit that I use no true scotsman logic. I believe it has some value. 21:10:21 And 2 kind of pawns, the kind which has just been moved two spaces, and the normal kind. 21:10:23 Sgeo, one in which the cells are completely analogous to the pieces on the board. 21:10:27 More or less. 21:10:41 That makes "no hidden state" a tautology, of course. 21:10:43 itidus20: yeah everyone knows Phantom_Hoover is no true scotsman 21:10:48 i mean me 21:10:49 Make a CA whose neighborhood also extends backwards in time to the initial state 21:10:51 I drink tea all the time! 21:10:52 oh 21:10:54 hmm im confused 21:11:02 My accent is inexplicably English! 21:11:13 Make a CA whose neighborhood also extends backwards in time to the initial state 21:11:13 Or is that too insane? 21:11:14 there is nothing wrong with revising an argument as long as the intention is good 21:11:23 Preeeety sure that doesn't count as a CA. 21:11:29 For one thing, there's no initial state. 21:11:30 -!- zzo38 has quit (Remote host closed the connection). 21:11:36 itidus20, the joke is that I am Scottish. 21:11:42 cool 21:12:02 Phantom_Hoover: CA have initial states? 21:12:19 i'm going to have to be surprised by this claim! 21:12:23 Some of my best chat friends have been Scots 21:12:24 oh 21:12:32 oklofok, exactly. 21:12:33 you mean no initial configuration or what? 21:12:46 oh you meant 21:12:55 CA have no... no bleh w/e 21:13:03 oklofok, I mean something along the lines that each generation has no idea when the initial state was. 21:13:10 oklofok: in the beginning there was the garden of eden 21:13:15 The transition rules are time-invariant, in other words. 21:13:16 sgeo: the buddha said that you can't do it and you will go mad trying. 21:13:31 We're all mad here 21:14:02 oerjan, what was that Alice in Wonderland quote again? 21:14:12 Can the transition rules mention a specific state? Hmm, that doesn't work, initial chess state is NOT a garden of eden 21:14:21 Thus back in india 2500 years ago or whatever they were discussing that you will go mad trying to trace back to original causes 21:14:24 * oerjan pours some hatmaking chemicals into Taneb's tea 21:14:37 oerjan: god said, let there not be two asymptotically equal states of the world with the same image, and thus there was a garden of eden. 21:14:43 I can't stand tea! 21:14:48 sgeo, the problem is that chess isn't deterministic. if it was then you could 21:15:00 Sgeo: the whole point of CA is they are continuous, meaning they only depend on a finite amount of cells near them 21:15:08 * Taneb absorbs the aroma of tea 21:15:12 Ok, so so much for that 21:15:13 what's a CA? 21:15:17 * Taneb dies of inhaling hatmaking chemicals 21:15:21 argh 21:15:25 sorry oerjan 21:15:27 It's a State in South west US 21:15:28 aitp,atpm? 21:15:31 automaton? 21:15:34 sgeo: I mean, you can't see which piece was the last one to move by looking at a chessboard. 21:15:36 what god said was 21:15:46 let there be two such states. 21:16:06 I can't stand tea! 21:16:09 A CA is a cellular Automaton, cheater_ 21:16:09 DIE YOU BASTARD 21:16:16 I like the aroma 21:16:29 also, suppose that a rook moved left, then right, then left... you couldn't determine how far left and right it moved 21:16:31 Just the aftertaste... 21:16:40 *the afterfnarf 21:16:54 cheater__: i just gave the definition a few hours ago 21:17:24 oh right cellular automaton, i can't believe people don't know the abbrev... 21:17:53 "But I don't want to go among mad people," Alice remarked. "Oh, you can't help that," said the Cat: "we're all mad here. I'm mad. You're mad." "How do you know I'm mad?" said Alice. "You must be," said the Cat, "or you wouldn't have come here." 21:18:41 is that a set theory thing? :D 21:18:49 itidus20: ? 21:18:55 is what 21:19:00 that the teaparty consists of a set of mad people 21:19:02 sorry oerjan <-- wat? 21:19:09 oerjan: my god thing 21:19:11 corrected 21:19:22 I think it's a four dimensional vectors thing 21:19:29 itidus20: where do you think bertrand russell got his teapot from anyway 21:19:46 Taneb, why are you suddenly talking about 4D vectors? 21:20:04 Something to do with the Mad Hatter's Tea Party 21:20:06 so those people that gets healed by faith healers, why don't they get really mad and make a big deal out of it not working? 21:20:07 I'm sure 21:20:11 oerjan: not well read enough 21:20:14 or does it actually work 21:20:38 oklofok: people are complex. 21:21:10 itidus20, well, except the real ones. 21:21:14 there is first of all, certain implications about a person for visiting the faith healer in the first place 21:21:27 just as there is implications about a person visiting a brothel 21:21:27 I'm still trying to figure out how to get that sign I have that says Taneb into town centre 21:21:37 Taneb, carry it? 21:21:43 It's pretty big 21:21:51 How big? 21:21:58 Around A0? 21:22:03 " just as there is implications about a person visiting a brothel" <<< like living in a country that has those? 21:22:06 It'll get wet 21:22:12 australia 21:22:27 what do you expect from convicts 21:22:29 heh 21:22:31 or are there others? 21:22:39 might be 21:22:58 but like.. such a person is unlikely to say put some bloody clothes on 21:23:18 I've got relatives in Australia 21:23:19 and.. also.. if the sex is bad.. is it his fault or her fault 21:23:33 i'm not following you 21:23:42 i suspect that theres not much room for refunds at a brothel 21:24:06 you get naked with a woman and you're not getting a refund 21:24:51 still not 21:25:08 the chances of someone wanting to try a faith healer and then getting angry about what happens is much decreased than if its a skeptic doing research 21:25:09 How are you going to return the goods, oklofok? 21:25:42 how do you return the goods if you go up the eiffel tower and the view was not good? 21:25:51 You don't. 21:25:55 humans, also, are reasonable overall. sometimes they let things go. 21:25:56 You can't. 21:25:59 not saying he's not correct, i'm asking what the fuck he's talking about 21:26:09 Whores. 21:26:10 oh 21:26:11 that 21:26:20 company policies tend to be based around the likelihood of customers to not kick up a fuss 21:26:23 what "the fuck" indeed 21:26:38 " so those people that gets healed by faith healers, why don't they get really mad and make a big deal out of it not working?" 21:26:43 so do you mean people might be ashamed of even thinking it might work? 21:27:06 its actually in human nature to let things be more often than not 21:27:22 Because people who have faith in the faith healers will ignore the naysayers, and people who don't just laugh at the naysayers for being slow 21:27:28 but i don't recall hearing about even one case of a tv faith healing not working 21:27:28 with a few more rambunctious individuals standing up for the greater whole 21:27:45 This is boring, can we go back to talking about maths? 21:27:56 :D 21:27:58 i love ph 21:28:34 and reallly noone knows what is possible 21:28:44 yep 21:28:45 overestimation of knowledgebase is a common occurance 21:28:47 or wait 21:28:51 by noone you mean everyone right? 21:29:08 just as a programmer can't answer every arbitrary question about a computer 21:29:23 a faith healer can't necessarily explain why something might or might not work 21:29:51 Is collective human intelligence turing-complete? 21:29:57 and a person with a working respitory system probably doesn't know exactly how it works either 21:30:06 Or extelligence, even 21:30:10 we more or less have no clue what our bodies are doing 21:30:30 This was addressed in a Terry Pratchett book 21:30:36 Reaper Man, I think 21:30:36 Phantom_Hoover: so did you know that in a compact hausdorff space the closed sets are exactly the compact ones 21:30:58 I do now! 21:31:02 hausdorff = for every x != y you find disjoint neighborhoods for x and y 21:31:08 Is collective human intelligence turing-complete? 21:31:08 No. 21:31:16 maybe i'll prove this now 21:31:22 hmmhmm i wonder how it goes 21:31:31 Even if you include those people with perfect memory 21:31:44 Taneb, for one thing, there's no such thing as infinite storage. 21:32:40 so first, let C be closed, and let S be an open cover for it (open sets whose union covers C). by adding X - C where X is the whole space, we get an open cover for X, and since X is compact, you then find a finite subcover for X, which gives you a finite subcover for C as well. so closed => compact. 21:32:49 as for the other direction, let's see... 21:32:59 i thnk rather than physical and mental, there is the experiential (conciousness and qualia and all that) and the inexplicableness which makes it possible 21:33:36 but to divide them is wrong. theres a lot of evil that goes on when toying with such ideas 21:33:52 not dividing them might also be wrong 21:34:42 so i guess that the natural way of things is to simply admit we don't understand 21:35:06 http://en.wikipedia.org/wiki/Hyperthymesia 21:35:25 let C be compact, and let x \notin C. for every point y in C we find open U_y and V_y such that U_y contains x, V_y contains y and U_y and V_y are disjoint (this is just hausdorffness). now V_y's actually form an open cover of C, so there's a finite subcover (compactness of C) of the V_y. let's say the indices are Y. but now, the intersection of U_y where y \in Y is open (because it's finite!) so in fact we have separated x from C 21:35:30 x is arbitrary => C is closed 21:36:18 this is kind of trivial i suppose but it's very useful to remember since almost all important spaces are hausdorff, and many are compact. 21:37:07 any view which explains everything is necessarily a false view 21:37:18 (for instance all metric spaces are hausdorff and all bounded metric spaces are compact) 21:38:41 Phantom_Hoover: DID YOU FIND THAT TOO TRIVIAL? 21:38:57 YES 21:39:42 do you know what a path is? 21:40:00 well anyway a continuous function from [0, 1] to your favorite topological space 21:40:49 like f : [0, 1] -> X such that f(x) = y implies if y is in an open set U then for small enough perturbations of x, the image won't go outside U 21:40:56 (definition of continuity) 21:41:10 now what is a continuous subset of X? 21:41:12 erm 21:41:13 sorry 21:41:19 *now what is a connected subset of X? 21:41:34 can you come up with a definition using the idea of a path 21:42:51 (i have a bad habit of giving people homework) 21:43:08 "One time I went to buy some ice cream ... I walked over to the vendor and asked her what kind of ice cream she had. 'Fruit ice cream,' she said. But she answered in such a tone that a whole pile of coals, of black cinders, came bursting out of her mouth, and I couldn't bring myself to buy any ice cream after she had answered in that way ..." 21:43:36 I was thinking of http://en.wikipedia.org/wiki/Eidetic_memory 21:43:43 But linked the wrong thing 21:43:50 your link was cool 21:44:28 ok so I had this idea just the other day 21:44:59 Chess variants as XML? 21:45:04 This may sound odd. Normally, we assign a word to only single dimensional numbers. 21:45:16 Like "seven" 21:45:17 but suppose we were to assign words to numbers with more than one dimension. 21:45:25 taneb: yes, like seven 21:45:32 Like "2+6i" 21:45:34 seven = [7] 21:45:38 no.. not quite 21:45:43 can you come up with a definition using the idea of a path 21:46:26 -!- elliott has joined. 21:46:35 hi 21:46:36 elliott: You have 3 new messages. '/msg lambdabot @messages' to read them. 21:46:41 wow 21:46:49 A subset such that \forall x, y \in X, \exists f : f(0) = x, f(1) = y? 21:47:03 suppose I said, lalala = [7][3] 21:47:04 where f is a path, precisely 21:47:06 oops 21:47:09 this is called path-connectedness 21:47:10 Taneb: Are you serious do you live in Hexham. 21:47:12 suppose I said, lalala = [7,3] 21:47:22 oops i am misinterpreting the comma 21:47:26 So, vectors? 21:47:33 maybe we should go with my first comment 21:47:38 Phantom_Hoover: it would've been SLIGHTLY less trivial if i had specified we're asking when Y a subset of X is connected 21:47:40 anyway now 21:47:47 taneb, the trick is that every number is already a vector 21:47:51 seven = [7] 21:48:06 Y is path-connected if, with the subspace topology, what you said is true for it 21:48:06 seven = [7][0] 21:48:11 So, we're giving names to n-length vectors 21:48:19 its an idea i had. yeah 21:48:33 that amounts to Y being path-connected if and only if for all x, y in Y, there's a path f that goes completely inside Y. 21:48:36 so 21:48:39 I don't think we can change the English language like that 21:48:47 the reason i'm saying this is path-connectedness is that there's also another thing called connectedness 21:48:55 which is slightly harder to guess 21:49:32 Taneb: SILENT TREATMENT I SEE 21:49:41 we say X is connected if it cannot be partitioned into open sets except in the trivial way of just having the whole X in one component 21:49:47 ... 21:49:52 Taneb, but it is sort of interesting eh? 21:49:57 Yeah 21:49:58 who's itidus20 btw 21:50:03 now, is there a connection between path-connectedness and connectedness? 21:50:08 I have no ieda 21:50:08 i just stumbled in here. 21:50:16 I have no idea, either 21:50:39 im probably the dumbest in here. 21:50:49 I dunno, I'm here 21:51:12 dumber than asie? 21:51:23 probably 21:51:31 Dumber than oklofok? 21:51:38 certainly 21:51:41 hahah no way that's gonna happen 21:51:45 elliott: Silet treatment about what? 21:51:53 Taneb: Taneb: Are you serious do you live in Hexham. 21:51:54 :-P 21:51:56 you know just now i was like, hey i have some pizza let's eat 21:51:56 Yes 21:51:57 -!- FireFly has joined. 21:51:59 I don't know algebra. 21:52:01 Taneb: Me too. 21:52:04 and then i look in the fridge and it's empty 21:52:04 I heard 21:52:10 and i'm like what the fuck happened to my pizza 21:52:13 Taneb: I find this vaguely inconceivable. 21:52:14 and then i saw i had eaten it 21:52:18 It happens 21:52:19 and i was :( 21:52:41 " I don't know algebra." <<< the true definition of smartness 21:52:41 elliott, you have seen the log when I found out haven't you it is hilarious. 21:52:44 i mean 21:52:47 how well you know algebra 21:53:29 Is there a way to find out how many users there are on the wiki? 21:53:35 hey! Taneb maybe you could also invite elliott to the proof party! 21:53:42 Yeah! 21:53:47 Proof party! 21:53:48 Taneb: Special:Listusers or something 21:53:55 i can say i don't understand any of the quotes in here which get mathematical 21:54:33 itidus20: most of the math stuff i say is just for my own amusement 21:54:35 There are 678 users on the wiki 21:54:45 it doesn't even mean anything 21:54:58 Hexham has a population that I'm gonna call 10000 for easier maths 21:55:05 The world has 6 billion people in 21:55:13 12000 would've been easier silly 21:55:13 Taneb, I don't even need to tell you why that count is crazily skewed. 21:55:41 No you don't 21:55:54 Well, OK, it's only inflated by 50 or so. 21:56:34 elliot: they mentioned you before. when i was talking about the idea of making a CA in which connected live cells have a collective mass and hence gravity. 21:57:00 http://www.youtube.com/watch?v=c6WKz-z0GYA&NR=1 21:57:04 By these numbers, there is a 1 in 600000 chance of a random person living in Hexham 21:57:22 Now, with 700 users on the esolang wiki 21:57:57 That means there is over a 1 in 1000 chance of one living in Hexham 21:58:04 is there any better way to stalk elliott 21:58:07 Two is over 1 million 21:58:09 Taneb, you of course realise that the probability of a random esolanger being from Hexham is much more than 1/600000. 21:58:09 one in one thousand is pretty bad odds 21:58:10 monqy: ? 21:58:24 Probably 21:58:24 picking random people is pretty lousy 21:58:33 monqy: what are you talking about 21:58:43 apparently something unrelated 21:58:52 As most of those 600000 people don't even know English, let alone move in the social circles that lead to us. 21:58:59 -!- Nisstyre has quit (Quit: Leaving). 21:59:18 what's the speakation number of english? 21:59:37 -!- Nisstyre has joined. 21:59:45 Taneb: OK fine, the chance of a random person who is both an esolanger and who reads MSPA living in Hexham is pretty low :-P 21:59:47 oklofok: 9 21:59:49 500 million to 1.8 billion 21:59:53 Taneb: ARE YOU HAPPY NOW 21:59:59 YES 22:00:05 MORE SO NOW I KNOW I AM NOT ALONE 22:00:18 Taneb: NOPE, sorry, I'm moving into a cave. 22:00:20 I MUST BE ALONE. 22:00:25 Fine. 22:00:29 Who else is in Hexlam?/ 22:00:29 Be that way 22:00:33 Sgeo: Nobody. 22:00:35 See how I care 22:00:38 Me and Taneb are the only two people in Hexham. 22:00:49 Ah 22:00:56 well i kind of live in hexham too 22:01:02 I thought you uncovered some fax alias or something 22:01:18 Sgeo: wat? 22:01:21 Taneb, do you play Minecraft? 22:01:26 Yes... 22:01:29 -!- zzo38 has joined. 22:01:50 Does Elliott 22:01:52 Well, I think we can chalk that down to coincidence; also go to #esoteric-minecraft now. 22:01:56 elliott, as in, Hexham was where fax lives or something, so it would seem likely that Taneb is fax 22:02:07 (for instance all metric spaces are hausdorff and all bounded metric spaces are compact) <-- BZZZT WRONG. *complete, totally bounded 22:02:09 Yes Taneb is totally fax. 22:02:17 Taneb: WHY ARE YOU LITERALLY ME 22:02:27 I'M NOT YOU 22:02:35 elliott, erm, fax lived in Hexham? 22:02:37 I'M AN ESTIMATED 2-3 YEARS YOUNGER 22:02:40 Phantom_Hoover: Not that I know. 22:02:45 Taneb: How old? 22:02:47 Taneb, 1½, actually. 22:02:48 itidus20: see, what i said earlier didn't make sense without oerjan's addition 22:02:54 16 22:02:55 Phantom_Hoover, no, but I thought maybe that was the case, and that was the "weird coincidence" 22:03:03 That might not have been a coincidence 22:03:14 Sgeo, come on, you've seen fax's socks. 22:03:20 Phantom_Hoover: I'm not seventeen and a half. 22:03:28 oklo: i am a magnitude more clueless about math. 22:03:33 socks? 22:03:42 Taneb, oh, so you didn't live n the UK for 1½ years. 22:03:55 Phantom_Hoover, assuming you mean IP, then I don't pay attention to those 22:03:56 oerjan: what's totally bounded? by bounded i meant the space is a ball. but obviously you will then need to add completeness yeah because R^2 would be a counterexample otherwise 22:03:58 Taneb: I'm almost sixteen :-P 22:04:05 (by using a different metric) 22:04:10 Huh 22:04:34 And I've been outside the UK for why the hell do I have a US keyboard layout 1 1/2 years 22:05:05 Taneb, because you have a Mac? 22:05:10 No 22:05:14 I think it's this client 22:05:24 That's a pretty crappy client. 22:05:46 Ha, you use Windows; I am justifiably superior. 22:05:53 I use Linux 22:05:59 -Taneb- VERSION leafChat 2.3 Windows XP 5.1 http://www.leafdigital.com/software/leafchat/ 22:06:03 Not at the moment 22:06:08 Dammit. 22:06:09 But I do normally 22:06:11 elliott, maybe he's running it in Wine. 22:06:17 Because he is mad. 22:06:32 Taneb, shut up I'm making up crazy theories here and you're spoiling them. 22:06:43 I'm already crazy enough 22:06:46 oerjan: is the proof hard btw? 22:07:05 Taneb: OK so you are required to stop being literally me. 22:07:05 I got famous last year for wearing a dressing gown and joining a political organization 22:07:26 elliott, Taneb probably takes real science subjects. 22:07:26 i don't directly see it, sequential compactness shouldn't be very hard and then i guess you can show compactness eq to that in metric spaces 22:07:30 Taneb: What. 22:07:51 I'm actually serious 22:07:59 Taneb: EXPLAIN YOURSEF 22:08:00 ..L 22:08:02 what does famous mean 22:08:05 Taneb, wait, I wear a dressing gown. 22:08:12 I've been described as a North-East legend 22:08:18 I... 22:08:24 And I'm not famous for being crazy well OK I am but not for wearing a dressing gown. 22:08:41 Taneb: You are required to explain 22:08:53 Summer '09. 22:09:04 good explanation 22:09:32 darthsandroids.net was running a competition 22:09:46 I entered with a picture of me in a dressing gown holding a model lightsabre 22:09:47 Taneb, oh, not the student protests YES I GOOGLESTALKED 22:10:01 Set this as my Facebook profile picture 22:10:08 No, PH, that came later 22:10:16 http://darthsandroids.net/ is a free iPod site. You'd think it'd be a free Android phone site. 22:10:23 (Or, y'know, Darths and Droids.) 22:10:25 Cut to February 22:10:32 War were declared 22:10:38 A galaxy in turmoil 22:10:50 Anyway, Febuary '10 22:10:56 Taneb, and you turned up in a dressing gown and lightsabre? 22:11:01 `addquote Cut to February War were declared A galaxy in turmoil Anyway, Febuary '10 22:11:02 506) Cut to February War were declared A galaxy in turmoil Anyway, Febuary '10 22:11:25 I saw a poster saying "Be a Youth Representative for Northumberland" 22:11:28 Signed up 22:11:30 (We have people in Scotland protesting tuition fee rises for them.) 22:11:35 Won the election by a landslide 22:11:41 (It's hilarious.) 22:11:46 That was November '10, PH 22:11:51 When I did that 22:11:54 Quiet, you. 22:11:59 Got in the Financial Times and everything 22:12:13 Point is, Loads of people across Northumberland heard of me. 22:12:18 I haven't, ha ha ha. 22:12:24 YOU'RE NOT FAMOUS IF I DON'T KNOW YOUR NAME 22:12:29 This was aided by my awesome name and facial hair (RIP) 22:12:29 am i famous 22:12:33 * elliott immediately stops consuming all forms of media. 22:12:41 Taneb: sorry Phantom_Hoover's name is cooler. 22:12:45 Mostly because I can't spell it. 22:12:55 Mine makes me sound like a supervillain 22:12:59 i wonder if i'm famous yet 22:13:21 Adhamhnáin_McCuil: Put him in his place 22:13:25 IF THAT'S YOUR /REAL/ NAME 22:13:30 good name 22:13:37 Which place is his? 22:13:51 The place of slightly inferior names to you. 22:14:13 And now I have 1789 friends on Facebook 22:14:19 Whore 22:14:29 I have 6. 22:14:31 I don't have a real facebook 22:14:34 jealous???? 22:14:37 I have two 22:14:46 i have undefined 22:14:54 english has bad type checking :( 22:15:11 elliott++ 22:15:11 I have carrots. 22:15:14 Zero, Elliott, when I heard you lived in Hexham I checked you out 22:15:23 im stalked 22:15:29 i deleted my facebook ages ago anyway 22:15:37 still only page three for picture languages :-< 22:15:51 Somebody called Robbie Soulsby described you as " Hes nee fukn wanker" 22:16:16 I have no idea who that is and I suspect they're not talking about me :-P 22:16:34 Take it was a complement 22:17:33 what does it mean 22:18:10 He is not someone who both has sex and masturbates 22:18:56 Somebody called Robbie Soulsby described you as " Hes nee fukn wanker" 22:18:59 Combination of bad spelling, profanity, and Geordie 22:19:04 Literate friends. 22:20:30 Indeed 22:20:51 You are currently stalking elliott by asking random friends if they've heard of him y/n 22:20:58 n 22:21:05 Asking random /people/ 22:21:06 Wrong answer. 22:21:16 Is this awesome [Y/n]? 22:21:20 n 22:21:31 PH: I wouldn't count them as friends 22:21:41 ND: It's stalking. 22:21:46 Stalking is bad 22:21:47 OK stop stalking me. 22:21:51 OK 22:22:07 Goodnight 22:22:19 -!- Taneb has quit (Read error: Connection reset by peer). 22:25:47 oklofok: i don't remember the proof, i just looked up at http://en.wikipedia.org/wiki/Totally_bounded_space 22:26:10 also, my jokes seem to be coming true. i need to be careful in the future. 22:26:25 ah 22:26:41 yeah that makes way more sense than the space being a ball since the space being a ball doesn't really give you anything. 22:26:48 topologically 22:26:51 oerjan, quick, joke that I'll discover that I'm heir to a vast inheritance tomorrow. 22:27:54 yes. a vast herd of sheep in the highlands. and a castle, which sadly is in a bit of a need of repairs. 22:28:01 don't we all wish our families would die 22:29:10 oklofok, I already know that I'm heir to my parents' stuff, so that doesn't count as discovering. 22:29:22 good point 22:29:37 oerjan, hmm, how vast are we talking. 22:29:40 i have no idea how much money my parents have 22:30:10 like i have no idea which [10^n, 10^{n+1}] it's in 22:30:34 Phantom_Hoover: enough to eat lamb every day for the rest of your life 22:30:40 oklofok: ask them? 22:30:49 oerjan, hmm, that's a lot of sheep. 22:30:55 I could sell them for a fair amount. 22:30:57 I would guess much less than 100 million moneys 22:31:06 olsner: i doubt they'd tell me 22:31:18 i don't even know if my mom has a religion 22:33:06 i have a hunch she votes for parties that are into that environment protection stuff, but i have no idea about my dad, really i don't even know whether he votes 22:33:38 oklofok, consider that you may be an orphan. 22:33:45 ? :D 22:34:25 in what sense 22:34:56 oklofok, well, for instance, have you ever actually seen your dad. 22:35:05 hmm 22:35:07 good question 22:35:13 i think i have, yes 22:35:20 a couple of times 22:36:05 I mean, your parents may well have died when you were 2 and all you can remember is that your mother voted for environmental parties. 22:36:16 Possibly because she took baby you into the polling booth. 22:36:21 well i did live with them for 19 years or so 22:36:39 oklofok, hmm, that's harder to fit to the hypothesis. 22:37:08 although they spent the last year mostly at our summer house because i liked having the house to myself and they liked gardening and shit 22:37:26 i mean the non-summer house 22:37:55 oklofok, wait a minute why do you like topology it's not even discrete explain?????????????? 22:38:06 that was an awesome year, my last year of high school, all i did was sit in my armchair naked and eat pizza 22:38:24 Phantom_Hoover: i dunno! that is kind of weird! 22:38:45 but S^Z has a topology as well 22:38:57 and it's pretty discrete in spirit 22:39:27 we also measure subsets of S^Z every day 22:39:46 it's a pretty routine thing 23:02:03 -!- Sgeo_ has joined. 23:02:33 -!- FireFly has quit (Quit: swatted to death). 23:03:13 -!- Sgeo has quit (Ping timeout: 255 seconds). 23:04:28 -!- Sgeo has joined. 23:06:49 -!- Sgeo_ has quit (Ping timeout: 255 seconds). 23:12:40 * Phantom_Hoover attempts to find citation for the story about Prince Charles' bodyguard at Cambridge. 23:13:24 -!- Sgeo_ has joined. 23:15:20 -!- hagb4rd has changed nick to hag[4]rd. 23:15:45 -!- Sgeo has quit (Ping timeout: 250 seconds). 23:16:44 19:21:21: it does not disappear when i scroll 23:16:44 huh, that's new 23:17:03 yeah 23:18:52 20:09:29: Man, I just got confused when Wikipedia didn't have an article on the Churing-Turch Thesis 23:18:53 but it does? 23:19:38 20:20:38: Taneb: no, my language 23:19:38 20:20:43: http://pastebin.com/MDEebq26 23:19:44 elliott, note last letters. 23:19:45 expired and on a bad pastebin. hth. 23:19:49 *first letters 23:19:53 Phantom_Hoover: :D 23:34:10 pastebin.com is bad? 23:34:24 Also, sometimes I posted pastes in here deliberately set to expire 23:34:27 Like the #jesus stuff 23:34:36 -!- Sgeo_ has changed nick to Sgeo. 23:35:28 pastebin.com is bad? 23:35:29 Yes. 23:35:31 Also, sometimes I posted pastes in here deliberately set to expire 23:35:32 I hate you. 23:44:04 I don't feel comfortable posting pastes of a non-publically logged channel into a publically logged channel 23:45:01 I don't feel comfortable knowing that expiring pastes exist. 23:45:45 vjn pastes will expire in a year :( although they will just move to another domain 23:46:09 oklofok: which domain, if.njv? 23:46:49 i will tell you when it's relevant 23:48:06 oklofok: SHEESH I WAS TRYING TO MAKE A QUARTER-JOKE 23:49:11 Can you invent any card game using the Fanucci deck? 23:52:23 -!- augur has quit (Remote host closed the connection). 23:52:53 elliott: make a whole joke next time hth 23:53:06 oerjan: why? _you_ never do 23:53:12 OHHHH BURN 23:53:35 but that's for the extra fridge logic punch... 23:55:52 http://www.mspaintadventures.com/storyfiles/hs2/01596_2.gif 2011-07-17: 00:10:04 06:33:22: http://esoteric.voxelperfect.net/wiki/100_free_dutch_dating_sites_2008 00:10:17 ?tell ais523 Request a copy of the wiki page "100_free_dutch_dating_sites_2008". 00:10:17 Consider it noted. 00:12:10 `addquote I can't afford one of those! A grandchild, not a laser printer 00:12:11 507) I can't afford one of those! A grandchild, not a laser printer 00:12:58 i hear 16 year olds with grandchildren are quite rare in england 00:13:22 oerjan, yeah, although they're set to be common up here. 00:13:34 (UK's youngest pregnancy /o/) 00:13:34 | 00:13:35 /´\ 00:13:54 how does that even work 00:14:07 myndzi: now producing child pornography automatically 00:28:40 15:41:03: idgi, in paris and other third world countries the streets are full of all sorts of crooks and everyone still treats you like you're a person; out there everyone assumed i was going to do something fishy 00:28:40 15:41:07: i asked like 20 ppl 00:28:40 15:41:10: two gave me their phones 00:28:40 15:41:26: one typed the number in himself, and looked a bit scared 00:28:40 15:41:37: (i'm pretty scary) 00:28:41 15:41:53: and the other one was a druggie so he was nice ofc 00:28:45 i have nothing to say 00:31:30 -!- elliott has quit (Remote host closed the connection). 00:31:42 -!- elliott has joined. 00:36:38 i misread nothing as something and was confused when you didnt say anything 00:37:08 the druggie had apparently spent a few years just being stoned all day, like at work as well, then managed to quit and became a financial manager or something with a huge salary, but got sacked now and was real happy about finally being able to move in with his girlfriend. he was looking for some weed for his sleeping problem tho because he'd been prescribed way stronger drugs for it and was afraid he'd get schizophrenic with that stuff. 00:37:30 *problems 00:38:06 Does it exist Fanucci deck suit symbols in METAFONT? 00:39:35 i also had interesting conversations with the non-druggies, for instance there were a couple that went "no", and then also a few that went "" 00:43:34 oh and one guy told me in this incredibly annoying way that i could just go see my friend 00:44:27 you're SO RELIANT on PHONES, dude 00:46:26 i didn't have my phone because i would've had to carry it in my hand since my pockets are just holes 00:47:26 oklofok: i assume "no" and "" are considered lengthy conversations in finland 00:47:53 -!- Sgeo_ has joined. 00:48:06 i would say happily say no if it didn't defeat my point 00:48:32 curses, foiled again 00:49:21 -!- Sgeo__ has joined. 00:49:52 -!- Sgeo has quit (Ping timeout: 255 seconds). 00:50:33 -!- pikhq has quit (Ping timeout: 240 seconds). 00:50:45 -!- pikhq has joined. 00:52:34 -!- Sgeo_ has quit (Ping timeout: 255 seconds). 00:53:25 * Phantom_Hoover → sleep 00:53:27 -!- Phantom_Hoover has quit (Quit: Leaving). 01:07:43 oklofok: have you ever consiered visiting oklahoma 01:08:09 are you calling me a homo? 01:08:41 no, just a hama 01:08:53 i don't know the anythingest thing about oklohomo so you're going to have to tell me why you asked 01:10:43 just saying that you should visit oklohama 01:10:56 why am i should this? 01:11:20 oklofok: ok 01:16:53 http://en.wikipedia.org/wiki/Silo,_Oklahoma 01:17:59 other options include salina, slaughterville, and south coffeyville 01:18:59 :D 01:19:44 "I am writing on behalf of People for the Ethical Treatment of Animals, our 800,000 members and supporters, and other compassionate Americans to ask Slaughterville to change its name [...]" 01:21:26 hahaha 01:21:44 Veggieville 01:21:46 you missed out the best part 01:22:13 oh right 01:22:41 'The citizens of Slaughterville voiced their opinion by serving free hot dogs and brandishing signs that read, "Beef: it's what's for dinner." 01:23:09 -!- azaq23 has quit (Quit: Leaving.). 01:27:17 oerjan: If that is how they are voicing their opinion, then other people should request something else for dinner. Instead of, everyone eating a same thing for dinner. 01:29:59 zzo38: the PETA were offering veggie food at the same time 01:31:29 oerjan: Then it is OK. Because, people can go to whichever source of dinner they want, or both in case some people want to eat both hot dog and veggie for dinner. 01:31:57 However I do not think any of this requires a name change of a city. 01:34:27 20:16:29: oklofok.. the problem you have IS a real problem.. and youreflect it that nice. no'ones sure its gonna ex- or implode 01:34:28 20:16:36: and what happens next! 01:34:28 20:16:55: hagb4rd: can you clarify a bit? 01:34:28 20:17:01: no 01:34:31 i wanna addquote this but it's too long 01:35:00 :( 01:35:31 well i wouldn't want to be a secondary character in a quote anyway, it just feels wrong 01:35:36 http://thegamecrafter.com/publish/selling-your-game 01:35:42 oklofok: :D 01:35:52 itidus20: what 01:35:53 i just arrived at that after reading about Fanucci 01:36:29 oklofok: can you link to sevenfold.mid please 01:36:42 Basically... you can design boardgames.. and if they get a buyer, they will manufacture the game and sell it splitting the profits with you 50/50 01:36:56 fascinating stuff 01:37:22 oklofok: thx 01:37:39 i didn't do it yets 01:37:48 http://www.rnd.fi/oklopol/music/sevenfold.mid 01:37:56 and here's the new domain 01:38:00 oklofok: ha you told me the domain... when it was relevant 01:38:05 rnd is much less nice a name than vjn btw 01:38:07 oklofok: looks a bit random to me 01:38:20 has oerjan heard the wonders of sevenfold.mid, i am unsure 01:38:29 almost certainly not 01:38:35 sevenfold is a best 01:38:40 since i almost never play sounds 01:38:43 oerjan: but it's a classic :( 01:39:01 oklofok: can you get this performed irl somehow thx 01:39:09 would be the awesome 01:39:09 in addition you can sell the game to yourself 01:39:14 well i definitely do not play sounds in the middle of the night 01:39:22 1:09 always makes me giggle 01:39:31 So you can design a deck of cards and sell them to yourself :D 01:39:54 oh humm.. i dunno if it actually works that way entirely 01:40:06 like, if thats considered cheating, or if its cool with them 01:40:27 seems they will do that though 01:40:40 -!- CakeProphet has quit (Read error: Operation timed out). 01:41:14 oklofok: what bpm is the fast bits anyway 01:41:23 i don't wanna know 01:41:29 i do 01:41:52 i wonder if it's humanly possible to drum that fast 01:41:53 (yes) 01:42:04 i can check if the guitars are playable, the drums are impossible tho 01:42:14 oklofok: i doubt that 01:42:22 So you can create your own card deck of 100 cards for $12.09 .. I dunno how much ordering is on top of that 01:42:44 oklofok: like i seriously doubt that 01:43:36 -!- CakeProphet has joined. 01:43:36 -!- CakeProphet has quit (Changing host). 01:43:36 -!- CakeProphet has joined. 01:43:54 http://www.youtube.com/watch?v=tNcK6paHCZM 01:44:43 oklofok: i really doubt sevenfold is anywhere near a thousand bpm 01:45:09 "i wanted to be known for my feet and now i am, i have the world's fastest feet" 01:45:22 "around 350-360 bpm if my memory serves" um he said over a thousand 01:45:42 but yeah that doesn't really look that fast, it's kind of unfair since how many people actually try and set the record for fastest bass drum playing 01:45:51 that's like the least popular drum for fastness 01:45:56 it is uncool in school 01:45:57 Yes I saw that stuff about making a game with cards and selling the game earning 50% profit. 01:46:36 seems fascinating. 01:46:38 i think sevenfold is way faster than that vid at least 01:46:44 yeah but 01:46:46 just play it on another drum 01:46:49 I was linked to that game crafter stuff from Wikipedia 01:46:54 me too 01:47:04 i was following up on your Fanucci comments 01:47:17 Yes it is what I guessed. 01:47:36 oklofok: can't you open the mid and check the bpm of the drums or is that too much work 01:47:39 now.. its worth saying.. tarot cards are public domain. playing cards are public domain. 01:47:48 Fanucci... well... i doubt it 01:48:04 except no wait.. maybe they are public domain?? cos that dude was selling em 01:48:08 They have three games there, but I (and you and others) can make additional games of Fanucci deck 01:48:48 If I ever get into serious game dev I may keep it in mind for branching to other media. 01:48:50 itidus20: I expect they should be considered public domain except for the designs used by actual decks can be copyrighted. Probably tarot cards can also do that, so can face cards and ace of spades and jokers in a standard French deck 01:49:18 What they do not mention as far as I can tell is what resolution is used for printing the rules documents 01:49:27 haha 01:50:53 Some tarot decks are for game playing, some are designed for divination, but some are designed for both games and divination (game craft sells such decks). Tarot decks also come in French suited and Latin suited formats. 01:51:26 In fact I have invented my own Latin suited tarot deck. 01:51:45 oklofok: PSHT 01:52:04 elliott: okay okay 01:52:11 wait a mo 01:52:17 I have been trying to shift my life away from the occult a bit recently. Not that tarot is inherently occult. 01:52:20 (Which is designed for game playing and I doubt it would work well for divination) 01:52:23 But just saying that I have. 01:53:06 the occult kills children 01:53:13 get out WHILE U STILL CANNE 01:54:01 well .. divination attracts liars 01:54:31 Well, OK, then use the tarot decks designed for game playing. Note that the Uncarrot Tarot seems designed for really strange divination (it is not compatible with standard tarot), although some games could be played with it too (I had an idea of a trick taking game called "Rulers") 01:54:42 I am not saying divination is impossible. 01:54:50 oh okay it's just 16 beats per second all the way 01:54:52 I am saying it attracts liars though. :-D 01:55:05 (Note that tarot cards were originally designed for trick taking games, although now other games exist too, as well as divination.) 01:55:24 itidus20: Yes I believe it certainly attracts liars. 01:55:27 http://www.google.co.uk/search?sourceid=chrome&ie=UTF-8&q=sixteen+per+second+in+per+minute 01:55:29 thats not helpful gogle 01:55:34 I hope I am not being offensive to anyone. ^_^ 01:55:41 i'm so offended that i literally barfed, sorry 01:56:27 when i hear someone say x bpm i convert to bps to have any sort of idea how fast that is 01:56:29 oklofok: oh so 960 bpm in the fast parts? 01:56:39 yeah 01:56:49 just use www.wolframalpha.com 01:56:59 16 * 60 is a simple mental calculation 01:56:59 itidus20: its just times ixty :-P 01:57:01 sixty 01:57:14 it knows everything 01:57:35 oklofok: seems the maximum speed ever drummed is 1200 bpm 01:57:38 at least in this contest thing 01:58:05 oklofok: is it still sevenfold if you only play half the beats :D 01:58:10 Of course you cannot do proper divination with cards anyways, it is meaningless. Although other forms of divination are a bit different. Example, with palm reading, there might (although I am not sure) be some things you can genuinely predict with it, although certainly not as much as they claim, and not with a lot of accuracy 01:59:35 elliott: i think it would have roughly the same effect on real instruments 01:59:56 But of course the creases don't do anything themself, so lengthening them with chalk or grease pencil won't help anything. If the creases mean anything at all, they would be based on existing things, such as DNA and so on. Although I am unsure if it is actually possible at all. 02:00:08 oklofok: haha 02:00:15 the wiki page on divination shows that countless objects have been used for purposes of divination 02:00:22 i divined with a cat but it ate me 02:00:32 well maybe it is not the divination page itself but a erlated one 02:00:37 itidus20: what does the twenty in your name represent 02:00:41 are you twenty years old 02:00:44 or are you actually twenty people??? 02:00:52 i'm 29, born in 82 02:01:06 no 20's in my birthdate 02:01:11 the guitar in the beginning is rather impossible to play, since you have 16bps and you're hitting two notes at once 02:01:14 humm 02:01:18 but with two guitars, it's very doable 02:01:32 it is a relic of my time on yahoo chat 02:01:41 which i have formally quit yesterday 02:01:46 oklofok: so it's two guitars playing at 960 bpm? 02:02:00 itidus20: define formally 02:02:12 Yes certainly many different ways of divination have been used. There are rules for divination with ordinary (French) playing cards. Of course it is useless but some people might do it for entertainment if you want to, I guess. 02:02:14 it would be, if i was playing it. maybe someone can make two sounds at once on a real guitar sounds sensible, but i doubt it. 02:02:16 erm 02:02:21 *at 16 bps 02:02:34 i popped into my old reg room for about 12 minutes and told them in no uncertain terms that i am leaving yahoo forever. 02:05:03 why 02:06:06 itidus20: ? 02:06:23 several reasons. one is yahoo chat has been going downhill for the last 10 years, kind of like the quality of an apple declines if you trail it behind your car 02:06:27 against the road 02:06:34 um 02:06:34 ok 02:06:56 secondly, the unmoderated nature of chat means it is full to the brim with nasty people 02:07:04 ^it's chat 02:08:03 this place is fairly unmoderated too. or well, it was until oerjan came along >:) 02:08:52 yes but fuckheads usually don't care about esoteric programming languages 02:09:12 nah it's just that most jerks get serious brain damage if they try to read the channel 02:09:47 ESOTERIC Y U SO IQ 02:09:48 excuse me i am still here 02:10:07 (then *BOOM*) 02:10:19 thus "most" 02:10:52 ah. 02:10:55 and of course there is the occasional one which stays despite the brain damage 02:11:06 not naming names, i assume 02:11:14 i'm kind of passive aggressive/conflict avoidant.. but i don't shit where i sleep 02:11:28 elliott: nah, just plain fax 02:11:31 I'm kind of a person... but I don't kill bears. 02:11:37 I MEAN FACTS 02:11:47 i mean if i have to be an asshole i'll go find somewhere else to do it 02:11:57 oerjan: you're cheating. you're one who breaks rules. 02:13:00 eh.. i dont wanna elaborate too much about boring personal side of things 02:14:39 elliott: but we have no rules for cheaters to break 02:16:09 elliott: okay when actually playing a melody, that speed is waaaaaaaaaay beyond my comfort zone 02:16:28 oklofok: good thing sevenfold lacks melodies :D 02:16:43 err it's all about the guitar melodies 02:16:49 that was a joke 02:17:20 oh okay anyway lemme show you my pathetic attempt 02:17:30 oh cools 02:18:23 no it's not :D http://www.vjn.fi/temporary%20shit/fucckkk.wma 02:18:30 wma :D 02:18:37 windows recorder 02:18:44 the most horrible program ever 02:18:51 it literally just has a record button. 02:18:54 *best 02:19:03 oklofok: haha wow was it actually this choppy irl 02:19:08 yes :D 02:19:11 it sounds like your fingers keep slipping 02:19:33 i can hold it steady on one note but argh 02:20:25 oklofok: it still sounds pretty cool 02:20:32 * CakeProphet has mad guitar skillz 02:20:43 or, at least, I can play it.. 02:20:47 i can try to make a seriouser version 02:21:31 oklofok: that would be cool, my friend thinks he can do it and i think he's full of shit 02:22:09 fortunately these assertions aren't mutually exclusive. 02:22:20 well the beginning isn't that hard, that's just not really a technique i can manage without an amp 02:22:53 do the whole thing :-P 02:26:59 -!- NihilistDandy has quit (Ping timeout: 252 seconds). 02:35:02 -!- NihilistDandy has joined. 02:36:19 oklofok: earth to oklopol 02:37:04 ? 02:38:02 i gave up already, did the half speed version but my hand is way too tired from the attempts... :D http://www.vjn.fi/temporary%20shit/fuckitall.wma 02:38:23 will listen in some minutes :P 02:38:30 i can't really do speeds that high so major hand-breaking attempting it 02:38:32 oklofok: one day you will figure out the secret. one day. 02:44:24 oklofok: i kind of like these choppy renditions evene more than the actual opening 02:44:27 [asterisk]even 02:50:24 http://www.vjn.fi/temporary%20shit/spacejazz.wma 02:50:36 i'm too tired 02:51:31 you tried again? :P 02:51:43 no instead i played some space jazz 02:54:12 20:51:45: I take inspiration from JRR Tolkein 02:54:12 "I, too, am a racist." 02:54:15 * elliott is still logreading :P 02:56:21 21:05:03: I force myself to be iconoclastic and autodidactic in this. 02:56:21 itidus20: does this just mean you don't listen to other people 02:56:41 hmm 02:58:11 thinking... 02:59:10 still thinking.. 02:59:59 this is like watching windows install 03:01:10 grabbed my soda from fridge... 03:02:45 Perhaps the reason for the icono and autod is: I find it very difficult to focus or concentrate. 03:02:55 reasons which make this worse includes. 03:03:30 I live in my moms house still at 29 with a brother who works and can push me around when things come down to it. 03:04:17 I have type 1 diabetes which is currently poorly controlled and mild asthma. 03:04:42 brb 03:05:48 Combined with my conflict-avoidant passive aggressive non-assertiveness, I gradually grow into a depression. 03:07:27 -!- CakeProphet has quit (Ping timeout: 240 seconds). 03:07:39 http://www.vjn.fi/temporary%20shit/spacejazz2.wma more space jazz! 03:07:48 If despite everything else I did manage to live on my own there is a danger I could have a diabetic seizure without anyone there to help get an ambulance etc. 03:08:27 I don't drive, study, work, shower, shave, change clothes, get sunlight, have friends. 03:09:30 cool 03:09:37 you're even cooler than taneb 03:09:54 but i bet you can't play space jazz. 03:09:57 I have phobias of heights and wide open spaces. 03:10:15 i'm not as cool, i do almost 4 of those things 03:10:47 i don't drive, avoid sunlight and rarely meet friends 03:10:57 Sometimes I seem to think myself into a sort of psychosis, imagining that all my perceptions are just neuron clusters firing. 03:10:58 but that's mainly because i'm too busy playing space jazz 03:11:06 :D 03:11:21 itidus20: that sounds pretty cool 03:12:03 it's a misconception due to an incorrect understanding of the boundaries of science 03:12:19 i have this weird thing where i feel like my brain is on overdrive and i hear weird sounds and shit 03:12:44 good for doing math although actual mental calculation isn't enhanced, i did extensive testing once 03:13:40 what's a misconception? 03:13:51 space jazz? well there's no way to conceive space jazz that's for sure. 03:14:04 itidus20: what are the boundaries of science? 03:14:14 science can't explain conciousness 03:14:24 conciousness is tied in with everything we do 03:14:33 lol 03:14:36 thus science can't explain anything completely 03:14:36 * oerjan isn't sure if the channel can survive at this point 03:14:42 oklofok: http://en.wikipedia.org/wiki/Space_Jazz 03:14:56 they made a wp page for those two clips? :O 03:15:15 ron fucking hubbard?!? .D 03:15:32 i need to find a new name i guess 03:15:59 oerjan, does it lack the esolang topics too much when i am ranting about non-esolang things? 03:16:04 oklofok: no this just makes it better 03:16:12 itidus20: i don't think that's the issue 03:16:29 itidus20: it's quite a bit more personal than usual for this channel 03:16:33 elliott: perhaps, yes 03:16:35 I have also invented a kind of tarot poker, with some new hands, although I have not calculated the probabilities of the hand. The rarest (and therefore best) hand is the "God Flush", which consists of the fool and the four highest trumps. 03:16:46 oerjan: i'm that personal often enough 03:17:17 well the thing is.. all these factors add up to a state where i can't just knuckle down and code 03:17:19 granted, my life is awesome so why wouldn't i 03:17:20 and its driving me crazy 03:17:34 people think.. oh sure he's not working he could be coding all day 03:17:42 although some sex would be nice 03:17:55 Would you know how to calculate some of the tarot poker? 03:18:08 itidus20: it's not a very uncommon problem not to be able to do things you want to do 03:18:27 oklofok: but it's because of stupid shit. 03:18:34 it's always because of stupid shit 03:18:38 ah. 03:19:06 in my case it's usually about... absolutely nothing 03:19:11 no reason 03:19:15 just can't do anything 03:19:20 except play space jazz 03:19:37 1) i need to improve my diabetes. 2)the main problem with my diabetes is my sleeping patterns. 03:19:44 And I only partially agree that science can't explain conciousness. Science can partially explain consciousness, at least. Although there is the "hard problem" (I prefer the slight variant on the hard problem which I call the "hard mystery") that that cannot be explained completely by science. Science also doesn't always explain philosophical things 03:19:47 elliott: i'm thinking i should form a band called space jazz and we'd play space jazz 03:19:56 guess what our first album will be called? 03:19:56 3) sometimes i have been expected to be awake at a certain hour of the morning 03:20:03 oklofok: space jazz? 03:20:14 oklofok: will it have sevenfold.mid 03:20:29 itidus20: for me, sleeping 16:00 to 00:00 is pretty normal 03:20:46 elliott: that's not really space jazz man 03:20:52 well 03:20:55 oklofok: it's every genre imaginable. 03:20:57 at least not all of it 03:21:06 Not being in practice allowed to determine for myself when I wake up unless I sleep during the day has a shocking effect on when I go to sleep. 03:21:35 I have great difficultly sleeping when I anticipate someone else waking me up. 03:21:36 itidus20: join the bad sleep schedules club 03:21:38 (it is this club) 03:21:42 the main point of space jazz is jumping around at random, and preferably not too fast except in short spurts 03:21:55 but i have diabetes type 1.. im not allowed to have a bad sleep schedule =)) 03:22:10 i live on my own, so i'm too :) 03:22:12 drives my endocrinologist to frustration 03:22:24 i don't have my own -ist :( 03:22:42 he says "shift workers sleep more regular hours than you" 03:22:48 well unless my penist counts. 03:23:13 "what do you do all day?" -- uhhmm errr... 03:23:47 have you told him about space jazz? 03:23:51 "you need more sunlight.. your vitamin d levels are too low.. buy some vitamind d pills" 03:23:58 Hmm 03:24:06 There was a piece o spam I wanted to investigate 03:24:36 now diabetes out of control means i am just always tired and lethargic 03:24:36 Hmm. 03:24:45 combined with mild asthma. 03:24:51 its hard to tell which is which at times. 03:25:32 Sgeo__: Hmmmmmmmm 03:25:46 So.. I have tried to block out the rest of my house.. I try to soundproof my door as much as I can so that I don't hear my mom on the phone, or her radio 03:25:51 or people flushing the toilet 03:25:54 I don't see what the point of this is 03:26:10 Looks like phishing, but I don't see any password or cc number requested 03:26:11 and also so i can turn up volume when my brother is trying to sleep for work 03:26:35 Sgeo__: a lot of spam is like that recently 03:26:36 It's a PDF (I used the web viewer, hopefully didn't put myself in danger), possibly malware? 03:26:41 i think they're just trying to see if your email is real 03:26:46 i.e. if you reply 03:26:53 Ah, ok 03:27:01 -!- BeholdMyGlory has quit (Read error: Connection reset by peer). 03:27:23 -!- rodgort has quit (Quit: ERC Version 5.3 (IRC client for Emacs)). 03:27:30 itidus20: why don't you want to hear people flushing the toilet or talking with the radio? 03:27:37 -!- rodgort has joined. 03:27:43 talking on the phone and listening to the radio 03:28:07 because i have become hypersensitive to noises i suppose 03:28:48 In the DVI file format, note that |y1-down1==w1-right1| and so on. Another thing to note is that all commands with the same name in DVI format as GF format also have the same number assigned! (Very useful when creating WEB or CWEB programs that access both kind of files) 03:28:48 I have tried saying i'm lazy. But it's more than that. 03:29:22 But there is a certain level of my laziness involved. 03:29:35 The lazyness occurs on leaf nodes on the tree of my problems. 03:29:43 lol 03:30:11 i'm slightly hypersensitive as well, although possibly it's just because i have a slight phobia for damaging my hearing 03:30:48 I have the best eyesight in my family 03:30:53 So I value it. 03:31:27 ok heres some trivia about hearing 03:31:32 i have great eyesight 03:31:32 I have the SMTP server set up it is very unlikely I can receive spam messages (they will get unreachable server message if they try), although even then I usually read the directly raw message, so it won't render HTML and stuff that can send them information! (I have never received spam messages since I stopped my email account with my service provider) 03:31:54 when listening to one half of a conversation, the mind/brain apparently tries to reconstruct the other half of the conversation 03:32:26 according to whom? and wouldn't that be kind of an obvious thing to do consciously? 03:32:28 itidus20: Also see "Sonata for Unaccompanied Achilles" in "Godel Escher Bach" 03:32:28 which distracts it 03:32:55 is this a safe place to admit i have that book on my pc? 03:33:05 i'm not particularly distracted by people phoning 03:33:06 yes 03:33:10 (Achilles is talking to the Tortoise by telephone so you can try to guess what the Tortoise says, or you can read it without.) 03:33:14 phew 03:33:17 "(I have never received spam messages since I stopped my email account with my service provider)" <-- lol 03:33:26 itidus20: no that's bannable 03:33:33 phew 03:33:39 we may just report you to the fbi 03:33:48 well good thing i don't have such a book 03:34:06 and the world security bureau of dealing with dangerous people and shit 03:34:27 i wonder how doug feels about such things 03:34:50 yeah i wonder if doug likes space jazz as much as his name implies 03:34:53 "go ahead just don't get caught" 03:35:17 that's one famous bisexual 03:35:24 like you can get "caught" for downloading one book 03:35:48 i wonder if cops admit that stuff to their cop friends openly 03:36:00 or instead closedly 03:36:05 I figure that while it's a safe enough to say, that you never know who's watching 03:36:17 oh the illuminati definitely dwell here. 03:36:20 always best to look at the source. 03:36:29 lol 03:36:37 i am not joking. 03:36:40 fungot: what is elliott babbling about 03:36:41 he's not 03:36:45 eek 03:36:52 oh wait right 03:36:54 ^style 03:36:55 Available: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc* jargon lovecraft nethack pa speeches ss wp youtube 03:36:59 fungot: love times 03:37:00 elliott: ' git' wins over ' hg' because hg is too close to the cat's forehead. 03:37:04 xD 03:37:14 why didn't fungot respond im woried 03:37:15 monqy: gotta get foods. if somebody tried to hand the homework in in c++ so i can do 03:37:24 Too close to the cat's forehead?? 03:38:14 monqy: clearly he didn't want to elaborate about the illuminati 03:39:05 Will fungot respond to this message? 03:39:23 fungot...:( 03:39:24 monqy: meh. now i'm thinking of a function and stop the eval loop? :) 03:39:49 zzo38: clever guy 03:40:19 elliot: so to wrap up my answer. it may be i am those big words i used because of my inability to focus and concentrate lately. 03:40:28 I'd do that trick with two bolds but doesn't +c kill that 03:40:40 is there some 0-width thing that works 03:40:45 which may itself be due to lazyness on the leafnodes of my particular problems as seen in a top-down form. 03:40:49 monqy: Yes +c kill that I think. 03:41:06 It cancels out some control characters. 03:41:47 It says "No color" but actually it removes some control characters from the message. 03:42:27 if there is some bad shit going down in here it is in my nature to become outspoken about it, and bite off more than I can chew. 03:42:35 i'm sure there's nothing wrong with fungot 03:42:36 oerjan: by this i do not 03:42:36 then eventually have an emotional meltdown about it. 03:42:44 and perhaps, to become one of the bad peopel. 03:42:55 " elliot: so to wrap up my answer. it may be i am those big words i used because of my inability to focus and concentrate lately." <<< i thought it was concise enough as it was 03:43:51 so.. just tell me to leave if there is something like that.. to spare us all the pain 03:43:54 lol 03:44:44 what bad shit 03:44:45 ? 03:44:51 i don't care what people are doing to themselves of course. banging 7 rocks is fine with me. 03:45:19 I'm confused did I miss something 03:45:33 but, if there is a subtle manipulative undercurrent where people are being exploited for money or some crap 03:45:43 itidus20: i'm not following you :D 03:46:32 it is a weakness i have to act the hero 03:46:35 -!- hag[4]rd has quit (Ping timeout: 250 seconds). 03:46:44 who doesn't 03:46:45 itidus20: well i've banned people for emotional meltdowns before 03:46:55 this isn't a meltdown i assure you 03:47:00 i can tell 03:47:02 this is merely explaining who i am 03:47:10 that... fun guy/chick dude? 03:47:18 it was rather obvious the other times 03:47:35 meltdown is like when i say I AM LEAVING IRC FOREVER... YOU KNOW WHY.. GO TO HELLLLLLLLL 03:47:38 Ask a question please. https://devlabs.linuxassist.net/projects/texnicard/boards AsK a QuEsTiOn PlEaSe? 03:49:13 its only really a problem with women anyway 03:49:19 ahhahahhaa 03:49:45 im not a mysogynist 03:50:02 but it is like saying all spider bites are caused by spiders 03:50:19 even though not all spiders bite 03:50:47 though certainly they may be in self defence 03:51:03 erm hrm 03:51:08 i'm not touching what you just said 03:51:18 but there certainly is something to touch 03:52:02 i'm a bit of a misogynist, men and women are different in almost every way, even their penises look different. 03:52:06 guys are certainly not perfect but they tend to hover around women if they are assholes 03:53:10 i think assholes and non-assholes hover around women equally gladly 03:53:22 but the women tend to reject non-assholes more 03:53:31 :-j 03:53:33 well obviously, they are pretty pointless people aren't they 03:53:35 are you really going down the Nice Guy route 03:53:36 really 03:53:47 oerjan: please turn off +c, i need to bold "really" 03:53:57 elliott: are you really going down the are you really going down the nice guy route route? 03:54:00 really? 03:54:03 oklofok: yes. yes i am 03:54:23 oh. well that's cool i guess. 03:55:39 it's not really that women prefer assholes, it's that people who aren't after pussy will usually give up way before the girl even considers paying serious attention to the guy 03:55:54 people try to ignore everything unless you shove it down their throart 03:55:56 *throat 03:56:04 SO PPL HOW DID YOU LIKE SPACE JAZZ? 03:56:58 well you could say its a reverse definition that a guy who competes well for girls will be percieved as an asshole by his peers who cannot match him 03:57:19 that i doubt 03:57:19 but it tends to carry over into a generalized assholeness 03:58:00 i, too, characterise the world so that people who do things not beneficial to people like me are generalised in purely negative terms 03:58:02 it's great 03:58:03 i stick to my shove it down her throat thing. not just because i'm into facefucking and space jazz, but also because it makes more sense. 03:59:23 I stay away from people 03:59:25 people are gross 04:01:04 maybe you're using them wrong? 04:01:08 elliott: i would say that in that definition simply leaving you to your own devices is very much beneficial to you 04:01:10 also 04:03:21 im still figuring stuff out 04:03:35 what stuff? 04:03:58 well, the best way to characterize people 04:04:27 why do it 04:04:29 brb gotta make some sandwiches 04:04:39 i would say it's best not to, what little characterizing is useful you will do automatically 04:07:56 and dog has been let outside 04:08:06 now to inject insulin 04:08:11 goodbye dog, hello insulin 04:09:58 and finally a small note in a log i am keeping to try to improve my diabetes treatment 04:10:22 I can't stop thinking of sgeo 04:10:26 and his tylenol 04:10:33 someone help 04:11:30 itidus20 certainly reminds me of Sgeo__ 04:11:38 i honestly don't complain about these things at all normally.. but when analyzing wh--dog barks let him back in-- why i am unproductive it comes up 04:12:36 itidus20: i don't mind your complaining, as long as you have fresh material. 04:12:52 it's complaint repetition that's annoying 04:12:53 lol 04:13:01 i see. 04:13:12 but you know what's not annoying when repeated? 04:13:16 i will be due to have another snack such as a sandwich in 90mins 04:13:21 space jazz? 04:13:27 :D 04:13:29 exactly! 04:13:35 oklofok: link monqy to the space jazz he needs it 04:13:41 i need it 04:13:44 itidus20, please note that this is a publically logged channel, so if you mind a particularly determined stalker learning all this, probably best not to say it here. 04:13:48 Says the hypocrite. 04:14:07 tylenol and insulin party 04:14:18 #esoteric logs, good times 04:14:30 monqy: yw in advance http://www.vjn.fi/temporary%20shit/spacejazz.wma and http://www.vjn.fi/temporary%20shit/spacejazz2.wma 04:14:32 sgeo: thank you. have I revealed too much? perhaps I should stop now. 04:14:58 oklofok: ty 04:15:05 hehe 04:15:51 itidus20, I personally don't mind, but I have annoyed others by sharing my problems constantly, so 04:16:07 Although tbh I haven't been paying much attention 04:16:16 life used to be so easy 04:16:19 Or again, if the public logging scares you 04:16:50 monqy: can you believe i composed those songs in just a few minutes?!? 04:16:56 i'm a fucking genius :D 04:17:47 i mean anyone can put a few random notes together but not everyone can do what's that like 30 at least 04:18:04 i can't compose 04:18:10 but i think i might be able to put 100 notes in the same song 04:18:14 i can put random notes together though 04:18:32 wouldn't be a one night project of course, since i only remember like 13 different notes 04:20:31 to me, it feels as if when growing up I missed out on the part where nature teaches us to think up sounds as a painter thinks up a painting 04:21:00 or maybe it is that i can think up the sounds but i can't translate them to musical notes 04:22:25 therein lies the skill 04:22:32 itidus20: the thing about mixing personal stuff with this channel is some people here (me at least) consider this a safehaven from all rational thought and especially all seriousness. (there have been some special circumstances when regulars (who are better people by irc law) have personal problems.) 04:22:56 hmm food would be cool 04:23:08 i see. :) 04:23:38 I don't think my rantings deserve to technically count as a special circumstance 04:24:07 I will try to keep this in mind. 04:24:40 mind(this) 04:25:02 I.try { mind(this) } 04:25:31 I.try { static mind(this) } 04:25:39 I don't get it 04:25:53 * itidus20 shrugs 04:25:58 Sgeo__: i was not referring to you in particular (or perhaps at all) 04:26:29 try as in a try {} catch {} 04:26:46 static as in keep it 04:27:07 mind(this) as in "this in mind" 04:27:20 i like sharing a lot of details of my life here, but i only do it when i'm comfortable with laughing about them. so there's a 5 minute delay. 04:27:21 -!- oerjan has quit (Quit: Brave Sir Oerjan ran away, he bravely ran away). 04:28:46 anyway about those topological spaces 04:29:02 what is a topology? 04:29:25 good question! 04:29:32 try to use the most academic terms. 04:29:48 nothing dumbed down .. make it easy on yourself 04:30:18 if X is a set, then a topology on it is a collection T of subsets of X that's closed under arbitrary unions and finite intersections, and X and {} are in T 04:30:50 now this is very general, and you will get all kinds of crazy spaces, so usually you add certain additional things 04:31:48 in fact, there's a whole list of standard additional axioms you can add 04:31:51 who am i kidding.. i'll try wiki simple english. i just had to hear it how it would be actually said. 04:32:08 did you get all the words? 04:32:25 do you know what "closed under" means? 04:32:44 http://simple.wikipedia.org/wiki/Topological_space 04:33:41 basically i'm doing the second paragraph first 04:33:44 *just doing 04:33:54 simple english is awesome. 04:34:09 * oerjan has quit (Quit: Brave Sir Oerjan ran away, he bravely ran away) 04:34:10 but even this page will wrack my brain while i digest it 04:34:10 oh dear. 04:34:34 "One can think of only certain sets as open, or more sets as open." 04:34:58 that should win like a the best sentence award 04:35:11 do these words like open and closed fail if used as literal analogies of their usual meaning? 04:35:54 their usual meaning has nothing to do with their definition 04:35:58 I've heard that you can have things both closed and open, so yes 04:36:06 or at least it's way too far from it to be useful 04:36:31 Sgeo__: you have things both open and closed (clopen, believe it or not) in every topological space 04:37:01 in fact, the proof of this is a oneliner 04:37:01 There's no way to have a topological space that doesn't contain clopen things? 04:37:03 Blargh 04:37:04 Oh? 04:38:00 Sgeo__: it's pretty obvious from the definition really, first of all what set *could* the necessarily clopen thing be in all topological spaces? 04:38:13 i mean, what's a good guess for a set with a special property 04:38:26 null. But I think I heard that in that video... 04:38:41 null, and then what's the second most special thing? 04:39:01 hint: you don't have to look inside the space 04:39:05 oklofok: what if u...constructed a set...with its own element 04:39:07 The set containing null, I guess (kind of like 1?), but that hardly seems special... oh 04:39:10 THEN WHAT????????//////////////////// 04:39:16 take that logic 04:39:37 I'm.. not sure 04:39:49 well, in any case null was correct 04:39:52 can you prove it's clopen? 04:40:11 "a topology is a collection T of subsets of X that's closed under arbitrary unions and finite intersections, and X and {} are in T" 04:40:41 recall that C closed set iff X \ C \in T 04:40:51 \ being set subtraction 04:40:58 *is a closed 04:41:28 Um 04:42:23 X-C is in T, what's X? A superset of the universe? 04:42:39 So, C contains nothing contained within the topology? 04:42:46 X is the underlying space we started with 04:43:03 we have a set X, and T, the topology of X, is a collection of subsets of X 04:43:08 with the properties i listed 04:43:27 oklo, my client is missing some chars.. so can you spell out to me what is actually shown in the line "iff X ? C ?in T" 04:43:40 it didn't show ?'s 04:43:43 itidus20: it's just X - C in T 04:43:45 but it showed something 04:43:57 well notice i typed a "?" 04:44:00 the set "C subtracted from X" is in the set T 04:44:02 what was in place of the "?" 04:44:10 backslash 04:44:11 \ 04:44:12 As long as X contains null, if C is null, X-C is ... wait what 04:44:15 ah ok 04:44:18 * Sgeo__ is too tired for this 04:44:30 for some reason the font i am using uses a yen symbol for a backslash sometimes 04:44:33 Is it possible for X not to contain null? 04:44:35 Sgeo__: yeah, what's a set minus null? 04:44:43 Sgeo__: X might not contain null. 04:44:43 The set 04:44:51 well what's "contain"? 04:44:59 obviously X is a superset of the empty set 04:45:05 Argh, I'm getting mixed up 04:45:08 but it doesn't have to have {} as an element 04:45:14 recall that C closed set iff X \ C \in T 04:45:22 yeah 04:45:42 ok using arial now.. screw it 04:45:45 T must contain null if it contans all subsets of X 04:46:12 Not that that fact's needed here, I think 04:46:16 T doesn't have to contain all the subsets of X 04:46:22 Oh 04:46:40 blah some other font this will do 04:46:41 for some reason the font i am using uses a yen symbol for a backslash sometimes 04:46:44 japanese locale 04:46:51 if it contained all subsets of X, then it would be pointless to assume closure properties for it! 04:47:13 higashi -- quickly our cover is blown 04:47:20 meet at port 19 04:47:34 I'd say that T has to contain X, but that seems to be again... althoguh I guess since sets can be nested... but then, it shouldn't have to contain X 04:48:08 Sgeo__: by definition T contains X 04:48:12 i mean, as an element 04:48:19 Oh, ok 04:48:34 Sir you just told them our meeting place. 04:48:40 So, X / C is still X, which is obviously, as asserted by you, in T 04:48:41 {} and X are in T, and T is closed under finite intersections and arbitrary unions (i assume you know what this means because you don't ask) 04:48:51 Sgeo__: yes, and what does this tell you? 04:48:57 Null is closed. 04:49:12 yes! 04:49:19 now let's prove it's open as well 04:49:30 recall U is open iff it is in T (that is, T is the set of open sets) 04:49:37 let me warn you 04:49:41 this WILL BE DIFFICULT 04:49:44 is iff different than if? 04:49:48 itidus20: yes 04:49:50 itidus20, yes 04:49:51 iff means if and only if 04:49:51 ok 04:49:55 iff means "if an.. dangit 04:50:06 ifd 04:50:06 Basically, if one is true, the other HAS to be true 04:50:09 in natural language, if sometimes means if and only if as well, but in math we make a clear distinction 04:50:12 ii mean 04:50:15 iad 04:50:17 id??? 04:50:20 And other way around 04:50:37 Sgeo__: do you have the proof? 04:50:38 * Sgeo__ almost omitted the distinction between if and iff, that's scary 04:50:58 oklofok, is this a different T? 04:50:59 ghost story 04:51:01 recall that {} is in T by definition 04:51:05 Oh 04:51:05 so when i say i am dumbest here... now you get the idea ^_^ 04:51:08 can you prove {} is in T? 04:51:53 If it's by definition, probably not, otherwise it would be a redundant definition. Well, yes, but by direct and immediate appeal to the definition. 04:51:54 Sgeo__: no same T, we're taking an arbitrary space X with arbitrary topology T and proving that even for this particular choice, {} is clopen. 04:52:18 Sgeo__: i'm confused, does "{} is in T" follow from "{} is in T" or not? 04:52:35 yes, but it's a pointless thing to ask 04:52:40 no it's not! 04:52:47 how else would we prove our theorem 04:52:50 attitude to your teacher Sgeo__ 04:53:02 so yes, the answer is yes 04:53:05 what does that tell us? 04:53:14 given what we proved earlier 04:53:29 Well, then null's trivially open 04:53:43 yes, so it's clopen! 04:53:46 Why is "{} is in T" part of the definition? Also, must learn to never take oklofok literally 04:53:58 not take me literally? why? 04:54:07 you need to be taking him more literally 04:54:08 let me warn you 04:54:09 this WILL BE DIFFICULT 04:54:29 " Why is "{} is in T" part of the definition?" <<< umm, because we want {} to be open? 04:54:50 So, null is clopen because we want it to be? 04:55:22 are you saying we should make the definition of a topological space more complicated so it would not be as easy to prove {} is clopen? 04:55:25 or what are you saying 04:55:40 That's.. um. Ok, why is a definition of a topology where {} doesn't necessarily need to be contained in the topolgy not a useful definition? 04:55:57 Or is it just easier to have {} be in there? 04:56:03 of course it's clopen because we want it to be. anything you prove for a general topological space is true because we want it to be. we proved it from the fucking axioms we chose. 04:56:29 " That's.. um. Ok, why is a definition of a topology where {} doesn't necessarily need to be contained in the topolgy not a useful definition?" <<< usually you will get {} open anyway 04:56:44 say if you have two disjoint open sets 04:57:17 their intersection is open (finite intersections of open sets are open) so the empty set is open 04:57:40 Ok 04:58:13 -!- myndzi has quit (Ping timeout: 240 seconds). 04:58:21 anyway usually we don't do stuff with this kind of generality 04:58:26 usually we start with a metric. 05:00:30 Sgeo__: X is also clopen; in fact, if C is clopen, then X - C is always clopen, again the proof is a one-liner 05:01:02 since C being clopen means C and X - C are both open... 05:01:30 Maybe this is not the best place to start learning topology 05:01:36 I mean, this material 05:01:58 it's the best way to start learning math 05:02:14 Sgeo__: what, proving a tautology? 05:02:25 for learning topology without learning math, it's certainly a sucky way :D 05:02:46 but we would've gotten to metric spaces next and those are soooo easy 05:02:53 Maybe it's just that it's being done on RIC that's bothering me 05:02:54 IRC 05:03:24 :) 05:03:24 Ok, what's a metric? 05:03:33 Although I barely remember the definition of closed 05:03:56 Or of a topology 05:04:08 closed = complement of a closed set 05:04:51 topology = collection of subsets called open sets, in particular at least {} and the space itself, such that all finite intersections of open sets are open sets as well, and all unions of open sets are open 05:05:00 don't remember? repeat! 05:05:06 metric is: 05:05:34 What's an infinite intersection? 05:05:38 let X be a space. then a metric on X is a function d : X * X -> R such that: d(x, x) = 0 for all x, d 05:05:40 argh 05:05:45 Sorry 05:05:53 no i just accidentally pressed enter 05:06:27 let X be a space. then a metric on X is a function d : X * X -> R^+ (nonnegative reals) such that: d(x, x) = 0 for all x, d(x, y) = d(y, x) and the triangle inequality holds 05:06:40 I'm scared that I won't remember this any more than that beautiful demonstration of why e^ix = cos x + i sin x 05:06:58 triangle inequality = d(x, z) <= d(x, y) + d(y, z) 05:07:10 these are really obvious things to ask from a metric if you think about it 05:07:23 Sgeo__: logs exist 05:07:27 Are X any old things, or are they necessarily numbers? 05:07:35 Sgeo__: X can be any set 05:08:06 Ok, so that makes sense. I think. 05:08:21 we're measuring distances so obviously it's 0 from x to itself, and obviously it's the same from x to y as it is from y to x. the triangle inequality just says you can't get from x to z faster by going through a third point y. 05:08:42 Intuitively, thinking of points is easier for why it's <= and not =, I think 05:09:10 well = wouldn't really make sense 05:09:25 "the triangle inequality just says you can't get from x to z faster by going through a third point y." 05:09:26 wormholes qed 05:09:28 going from x to x is 0, but going from x to x via another point obviously gives you some distance 05:09:28 It does if you're foolishly imagining X to be real numbers 05:09:37 Sgeo__: no! 05:09:54 d(0, 0) = 0 but d(0, 1) + d(1, 0) = 2 05:09:54 Oh, hmm, I see 05:10:08 the usual metric on R is |x - y| 05:10:18 (distance is always nonnegative, obviously enough) 05:11:05 so now the cool thing: if X is a space (that is, a set) and d is a metric on it, then d "induces" a natural topology for X 05:11:31 inducing just means we can associate a topology to X once we have a metric 05:11:57 But there can be other topologies for X? 05:12:10 the topology is: U is open if and only if for all x in U, there is some r such that B_r(x) \subset U where B_r(x) is defined as the set {y | d(x, y) < r} 05:12:21 Sgeo__: yes, many many many topologies. 05:12:29 and many many many metrics 05:12:48 Any topologies for which there isn't a corresponding metric? 05:12:52 yes! 05:13:01 a topology is called metrizable if there is a metric for it 05:13:07 and most natural topologies are metrizable 05:13:14 Ok. 05:13:27 Open == it's in the topology, right? 05:13:31 yep 05:13:52 so note that B_r(x) is just a ball around x 05:14:06 What's the | notation mean 05:14:22 {y | d(x, y) < r} means every y such that d(x, y) is less than r 05:14:28 the set of all such y that is 05:15:25 So, for each x in U, it has to be possible to make a ball of some size around it? 05:15:39 non-0 size 05:15:52 yep 05:16:02 a ball which is still completely inside U 05:16:16 Ah, ok. 05:16:19 so basically open sets are ones that have no points "at their borders" 05:17:18 So a set that has points at the borders, is not open, and therefore not in the topology? 05:17:26 That's... hmm 05:17:42 yes. assuming your intuitive idea of a border is correct. 05:17:48 so okay now the metric has given us a set of open sets. what's missing? 05:17:54 do we have a topology? 05:18:05 You listed other conditions for a topology 05:18:26 Um, intersections (finite?) of open are open, and unions of open are open 05:18:29 yep! 05:18:53 we need to show this collection of open sets actually satisfies what we require from a topology 05:19:10 first the trivial things: {} and X need to be open. are they? 05:19:14 I'm kind of intuitively thinking of a plane. 05:19:25 go ahead 05:19:29 we all do 05:19:45 There's nothing in {} that needs to be able to have a ball around, so yes. 05:19:51 just that stuff out of the actual proofs :) 05:19:54 yep 05:20:03 {} is rather trivially open by that definition of open 05:20:05 what about X? 05:20:52 X can't have borders with contents. I don't see anything we've done that prevents that. (X isn't the topology, but that which contains the topology, right?) 05:21:11 well we don't actually have the concept of a border 05:21:35 you have to apply the definition: X is open iff for all x in X there's a ball around x that's completely within X 05:21:47 is there? 05:22:09 What's preventing X from having a point at infinity, so to... well, the definition of the metric, I guess. 05:22:41 R^2 + a point at infinity is a metric space. 05:23:12 Oh. Thought d() had to return a real non-negative number? Infinity would be an extended real 05:23:45 distances have to be finite yes 05:23:45 Can the ball be infinitely large? 05:23:50 Wait, what? 05:24:02 doesn't mean you can't make a metric for R^2 + a point at infinity 05:24:33 Oh. But then, that doesn't capture what I was trying to get at with the point at infinity, which is being unable to make a ball around it 05:24:33 the usual topology of R^2 is given by all kinds of different metrics! you're right in that the usual one doesn't directly extend for R^2 + point at infinity. 05:25:38 why couldn't you make a ball around it? 05:25:43 obviously you can make a ball around anything 05:26:10 But then the ball could partially extend in the wrong direction? 05:26:10 the ball or radius r around x \in X is the set B_r(x) = {y \in X | d(x, y) < r} 05:26:37 the type y \in X is very important, i figured that's obvious but maybe it's not at all 05:27:08 I don't see why X would have to contain all the contents of the ball. But honestly, I get the impression that the correct answer is supposed to be that yes, X is open. But I just can't get there. 05:27:11 (it's just X is our only source of points so where else could y be) 05:27:28 Sgeo__: by definition, X contains all the points of a ball 05:27:32 B_r(x) = {y \in X | d(x, y) < r} 05:27:37 it's a subset of X 05:28:09 Ok, what about an X with exactly 1 point? 05:28:19 Well, then there's itself at distance 0 05:28:23 yes 05:28:28 and nothing else afai 05:28:29 k 05:29:04 * Sgeo__ glares at B_r(x) again and realizes that the distance can be 0. Ok, yes, X is open. 05:29:05 B_r(x) is a subset of X that occasionally looks like something you and i might call a ball. 05:29:23 yep, X is open, what ball did you find around the point x \in X? 05:29:44 The entire universe, if r is large enough 05:29:56 erm, the entire contents of X 05:29:56 well no r needs to give you the entire universe 05:30:03 Sorry for the melodramatics 05:30:14 doesn't in the case of R^2 for instance 05:30:20 it's occasionally called the universe 05:30:23 i think 05:30:23 Oh, right 05:30:54 But at the very least, for every x in X, there's a ball around itself containing it, and possibly others. 05:31:24 well perhaps you just don't know what i want you to say: any r > 0 will do. say r = 1. 05:31:49 Ok. 05:31:50 okay, not let U_1, ..., U_k be a finite family of open sets. we need to show their intersection is open as well. 05:32:17 that's not just an application of the definitions, although not that much more either 05:32:21 not let? 05:32:27 *now let 05:33:13 what you have to do is take the intersection U = U_1 \cap ... \cap U_k, consider a point x \in U, and show that there's a ball around x that's completely within U. 05:33:35 cap? 05:33:40 latex for intersection 05:35:23 actually union is a bit easier 05:35:47 note that unions can be arbitrary, you could even have an uncountable number of open sets that you're taking the union of 05:35:49 Sorry, concentration lapsing 05:35:58 np 05:36:02 eats to buy -> 05:36:24 huh? 05:36:44 food 05:37:05 have to go to the shoppe 05:47:54 -!- oklofok has quit (Ping timeout: 252 seconds). 06:33:07 -!- sebz has joined. 06:47:13 -!- sebz has left. 07:01:42 -!- monqy has quit (Quit: hello). 07:01:55 *Aaaah*, fucking up the railroading in D&D. 07:03:37 More context? 07:04:22 Person held in a prison that was in an antimagic field, nigh-impossible to break, DM figured we'd give up pretty soon. 07:04:49 If the player can figure it out, that is how you play D&D. By figuring out solutions to those kind of things. 07:05:34 Instead, we used pretty much every buff, turned a handy corpse into a giant stone javelin, and made an opening using a strength of 46. 07:05:45 Barely, but hey. 07:06:21 Yes, it is how it is done. The game is better with these kind of situations at least my opinion. 07:06:27 zzo38: I'm just saying, I love coming up with ridiculous solutions to problems that weren't intended to be solvable. 07:06:35 Yes, it really *does* make it a better game. 07:06:40 pikhq: I agree. 07:07:31 At least, if you have the sorts of players that would actually do that. 07:07:32 Especially if the ridiculous solution might involve mathematics. 07:08:15 (which is, of course, the most fun sort to play with) 07:08:20 I am the sorts of players that would actually do that. And the DM sometimes makes such things and I tell him to make such things too 07:09:54 I suggested starting a Level 20 campaign (note: D&D 3.5 edition). The DM said both of us start with no money, no equipment. Both of us agreed. I selected the Spell Mastery feat twice. 07:10:08 zzo38: :) 07:10:26 My brother selected the Soulknife class, which can create weapons by psychic energy. 07:11:26 (I have 5 Wizard levels, he has 12 Soulknife levels. Neither of us has multiclassed yet (although I plan to).) 07:11:35 Druid's probably a good choice, too. 07:11:55 "Equipment? Fuck that, I'm a fucking elemental." 07:12:11 O, I also selected Eschew Materials (one of the useful uses of this feat in this situation) 07:12:49 Druid would work too. Although you would have to find an item to use as divine focus (not too difficult, just look in the trees). 07:13:18 Both of us character sheets I have copied into the computer and you can view them if you want to. 07:13:46 Not particularly interested; I can pretty well figure out where you went with the build, and I' 07:13:52 m likely to go to sleep somewhat soon. 07:13:57 OK 07:14:07 Neat campaign idea, though. :) 07:15:14 We have also agreed a bit on the story (part of it has changed somewhat from the original (I didn't know at first) due to the character choices, although now it all makes sense with the choices. My character helped his character escape from an island having slaves (he was a gladiator slave) by a merchant ship. We wear nothing but rags. 07:19:06 (I also suggested that his character could multiclass into Warlock class, having an unlimited use of eldritch blast, up to 250 feet if you learn the correct invocations for that!) 07:19:45 (Since the thrown mind blades do not have that much range) 07:20:41 Note also both of us created our character without knowing each other's character ahead of time. I made this suggestion. 07:29:29 -!- myndzi has joined. 07:42:08 ... Wut. Openly gay man voted to statewide office... In *Utah*. 07:43:00 Wut 07:44:29 Admittedly, chairman of the Democratic Party in the state. 07:44:52 still pretty aweosme 07:45:09 Still. Fucking *Utah*. 07:45:27 pikhq: It wasn't non-Austin Texas 07:46:08 coppro: Bit more notable, actually. 60% of Utah is Mormon. 07:46:42 Which is so rabidly antigay that they're just shy of lynch mobs. 07:47:43 Incidentally... 60% of Utah is registered Republicans. 07:48:06 -!- elliott has quit (Remote host closed the connection). 07:48:17 Likely the same people, actually. 07:48:27 heh, yeah 07:48:39 -!- elliott has joined. 08:29:08 -!- MigoMipo has joined. 08:35:38 -!- Taneb has joined. 08:35:43 Hello! 08:38:43 Hello? 08:38:47 hello, 08:39:08 -!- elliott has quit (Quit: Leaving). 08:47:10 Hello# 08:59:51 -!- CakeProphet has joined. 08:59:51 -!- CakeProphet has quit (Changing host). 08:59:51 -!- CakeProphet has joined. 09:00:11 :o 09:00:57 you know what is more delicious than M&M's? 09:01:33 -!- CakeProp1et has joined. 09:01:38 M&M's with a ball of pretzel inside. 09:01:41 .... 09:01:51 wat. 09:02:14 -!- CakeProp1et has quit (Client Quit). 09:02:24 I have no idea how that happened. 09:07:53 * Sgeo__ is very amused by events in #jesus 09:09:04 (Those events are over now though, no point n joining now 09:09:14 Sgeo__: Why do you torture yourself so? 09:09:29 Because sometimes amusing things happen? 09:11:39 (Jason was ranting on and on about something, Eliyahu was posting his usual apocalyptic junk. Op yelled at Jason, Jason said Eliyahu was spamming, asked op to boot them. Op asked if he wanted him to boot the troublemaker, Jason said to boot the spammer, Jason gets booted. 09:14:49 There's a lot of spam on the wiki 09:14:57 brb, switching computers 09:14:59 -!- Taneb has quit. 09:15:45 -!- Taneb has joined. 09:16:02 Hello 09:29:33 Hello? 09:32:33 -!- Taneb has left. 09:32:37 -!- Taneb has joined. 09:38:08 -!- Taneb has left. 09:38:12 -!- Taneb has joined. 09:40:37 -!- GuestIceKovu has joined. 09:41:14 pikhq: Are you sure you can figure out where I went with the build? The game has not actually started yet. Also, my selections of things (spells, powers, feats, skills, etc) are often unusual selections. 09:42:02 For my brother, of course there isn't much selections since he has Soulknife class (no spells/etc to select) 09:42:13 -!- Slereah has quit (Ping timeout: 252 seconds). 09:44:04 I read that has Soupknife 09:44:20 OK, now figure out how to do Soupknife. 09:44:46 It would be difficult since you would usually use a spoon for soup, not knife 09:45:56 Unless it was badly made 09:46:18 Yes I suppose that might also be the possibility, maybe 09:54:11 -!- elliott has joined. 10:00:13 -!- MigoMipo_ has joined. 10:01:20 -!- MigoMipo_ has quit (Read error: Connection reset by peer). 10:03:52 lolwat 10:03:56 -!- MigoMipo has quit (Ping timeout: 264 seconds). 10:08:05 -!- sebbu2 has joined. 10:08:20 -!- sebbu has quit (Ping timeout: 255 seconds). 10:08:48 -!- sebbu2 has changed nick to sebbu. 10:12:03 -!- Phantom_Hoover has joined. 10:13:47 Hello everyone. 10:13:47 Phantom_Hoover: You have 3 new messages. '/msg lambdabot @messages' to read them. 10:13:52 Hello 10:13:53 Goodness. 10:29:36 -!- derrik has joined. 10:45:54 -!- azaq23 has joined. 10:46:58 Phantom_Hoover: you have so many fans. 10:59:00 -!- FireFly has joined. 10:59:22 :t fromListWith 10:59:24 Not in scope: `fromListWith' 10:59:42 :t M.fromListWith 10:59:43 forall a k. (Ord k) => (a -> a -> a) -> [(k, a)] -> M.Map k a 11:01:42 > M.toList $ M.fromListWith (+) . (`zip` repeat 1) $ "This is a tyical English sentence, using quite a variety of characters." 11:01:46 mueval-core: Time limit exceeded 11:02:28 > M.fromListWith (+) . (`zip` repeat 1) $ "This is a tyical English sentence" 11:02:31 fromList [(' ',5),('E',1),('T',1),('a',2),('c',2),('e',3),('g',1),('h',2),(... 11:04:24 > M.fromListWith (+) . (`zip` repeat 1) . map toLower $ "This is a typical English sentence" 11:04:26 fromList [(' ',5),('a',2),('c',2),('e',4),('g',1),('h',2),('i',4),('l',2),(... 11:05:25 :t cmp 11:05:26 Not in scope: `cmp' 11:05:34 :t compare 11:05:35 forall a. (Ord a) => a -> a -> Ordering 11:06:12 > sortBy (compare.snd) . to M.fromListWith (+) . (`zip` repeat 1) . map toLower $ "This is a typical English sentence" 11:06:13 Not in scope: `to' 11:06:15 bah 11:06:27 > sortBy (compare.snd) . toList . M.fromListWith (+) . (`zip` repeat 1) . map toLower $ "This is a typical English sentence" 11:06:28 Not in scope: `toList' 11:06:43 > sortBy (compare.snd) . M.toList . M.fromListWith (+) . (`zip` repeat 1) . map toLower $ "This is a typical English sentence" 11:06:44 Occurs check: cannot construct the infinite type: b = (a, b) 11:06:50 -_- 11:11:53 :t sortBy 11:11:54 forall a. (a -> a -> Ordering) -> [a] -> [a] 11:12:10 :t M.toList 11:12:11 forall k a. M.Map k a -> [(k, a)] 11:12:42 :t compare.snd 11:12:43 forall a a1. (Ord a) => (a1, a) -> a -> Ordering 11:13:06 ah 11:13:46 > sortBy (compare `on` snd) . M.toList . M.fromListWith (+) . (`zip` repeat 1) . map toLower $ "This is a typical English sentence" 11:13:48 [('g',1),('p',1),('y',1),('a',2),('c',2),('h',2),('l',2),('n',3),('t',3),('... 11:13:59 :t sortOn 11:14:00 Not in scope: `sortOn' 11:14:03 > sortBy (flip compare `on` snd) . M.toList . M.fromListWith (+) . (`zip` repeat 1) . map toLower $ "This is a typical English sentence" 11:14:05 [(' ',5),('e',4),('i',4),('s',4),('n',3),('t',3),('a',2),('c',2),('h',2),('... 11:16:50 !addinterp hist haskell print . sortBy (flip compare `on` snd) . M.toList . M.fromListWith (+) . (`zip` repeat 1) . map toLower =<< getContents 11:16:51 ​Interpreter hist installed. 11:16:59 !hist Hello, World! 11:17:29 ...parse error, of course. 11:17:51 !delinterp hist 11:17:51 ​Interpreter hist deleted. 11:17:56 !addinterp hist haskell "test" 11:17:56 ​Interpreter hist installed. 11:17:57 !hist 11:18:00 ​"test" 11:18:06 !delinterp 11:18:06 ​ is not a user interpreter. 11:18:08 !delinterp hist 11:18:08 ​Interpreter hist deleted. 11:18:38 !addinterp hist haskell sortBy (flip compare `on` snd) . M.toList . M.fromListWith (+) . (`zip` repeat 1) . map toLower <$> getContents 11:18:38 ​Interpreter hist installed. 11:18:41 !hist test 11:19:11 ¬¬ 11:19:15 yeah, I don't understand the parse error. 11:20:02 !delinterp hist 11:20:02 ​Interpreter hist deleted. 11:20:25 What is Hist? 11:20:42 histogram 11:21:05 Okay 11:21:29 ...Is a histogram appropriate for letter frequency? 11:22:05 distribution of data in a sample 11:22:08 the list elements are the sample. 11:23:34 Okay 11:24:18 hmmm 11:24:39 > group sort "Hello, everyone" 11:24:40 Couldn't match expected type `[a]' 11:24:40 against inferred type `[a1] -> [... 11:24:44 > group . sort $ "Hello, everyone" 11:24:46 [" ",",","H","eeee","ll","n","oo","r","v","y"] 11:25:42 I might learn Haskell 11:25:52 > map (head&&&length) . group . sort $ "Hello, everyone" 11:25:54 [(' ',1),(',',1),('H',1),('e',4),('l',2),('n',1),('o',2),('r',1),('v',1),('... 11:26:23 oh, hey, I used arrows. 11:26:31 probably a first for me. 11:27:40 This one is probably slower, but I'm not really sure. 11:28:08 because of the sort. 11:28:19 The output is longer 11:28:41 the output is based on the input, which was different. 11:28:44 -!- ais523 has joined. 11:29:10 Taneb: er, you're talking about something else. 11:29:57 the first function was: toList . fromListWith (+) . (`zip repeat 1) 11:30:09 hi ais523 11:30:16 hi elliott 11:30:16 ais523: You have 1 new message. '/msg lambdabot @messages' to read it. 11:30:35 toList is optionally. Map probably makes more sense anyways. 11:30:35 * ais523 vaguely advertises NetHack and variants tournament: http://junethack.rawrnix.com 11:31:16 I'm no good at NetHack 11:31:45 And elliott, if you feel morally superior to me due to OS, check now 11:33:19 Taneb: you don't have to be any good at NetHack, just play it a bit and you'll end up better 11:33:28 also, OS = open source or operating system or something else 11:33:37 Operating System 11:36:42 Eew, Telepathy? 11:36:55 Empathy IM 11:37:09 Even worse... 11:37:10 > filterM (const [True, False] 11:37:11 : parse error (possibly incorrect indentation) 11:37:15 I use it because it works and it's already there 11:37:18 :t filterM (const [True, False]) 11:37:19 forall a. [a] -> [[a]] 11:37:38 Gonna switch soon, maybe 11:37:47 > filterM (const [True, False]) "abc" 11:37:47 ["abc","ab","ac","a","bc","b","c",""] 11:38:48 > let f n = length . filterM (const [True, False]) $ replicate n ' ' in f 4 11:38:50 16 11:39:10 > let f n = length . filterM (const [True, False]) $ replicate n ' ' in f 5 11:39:12 32 11:39:14 -!- Sgeo__ has quit (Ping timeout: 255 seconds). 11:39:56 the most efficient way to write (2^) in Haskell 11:41:44 the list monad is pretty awesome. 11:47:16 -!- zzo38 has quit (Remote host closed the connection). 11:49:25 OK, how do I get wget to recursively retrieve all files below a certaint point in a hierarchy? 11:50:37 -!- derrik has quit (Ping timeout: 258 seconds). 11:50:50 Phantom_Hoover: -r? 11:51:03 er, no. 11:51:12 wget -r -np 11:51:42 it still requires links to the files in question to exist, otherwise it has no way to determine that they're there 11:52:11 Ah, thanks. 11:52:40 (My wget man page is formatted weirdly because GNU.) 11:53:11 > filterM (const []) "abc" 11:53:12 [] 11:53:14 -!- derrik has joined. 11:53:16 > filterM (const [False]) "abc" 11:53:17 [""] 11:54:51 Phantom_Hoover: it's a pain to find in the man page; I only found it so quickly because I already knew where on the page it was 11:54:55 and even then it took a couple of minutes 11:55:23 > filterM (\x -> if x < 5 then [True] else [True,False]) [0..10] 11:55:24 [[0,1,2,3,4,5,6,7,8,9,10],[0,1,2,3,4,5,6,7,8,9],[0,1,2,3,4,5,6,7,8,10],[0,1... 11:55:46 > filterM (\x -> if x < 3 then [True] else [True,False]) [0..4] 11:55:47 [[0,1,2,3,4],[0,1,2,3],[0,1,2,4],[0,1,2]] 11:56:06 ais523: ive started to have opinions on java ides... ive turned into...my worst friend 11:56:34 Well, I'm not going to learn Haskell just yet 11:56:48 elliott: positive or negative opinions? 11:56:48 Why not? 11:56:48 Taneb: you should learn it right now. 11:56:53 RIGHT NOW 11:57:01 Left Then 11:57:02 with Java, you can be OK having opinions on IDEs, because it's designed to need one 11:57:08 compared to, say, OCaml/Haskell, which doesn't 11:57:17 ais523: BOTH 11:57:23 ais523: I think he means that he thinks some Java IDEs are better than others. 11:57:25 BECAUSE IT WON'T LET ME INSTALL THE THINGY 11:57:25 yes. 11:57:30 CakeProphet: that is not surprising at all 11:57:39 and will possibly debate this with some one 11:57:41 if they were all identical, there'd be no reason for more than one to exist 11:57:43 if it becomes a point of contention. 11:57:50 Taneb: What thingy? 11:57:59 Taneb: haskell platform? 11:58:04 That thingy 11:58:10 what doesn't work 11:58:14 What system are you on? 11:58:18 Ubuntu 11:58:22 which ubuntu 11:58:28 and how are you trying to install it 11:58:40 Natty Narwhal, Software Centre 11:58:40 sudo apt-get install ghci 11:58:45 is probably all you need to do 11:58:45 CakeProphet: no 11:58:48 unless you want fancy stuff. 11:58:48 that is not the haskell platform 11:58:51 yes I know. 11:58:59 Taneb: don't use the package manager to install it 11:59:04 natty is ancient, it doesn't even have the platform IIRC 11:59:09 ais523: you see, /Eclipse/ deludes you into thinking that everything is going to be smooth automatic sailing. but if you need a separate build system, it completely falls apart. 11:59:15 Natty came out in April 11:59:28 oh 11:59:28 that one 11:59:41 Taneb: does "sudo apt-get install haskell-platform" not work?\ 11:59:48 dunno about the software centre 11:59:51 elliott: Netbeans does everything using Ant, which is a pretty frustrating build system 11:59:53 but i think the package is called that 12:00:22 ais523: yes i was about to get to netbeans. you see, i installed it, then i uninstalled it three seconds later when it used Swing -> horrible Java font rendering and also everything was ugly and slow. 12:00:25 ais523: and then 12:00:26 ais523: and then 12:00:30 Depends: ghc6 (< 6.12.1+) but 6.12.3-1ubuntu7 is to be installed 12:00:32 E: Broken packages 12:00:33 Eclipse is part of the reason I'll never write for Android 12:00:37 ais523: I decided to startusing Maven 12:00:40 ouch 12:00:45 is that even an IDE? 12:00:47 Taneb: can you pastebin your /etc/apt/sources.list? 12:00:54 ais523: you teach java and don't know what maven is...? 12:01:00 elliott: I thought it was a build system 12:01:03 it is 12:01:09 it's so enterprisey, you have no idea. 12:01:19 you define a Project Object Model which produces Artifacts. 12:01:19 that's why I was surprised that you were mentioning it in a context that implied it was an IDE 12:01:31 which has Dependencies on Artifacts. and it locates those Dependencies from Repositories that you specify. 12:01:32 and I knew it was XML-based and enterprisey, but I didn't know how enterprisey 12:01:40 and each invocation is a Build Lifecycle. 12:01:47 ais523: here's the thing: it's actually less painful than ant :D 12:01:59 Taneb: it sounds like you have broken repos 12:01:59 what about just using make? 12:02:09 that's what I do for Jettyplay 12:02:10 http://pastebin.com/j1gdZ994 12:02:12 ais523: well at this point, I was split between two paths 12:02:14 I use autoconf, too, just because I can 12:02:23 ais523: either I would get it working perfectly and Maven and all Java(tm) 12:02:31 ais523: or I would start using any old editor and a shell script to build 12:02:44 all it does is determine the locations of things like javac and jar 12:02:52 Taneb: huh 12:03:03 Taneb: try sudo apt-get remove ghc6? 12:03:07 before that 12:03:53 The following packages have unmet dependencies. 12:03:55 haskell-platform : Depends: ghc6 (< 6.12.1+) but 6.12.3-1ubuntu7 is to be installed 12:03:57 E: Broken packages 12:04:06 Taneb: ugh 12:04:13 ais523: anyway, so then I decided to give IDEA a second shot, since every Bukkit person seemed to be constantly saving about how advanced and analysisy it is, so I put its weird-ass default of allowing you to put the cursor outside of line boundaries 12:04:17 Taneb: I'm not really sure 12:04:46 Taneb: try aptitude -f update 12:04:48 to see if it can fix them 12:04:51 ais523: turns out it's great and also everyone should use it and it integrates perfectly with Maven. also, it knows more about my code than any machine has a right to deduce. also, it uses Swing too but it has a theme that makes it tolerable. why do i have opinions like this. 12:04:54 ais523: no aptitude in recent ubuntu 12:04:59 and it'd be upgrade, not update 12:05:02 well, it's 12:05:03 apt-get -f install 12:05:04 Taneb: Try operating_system -f update 12:05:05 elliott: it's anything 12:05:05 Taneb: sudo apt-get -f install 12:05:10 ais523: fair enough 12:05:14 ais523: but it's not aptitude :P 12:05:15 the -f tells it to fix broken packages and mostly ignore the rest of the command line 12:05:28 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 12:05:30 huh, apt-get does have -f now 12:05:33 ais523: ANYWAY, my point is: IntelliJ IDEA is good and all other IDEs are stinking badthings 12:05:40 it didn't last I looked, that's why I checked aptitude 12:05:46 Most IDEs are terrible, anyway 12:05:58 NihilistDandy: this is java, suspend logic at the door 12:06:08 I actually like the "fix broken packages" option in synaptic best 12:06:09 Nice wordplay 12:06:13 I don't think the software centre has an alternative 12:06:23 elliott: Abandon common sense! This is reality! 12:06:26 my favourite line from Pokémon 12:06:31 like I've said, IDEs are basically a tool for one-way destructuring of intentions that cannot later be reified (only I know what this means) 12:06:38 (but my entire computing philosophy is based on its being evil) 12:06:43 ais523: :D 12:06:51 Agree 12:06:56 such a great line is rather out of character for the game 12:06:57 Reified is my favourite word. 12:07:06 I prefer deified 12:07:13 Meh. 12:07:21 http://en.wikipedia.org/wiki/File:Naive_realism.jpg bets image on wikipedia 12:07:24 best 12:07:41 Reified literally means 'thingified', which cannot be beaten. 12:07:53 elliott: I don't get it 12:07:57 but that makes it a good image in its own right 12:08:11 Apocolocyntosis 12:08:28 Pumpkinification 12:08:45 I used to link people to a page about nihilism when they'd ask me about it 12:08:57 ais523: getting it would ruin it 12:09:00 It was blank, obviously 12:09:03 elliott: fair enough 12:09:03 goodness is based mostly on incomprehensibility 12:09:20 I was wondering if that was it 12:09:22 -!- BeholdMyGlory has joined. 12:09:32 also, thanks for linking to the file description page rather than linking to the image directly 12:11:31 ais523: I wanted to link to it directly to keep the absurdism alive but then I realised you'd yell at me 12:11:36 wow, ABCD is much worse than ABCDXYZ 12:11:42 So I stomped around grumpily for a few seconds then cried 12:11:44 orders of magnitude, in fact 12:12:12 Should I reinstall that thing you got me to remove to see if it would make it work? 12:12:24 ghc6 12:12:38 That thing, he says 12:13:01 elliott: why did you userfy a spam page? 12:13:24 ais523: upcoming esolang 12:13:28 i need to study the source material 12:13:33 could you save a local copy for the time being, then? 12:13:36 Taneb: Doubt it 12:13:39 it's still spam, regardless of what namespace it's in 12:13:47 ais523: it's art now. but FINE 12:13:54 done 12:14:15 hmm "The 12 Steps For Adult Children." I'm thinking a RUBE type thing, except in abstract object space rather than twodee space 12:15:00 hmm, it appears to be creating a linkfarm on a bunch of unrelated wikis 12:15:05 in an attempt to boost pagerank that way, I suppose 12:15:18 it's a pity these spambots haven't heard of nofollow, the spamming technique they're using doesn't even work 12:15:18 Taneb: Gentoo's probably your best bet, unless you're really tied to Ubuntu 12:15:29 That happened to a wiki I admin 12:15:48 for bonus points, the link to the page they're actually trying to promote is invalid (no TLD) 12:15:48 The owner blocked account registration or something 12:15:54 You cannot stop it 12:15:59 They just keep on comming 12:16:05 *coming 12:16:13 presumably to hide it from Google, and hope that people follow the link anyway 12:16:26 -!- augur has joined. 12:16:29 and we're pretty tenacious at stopping spambots 12:16:38 occasionally I ask graue to change something on the backend to help 12:16:44 but only in a real emergency 12:16:50 they do keep on coming, but we keep on blocking them 12:16:54 and they have to run out of IPs eventually 12:17:09 So /that's/ why IPv4 is running out 12:17:09 Graue will probably just ban
or something if they keep turning up 12:17:40 spambots are the reason
Gonna have lunch now, bye 12:18:22 -!- Taneb has left. 12:19:31 -!- cheater_ has joined. 12:22:15 -!- cheater__ has quit (Ping timeout: 250 seconds). 12:22:56 > join (++) . (inits . repeat) =<< sequence $ "abc" 12:22:57 Couldn't match expected type `a -> b' 12:22:57 against inferred type `[[a1]]' 12:23:16 > join (++) . (inits . repeat) >>= sequence $ "abc" 12:23:17 Couldn't match expected type `[a]' against inferred type `a -> a1' 12:23:32 > map join (++) . (inits . repeat) >>= sequence $ "abc" 12:23:33 Couldn't match expected type `[m (m a)]' 12:23:33 against inferred type `m1 ... 12:23:35 ... 12:23:46 > map join (++) . ((inits . repeat) >>= sequence) $ "abc" 12:23:47 Couldn't match expected type `[m (m a)]' 12:23:47 against inferred type `m1 ... 12:23:54 :t ((inits . repeat) >>= sequence) $ "abc" 12:23:55 Couldn't match expected type `[a]' against inferred type `a -> a' 12:23:55 Expected type: [[a]] 12:23:55 Inferred type: [a -> a] 12:24:05 oh duh. 12:25:31 > map ((++) `ap` reverse) . (inits . repeat) "abc" >>= sequence 12:25:33 ["","a","b","c","c","b","a","aa","ab","ac","ac","ab","aa","ba","bb","bc","b... 12:26:01 hmm... 12:26:35 > map ((++) `ap` reverse) $ (inits . repeat) "abc" >>= sequence 12:26:36 ["","aa","bb","cc","aaaa","abba","acca","baab","bbbb","bccb","caac","cbbc",... 12:27:27 awww yeah, list of all palindromes in an alphabet. 12:28:08 > nub "racecar" 12:28:09 "race" 12:28:36 > map ((++) `ap` reverse) $ (inits . repeat) "race" >>= sequence 12:28:37 ["","rr","aa","cc","ee","rrrr","raar","rccr","reer","arra","aaaa","acca","a... 12:28:55 somewhere in that sequence is "racecar" :P 12:32:37 now if only I had an isEnglishWord function.. 12:34:00 also I think (inits . repeat) alphabet >>= sequence 12:34:23 is probably the more elegant alternative to (`replicateM` alphabet) =<< [0..] 12:34:29 that elliott was looking for. 12:34:35 wat 12:34:37 ah 12:35:04 whatever that means. 12:35:43 "pleases the way my brain interprets the code" 12:35:46 = elegant 12:36:39 From #haskell, pure elegance 12:36:40 replace "the code" with "it" for other things. 12:36:41 > fmap fmap fmap fmap fmap fmap fmap fmap fmap (fmap fmap fmap) fmap fmap sum (fmap fmap fmap fmap fmap read) return show $ 635 12:36:42 14 12:38:29 @unpl fmap fmap fmap fmap fmap fmap fmap fmap fmap (fmap fmap fmap) fmap fmap sum (fmap fmap fmap fmap fmap read) return show 12:38:30 fmap fmap fmap fmap fmap fmap fmap fmap fmap (fmap fmap fmap) fmap fmap sum (fmap fmap fmap fmap fmap read) return show 12:38:33 bleh 12:38:44 -!- Taneb has joined. 12:38:56 Hello 12:38:59 how is anyone meant to know what that does? 12:39:01 hi Taneb 12:39:06 ais523: sum . map (read . return) . show $ 635 12:39:17 > sum . map (read . return) . show $ 635 12:39:19 do all the fmaps cancel each other out? 12:39:19 14 12:39:46 Is that a digital sum calculator thing? 12:39:49 @type fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap 12:39:50 forall a b (f :: * -> *) a1 (f1 :: * -> *). (Functor f1, Functor f) => (a1 -> a -> b) -> f1 a1 -> f1 (f a -> f b) 12:40:06 do all the fmaps cancel each other out? 12:40:07 yes 12:40:21 it's something like all the ones past three make no effect 12:40:22 ?ty fmap 12:40:23 forall a b (f :: * -> *). (Functor f) => (a -> b) -> f a -> f b 12:40:23 elliott is Neo. 12:40:24 ?ty fmap fmap 12:40:25 ?ty fmap fmap fmap 12:40:25 forall a b (f :: * -> *) (f1 :: * -> *). (Functor f, Functor f1) => f1 (a -> b) -> f1 (f a -> f b) 12:40:26 forall (f :: * -> *) a b (f1 :: * -> *). (Functor f, Functor f1) => (a -> b) -> f (f1 a) -> f (f1 b) 12:40:26 ?ty fmap fmap fmap fmap 12:40:26 ?ty fmap fmap fmap fmap fmap 12:40:27 forall (f :: * -> *) (f1 :: * -> *) a b (f2 :: * -> *). (Functor f, Functor f1, Functor f2) => f (f1 (a -> b)) -> f (f1 (f2 a -> f2 b)) 12:40:27 forall a (f :: * -> *) a1 b. (Functor f) => (a1 -> b) -> (a -> a1) -> f a -> f b 12:40:31 oh, and I think I can vaguely work out why, too 12:40:32 oh, it cycles 12:40:41 Yup 12:42:23 I wonder if there's a better way to generate every palindrome in an alphabet. 12:42:47 Better than what? 12:42:50 > map ((++) `ap` reverse) $ (inits . repeat) "abc" >>= sequence 12:42:51 ["","aa","bb","cc","aaaa","abba","acca","baab","bbbb","bccb","caac","cbbc",... 12:42:58 ah 12:43:13 it is pretty damn nice as is. 12:43:14 Tell Don you could do it better in Java 12:43:28 it is wrong though 12:43:42 how so? 12:43:43 it missed "a","b", and "c" 12:44:06 ah. 12:44:13 hmm 12:44:22 It only does even lengthed ones 12:44:33 yeah 12:44:35 indeed 12:44:42 aibohphobia 12:44:52 NihilistDandy: fear of palindromes? 12:44:55 hmmm, okay, this is now a much more difficult problem. :P 12:44:57 fear of palindromes? 12:44:57 Naturally 12:45:02 okie 12:45:09 the glare here is ungood 12:45:14 i cannot see the screen 12:45:34 > map ((++) `ap` reverse) $ (inits . repeat) "ab" >>= sequence 12:45:35 ["","aa","bb","aaaa","abba","baab","bbbb","aaaaaa","aabbaa","abaaba","abbbb... 12:45:42 hmm 12:45:49 > map ((++) `ap` reverse) $ (inits . repeat) "a" >>= sequence 12:45:51 ["","aa","aaaa","aaaaaa","aaaaaaaa","aaaaaaaaaa","aaaaaaaaaaaa","aaaaaaaaaa... 12:46:02 I'll get all the a's out of lambdabot 12:46:05 E: monitor rot in Nome. 12:46:06 for each even length palindrome there needs to be an number of odd palidromes equal to the number of elements 12:46:16 *number of characters in the alphabet 12:46:26 Taneb: Too many n's 12:46:34 Damn 12:46:35 where basically the alphabet character is concatenated in the center of the even length string 12:46:48 this would give a, b, and c by performing this in the case of "" ++ "" 12:47:22 for each even length palindrome but the null string, you can create an odd length palindrome by removing one of the letters in the middle 12:47:51 alternately, you could delete on of the middle characters from the next rank of palindromes 12:47:58 dammit 12:48:05 stupid glare and ninjas 12:48:10 i quit 12:48:10 which sounds better? 12:48:26 i like the first option myself 12:48:46 hmmm, okay. 12:49:30 :t curry 12:49:31 forall a b c. ((a, b) -> c) -> a -> b -> c 12:49:37 :t uncurry 12:49:38 forall a b c. (a -> b -> c) -> (a, b) -> c 12:50:32 Zen E.C. nip pince-nez 12:50:54 Was late, my ball. Lab Y: metal saw. 12:51:00 Which would be neat, if it meant anything 12:51:16 Taneb: Aye; rags gare ya. 12:51:22 Gare isn't... strictly a word. 12:51:26 Do geese see god? 12:51:35 :DDDDD 12:51:39 oh my god 12:51:39 Do nine men interpret? Nine men, I nod! 12:52:12 Mary's on a nosy ram. 12:52:45 Lager, sir, is regal. 12:52:50 S.L.: Like I 'e kills. 12:52:53 A ninja, A.J. Nina. 12:52:56 X-D 12:53:04 X-D D-X. 12:53:21 Lonely Tylenol 12:53:43 Dave saved. 12:53:44 Archaeology: ancient cry -- yrc tneicna ygoloeahcra. 12:53:49 No, that's wrong 12:53:55 No, it is opposition. 12:55:29 mod $nar = "Finn" if random(). 12:55:46 NihilistDandy: wow 12:55:55 NihilistDandy: where do you learn your skills... 12:56:01 Reviled did I live, said I, as evil I did deliver. 12:56:04 lol 12:56:04 wow 12:56:05 NihilistDandy: where do you learn your skills... 12:56:07 lol 12:56:08 wow 12:56:09 wow lol wow 12:56:12 my best palindrome yet 12:57:05 Modenil capra; ARPA-C line DOM. 12:57:13 I dunno. Once you see a lot of palindromes, they start to come easy :D 12:57:22 yrc tneicna looks like gaelic or something... could be a brand of whiskey 12:57:30 Wednesday 'ad sen dew. 12:57:52 NihilistDandy: was that a palindrome 12:58:35 No, it is open on one position. 12:59:30 >:Ooooooooo 13:01:29 > sequence "abc" 13:01:30 Couldn't match expected type `m a' 13:01:30 against inferred type `GHC.Types... 13:01:34 :t sequence 13:01:35 forall (m :: * -> *) a. (Monad m) => [m a] -> m [a] 13:01:49 is there an inverse sequence? 13:01:58 Concat? 13:01:58 er, I mean. 13:02:11 I have "abc" I want ["a","b","c",""] 13:02:35 i just learned that "Palin" is greek for "backwards"...this explains a lot about American politics 13:03:06 And certain travel documentaries made by a former member of Monty Python? 13:03:43 :t reverse . sequence 13:03:44 forall a. [[a]] -> [[a]] 13:04:12 > sequence ["abc"] 13:04:13 ["a","b","c"] 13:04:14 Wait, not what I meant 13:04:14 CakeProphet: map pure 13:04:16 > map pure "abc" 13:04:17 No instance for (GHC.Show.Show (f GHC.Types.Char)) 13:04:17 arising from a use of... 13:04:22 > map pure "abc" :: [String] 13:04:23 ["a","b","c"] 13:04:26 :t flip sequence 13:04:27 forall a a1. a -> [a -> a1] -> [a1] 13:04:27 also map return, map (:[]), etc. 13:04:37 I guess I'll just have to manually concat the []... 13:04:55 > sequence ["abc", []] 13:04:56 [] 13:06:49 map (: []) looks like an angry robot 13:07:02 *(:[]) 13:07:05 > let palindromes alphabet = map ((((,) `ap` reverse)) $ (inits . repeat) alphabet >>= sequence >>= (\x y -> map (\z -> x++z++y) ([]:map pure alphabet)) `ap` reverse 13:07:06 : parse error (possibly incorrect indentation) 13:07:12 > let palindromes alphabet = map ((((,) `ap` reverse)) $ (inits . repeat) alphabet >>= sequence >>= (\x y -> map (\z -> x++z++y) ([]:map pure alphabet)) `ap` reverse in palindromes "abc" 13:07:13 : parse error on input `in' 13:07:26 er... 13:07:32 lol, that's messed up. 13:07:40 lol, yeah 13:07:50 > let palindromes alphabet = (inits . repeat) alphabet >>= sequence >>= (\x y -> map (\z -> x++z++y) ([]:map pure alphabet)) `ap` reverse in palindromes "abc" 13:07:51 ["","a","b","c","aa","aaa","aba","aca","bb","bab","bbb","bcb","cc","cac","c... 13:08:06 not as clean now though 13:08:12 lets see what pl has to say. 13:08:25 @pl (\x y -> map (\z -> x++z++y) ([]:map pure alphabet)) `ap` reverse 13:08:25 I was just about to :D 13:08:25 flip (flip . (map .) . (. flip (++)) . (.) . (++)) ([] : map pure alphabet) `ap` reverse 13:08:31 beautiful. 13:09:19 That output makes too much sense. I need sleep. 13:09:36 Off to watch the Puma Man and pass out before work. Adios, all 13:09:51 Or rather 13:09:53 there might be a fancier way to do that, but really the only way I can think of is to use >>= with a function that produces a list containing the even palidrome and its associated odd palindromes 13:09:56 So, Ida, adios. 13:10:59 if I didn't need the empty string in the list I could simply pass alphabet to that map and use z:y instead of z++y 13:11:52 Why do you need the empty string? 13:12:02 Nothing isn't a palindrome 13:12:08 Yes it is 13:12:14 @pl (\x y -> [x++y, map (\z -> x++z:y) alphabet]) `ap` reverse 13:12:14 ap (ap . ((:) .) . (++)) (flip flip [] . ((:) .) . flip flip alphabet . (map .) . (. flip (:)) . (.) . (++)) `ap` reverse 13:12:20 What is "" backwards? 13:12:23 "". 13:12:23 Nothing 13:12:35 So, nothing is nothing backwards 13:12:40 There are no characters to order, so no order to reverse 13:13:24 > let palindromes alphabet = (inits . repeat) alphabet >>= sequence >>= (\x y -> [x++y, map (\z -> x++z:y) alphabet]) `ap` reverse in palindromes "abc" 13:13:25 Occurs check: cannot construct the infinite type: a = [a] 13:13:44 > let palindromes alphabet = (inits . repeat) alphabet >>= sequence >>= (\x y -> [x++y, map (\z -> x++(z:y)) alphabet]) `ap` reverse in palindromes "abc" 13:13:45 Occurs check: cannot construct the infinite type: a = [a] 13:13:48 hmmm 13:14:06 in any case, I'm talking about the empty string for the last part of the code 13:14:37 I need the empty string so that mapping x++z++y will produce the even lengthed one 13:14:42 Ah 13:15:13 oh, duh... 13:15:52 > let palindromes alphabet = (inits . repeat) alphabet >>= sequence >>= (\x y -> (x++y) : map (\z -> x++z:y) alphabet) `ap` reverse in palindromes "abc" 13:15:54 ["","a","b","c","aa","aaa","aba","aca","bb","bab","bbb","bcb","cc","cac","c... 13:15:59 okay that's a little cleaner. 13:16:33 @pl (\x y -> (x++y) : map (\z -> x++z:y) alphabet 13:16:34 (line 1, column 46): 13:16:34 unexpected end of input 13:16:34 expecting variable, "(", operator, ":", "++", "<+>" or ")" 13:16:36 @pl (\x y -> (x++y) : map (\z -> x++z:y) alphabet) 13:16:36 ap (ap . ((:) .) . (++)) (flip flip alphabet . (map .) . (. flip (:)) . (.) . (++)) 13:16:45 @pl map (\z -> x++z:y) alphabet 13:16:45 map ((x ++) . (: y)) alphabet 13:17:01 ah. 13:17:03 Much nicer 13:17:42 -!- Wamanuz has quit (Read error: Connection reset by peer). 13:18:03 > let palindromes alphabet = (inits . repeat) alphabet >>= sequence >>= (\x y -> (x++y) : map ((x++).(:y)) alphabet) `ap` reverse in palindromes "abc" 13:18:03 -!- Wamanuz has joined. 13:18:04 ["","a","b","c","aa","aaa","aba","aca","bb","bab","bbb","bcb","cc","cac","c... 13:18:18 but I think the x and y variables are pretty much necessary to maintain clarity. 13:18:32 at least with this approach. 13:19:18 the "delete a character from the middle" approach might be shorter with the use of functions from Data.List 13:19:19 But, but 13:19:39 (\x y -> (x++y)) just feels ridiculous 13:19:45 I mean, it's (++) 13:20:01 yes but that's not the only thing there.... 13:20:22 I know. It just seems like some refactoring could get rid of that silly thing :D 13:20:32 @pl (x y -> (x++y) : f) 13:20:33 (line 1, column 6): 13:20:33 unexpected ">" 13:20:33 expecting variable, "(", operator or ")" 13:20:37 @pl (\x y -> (x++y) : f) 13:20:38 flip flip f . ((:) .) . (++) 13:21:03 eh, no. 13:21:18 Seems not 13:21:20 though that is borderline okay. 13:21:29 Too much flip 13:21:33 I guess two flips and 3 compositions is where I draw the line. :P 13:21:46 nested compositions confuse me somewhat. 13:21:56 Really? I kinda like 'em 13:22:11 once I understand them in a way that is intuitive... 13:23:15 :t ((.).(.)) 13:23:16 forall (f :: * -> *) a b (f1 :: * -> *). (Functor f, Functor f1) => (a -> b) -> f (f1 a) -> f (f1 b) 13:23:29 Now, wait, that looks familiar 13:23:55 -!- FireFly has quit (Read error: Connection reset by peer). 13:24:02 :t ((.).(.)).($) 13:24:03 forall (f :: * -> *) a b (f1 :: * -> *). (Functor f, Functor f1) => (a -> b) -> f (f1 a) -> f (f1 b) 13:24:48 :t fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap 13:24:49 forall a b (f :: * -> *) a1 (f1 :: * -> *). (Functor f1, Functor f) => (a1 -> a -> b) -> f1 a1 -> f1 (f a -> f b) 13:25:01 Ah, that's why 13:25:22 in fact I like this palidrome code so much I think I will save it. 13:25:27 :t fmap fmap fmap fmap fmap fmap fmap fmap fmap 13:25:28 forall (f :: * -> *) (f1 :: * -> *) (f2 :: * -> *) a b (f3 :: * -> *). (Functor f, Functor f1, Functor f2, Functor f3) => f (f1 (f2 (a -> b))) -> f (f1 (f2 (f3 a -> f3 b))) 13:25:32 since it's not something I can pull from memory. 13:25:36 Good call 13:25:49 stick it up on hpaste or on the cafe 13:25:59 I'd like to be able to refer to it sometime :D 13:26:04 -!- FireFly has joined. 13:26:22 :t ((.)$(.)) 13:26:22 forall (f :: * -> *) a b (f1 :: * -> *). (Functor f, Functor f1) => f (a -> b) -> f (f1 a -> f1 b) 13:29:37 [0..] >>= (`replicateM` alphabet) 13:29:55 is also equal to (inits . repeat) alphabet >>= sequence 13:30:10 Looks nicer, too 13:30:30 FSVO nicer 13:30:38 hmmm? 13:31:09 blah 13:31:12 FCVO 13:31:20 For certain values of 13:31:39 Or for some, if I want to stick to my kind of wrong one 13:31:43 I think Control.Monad and Data.List are the only dependencies. 13:31:46 ap is in Control.Monad right? 13:31:58 @hoogle ap 13:31:58 Control.Monad ap :: Monad m => m (a -> b) -> m a -> m b 13:31:58 Data.Graph.Inductive.Query.ArtPoint ap :: Graph gr => gr a b -> [Node] 13:31:59 Control.Arrow app :: ArrowApply a => a (a b c, b) c 13:32:01 Yup 13:32:22 @hoogle reverse 13:32:23 Prelude reverse :: [a] -> [a] 13:32:23 Data.ByteString reverse :: ByteString -> ByteString 13:32:23 Data.List reverse :: [a] -> [a] 13:32:33 using replicateM I need only Control.Monad so... I'll do that. 13:32:37 @hoogle repeat 13:32:37 Prelude repeat :: a -> [a] 13:32:37 Data.List repeat :: a -> [a] 13:32:37 Data.ByteString.Lazy repeat :: Word8 -> ByteString 13:32:39 @hoogle inits 13:32:40 Data.ByteString inits :: ByteString -> [ByteString] 13:32:40 Data.List inits :: [a] -> [[a]] 13:32:40 Data.ByteString.Char8 inits :: ByteString -> [ByteString] 13:32:45 yeah, inits isn't in Prelude 13:33:18 replicateM it is, then 13:33:58 http://hpaste.org/49129 13:34:14 let palindromes alphabet = [0..] >>= (`replicateM` alphabet) >>= (\x y -> (x++y) : map ((x++).(:y)) alphabet) `ap` reverse in palidromes "ab" 13:34:17 > let palindromes alphabet = [0..] >>= (`replicateM` alphabet) >>= (\x y -> (x++y) : map ((x++).(:y)) alphabet) `ap` reverse in palidromes "ab" 13:34:18 Not in scope: `palidromes' 13:34:24 > let palindromes alphabet = [0..] >>= (`replicateM` alphabet) >>= (\x y -> (x++y) : map ((x++).(:y)) alphabet) `ap` reverse in palindromes "ab" 13:34:26 ["","a","b","aa","aaa","aba","bb","bab","bbb","aaaa","aaaaa","aabaa","abba"... 13:34:33 just double-checking that the new version works. 13:36:22 Sweet. Now if we could just find some suitably opaque combinators equivalent to some of that... 13:37:01 well it would be nice to somehow be able to have a map that also included an empty element of some kind, but I'm pretty sure that's not possible without using a lot of combinators. 13:37:10 > let strings = ([0..] >>=) . flip replicateM; palindromes = alphabet >>= (\x y -> (x++y) : map ((x++).(:y)) alphabet) `ap` reverse in palindromes "ab" 13:37:11 Not in scope: `alphabet'Not in scope: `alphabet' 13:37:21 > let strings = ([0..] >>=) . flip replicateM; palindromes alphabet = strings alphabet >>= (\x y -> (x++y) : map ((x++).(:y)) alphabet) `ap` reverse in palindromes "ab" 13:37:23 Gross 13:37:23 ["","a","b","aa","aaa","aba","bb","bab","bbb","aaaa","aaaaa","aabaa","abba"... 13:37:54 I'd mainly like to reduce the lambda somehow. 13:38:02 I think the rest is quite fine. 13:38:53 well, since I'm actually putting it in a file now I can define it as a function instead of using the lambda... 13:39:26 no idea what to call it. 13:42:45 +++ 13:43:04 I didn't say that why did I say that 13:43:47 +++ATH0 13:46:06 There used to be a thing that you could disconnect a percentage of dialup users with a "ping -p 2B2B2B415448300D0A" command. 13:46:40 somewhat improved: http://hpaste.org/49130 13:46:59 if I ever need to import Control.Applicative I'll change ap to <*> 13:47:38 though it's purely cosmetic, everything I'm doing is purely cosmetic. 13:47:45 actually I kind of like `ap` 13:49:22 there are probably many sets of interesting strings you could construct with the [0..] >>= (`replicateM` alphabet) thing. 13:51:57 Title: use do syntax for non monadic code http://hpaste.org/49108 13:52:02 ...what? is this a joke? 13:54:55 Going now 13:55:18 CakeProphet: it desugars into something that doesn't use any monad functions, so it ends up working 13:58:15 > do 2 + 2 13:58:15 4 13:58:15 why would you ever do that though. 13:58:15 -!- EgoBot has quit (Remote host closed the connection). 13:58:15 imo do should constrain the type... 13:58:28 -!- EgoBot has joined. 13:59:11 -!- Taneb has quit (Ping timeout: 255 seconds). 14:00:40 > do 4 +4; 3 14:00:41 No instances for (GHC.Num.Num (m a), GHC.Num.Num (m b)) 14:00:41 arising from a u... 14:00:49 ...good. 14:01:17 do x = x, do x;y = x >> y 14:06:00 does ABCD count as a stupid BF derivative? or is it worse than that? 14:06:05 it's basically BF restricted to +-,. 14:06:05 -!- elliott has quit (Ping timeout: 264 seconds). 14:07:12 ais523: just a stupid BF derivative.. if that's literally what it is. 14:07:22 CakeProphet: well, commands renamed as usual 14:07:28 ah 14:07:34 yeah, still. 14:07:46 here you go: http://esolangs.org/wiki/ABCD 14:08:03 now if you could spawn threads of FSA that could communicate with each other... 14:08:08 it would be more interesting 14:09:22 the page is vaguely obnoxious 14:09:29 and was placed in a category specifically for the language, too 14:09:36 I'm almost wondering if it's trolling 14:10:32 -!- augur has quit (Remote host closed the connection). 14:14:38 well, no almost about it 14:16:03 -!- augur has joined. 14:28:08 -!- augur has quit (Remote host closed the connection). 14:31:41 -!- Taneb has joined. 14:32:00 Hello 14:33:32 hola 14:34:22 Game cube Nintendo: cod net nine Buce mag? 14:39:35 -!- augur has joined. 14:41:21 Taneb: your palindrome makes no sense either forwards or backwards 14:41:43 I don't make sense 14:47:17 @pl let primes = sieve [2..]; sieve (p:x) = p : sieve (filter ((>0).(`mod` p)) x) in take 20 primes 14:47:18 take 20 (fix ((`ap` tail) . (. head) . liftM2 (.) (:) . (. (filter . ((> 0) .) . flip mod)) . (.)) [2..]) 14:47:27 Elegant. 14:47:53 I am always impressed with pl's sense of taste 14:48:01 so constructive 14:48:20 You should see pl's living room 14:48:45 I would imagine there are no points. 14:49:22 it is all very smooth surfaces, with no polka dot colors. 14:49:31 s/colors/patterns/ 14:55:33 > let primes = sieve [2..]; sieve (p:x) = p : sieve (filter ((>0).(`mod` p)) x) in join (zipWith (!!)) primes 14:55:34 Couldn't match expected type `[a]' 14:55:34 against inferred type `GHC.Types... 14:55:54 hmmm? 14:56:01 :t join (zipWith (!!)) 14:56:02 Couldn't match expected type `[a]' against inferred type `Int' 14:56:02 Expected type: [[a]] -> [[a]] -> a1 14:56:02 Inferred type: [[a]] -> [Int] -> [a] 14:56:16 ah.. 14:56:48 > let primes = sieve [2..]; sieve (p:x) = p : sieve (filter ((>0).(`mod` p)) x) in zipWith (!!) primes primes 14:56:49 No instance for (GHC.Real.Integral [a]) 14:56:50 arising from a use of `e_120' at... 14:56:54 .... 14:57:07 -!- MigoMipo has joined. 14:57:12 :t zipWith 14:57:13 forall a b c. (a -> b -> c) -> [a] -> [b] -> [c] 14:57:14 :t (!!) 14:57:15 forall a. [a] -> Int -> a 14:57:33 :t let primes = sieve [2..]; sieve (p:x) = p : sieve (filter ((>0).(`mod` p)) x) in primes 14:57:34 forall t. (Integral t) => [t] 14:58:01 > let primes = sieve [2..]; sieve (p:x) = p : sieve (filter ((>0).(`mod` p)) x) in zipWith ((!!) `ap` fromIntegral) primes primes 14:58:02 No instance for (GHC.Real.Integral [b -> c]) 14:58:02 arising from a use of `e_12... 14:58:07 uh, what? 14:58:11 WHY IS THIS SO COMPLICATED. 14:58:49 :t (!!) `ap` fromIntegral 14:58:50 forall b. (Integral [b]) => [b] -> b 14:59:12 oh... right. :P 14:59:40 > let primes = sieve [2..]; sieve (p:x) = p : sieve (filter ((>0).(`mod` p)) x) in map (primes!!) primes 14:59:42 [5,7,13,19,37,43,61,71,89,113,131,163,181,193,223,251,281,293,337,359,373,4... 14:59:50 sometimes I wonder how I got so good at Haskell. 15:00:16 but yeah, those are the prime numbers that are indexed by a prime number 15:00:34 if I were a number theorist, I'd probably give them some kind of goofy name. 15:01:10 or name them after myself: CakeProphet numbers. 15:02:10 OK, I am now slightly scared by Headshoots. 15:02:13 7,13,37,61,131,181,281,337... 15:02:31 they have many interesting properties, such as being prime, and being nth prime numbers where n is a prime number. 15:03:34 > let primes = sieve [2..]; sieve (p:x) = p : sieve (filter ((>0).(`mod` p)) x) in map (primes!!) $ map (primes!!) primes 15:03:38 mueval-core: Time limit exceeded 15:04:00 ...as you can see, finding the prime numbers indexed by CakeProphet numbers is somewhat time consuming. 15:04:09 but I will go ahead and name them rank-2 CakeProphet numbers. 15:04:31 because as a number theorist this is ultimately where I get my kicks. 15:04:52 7,13,37,61,131,181,281,337... <-- CakeProphet numbers indexed by Prime numbers 15:05:17 oh dear, I'm going to run out of names. 15:05:26 Can they be Taneb numbers? 15:05:33 I suppose this is acceptable. 15:06:11 One of the key challenges of number theory is finding unique names for numbers that exhibit arbitrary and interesting properties. 15:06:37 I have written many papers on the subject. 15:06:45 How many? 15:07:42 uh... 15:07:58 many. 15:08:08 Define "many"? 15:09:04 I will just say that I have an Erdős number of -1 15:09:44 http://oeis.org/A072677 15:10:13 whut? 15:10:17 oh. 15:10:22 That's the CakeProphet numbers 15:10:29 Also http://oeis.org/A117249 15:11:37 why am I not attributed! 15:11:56 Because they were listed in 2002 and 2006 15:12:34 I will just have to reword the definition. 15:16:11 A prime number p is a CakeProphet number if the powerset of the set of prime numbers contains exactly 2^q-1 subsets where p is the maximal element, and q is prime. 15:16:53 https://oeis.org/login?redirect=/edit/new 15:18:40 CakeProphet: is that powerset stuff a really complex way of saying "the qth largest prime number, where q is prime"? 15:19:00 Yes 15:19:00 Yes. 15:19:09 I have no idea how you could infer such a thing. 15:19:20 Four keystrokes 15:19:24 I believe Luc Stephens already published such a thing 15:19:31 Shift+y, e, and s 15:19:54 -!- derrik has quit (Quit: run). 15:22:13 > let primes = sieve [2..]; sieve (p:x) = p : sieve (filter ((>0).(`mod` p)) x) in filter (elem primes . (-1) . logBase 2 . length . filterM (const [True,False])) primes 15:22:14 No instance for (GHC.Num.Num [[t]]) 15:22:14 arising from a use of syntactic nega... 15:22:43 > let primes = sieve [2..]; sieve (p:x) = p : sieve (filter ((>0).(`mod` p)) x) in filter (elem primes . subtract 1 . logBase 2 . length . filterM (const [True,False])) primes 15:22:44 Couldn't match expected type `[[t]]' 15:22:44 against inferred type `GHC.Typ... 15:23:42 > let primes = sieve [2..]; sieve (p:x) = p : sieve (filter ((>0).(`mod` p)) x) in filter (elem primes . subtract 1 . logBase 2 . length . filterM (const [True,False]) . (primes!!)) primes 15:23:42 Couldn't match expected type `[[t]]' 15:23:43 against inferred type `GHC.Typ... 15:23:50 bah 15:24:43 > let primes = sieve [2..]; sieve (p:x) = p : sieve (filter ((>0).(`mod` p)) x) in filter (elem primes . subtract 1 . logBase 2 . length . filterM (const [True,False]) . (\x -> takeWhile (/=x))) primes 15:24:44 Couldn't match expected type `[[t]]' 15:24:45 against inferred type `GHC.Typ... 15:25:19 > let primes = sieve [2..]; sieve (p:x) = p : sieve (filter ((>0).(`mod` p)) x) in filter (elem primes . subtract 1 . logBase 2 . length . filterM (const [True,False]) . (\x -> takeWhile (/=x) primes)) primes 15:25:20 Couldn't match expected type `[[t]]' 15:25:21 against inferred type `GHC.Typ... 15:25:27 I should probably not try to program at this hour. 15:26:41 > let primes = sieve [2..]; sieve (p:x) = p : sieve (filter ((>0).(`mod` p)) x) in filter (elem primes . subtract 1 . logBase 2 . length . filterM (const [True,False])) (inits primes) 15:26:42 Couldn't match expected type `[[t]]' 15:26:42 against inferred type `GHC.Typ... 15:28:32 maybe my input is getting cut off. 15:30:18 :t inits 15:30:19 forall a. [a] -> [[a]] 15:31:48 :t filterM 15:31:49 forall a (m :: * -> *). (Monad m) => (a -> m Bool) -> [a] -> m [a] 15:32:16 > let primes = sieve [2..]; sieve (p:x) = p : sieve (filter ((>0).(`mod` p)) x) in filter (elem primes.subtract 1.logBase 2.length.filterM (const [True,False]))$inits primes 15:32:17 Couldn't match expected type `[[t]]' 15:32:17 against inferred type `GHC.Typ... 15:33:36 :t elem 15:33:37 forall a. (Eq a) => a -> [a] -> Bool 15:33:41 ....oh 15:33:55 > let primes = sieve [2..]; sieve (p:x) = p : sieve (filter ((>0).(`mod` p)) x) in filter ((`elem` primes).subtract 1.logBase 2.length.filterM (const [True,False]))$inits primes 15:33:56 No instance for (GHC.Float.Floating GHC.Types.Int) 15:33:57 arising from a use of... 15:35:12 :t (/) 15:35:13 forall a. (Fractional a) => a -> a -> a 15:36:06 -!- oklopol has joined. 15:36:35 wow it sure is incredibly stupid that logBase doesn't work with integral.. 15:36:49 :t logBase 15:36:50 forall a. (Floating a) => a -> a -> a 15:38:29 :t toIntegral 15:38:30 Not in scope: `toIntegral' 15:39:45 @hoogle (Integral a) => b -> a 15:39:45 Prelude ceiling :: (RealFrac a, Integral b) => a -> b 15:39:46 Prelude floor :: (RealFrac a, Integral b) => a -> b 15:39:46 Prelude round :: (RealFrac a, Integral b) => a -> b 15:40:43 > let primes = sieve [2..]; sieve (p:x) = p : sieve (filter ((>0).(`mod` p)) x) in filter ((`elem` primes).subtract 1.floor.logBase 2.(fromIntegral::Int->Float).length.filterM (const [True,False]))$inits primes 15:40:47 mueval-core: Time limit exceeded 15:40:49 success! 15:43:55 @pl flip (>>=) f g 15:43:55 f =<< g 15:44:47 I've found myself using the monad instance of (e ->) much more now that I know how it works. 15:45:50 -!- Nisstyre has quit (Ping timeout: 255 seconds). 15:46:13 :t sequence 15:46:14 forall (m :: * -> *) a. (Monad m) => [m a] -> m [a] 15:46:39 :t sequence [abs, (+1)] 15:46:40 forall a. (Num a) => a -> [a] 15:46:50 > sequence [abs, (+1)] 4 15:46:51 [4,5] 15:47:29 > join ((++) `ap` reverse) "hello" 15:47:30 Occurs check: cannot construct the infinite type: m = (->) (m a) 15:47:40 ah yes. 15:48:25 > join ((++) `on` reverse) "hello" 15:48:27 "olleholleh" 15:49:21 :t (>=>) 15:49:22 forall a (m :: * -> *) b c. (Monad m) => (a -> m b) -> (b -> m c) -> a -> m c 15:49:35 not sure about these operators. Haven't figured out when to use them. 15:51:30 @src (>=>) 15:51:30 Source not found. Where did you learn to type? 15:51:45 lambdabot: where did you learn to lookup sources? 15:55:59 so, is liftM equivalent to fmap? 15:56:04 it seems to be 15:56:12 for monads, anyway. 15:56:43 -!- monqy has joined. 15:57:44 liftM f m1 = do { x1 <- m1; return (f x1) } 15:58:51 why not m1 >>= return . (f$) ? 15:59:03 I think base is afraid of >>=.. 16:00:00 foldM f a (x:xs) = f a x >>= \fax -> foldM f fax xs 16:00:11 or perhaps just completely arbitrary about its use... 16:07:26 -!- Nisstyre has joined. 16:07:36 -!- Taneb has quit (Ping timeout: 258 seconds). 16:11:19 -!- Sgeo has joined. 16:19:03 -!- esowiki has joined. 16:19:43 -!- esowiki has joined. 16:20:28 -!- esowiki has joined. 16:21:13 -!- esowiki has joined. 16:22:03 -!- esowiki has joined. 16:22:43 -!- esowiki has joined. 16:23:33 -!- esowiki has joined. 16:24:14 -!- esowiki has joined. 16:24:54 -!- esowiki has joined. 16:25:34 -!- esowiki has joined. 16:26:24 -!- esowiki has joined. 16:27:04 -!- esowiki has joined. 16:27:44 -!- esowiki has joined. 16:28:34 -!- esowiki has joined. 16:29:14 -!- esowiki has joined. 16:29:54 -!- esowiki has joined. 16:30:39 -!- esowiki has joined. 16:31:19 -!- esowiki has joined. 16:32:04 -!- esowiki has joined. 16:32:08 -!- glogbot has joined. 16:32:15 -!- EgoBot has joined. 16:32:28 Hmm, glogbackup didn't kick in. 16:33:38 -!- esowiki has joined. 16:34:30 -!- esowiki has joined. 16:35:10 -!- esowiki has joined. 16:35:46 -!- esowiki has joined. 16:36:36 -!- esowiki has joined. 16:36:36 -!- glogbot has joined. 16:36:44 -!- HackEgo has joined. 16:36:44 -!- EgoBot has joined. 16:46:30 -!- Taneb has joined. 16:46:42 Hello 16:48:58 Sgeo: wrong answer. the correct answer is: if x is in the union, it is in one of the sets U_i by def of union. thus there's a ball around x completely inside U_i. but obviously the same ball is completely inside the union as well. so the union of open sets is open. 16:49:01 I don't want to take my sign into town because the weather looks... looming and my sign isn't waterproofed 16:49:19 oklopol, when did you ask Sgeo a question? 16:49:33 Taneb, just write it on your forehead. 16:49:48 as for intersection, consider U = U_1 \cap ... \cap U_k, let u \in U and let B_{r_i}(x) \subset U_i for all i. now just take the smallest of the r_i, and it will of course be contained in all the U_i, and thus their intersection. 16:49:56 *x \in U 16:50:07 And I've badly timed this 16:50:11 It's almost dinnertime 16:50:14 thus, a finite intersection of open sets is open 16:50:15 Taneb, FOREHEAD 16:50:19 Phantom_Hoover: yesterday 16:50:26 like 12 hours ago 16:50:37 I'll do it tomorrow. Can't be bothered now 16:50:45 oklopol, and you expected Sgeo, who is inexplicably frightened of maths, to answer? 16:50:53 he proved the trivial cases 16:51:03 then i left and apparently he didn't continue! 16:51:28 well, not that those two cases weren't trivial 16:54:26 Sorry, watching Doctor Who 16:54:39 cglib why are you not working WHY 16:54:52 Loading package OpenGL-2.2.3.0 ... linking ... : /usr/local/lib/GeomAlgLib-0.2.0/ghc-7.0.2/HSGeomAlgLib-0.2.0.o: unknown symbol `__stginit_ghczm7zi0zi2_Maybes_' 16:55:00 What does that even mean?? 16:55:15 doctor who. i saw part of one episode of that and it reminded me of buffy the vampire slayer. 16:55:36 so maybe i should watch it because buffy was an awesome show 16:55:45 `addquote doctor who. i saw part of one episode of that and it reminded me of buffy the vampire slayer. 16:55:48 508) doctor who. i saw part of one episode of that and it reminded me of buffy the vampire slayer. 16:55:53 No HE. Sigh. 16:56:02 Oh, wait, HE is there. 16:56:05 FFS. 16:56:07 Christopher Eccleston was the best of New Who. 16:57:03 brb 17:03:57 Back 17:07:36 -!- esowiki has joined. 17:08:17 -!- esowiki has joined. 17:08:17 -!- glogbot has joined. 17:08:19 -!- HackEgo has joined. 17:08:20 -!- EgoBot has joined. 17:08:22 What's that even meant to mean? 17:08:46 Thunderstorm? 17:08:49 Oh wait, recursive function, duh. 17:08:55 * Phantom_Hoover facepalms 17:19:32 -!- derrik has joined. 17:23:20 I'm going to do something radical 17:24:14 Use this channel to make an esoteric programming language 17:24:44 I ban it. 17:24:57 radical, eh? 17:25:30 how would you use this channel to make an esoteric programming language 17:25:49 By throwing ideas at people 17:25:54 And seeing what bounces off 17:27:48 -!- Taneb has quit (Quit: Taneb). 17:28:16 -!- Taneb has joined. 17:28:27 What is this discrete math everybody keeps going on about. 17:28:37 It's very stealthy 17:28:47 Ha ha ha. 17:29:04 You realise that discrete is spelt differently to discreet, right/ 17:29:23 I wasn't letting that get in the way of a good pun 17:31:32 -!- Gregor has joined. 17:31:48 Right, that esoteric programming language I was going to make... 17:31:57 -!- Gregor has changed nick to Guest87848. 17:32:08 ...is not as important as helping me to get cglib to work. 17:32:26 I can't help you with that 17:32:45 Can anyone here help Phantom_Hoover get cglib to work? 17:32:55 No. 17:32:58 They are terrible. 17:33:05 im terible 17:33:42 monqy, you should just die. 17:34:34 Phantom_Hoover: there's no real definition, but if you want something other than a list of fields that are usually considered discrete, i can share my own heuristic: discrete math is stuff that starts with a finite set, non-discrete math starts with the reals. 17:35:02 oklopol, but there are all these people talking about it as a school-level thing. 17:35:15 Americans, of course, but whatever. 17:35:56 Are real numbers defined in school level? 17:37:30 Phantom_Hoover: discrete math is not really done that much in unis 17:37:40 in math 17:37:46 oklopol, graph theory is discrete, no? 17:37:49 yes, certainly 17:38:01 but it has strong connections with analysis 17:38:15 It... does? 17:38:18 Ooh, dinnertime 17:38:21 so depends on your view really, the way i've done it and seen it done it's definitely discrete 17:38:21 Bye 17:38:25 -!- Taneb has left. 17:39:05 Phantom_Hoover: well afaiu people get serious boners having planar graphs w.r.t. different topological spaces and shit like this 17:39:16 oklopol, oh, right. 17:39:38 i don't know much about it, but someone here once said graph theory is just algebraic topology 17:39:43 or something like that 17:40:58 -!- Nisstyre has quit (Ping timeout: 258 seconds). 17:41:44 and for instance symbolic dynamics, which is very discrete, is originally a tool for handling dynamical systems in general; dynamical system = topological space and a finite set of continuous functions on it (transformations say), mapping points around in some fun way, symbolic dynamics splits that space into a finite partition and considers the symbolic sequences obtained by taking one partition element and seeing on top of which partition elements it 17:42:08 -!- Nisstyre has joined. 17:42:45 and the discrete branch symbolic dynamics has given linear algebra one rather big number theoretical type result, and linear algebra is the most important tool in symbolic dynamics; so again strong connections. 17:43:01 (linear algebra is not at all discrete, since it starts with the reals :-)) 17:47:48 also graph theory has connections with linear algebra probably since symbolic dynamics mostly studies SFTs and sofic systems, which on the other hand are just sets of possible paths in a finite graph. 17:48:00 and i assume graph theory also cares about such paths 17:48:12 also you prolly ask different kinds of questions 17:48:14 *although 18:04:16 -!- Taneb has joined. 18:04:25 Hello 18:09:24 hello 18:10:59 Gonna switch clients 18:11:18 -!- Taneb has left. 18:11:54 -!- Taneb has joined. 18:12:01 Back 18:19:40 had Duck Madras for dinner 18:22:22 today i shall use the common kitchen. 18:22:56 i seriously hope no one comes there while i'm "cooking" 18:29:16 -!- GuestIceKovu has changed nick to Slereah. 18:32:12 No more double redirects! 18:32:14 -!- zzo38 has joined. 18:34:02 Incidentally, Numberwang is tied fourth page for most categories 18:39:39 What does "12! 4.4! 92! 10! 49.8! 2! 2! 2!" do? 18:39:53 That can change 18:39:55 depends on where it's used 18:40:08 When more than where 18:40:17 sure 18:40:27 Wait, wouldn't 12 just run 3 which runs that program...? 18:41:00 " its position in the program, and the step number is calculated." 18:41:01 derp 18:41:08 speaking of numberwang categories, how is it self-modifying? 18:41:23 I thought it was when I made the page 18:41:32 Misunderstood, been meaning to remove that 18:42:14 Refresh? 18:42:21 also for usability unknown, I'd say it's unusable for programming 18:43:17 Why? 18:43:25 It's actually quite easy to write a Hello World program 18:43:31 Just nobody's bothered 18:44:04 Does a quine exist, or is that weird exception in play? 18:44:20 A quine probably exists 18:44:41 Sgeo, what weird exception? 18:45:04 Phantom_Hoover, something about not being able to do arbitrary outputs at arbitrary points 18:45:25 Sgeo, are you confusing this with arbitrary effect at an arbitrary point? 18:45:33 I might be 18:46:40 I reckon the shortest possible quine in Numberwang, excluding the null program, would abuse the numberwang operation a lot 18:46:49 Sgeo, if arbitrary ASCII output isn't allowed, then yes, a quine is impossible. 18:47:37 Output is bit-by-bit 18:48:01 What if arbitrary ASCII output is possible, but requires something difficult, like brute-forcing a hash 18:48:20 * Sgeo wonders how that would work as a language 18:48:27 Besides the boring trivial way 18:48:30 Make it and see, Sgeo 18:49:08 Not boring way: Output commands are collected then hashed and the hash is displayed as output 18:49:38 Wait, does every possible SHA-1 hash (or maybe MD5, not sure which to go with) have at least one corresponding input? 18:52:06 I honestly have no idea 18:53:22 it's probably impossible to tell 18:53:30 or as hard as reversing every hash 18:54:01 BF derivates are boring, but I'm too uncreative to come up with another ... underlying structure for what is essentially only an idea for how to do output 18:54:30 ais523, so, that would make it unknown whether a quine exists, or whether cat programs are possible. 18:54:39 nowadays, I favour the idea of "incremented ASCII" for output, you output, say, 11 for newline or 33 for space 18:54:43 because then you can have EOF=0 without a clash 18:55:13 For output? Isn't input what that's more necessary for? 18:55:21 well, yes 18:55:25 but it should be symmetrical 18:57:48 When I finish this Doctor Who series, I'll write up my BF derivative 18:57:58 Although I do agree that BF derivatives suck 18:58:18 I'm too boring for anything else .... ooh, hash-reversing-based computation too? 18:58:36 So that whether it's TC or not is dependent on whether there's a reverse for every hash 18:58:58 ...why do I have a feeling others have done this before, except with other "unknown" questions? 19:00:02 oozlybub and murphy 19:01:40 Another way of EOF=0 without clash is if you have more than 8-bits numbers you can make it so that 256 means output 0 byte, 1 or 257 means output 1 byte, etc. It can be used for input, too. There might also be other possibilities. 19:04:37 -!- oerjan has joined. 19:09:00 Writing a Hello World program in Numberwang 19:10:17 It starts 2! 1! 19:10:18 ah 19:10:24 yay :P 19:11:24 actually if you don't do any jumping you don't need to be that careful with phases, i think 19:12:00 but maybe you are using jumps 19:13:09 i'm just thinking that the beginning of the program is also the perfect spot to put a 3! command if you want to enter that easy row in my table 19:13:10 I'm not 19:13:31 because then the step number will be 1 when entering the subprogram 19:13:58 That's handy 19:14:07 Program starts with 3! now 19:14:17 And I've got moon chavs in my head 19:14:24 wat 19:15:04 It's a song 19:15:22 About a feature of the British population 19:15:27 The lowest of the low 19:15:32 "Chavs" 19:15:45 ah 19:17:31 And the safe numberwang flips the cell after where you start and the one after that 19:17:43 And ends up in the one after the one where you start 19:17:56 So if you begin with [0...] 19:18:14 You end up with [0,1,1] with the current cell as the first "1" 19:18:23 ...0..., iirc it's two-sided? 19:18:37 Yeah 19:18:49 But you can ignore that 19:18:52 ...are you talking about bi-infinite sequences over a finite alphabet? 19:19:08 Possibly 19:19:13 :o 19:19:18 oklopol: over {0,1} yes, since that's what a numberwang tape is 19:19:20 -!- Nisstyre has quit (Ping timeout: 264 seconds). 19:19:46 oh, kay 19:20:11 Imagine writing a quine in Numberwang 19:20:15 oklopol, nononononono, it's just 'okay'. 19:20:31 and the next command after the 3! will have the _same_ step number (mod 9), but of course incremented position 19:20:52 Taneb: heh, that should be possible 19:21:01 Phantom_Hoover: i just expanded it into its little known second origin 19:21:03 But maddening 19:22:10 well verbose, for sure 19:22:57 I think the shortest would use the numberwang operator in various imaginitive ways 19:24:05 ...This would be a lot easier if the Numberwang operator's program was 1 number shorter 19:24:23 No it wouldn't 19:24:28 I'm confusing myself 19:24:59 a _bit_ easier, since you could then put several 3!'s in a row, but you would have to get lucky with which bits you needed 19:25:14 to print 19:26:09 since it's just 1 too long for that, you'll need some padding. oh hm. 19:26:36 4 commands of padding, i think 19:26:51 which can be a nop if it fits 19:27:19 Hang on, wait a mo 19:27:37 (a 1,0,1,0 nop) 19:27:38 The Numberwang sub-program has a length of 8 19:27:56 The corresponding commend has a length of 1 19:27:59 1+8=9 19:28:14 Which retains mod-nine-ness 19:28:15 yep, so the step number will be back to the same for the next main command 19:28:23 but the position will be incremented 19:28:29 Brilliant 19:29:15 "Hello, World!" actually starts 3! 2! 1! 19:29:51 and 4 padding commands will increment the sum of step and position by 8 19:30:20 getting back in phase for another 3! 19:30:20 You mean two 19:30:30 i mean combined 19:31:47 Sgeo, HOMESTUCK UPDATE 19:31:51 AND FEDORAFREAK IS IN IT 19:31:55 WORDS CANNOT CONTAIN MY JOY 19:32:05 TELL ME AS WELL 19:32:10 I READ HOMESTUCK 19:32:49 Taneb: um with 3! 2! that 2! will enter the numberwang program again right, but not at the easy row i think... 19:32:55 Taneb, YES BUT YOU DIDN'T SHARE IN THE EXPERIENCE 19:33:34 It would, because the two will change the step counter from 9 to 10 19:33:39 10 mod 9 = 1 19:34:28 Oh my god he's going to god tier isn't he IT'S ALL TRUE 19:34:32 Taneb: but the position is 1 now... 19:34:42 oh wait 19:34:52 Subprogram has its own position 19:35:09 oh, that works then 19:36:44 hm that means that you need 9 commands of padding to get back to the right step number if you need to change the bit 19:38:09 ideally you'd want to set up the bits so that is rarely necessary 19:46:17 3!2!1!0! handily outputs the first four bits 19:49:58 -!- pikhq_ has joined. 19:51:19 Well, I'm not going to learn Haskell just yet <-- AAAAAAWWWWW 19:51:25 ;D 19:52:01 -!- Nisstyre has joined. 19:52:25 -!- pikhq has quit (Ping timeout: 260 seconds). 19:52:43 i used to know a haskell coder on yahoo.. before i left yahoo 19:53:13 so recall yesterday or a year ago or whatever anyway i told ya i decided to eat my pizza and found that i had already eaten it. 19:53:14 well 19:53:15 i hadn't 19:53:18 it was in the microwave 19:53:36 assumptions. 19:53:44 never trust em 19:54:05 or memory 19:54:17 oklopolzheimer 19:54:18 i find that assumptions really come to life when it comes to "who did this?" 19:54:29 "I can't find it" "someone must have stolen it" 19:55:22 > do let {x = 1}; x+2 19:55:23 3 19:55:28 !haskell do let {x = 1}; x+2 19:55:55 !haskell main = print $ do let {x = 1}; x+2 19:55:55 to assume that someone can be described by a rule without exception... is to assume they are omnipotent 19:56:10 it's a difficult idea to break if you have it in your head 19:56:30 but if you don't deduce things and make associations, you are a stone 19:56:45 apparently they relaxed the typing of do expressions somewhere been EgoBot's and lambdabot's haskell versions 19:57:16 prescribing omnipotence to someone causes a lot of problems 19:57:24 presumably to make that rebindable syntax stuff work better 19:57:47 like, in other words, you can't model a human as a discrete system. maybe noone else does something that dumb 19:58:00 but i seem to do it 19:58:11 12:56:24 < itidus20> to assume that someone can be described by a rule without exception... is to assume they are omnipotent 19:58:14 what 19:58:21 i'm being literal. 19:58:37 > let a >>= f = f a + 1 in do x <- 3; 2*x 19:58:38 No instances for (GHC.Num.Num (m (m b)), GHC.Num.Num (m b)) 19:58:39 arising from... 19:58:39 for instance stones are omnipotent, as they don't do anything, without exception 19:58:43 there is no rule which applies to someone all of the time 19:58:51 I'm human. all the time. 19:58:55 heh that was a bit too much to hope for 19:58:55 humm 19:59:02 how about tautologies 19:59:08 monqy, but what is a human ( :-s ) 19:59:21 now i'm stretching 19:59:27 I'm alive except when I'm not 19:59:30 a human is a stage in evolution 19:59:38 this is a rule now I'm omnipotent 19:59:42 im stretching too far 20:00:19 well you admit that to be alive has an excetion ^_^;; 20:00:21 I really don't get how you jumped from "follows a rule precisely" to "must be omnipotent" 20:00:47 ok ok.. uhh 20:01:00 applying my no true scotsman logic. 20:01:43 assuming a human behaves according to a rule, without exception, is to assume they are omnipotent 20:02:09 itidus20: This presumes that obeying the rule requires omnipotence. 20:02:22 Not all rules possess that property. 20:02:24 to obey a rule without exception does 20:02:28 what 20:02:30 hmm 20:02:40 No it doesn't. 20:02:41 pikhq, ok now this is getting interesting 20:02:56 itidus20, allow that collections of rules are themselves rules. 20:03:08 What if the rule is "Think while conscious"? 20:03:08 Furthermore, allow that the set of possible exceptions is finite. 20:03:56 Following a rule allowing for exceptions is therefore itself a rule. 20:03:57 I thought obeying a rule without exception means your not omnipotent 20:04:12 Taneb: Not if you are doing so willfully. 20:04:30 Taneb: Then, you can be omnipotent but willfully not exploiting it. 20:05:05 ok, a good example might be to say of a fighter that he never loses 20:05:26 if he truely never lost then he would be omnipotent 20:05:38 1) and this accounts for every case? 20:05:41 2) no it doesn't mean that 20:05:56 humm 20:06:01 so you mean rules of the form "can do x" 20:06:42 so you could try to fight him but be guaranteed to lose 20:07:38 itidus20: Not rules are such that obedience requires omnipotence, however. Ergo, your claim is false. :) 20:07:51 Actually, that doesn't even require omnipotence. 20:08:02 Just that he be stronger than everything else that fights. 20:08:31 Maybe itidus20 isn't using omnipotence to mean what we think of as "omnipotence"? 20:08:34 if i was better at logic i probably wouldn't need to argue about such a thing 20:08:43 and might be happier in life 20:08:54 logic certainly makes you happy 20:08:54 In which case his argument fails for inattentive use of vocabulary. :) 20:10:11 thinking in general is the way to happiness. only someone who does not spend all day thinking about whether life has any kind of point can truly get depressed. 20:10:34 something starts the thinking off though 20:10:47 it's like a scab forming in response to an injury 20:10:58 oklopol, what? Are you saying chemical imbalances cannot occur in phlosophers? 20:11:20 Sgeo, it's incredibly obvious sarcasm. 20:11:30 i hoped it was 20:11:50 added the "whether life has any kind of point" just to make sure 20:12:16 Sorry 20:12:28 i forgive you 20:12:37 sgeo the famously bad at responding appropriately to sarcasm bisexual 20:12:44 yes 20:13:16 I still don't get where this "Sgeo is famously bisexual" meme is coming from 20:13:22 I read that as Sgeo is famously bad at responding to "the sarcasm bisexual" 20:13:30 theres a quote i saw on a forum signature once about some yeast talking to some vinegar(i forget exactly what?) blissfully unaware that they were in the process of becoming bread 20:13:30 if i was better at logic i probably wouldn't need to argue about such a thing <-- applying logic to omnipotence probably does not work very well. perhaps for similar reasons to russell's paradox. 20:13:32 I was wondering, who's the sarcasm bisexual? 20:13:36 lol 20:13:44 ' I still don't get where this "Sgeo is famously bisexual" meme is coming from' <<< classic Sgeo :D 20:13:46 re: purpose of life 20:13:54 oklopol, where did that come from. 20:14:05 There's non-classic Sgeo? 20:14:20 ^^Let me guess, that's more classic Sgeo 20:14:27 I assumed it was that crystal-cola troll, but then I looked at the logs and crystal-cola said that stuff in response to famous bisexuals. 20:14:42 there's a list of famous bisexuals on wp 20:14:51 i found that hilarious 20:14:51 No there isn't. 20:14:58 There's a list of lists of famous bisexuals. 20:15:09 yeah 20:15:14 but anyway even better 20:15:20 Hmm, it occurs to me that I know someone who's bisexual who co-authored a chapter of a textbook 20:15:41 It wasn't me 20:15:52 I'm not bisexual 20:16:09 Taneb: obviously it would've been me in this case, since Sgeo was responding badly to my sarcasm 20:16:12 Nor have I co-authored a chapter of a textbook 20:16:49 I accused oklopol of being openly heterosexual once 20:17:16 :O 20:17:19 i believe i have disclosed my sexuality 20:17:35 indeed 20:17:37 there's even a quote about it 20:18:16 i guess for all intents and purposes i'm straight tho 20:19:01 For all intents and purposes **it usually doesn't matter** (I think) 20:19:32 obviously i mean intents and purposes where it does matter 20:19:35 Except for the purpose/intent of matchmaking 20:19:38 yes 20:19:56 or sexmaking 20:20:11 Willing sexmaking, in anycase 20:20:17 well yes 20:20:18 Yes, for those purposes it would matter. 20:20:53 But it doesn't matter for purpose of co-authoring a textbook. 20:21:12 not that much no 20:21:22 No 20:21:37 Unless the textbook involves personal sexual experiences. Which would be a really weird textbook. 20:21:51 haha this bubbly water thingie has added calcium and it says "scientifically proven to be a good source of calcium" on the bottle 20:22:30 i wonder if they actually made scientists test the added calcium was actually in there after the fact just to be able to add that :D 20:22:54 It's things like that why people don't trust science 20:23:55 -!- pikhq has joined. 20:24:26 You know what would be interesting? 20:24:39 what would be interesting? 20:24:40 A BCT interpreter in Dwarf Fortress 20:25:01 There's already a computational system in DF. 20:25:08 My DVI optimizer program works! Tell me if you have other suggestions related to such program. 20:25:56 (DVI?) 20:26:07 it's like pdf 20:26:13 Except older. 20:26:13 Device Independent format 20:26:24 And used by noöne except zzo38, because he's nuts. 20:26:33 i use it every day 20:26:46 -!- pikhq_ has quit (Ping timeout: 240 seconds). 20:26:55 I think it's only really used as an intermediate form for TeX. 20:26:59 the most reliable latex output format on my system atm 20:27:18 To be fair, it *was* invented in the nasty old days before Postscript. 20:27:20 pikhq: It can be; the final format would be the printer's native format, such as PCL or whatever. 20:27:36 something wrong with pdf output and my ps viewer is horrible 20:27:38 PostScript and PDF is full of dumb things. 20:27:48 zzo38: The point is that the only things that really output it are TeX. 20:27:59 No, I make other programs that produce DVI files too. 20:28:06 And even groff can do so, I think. 20:28:24 why would anyone use anything other than tex/latex when you can use tex/latex 20:28:25 If I make any program for printing, DVI format is the format I use. 20:28:38 I find it very easy to forget that roff is used for anything but man pages. :) 20:29:12 oklopol: TeX is very good but sometimes you would need different kind of program for printing. 20:29:13 oklopol: because it's evil open sourcery. regards, microsoft. 20:29:47 zzo38: like what? 20:32:55 Various things, including music, ANYTODVI, things not supported by TeX, and sometimes it is useful to just write a C program that directly produces print output. You might also convert other formats in some cases (not scanned documents though; I believe that is what DjVu is for). 20:32:57 -!- oklofok has joined. 20:33:27 zzo38: like what? 20:33:27 * Disconnected 20:33:47 Disconnected? 20:33:51 oklofok: Various things, including music, ANYTODVI, things not supported by TeX, and sometimes it is useful to just write a C program that directly produces print output. You might also convert other formats in some cases (not scanned documents though; I believe that is what DjVu is for). 20:34:35 The server didn't recognize the disconnection 20:34:45 -!- oklopol has quit (Ping timeout: 264 seconds). 20:34:46 thus i told you about it 20:34:55 OK 20:37:33 Cases that you might write other programs converting some format directly to DVI, such as ESC/P. 20:38:10 A few other people I have talked to agree that PostScript and PDF are full of dumb things, although one person preferred PCL. 20:40:10 well i don't really care, they all look the same on paper 20:40:24 and compilation time is roughly the same 20:42:01 Of course you can use what you want, and you can publish the book. However, PostScript and PDF can sometimes produce fuzzy output on paper (I have experienced this). 20:42:22 huh 20:45:00 -!- foocraft has quit (Ping timeout: 250 seconds). 20:45:23 Of course they are all being converted to PCL, although the resulting PCL data can become different. 20:45:42 what do you mean being converted 20:46:36 I mean, you convert DVI or PostScript or PDF or whatever into PCL so that the printer can accept it. 20:51:32 -!- foocraft has joined. 20:59:45 -!- Guest87848 has changed nick to Gregor. 21:04:18 Goodnight everyone 21:04:42 -!- Taneb has quit (Quit: being forced to go to bed). 21:14:44 Ok, one of the people in #jesus just called himself a prophet 21:15:33 <> its my responsibility as a prophet to tell you what God wants me to 21:15:34 <> rather then what you want to hear 21:15:47 (name deleted due to this being a publically logged channel) 21:17:20 hmm 21:17:29 Burn the witch! 21:17:32 Sgeo: is that sort of thing unusual for #jesus? 21:19:11 there's one particular corner in Birmingham City Centre which is good for finding evangelists 21:19:27 http://i.imgur.com/k7Rqy.jpg 21:19:27 usually Christian; they're ranting too much to figure out the specific sort of Christianity they believe in 21:20:25 Oh my god apparently the Catholic church is the New World Order I love this channel. 21:20:33 I can't even describe, it's too much. 21:20:33 #jesus? 21:20:38 hehehehehe 21:20:46 -!- elliott has joined. 21:25:01 Did you show him Gödel's ontological proof and tell him why modal logic is bad? 21:25:03 -!- derrik has quit (Quit: bedtime). 21:27:40 16:54:52: Loading package OpenGL-2.2.3.0 ... linking ... : /usr/local/lib/GeomAlgLib-0.2.0/ghc-7.0.2/HSGeomAlgLib-0.2.0.o: unknown symbol `__stginit_ghczm7zi0zi2_Maybes_' 21:27:40 16:55:00: What does that even mean?? 21:27:40 elliott: You have 2 new messages. '/msg lambdabot @messages' to read them. 21:27:44 it means you have problems beyond you 21:28:33 16:56:07: Christopher Eccleston was the best of New Who. 21:28:33 Man okay I love Eccleston and people who don't love Eccleston are bad but are you really saying he's better than Tennant. 21:28:55 Ridiculous 21:29:18 Though Matt Smith has been surprisingly good 21:29:31 He just doesn't quite have the wrath down like Tennant did 21:29:45 I've only seen two episodes of Eccleston, is that why I think he might not be the best? 21:29:49 I don't like recent Doctor Who at all 21:29:51 Phantom_Hoover: The Catholic Church the *new* world order? 21:29:57 ais523: Define recent 21:29:59 pikhq, yes. 21:30:08 theres a dr who anime thing that someone made 21:30:09 Apparently they're ancient Egypt, as well. 21:30:10 Not the "Older than dirt world order"? 21:30:11 elliott: since and including Eccleston, i.e. after the really long hiatus 21:30:18 itidus20: i watched that, it was really really bad 21:30:19 Someone gave me a link, but it was too confusing. 21:30:27 So, Doctor Who 2005 21:30:32 standards are too high ;_; 21:30:41 That phrase, incidentally, is retarded. 21:30:53 ais523: Ever seen Blink? Silence in the Library/Forest of the Dead? (OK yes River Song is in it but it was before she was an insufferable plot element.) 21:30:54 New World Order? 21:31:02 NihilistDandy: Yes. 21:31:05 Agreed 21:31:06 elliot: if it was crap it's due to the style rather than the quality 21:31:08 NOVVS ORDO SECLORVM is "New Order of the Ages", people. 21:31:09 pikhq, here, have the truth: http://www.scribd.com/fullscreen/48146280?access_key=key-191mra1tp1fxslz2rem8 21:31:10 elliott: I don't think I've seen any of those 21:31:17 I stopped watching it for religious reasons after a bit 21:31:21 which is strange as I'm not religious 21:31:41 Blink is a great episode. 21:31:42 ais523: You should; I don't know of anyone who thinks they aren't awesome, even non-Doctor Who-likers 21:31:51 Though the Angels stop being scary after the first episode. 21:32:32 NihilistDandy: yeah, but it took years for Moffat to ruin that. 21:32:39 True 21:32:52 Phantom_Hoover: Oh God the derp. 21:32:57 I do think that Amy is my favorite companion so far, though 21:33:05 Well, in the new series 21:33:21 NihilistDandy, I liked Martha, TbH. 21:33:40 I really, really want to find whoever paired her off with Mickey and kick them until they say sorry. 21:33:53 You mean Rose? 21:33:54 I like all the companions, does that make me bad? Well, Rose was a bit annoying, but not THAT annoying. 21:34:05 NihilistDandy, no, I mean Martha. 21:34:12 I can't put my finger on what put me off about Martha, so it's probably latent racism.~ 21:34:36 Phantom_Hoover: wow, wait, that was a thing that happened? Like Rose Mickey? 21:34:37 Or it could just be her accent and that I found her uninteresting until the last few episodes 21:34:37 Ahahaha 21:34:44 elliott, yep. 21:34:53 Phantom_Hoover: It's because of that Associates of Doctor Who Social Club. 21:35:03 But what makes me *angry* about it is that she was already engaged when we last saw her. 21:35:15 But that would involve hiring a new actor. 21:35:16 MY CONTINUITY 21:35:27 MY FANFICTION 21:35:29 RUINED 21:35:36 `addquote MY CONTINUITY MY FANFICTION RUINED 21:35:38 509) MY CONTINUITY MY FANFICTION RUINED 21:35:46 NihilistDandy, I don't care about those things! 21:35:49 lol 21:36:10 I need to devise a Doctor Who related palindrome 21:36:12 16:54:52: [...] unknown symbol `__stginit_ghczm7zi0zi2_Maybes_' <-- stginit stuff is part of the ghc runtime system, i think. maybe something has not been linked properly, or there is version incompatibility? 21:36:23 oerjan: yeah, like I said: problems beyond your reach 21:36:30 Reinstall GHC, compile everything again, hope it doesn't break 21:36:32 It's the fact that they cared about her character so little that they completely ignored the development that had been set up. 21:36:41 Phantom_Hoover: Theory: It was a different Martha. 21:36:43 elliott, it was a self-compiled library! 21:37:20 Phantom_Hoover: Was The End of Time really really awesome, or am I just imagining that memory? 21:37:31 OK but now back to the on-topic activity of logreading. 21:37:33 elliott, remind me which one that was. 21:37:36 -!- MigoMipo has quit (Read error: Connection reset by peer). 21:37:46 Yeah, that one. 21:38:27 It was pretty terrible from a characterisation and plot standpoint, but from a "stuff blows up" standpoint it was pretty good. 21:38:48 18:48:01: What if arbitrary ASCII output is possible, but requires something difficult, like brute-forcing a hash 21:38:49 You can't brute-force a hash, not really 21:38:59 I mean, as an output mechanism that doesn't work, at least any way I can think of 21:39:08 Because every hash has aleph-null strings 21:39:13 I really liked Human Nature/The Family of Blood, but I can't see anyone else who did. 21:39:20 Phantom_Hoover: I did! 21:39:23 hmm, I seem to have missed the End of Time 21:39:56 SO GOOD 21:40:46 18:49:38: Wait, does every possible SHA-1 hash (or maybe MD5, not sure which to go with) have at least one corresponding input? 21:40:46 not known AFAIK 21:40:58 sounds like an insanely difficult thing to prove, too 21:41:04 18:53:22: it's probably impossible to tell 21:41:05 18:53:30: or as hard as reversing every hash 21:41:12 18:48:01: What if arbitrary ASCII output is possible, but requires something difficult, like brute-forcing a hash 21:41:15 ais523: come now, this is mathematics, you can prove theorems in ways other than brute froce. 21:41:29 I think he just means that the output instruction outputs a hash. 21:41:31 elliott: indeed; it's just that hashes are designed specifically to try to stop people proving things about them 21:41:43 18:54:39: nowadays, I favour the idea of "incremented ASCII" for output, you output, say, 11 for newline or 33 for space 21:41:43 18:54:43: because then you can have EOF=0 without a clash 21:41:43 18:55:21: well, yes 21:41:43 18:55:25: but it should be symmetrical 21:41:48 ais523: outputting 0 should close stdout :) 21:41:48 Phantom_Hoover: I liked Family of Blood 21:41:54 So if you want to output x, you need to work out y such that hash(y) = x. 21:41:55 elliott: indeed 21:45:20 ais523: are true and false one and zero in underlambda? 21:45:30 elliott: yes 21:45:33 well, the Church numerals for those 21:45:57 Phantom_Hoover, yes, output instruction ouutputitng a hash is what I'm thinking of 21:46:06 Or at least, fits what I want, and I did think of 21:46:09 ais523: how easy is it to write the function "0 ==> 0; x > 0 ==> 1" where x is guaranteed to be a church numeral? 21:46:22 -!- elliott has left ("Leaving"). 21:46:26 -!- elliott has joined. 21:46:35 Sgeo: can't output strings whose length is not a certain multiple 21:46:38 of the hash output length 21:46:46 elliott, the zero? function is pretty basic. 21:46:52 Phantom_Hoover: in underlambda 21:46:56 Oh. 21:47:04 Sgeo: you could omit trailing zeroes from the output but then you couldn't end output with zeroes 21:47:49 FFS Haskell, why do you need to make it so hard to extract items from a tuple. 21:48:00 @hoogle (a,b,c) -> a 21:48:01 Data.Typeable typeOf3 :: Typeable3 t => t a b c -> TypeRep 21:48:02 Data.Typeable typeOf2Default :: (Typeable3 t, Typeable a) => t a b c -> TypeRep 21:48:07 I mean come on. 21:48:07 Phantom_Hoover: Don't use three-tuples. 21:48:09 Just don't. 21:48:12 And also, use pattern matching. 21:48:14 Show your code. 21:48:20 elliott, guess what, the library I'm using uses them. 21:48:24 use template haskell 21:48:24 Phantom_Hoover: Show your code. 21:48:25 haskell only supports tuples up to the size of 2 21:48:30 Hmm 21:48:34 Phantom_Hoover: Show your code.Phantom_Hoover: Show your code. 21:48:36 Phantom_Hoover: Show your code.Phantom_Hoover: Show your code.Phantom_Hoover: Show your code. 21:48:38 shacode 21:48:42 elliott, what code? 21:48:44 -!- copumpkin has changed nick to bob_loblaw. 21:48:47 The library? 21:48:48 their code 21:48:51 your code 21:48:54 Phantom_Hoover: Your code. 21:48:55 elliott, easy to work around 21:48:57 The code you are trying to extract. 21:49:01 An element. 21:49:03 From a tuple in. 21:49:09 Because 21:49:11 foo = x + y + z 21:49:15 where (x,y,z) = f blah 21:49:17 seems good enough to me. 21:49:23 elliott, I... don't have any code. 21:49:45 Phantom_Hoover: Then why are you complaining about a function being missing? 21:49:47 Make last byte indicate .. no, make first byte indicate... hm 21:49:50 Are you trying to use it imaginarily? 21:50:05 Sgeo: make the first byte indicate how many bytes of the rest of the hash to output minus one 21:50:09 (so that 0 prints one byte) 21:50:10 I'm trying to work out how this library's data structures work. 21:50:18 Sgeo: assuming hashes are less than two hundred something bytes that should work fine 21:50:24 -!- bob_loblaw has changed nick to copumpkin. 21:50:39 Sgeo: if it specifies a length longer than the hash, either: - cut out the rest; - make that invalid; - or fix the hash length so that it's exactly two hundred and fifty six bytes long 21:50:41 or would that be seven 21:50:42 w/e 21:50:54 `addquote to assume that someone can be described by a rule without exception... is to assume they are omnipotent for instance stones are omnipotent, as they don't do anything, without exception 21:50:56 510) to assume that someone can be described by a rule without exception... is to assume they are omnipotent for instance stones are omnipotent, as they don't do anything, without exception 21:51:17 you got to that bit? 21:51:21 yes 21:51:23 it's a good bit 21:51:27 :D 21:51:48 what hath i wrought 21:52:03 oh, was there a good bit? I haven't been following #esoteric today 21:52:22 olsner: we were comparing penis lengths and shit as usual 21:52:36 olsner: /msg 21:52:39 ok heres a useful example of what i had in mind 21:53:03 "Any monitor made by ???? company will be reliable." 21:53:24 didn't you already explain by a rule you meant a capability to solve certain kinds of problems 21:53:33 itidus20: do you mean omniscient, not omnipotent? 21:53:57 elliott, I like River Song 21:54:43 I mean that seeing reality as rules _without having a capacity to be flexible on those rules_ leads to abundant errors assumptions and misconceptions. 21:55:02 Sgeo: ok 21:55:17 itidus20: i.e. omnipotence? 21:56:25 someone showed me an image before which brings a great example to mind 21:56:31 itidus20: You just need more precisely defined rules :D 21:56:33 itidus20: what about when those rules are provably correct? 21:56:33 "The Titanic is unsinkable." 21:56:40 20:11:20: Sgeo, it's incredibly obvious sarcasm. 21:56:40 20:11:30: i hoped it was 21:56:40 20:11:50: added the "whether life has any kind of point" just to make sure 21:56:40 20:12:16: Sorry 21:56:40 20:12:28: i forgive you 21:56:40 Yes, itidus20. 21:56:43 bad Sgeo 21:56:44 bad 21:56:49 "The Titanic is unsinkable." "I believe you bro." 21:56:52 That very clearly makes your point. 21:56:54 itidus20: "All integers are either negative or positive." 21:56:59 itidus20: are the integers omnipotent 21:57:00 "the titanic is sinkable" "oh man omnipotence" 21:57:11 elliott, I like River Song 21:57:13 ... 21:57:15 ........................ 21:57:19 ....................................................................................................... 21:57:22 elliott: what's 0 21:57:24 monqy: he's saying that the only way for the titanic to be not-sunk in all possible universes is for the titanic to be able to meld reality itself so that this does not happen 21:57:24 . 21:57:37 monqy: which is sort of reasonable enough, in that it basically has to override physics 21:57:50 monqy: and the only way to do that without contradicting the laws of physics is to stop all world-states where it sinks from happening 21:57:53 i.e. be "omnipotent" in a sense 21:57:55 but come on 21:58:04 elliott, a block of styrofoam is unsinkable. 21:58:06 it clearly doesn't apply to tautological statements, i.e. anything mathematical. 21:58:12 Phantom_Hoover: that's a tautology 21:58:19 meld? now you're just making up words. 21:58:29 By contrast, I can say with mathematical certitude that there exists at least one possible universe where the Titanic sank 21:58:34 it's true that non-tautological statements (i.e. statements that can be false in a possible world) cannot be guaranteed to be true without some sort of filtering of states being done 21:58:44 NihilistDandy: right 21:58:51 i guess it's not really clear how omnipotence comes in because like 21:59:01 there is only one world that actually happens, and infinite possible worlds 21:59:06 and you can't change the possible worlds 21:59:13 so i dunno, i guess it just gives you great luck 21:59:14 whatever 21:59:15 point is 21:59:18 the integers aren't omnipotent 21:59:26 Right 21:59:39 that's an excellent point to make. 21:59:45 Though that'd make a great next step in the vein of Flat(ter)land 21:59:52 I don't want to rush things too much, but my intended focus was that qualities other than unsinkability can be applied to humans and their behavior. 22:00:01 oklofok: it is. 22:00:04 "Abraham and the Integers" 22:00:04 i'm sure we can all agree on that. 22:00:08 hmm well 22:00:13 there's a lot of "the integers are god" type sentiment 22:00:14 so maybe 22:00:14 the integers 22:00:15 ARE 22:00:17 omnipotent???? 22:00:19 But I don't know math. :D 22:00:27 but then so is the set {{}}, because all of its elements are {} :/ 22:00:29 Or else "the natural numbers are god" if you prefer that. 22:00:32 oh wow 22:00:36 all mathematical objects are omnipotent 22:00:39 i like this itidus20 i like it 22:00:55 20:14:27: I assumed it was that crystal-cola troll, but then I looked at the logs and crystal-cola said that stuff in response to famous bisexuals. 22:01:07 Phantom_Hoover: Come on, you don't have to belittle fax by pretending you don't know who e is. 22:01:10 Let's go tell #math that we've proved the existence of god 22:01:17 elliott, erm, yeah, that was unclear. 22:01:41 -!- pikhq has quit (Ping timeout: 240 seconds). 22:01:42 Infinitely many gods, even 22:01:43 I don't think fax is even intentionally a troll, e's just... really bad at this social interaction stuff. 22:01:45 It was "that time crystal-cola trolled". 22:01:48 Ah. 22:01:55 -!- pikhq has joined. 22:01:56 elliott, come on, he admitted that was trolling. 22:02:01 * itidus20 is glad that something he said meant something to someone else. 22:02:24 Phantom_Hoover: A daring one who would be sure of fax's gender after all this time :-P 22:02:25 god created the natural numbers, the rationals were done by man and the work was finally completed (topologically) by satan himself 22:02:30 But yes, it was trolling. 22:02:33 It was just... really bad and obvious trolling. 22:02:35 Does that even count. 22:02:38 `addquote god created the natural numbers, the rationals were done by man and the work was finally completed (topologically) by satan himself 22:02:39 511) god created the natural numbers, the rationals were done by man and the work was finally completed (topologically) by satan himself 22:03:36 20:21:37: Unless the textbook involves personal sexual experiences. Which would be a really weird textbook. 22:03:41 the sgeo guide to calculus 22:04:13 ok.. 22:04:21 Why 22:04:22 does any point conform to a line? 22:04:27 Why was he even saying that. 22:04:31 itidus20, what does that actually mean? 22:04:37 I'd like to write that textbook 22:04:42 hmm or is it.. 22:05:01 ais523: how easy is it to write the function "0 ==> 0; x > 0 ==> 1" where x is guaranteed to be a church numeral? <-- it's easy enough in underload at least. lessee, (!())~^(!())~^ i think 22:05:23 well, i think its useful to think of a rule as a line 22:05:27 oerjan: yes but underlambda has all these fancy things :D 22:05:33 elliott: it's very easy, you basically, just do (0 to the power of (0 to the power of n)) 22:05:37 Phantom_Hoover, on the relevancy or lack thereof of sexual orientation in writing textbooks 22:05:38 which is what oerjan's code above does 22:05:47 humm 22:05:49 Sgeo, why was that even a topic of discussion. 22:05:50 Oh god. 22:05:57 oklofok was writing a textbook, wasn't he. 22:05:59 and 0 to the n is generally useful enough that it'll be a single character in Underlambda 22:05:59 an object cannot stay on a line forever 22:06:06 itidus20: what if it's a point? 22:06:07 ais523: fair enough; I think your incremented IO formulation is better if you say "false" than 0; it seems less arbitrary 22:06:12 Sgeo: Homosexuals are better at computer science, heterosexuals are better at analysis? 22:06:12 although fails to explain why you need to increment, I suppose 22:06:17 elliott: but then you have more than one type of true 22:06:21 ais523: I was just wondering how easy it was to write a "if non-zero" in Underlambda 22:06:26 " oklofok was writing a textbook, wasn't he." <<< xD 22:06:26 I should very carefully state that my math is the lowest in the room. 22:06:27 Pretty easy, it seems 22:06:28 yep 22:06:32 Fails on non-Smith numerals right? 22:06:38 Smith numerals? 22:06:39 itidus20: but Sgeo is in here? 22:06:45 i write math in a pretty boring way usually actually 22:06:47 elliott, dammit, you beat me to it. 22:06:48 elliott, is my math really that bad? 22:06:52 ais523: Underload numerals aren't Church numerals, they would need an extra caret after it 22:06:57 Sgeo: no, i'm just being snarky :) 22:06:58 elliot: I'm serious.. I am not a math guy 22:06:58 you don't need to spice it up 22:07:01 Sgeo, no, but you are really weird about it. 22:07:15 You're actually *scared* of it, rather than incompetent. 22:07:17 ais523: So I gave oerjan the task of renaming them and now you have an eponymous numeral representation :-P 22:07:20 heh 22:07:20 ais523: perhaps no object is a point 22:07:35 itidus20, or perhaps... ALL the objects are points. 22:07:40 But yeah, I think that only works on Smith numerals, which is fine ofc when you're dealing with streams 22:07:54 * Sgeo doesn't want to think of himself as scared of math 22:07:55 ais523: hmm, it would be nice if you could generalise "incrementing" to arbitrary quotations... feels gross to have all streams forced to use integers 22:07:57 3 objects will eventually lose synch from a line 22:08:01 elliott: what else would you want it to work on? 22:08:01 I consider myself to like math :( 22:08:02 Phantom_Hoover, itidus20: but then they'd be omnipotent 22:08:05 you can't do it on arbitrary functions 22:08:07 ais523: every object 22:08:12 without being able to solve the halting problem 22:08:14 ais523: so you could map a stream of (x :: X)s to false and f(x) for some f 22:08:17 ais523: of course you can 22:08:20 Sgeo: What kind of math do you like? 22:08:23 monqy, oh, of course. 22:08:30 ais523: just wrap the quotation somehow 22:08:32 I consider myself to like math :( 22:08:36 in a way that makes it distinguishable from 0 22:08:41 no 3 objects in the universe will stay in line forever (but this is just using the impermenance rule :-s ) 22:08:45 You've repeatedly said you don't like formal science because of the maths. 22:08:52 itidus20, ...impermanence rule? 22:08:55 elliott: you mean boxing objects into a standard form and tagging them to say what they are? 22:08:59 but that's what Feather does 22:09:06 Phantom_Hoover: Not that I would call a lot of what the formal sciences do "math" :D 22:09:10 buddha gotama's rule that everything comes to an end 22:09:12 ais523: argh, shut up :D 22:09:20 Phantom_Hoover: But at least they beat the social sciences 22:09:22 ais523: I'm just saying that anything that can only handle integers sucks :P 22:09:22 NihilistDandy, oh come on. 22:09:26 and is overcomplicated for Underlambda 22:09:28 then again my mentor told me buddha wasn't that great at math 22:09:32 you could make it handle, say, strings too 22:09:33 NihilistDandy, physics is completely mathematically modelled. 22:09:39 haha 22:09:40 itidus20, um... I suppose that's true? 22:09:43 Phantom_Hoover: Not rigorously 22:09:46 NihilistDandy: Now now, Phantom_Hoover's literal hate of anyone who does a soft science is bad enough. 22:09:47 NihilistDandy, yes? 22:09:49 By contrast, I can say with mathematical certitude that there exists at least one possible universe where the Titanic sank <-- rubbish, it was a coverup and it was really abducted by aliens 22:09:51 has itidus20 misinterpreted what the channel's about? 22:09:53 NihilistDandy: Now now, Phantom_Hoover's literal hate of anyone who does a soft science is bad enough. 22:09:54 I don't think I like my math getting mixed up with practicality. Also, I need paper or a paper like thing, it's been a while 22:09:54 What? 22:09:58 ais523: no, astoundingly 22:10:05 have I, then? 22:10:10 I thought it was about esoteric programming languages. 22:10:10 ais523: perhaps :-) 22:10:11 xD 22:10:16 it is 22:10:17 itidus20, it is, ostensibly. 22:10:19 woot 22:10:20 well, supposed to be 22:10:24 What? 22:10:32 Phantom "Kate Beaton is literally the only humanities major I respect" Hoover 22:10:35 What? 22:10:36 " I don't think I like my math getting mixed up with practicality." <<< seconded 22:10:44 elliott, define:hyperbole 22:10:46 oklofok: Thirded. 22:11:03 Fourthed. 22:11:12 ok 22:11:13 Phantom_Hoover: Define:sarcasm on my original statement 22:11:18 the room has spokened 22:11:18 there's a lot of "the integers are god" type sentiment <-- a kroneckal mistake 22:11:18 seventhed 22:11:31 oerjan: *sigh* 22:11:34 what did it said 22:11:36 But also funny 22:11:49 NihilistDandy isn't used to oerjan's puns by now? :D 22:11:57 it said that math mixed with practicality is not popular 22:12:10 elliott: Usually I am, but sometimes... sometimes I get blindsided 22:12:14 itidus20, no, we just like counting. 22:12:16 it's popular amongst bad people 22:13:14 So, my mom believes that the brand-name of a food in a supermarket tells her information about the food. It is something I have to slowly educate her about 22:13:26 itidus20: Math is about pi and the Fibonacci sequence, obviously. The way people go on about differentiable manifolds and assembly maps, you'd think they were somehow conceptally different from those foundations. 22:13:57 itidus20: oh dear, you might be in a competition with Sgeo for misinformed parents there 22:14:08 but at least your response to the situation is a sane one 22:14:14 ais523: What do Sgeo's parents think? 22:14:14 itidus20: like what information 22:14:22 the sgeo guide to calculus <-- you've never seen curves so smooth 22:14:30 :DS 22:14:30 oerjan: auuuuuuuuugh 22:14:31 NihilistDandy: I don't know, my mind blotted it out to save me from the stupid 22:14:32 * NihilistDandy claps 22:14:37 I'm sure other people here can remember, though 22:14:37 that the brandnamed one is inherently superior 22:15:05 Probably the stupidest bit is that he's studying at a school without a CS program. 22:15:12 At his father's suggestion. 22:15:17 She also believes things that are written on the packaging like fat-free.. or approved by such and such a foundation 22:15:27 pikhq: Wut. God why 22:15:34 Is... is ais523 insulting someone. 22:15:37 NihilistDandy: He's getting some sort of IT degree. 22:15:38 NihilistDandy, god only knows. 22:15:48 Phantom_Hoover: no, well only indirectly, and not someone here 22:15:50 NihilistDandy: Which requires more *business* classes than math. 22:15:54 Phantom_Hoover: ais523 hides his scheming plots behind a veneer of objectivity. 22:15:56 RUN WHILE YOU STILL HAVE A CHANCE 22:16:01 * Phantom_Hoover runs 22:16:06 pikhq: I used to be in that situation. My mother thought I was doing CS. I had to explain to her that she was wrong and possibly broken 22:16:12 can't I be objective /and/ insult people? 22:16:15 ais has also taken a lot of business stuff 22:16:21 NihilistDandy, what were you doing? 22:16:25 My dad used to explain that the company gets paid a fortune to put their foundation's logo on the food and that, foods without the logo could potentially pass the standards to have the logo. 22:16:30 oklofok: I'm having trouble parsing your sentence 22:16:32 NihilistDandy: "wrong and possibly broken" X-D 22:16:34 Phantom_Hoover: Information Security and Forensics, they called it 22:16:37 oklofok: Calc I is the highest math class he is required to take. 22:16:42 or at least, resolving the words in it into possible meanings for those words 22:16:47 Mostly code monkeying and networking 22:17:04 He could fulfill the programming requirements with Visual Basic. 22:17:07 It was at RIT, though, so it's not like it was some nonsense program 22:17:10 It just wasn't my style 22:17:59 ais523: So I gave oerjan the task of renaming them and now you have an eponymous numeral representation :-P <-- wait i recall there was a discussion, but i don't recall that i was the one who suggested naming them after ais523 22:18:23 oerjan: you did, after the 22:18:25 friends of smith thing 22:18:26 that church thing 22:18:26 Phantom_Hoover: Now I'm doing CS and pure math at UVM. Much happier :) 22:19:14 itidus20: I can believe that 22:19:25 itidus20: that any two points lie on a unique common line is one of the famous ancient greek axioms of geometry. or was that postulate. 22:19:41 in electronics, multimetres cost about ten times as much if they've actually been measured to make sure they measure correctly 22:19:47 even though it's the same both way s round 22:19:49 *ways 22:19:49 elliott: My mother thought (until I corrected her) that "computer science" was what gave me insight in to how to fix her computer problems 22:19:55 *into 22:20:07 NihilistDandy: I would like to say that "computing theorist" would solve this problem, but it probably wouldn't :P 22:20:10 It has "comput" in it 22:20:18 Exactly 22:20:20 NihilistDandy: my mother came to me in a panic today, because she'd tried to turn a computer off and put it into standby instead, and in the meantime removed a USB stick containing a document she was editing 22:20:43 I will never cease to be amazed at how much distress computers can cause unsavvy people 22:20:58 I wonder if we could sue major software manufacturers for the grief? :P 22:21:03 I will never cease to be amazed how much distress they cause the savviest people 22:21:10 and was then terrified at the save-as dialog 22:21:15 The people in the middle are pretty safe 22:21:19 when we told her that was probably the best option 22:21:19 NihilistDandy: indeed 22:21:38 " oklofok: I'm having trouble parsing your sentence" <<< you, as well, have taken many business type of thing classes. 22:21:40 NihilistDandy: indeed 22:21:44 oklofok: not many 22:21:48 ais523: Your mother is the most adorably strange woman I've ever heard of 22:21:53 two a year for four years, and that was far too many 22:22:03 NihilistDandy: sounds like a normal non-savvy person to me 22:22:03 NihilistDandy: not really, most computer users are much worse 22:22:12 you can cause complete havoc by rearranging icons on most people's desktops 22:22:16 Windows power users, as insane as some of the things they do are, do seem to be rather happy with computers 22:22:19 (where by most, I just mean >50%, not ~99%) 22:22:20 Mostly because they're sure of everything 22:22:26 Yup 22:22:44 elliott: it was such a relief to me when I moved to Linux and no longer had to understand Windows 22:22:48 haha 22:22:55 it's a moving target, even though I understood it once I no longer do 22:22:55 I just make sure I can do everything I need to do daily on the big three platforms, and that I know some neat tricks for certain things on each one 22:23:02 I know that computers cause me a lot of grief :/ 22:23:03 (I used to write Win16 software for fun) 22:23:09 Sometimes I wonder if it's worth it 22:23:14 Probably not, but it's what I'm good at 22:23:41 elliott: how long did it take you to work out what File | Save As did? 22:23:49 I know I didn't work it out immediately, although it was quite fast 22:23:52 is there any way we can use our computer-related skills without actual computers? 22:24:04 ais523: I don't have any recollection of doing so; I started using Windows when I was three years old 22:24:09 olsner: programming skill works offline 22:24:10 elliott: wow 22:24:17 ais523: I have no idea how I learned to type, either 22:24:29 elliott: heh, I was taught to type formally 22:24:32 I have a suspicious feeling that it may be almost as ingrained as my knowledge of English 22:24:36 Sometimes I think I should hang up my null pointers and start a farm in Nebraska. Then I remember that the horror of being constantly surrounded by sunlight and shit is what got me into computer science in the first place and, well... 22:24:39 then ignored all that and taught myself how to do it without jamming fingers on the home row 22:24:45 I'm still really slow at using most GUIs though :/ 22:24:54 Well, not really, but quite 22:24:58 im elliott 22:25:09 I see a lot of videos where people move the mouse at record speed clicking menus and the like without even pausing 22:25:15 I could never do that 22:25:26 Not on a laptop, no. 22:25:27 Keyboard shortcuts for lyfe, yo 22:25:30 guis make me sad 22:25:32 elliott: I used to be able to do that, with an actual physical mouse 22:26:43 hmm, I think I must've learned about "save as" in text mode guis, e.g. quickbasic 22:26:50 My first computer was an Apple, of some sort. Back when things were still really NeXTSteppy 22:26:56 which was before learning about english, of course 22:27:00 What a time that was 22:27:36 olsner: at least English isn't your native language 22:27:37 No, maybe even before that 22:27:51 does anyone else read "with an actual physical mouse" as "an actual live mouse" 22:27:54 It was black and white, I'll just say that 22:28:00 oklofok: For a second, yes, I did 22:28:07 I used to be really good at using MouseKeys 22:28:14 but this laptop now has a touchpad, so I use that instead 22:28:27 (the previous one did in theory but it didn't work; at least, it worked for about ten seconds once, but it mostly didn't work) 22:28:58 Being "good with MouseKeys" sounds like a contradiction in terms 22:29:07 I never much saw the use, unless my mouse broke 22:29:10 :D 22:29:35 NihilistDandy: sometimes you badly need a mouse, though 22:29:46 ooh, I actually completed one level of Adanaxis (the one after the tutorial) with the touchpad 22:29:51 but wow, was that painful 22:30:07 not a stunt-run I'd recommend 22:30:12 in electronics, multimetres cost about ten times as much if they've actually been measured to make sure they measure correctly <-- does that mean it's cheaper to buy 9 and measure them yourself? 22:30:20 oerjan: probably 1 and measure it yourself 22:30:27 the problem is that the measuring equipment is pretty expensive 22:30:45 I suppose you could buy three and take the majority opinion 22:37:35 ...and the moment i finish reading scrollback, everyone has stopped talking 22:37:43 heh 22:37:54 I have been talking, but in #nethack because I'm in a nethack tournament 22:38:21 oerjan: :D 22:38:27 oerjan: just logread scrollback 22:38:30 then i'll logread your logreading 22:38:32 then we can talk forever 22:38:39 eek 22:38:46 sounds like some kind of correspondence IRC 22:39:13 String[] ConfigArray = new String[21]; 22:39:22 can't get over how bad this plugin's configuration system is 22:40:13 ouch 22:40:26 nice 22:41:33 ais523: it gets better 22:41:36 ConfigArray[0] = simplesaveproperties.getProperty("save.use"); 22:41:37 ConfigArray[1] = simplesaveproperties.getProperty("save.interval"); 22:41:37 ConfigArray[2] = simplesaveproperties 22:41:37 .getProperty("save.message.starting"); 22:41:37 [...] 22:41:37 ConfigArray[14] = ""; 22:41:39 ConfigArray[15] = ""; 22:41:41 [...] 22:41:49 it's faster than a hashtable lookup! 22:41:54 elliott: is getProperty using reflection, there? 22:41:59 and that basically is a hash table 22:42:01 ais523: no, it's just reading from a .properties file 22:42:02 with a very specific hash function 22:42:07 and that was a joke 22:42:20 pro of bukkit plugins being so easy to write: I can look at most plugins and think "yup, I could write that in a day or two" 22:42:31 con of bukkit plugins being so easy to write: people like this can write plugins 22:42:40 and then i have to try and make their plugins work 22:42:49 elliott: or just write it yourself in a day or two? 22:43:14 What is bukkit plugins? 22:44:08 Plugins for bukkit? 22:44:32 But what is bukkit? 22:44:50 Minecrafty things? 22:46:14 elliott: or just write it yourself in a day or two? 22:46:19 yes, but that delays the srver launch :) 22:46:19 server 22:46:29 not if the existing plugins take more than a day or two to figure out 22:46:52 zzo38: Bukkit is an API for writing portable plugins to change the game mechanics or add various server features to any supporting Minecraft multiplayer server 22:46:58 ais523: true 22:47:13 ais523: but it's best to try first, because usually it'll take much less 22:47:32 and by the time I realise rewriting would have been quicker, making the existing plugin work would probably add less time to the total than rewriting it from scratch 22:47:33 try rewriting first? or using the existing one first? 22:47:43 olsner: :-P 22:47:43 Like what kind of game mechanics and server features do you change? 22:49:06 zzo38: well, there are plenty of things that adjust the damage various monster attacks, fall damage, etc. do; there are plugins to protect blocks in certain areas from being created and destroyed by various users, and to stop people opening chests owned by others; there are plugins that add whole new game mechanics and blocks to the game; there are plugins that add portals that go to different alternate worlds; there are plugins to allow the serv 22:49:06 er admin to create and edit blocks on a mass scale with commands... things that add various features to the chat system, etc. etc. etc. 22:49:12 CAMPING MINIGAME 22:49:36 this particular plugin just adjusts the interval that the server saves the world in, and also periodically saves to a backup folder whenever anyone is online 22:49:37 OK 22:50:10 How many people can you reasonably have on a server at one time? 22:50:39 NihilistDandy: Depends on how much money you have. 22:51:05 NihilistDandy: The reddit servers have... god, how much is it, Phantom_Hoover? 22:51:07 A hundred? 22:51:22 So for a reasonable hobbyist operation, probably no more than 10 22:51:41 And probably fewer than that, anyway 22:51:43 NihilistDandy: Eh, if you go with one of the "Minecraft server hosts", you could easily do twenty 22:51:45 Or thirty 22:51:47 Ah 22:52:15 Mostly I'd just like to see a huge one, with enough people to reduce the landscape to bedrock within a few days 22:52:20 I'm just doing it on my twenty-dollar-a-month one gig of RAM VPS, so something like seven would be the maximum before I'd see serious strain, I suspect, although that's with rather worst-case conditions (nobody sharing loaded chunks, etc.) 22:52:57 Or *a* day, given the obsessive quality of Minecraft 22:52:58 NihilistDandy: #esoteric-minecraft if you're interested; we've had a server before, but it hasn't been updated in a rather long time so I've got impatient and am starting my own. 22:53:46 Could be neat. I haven't played it online, before 23:25:44 I think LLVM trampolines seem to be more useful than GNU trampolines. 23:28:57 you think they seem? should be easy to verify what they actually seem like :P 23:29:35 I think they seem 23:56:08 -!- pingveno has quit (Quit: Changing server). 23:56:09 -!- FireFly has quit (Quit: swatted to death). 2011-07-18: 00:01:04 -!- zzo38 has quit (Quit: killed to death). 00:01:30 -!- pingveno has joined. 00:05:54 -!- zzo38 has joined. 00:15:26 i found an interesting reddit comment on reverse engineering and (somewhat) haskell by copumpkin: http://www.reddit.com/r/haskell/comments/iqz0l/reverse_engineering_of_compiled_haskell/c264g5b 00:15:49 ohai 00:15:53 stalking.jpg 00:16:14 well i only noticed it was by copumpkin after i'd starting reading it 00:16:19 *started 00:16:20 :) 00:16:26 fine, stalking.png 00:17:37 I have re-read the panels around the end of act 4 00:18:22 It makes it obvious that it's refereing to it, but I'm still lost 00:18:46 what? 00:18:57 elliott, wrt Homestuck update 00:19:18 What about it 00:19:52 oerjan: I'd still be curious to feed hex-rays a ghc-compiled binary 00:19:54 pity I don't have hex-rays 00:20:11 I bet even function boundary analysis in basic IDA would fail, though 00:20:46 Sgeo, elliott is going to mock you about this, but he was completely lost by the ectobiology stuff when I read it with him. 00:20:47 I have found myself wanting to use a PHI command in C, although of course C doesn't have that. 00:20:56 And he was reading it for the second time. 00:26:30 Wait, why the heck is that the highest rated comment....? 00:26:40 this confirms it, YouTube commenting has now become a parody of itself 00:27:02 amazing 00:27:13 I've been suspecting it for a while, but not had solid proof 00:28:23 ais523: you _do_ know what the top voted reddit post ever is, don't you? 00:28:36 no, I don't 00:28:53 see http://www.reddit.com/r/all/top/?sort=top&t=all :) 00:29:12 heh 00:29:17 what does the icon next to it mean? 00:29:53 also, is the person who made it famous/special in any way that might lead to a post of theirs getting singled out? 00:30:19 ye 00:30:20 s 00:30:25 surely you know qgyh2? 00:30:37 he was the most famous user of old reddit 00:30:44 I don't, I don't really use reddit 00:30:49 I read proggit for the comments, but that's about it 00:30:53 I don't read homepage, for instance 00:31:35 elliott, was this before or after the test post? 00:32:22 Phantom_Hoover: much before 00:32:49 elliott, ah, so it was the power user crap Reddit prides itself on not having? 00:33:40 ais523: i'm not sure what that icon means, i _thought_ it meant a picture was missing but that's a self post so cannot have any... 00:34:09 Phantom_Hoover: no, qg was cool 00:34:35 elliott, well sure, but the fact that it was upvoted wasn't a random thing. 00:34:36 hm no looking at the frontpage the missing picture icon is an alien with a camera and a question mark 00:34:43 oerjan: it's something i've never seen before, probably added just for that post 00:34:43 oerjan: maybe that's why it's missing 00:34:49 Phantom_Hoover: Well sure, but come on, it's a one-off 00:36:16 ais523: but there other self posts which have no icon 00:37:26 http://www.reddit.com/static/self_default2.png 00:37:28 it seems 00:37:33 maybe using a question mark changes it:) 00:37:35 it :) 00:41:38 -!- zzo38 has quit (Remote host closed the connection). 00:43:15 oh i finally found one deep down in the frontpage which has it http://www.reddit.com/r/gaming/comments/is1s7/extralivesorg_is_trying_to_raise_8500_to_build_a/ 00:44:11 and moreover this one has the A+ icon for a self comment as well 00:44:34 while i've found a couple that have neither 00:44:44 *Aa+ 00:45:18 oh well maybe there's some obscure setting which does it 00:59:32 oerjan: you interested in reversing? 01:02:57 not very deeply, no 01:03:07 * Phantom_Hoover → sleep 01:03:12 -!- Phantom_Hoover has quit (Quit: Leaving). 01:07:21 -!- CakeProphet has quit (Ping timeout: 264 seconds). 01:18:05 -!- pumpkin has joined. 01:18:06 -!- pumpkin has quit (Changing host). 01:18:06 -!- pumpkin has joined. 01:18:36 -!- copumpkin has quit (Ping timeout: 276 seconds). 01:19:44 -!- pumpkin has changed nick to copumpkin. 01:34:25 -!- myndzi\ has joined. 01:38:06 -!- myndzi has quit (Ping timeout: 276 seconds). 01:40:15 -!- Sgeo_ has joined. 01:43:33 -!- Sgeo has quit (Ping timeout: 255 seconds). 01:46:21 -!- pumpkin has joined. 01:46:46 -!- copumpkin has quit (Ping timeout: 240 seconds). 01:48:14 -!- copumpkin has joined. 01:48:14 -!- copumpkin has quit (Changing host). 01:48:14 -!- copumpkin has joined. 01:50:31 -!- pumpkin has quit (Ping timeout: 250 seconds). 01:56:36 -!- cheater_ has quit (Ping timeout: 255 seconds). 01:58:51 -!- Sgeo_ has quit (Ping timeout: 255 seconds). 02:03:29 -!- Sgeo has joined. 02:04:06 I need to write a patch for XChat 02:04:17 To stop its notifications from telling me that I disconnected 02:04:31 Or at least, limit it to only once in x amount of time. 02:07:19 stop disconnecting :P 02:08:49 -!- cheater_ has joined. 02:10:02 * Sgeo wonders if XChat scripts have access to that stuff 02:22:04 elliott, how much does prgmr HD space cost? 02:22:45 Um? 02:22:52 What do you mean/why do you want to know? 02:23:07 I want to know because I'm considering trying prgmr 02:23:20 For what 02:23:27 To play around with 02:23:54 That seems like a bad reason to spend at least ten dollars a month :-P 02:24:01 But it increases with the RAM. 02:24:20 elliott, so what VPSes are more suited to just playing around with? 02:25:00 You have a Linux box with an IP already, don't you? 02:25:16 A VPS is for when you have actual services that you want to serve twenty-four seven :P 02:25:22 I mean, your money, but... 02:25:34 (Well, probably my dad's money) 02:25:36 You're not gonna find anything more than a few dollars cheaper than prgmr and what you do find will be a lot worse. 02:26:16 I want toy services that I want to serve 24/7 02:27:27 Your usecase sounds rather badly thought-out 02:27:30 Or rather, not 02:27:42 (thought out, that is.) 02:28:36 IRC bots, maybe some Second Life stuff, wanting to play with web stuff without being restricted in my choice of language 02:28:51 (Web stuff that other people can actually use) 02:29:31 You could just leave your laptop on, then it costs [fraction of electrical bill] rather than whatever prgmr does:P 02:29:33 does :P 02:29:37 But sure, prgmr would fit for that I guess. 02:55:33 -!- cheater_ has quit (Ping timeout: 255 seconds). 02:59:26 * Sgeo vaguely wonders what happened to a certain DJ that shares his name 03:00:06 well we found it confusing with several people named the same thing, so we killed him. 03:00:18 it was a fair coin toss, though 03:00:20 actually, we found it confusing with several people named the same thing, so we killed you 03:00:30 and are not sure why your client is still sending messages 03:00:53 ais523: ...are you sure you remember the right coin result 03:01:22 no 03:01:35 hm, awkward 03:01:47 -!- zzo38 has joined. 03:05:59 Actually, each of oerjan and ais523 was tasked with killing one of you if the coin flip went that way, but they both misread the coin and killed both of you. 03:06:06 Still, the ambiguity was resolved. 03:08:12 -!- cheater_ has joined. 03:09:16 oh well 03:09:31 @dice 1d2 03:09:32 1d2 => 1 03:10:03 -!- BeholdMyGlory has quit (Remote host closed the connection). 03:26:39 -!- azaq23 has quit (Ping timeout: 276 seconds). 03:43:51 -!- elliott has quit (Remote host closed the connection). 03:44:33 -!- elliott has joined. 03:44:40 -!- elliott has quit (Changing host). 03:44:40 -!- elliott has joined. 03:59:48 -!- elliott has quit (Remote host closed the connection). 03:59:51 -!- elliott_ has joined. 04:22:55 My brother made up his character's name by now. He named his character "Also". 04:23:42 X-D 04:28:09 zzo38 is part of this group, and also his brother 04:28:46 Now I should *also* put it into the computer. 04:30:39 also puns can easily fall flat if you don't get the grammar just right 04:45:58 http://jeffkatz.typepad.com/.a/6a0120a721c2d7970b0133ed630c7b970b-800wi Delicious, delicious heart attack. 04:47:04 I am American and I approve of this murder weapon. 04:52:19 -!- elliott_ has quit (Remote host closed the connection). 04:52:25 -!- elliott has joined. 04:57:23 I've made a couple of those 04:58:14 and you're still alive? 04:58:41 he didn't say he ate them 05:00:16 you'd inhale the cholesterol 05:01:56 -!- oerjan has quit (Quit: Good night). 05:05:22 they were delicious 05:05:28 but I did feel rather gross after eating them 05:05:46 Clearly copumpkin is as deceased as I am. 05:08:25 oh wow java generics are crappy 05:09:16 oh wow water is wet 05:09:33 :) 05:09:41 but they're, like, _really_ crappy :O 05:10:47 but water is, like, _really_ wet :O 05:10:54 like, completely drenching 05:11:45 perhaps wetness is the extent to which a thing is saturated with water 05:12:27 does that mean water is the wettest thing of all? 05:12:35 it does 05:12:36 oh, phew, they're not _quite_ as bad as I thought I'd just proved 05:12:52 but wetness might relate to liquids, which would complicate things 05:12:59 since not all liquids are water 05:13:51 it also brings up the question of whether ice is wet 05:14:22 man, that's deep 05:14:32 So, in wetness, is water a necessary element? is liquid state a necessary element? 05:14:48 Can you have something wet which is neither water nor liquid 05:16:09 Is humid air wet? Is mercury? 05:16:20 It's a natural word, so its probably ambiguous at best. 05:16:22 I am showing off because gregor is here 05:16:57 ok case closed 05:17:15 Not capitalizing my name or using punctuation isn't particularly impressive showing off ... :P 05:17:24 I didn't know which way to go 05:17:34 When Particle Man is in water, does he get wet, or does the water get him instead? 05:30:17 ais523: are you there? 05:30:21 In Soviet Russia, wet gets YOU!! 05:30:32 elliott: yes 05:30:40 ais523: haskell/java bridge using jni 05:30:44 it's rare for me to leave the computer on and unattended overnight 05:30:49 therapy is available down the hall. 05:30:53 sorry for the nightmares. 05:30:54 in the daytime, it's possible my boss has contacted me or something like that 05:31:03 you can only avoid reading that line for so long, ais523. 05:31:09 elliott: that's no more insane than haskell/imperative language, isn't it? 05:31:23 ais523: you're saying that involving Java in something doesn't make it more of a terrible idea? 05:31:34 that would be some kind of Act of Maximum Terribleness 05:31:36 elliott: only marginally 05:31:38 Haskell/JavaScript bridge 8-D 05:31:44 I don't consider Java some sort of great, all-encompassing evil 05:31:49 like, killing a baby with Java isn't really worse than just killing a baby, I suppose 05:31:49 just an ordinarily evil 05:31:53 *ordinary 05:31:59 almost mundane, in fact 05:32:00 ais523: OK, but as a language, it sure doesn't like talking to other people :P 05:32:07 Of course Java is mundane, it's just /strange/ and mundane 05:32:25 Java constantly surprises me, and I'm hardly inexperienced with C and Python and other such "boring languages" 05:32:36 really? 05:32:38 it doesn't surprise me much 05:32:39 Gregor, I think I have use for that 05:32:50 ais523: that may be cause for concern :-) 05:32:56 * Sgeo abruptly gets shot 05:32:59 ais523: but yes, it honestly does 05:33:02 it's designed exactly like I expect it to be designed 05:33:18 ais523: you expect type erasure? 05:33:21 more abstraction layers than are particularly sane, and a standard library that tries to do everything itself 05:33:45 and yes, but partly because I know that Java's template system is a last-minute hack that was retrofitted to the language 05:33:55 that's unfair 05:33:56 and the name is also weird 05:33:57 that's not an "expectation" 05:34:00 that's cheating :-) 05:34:02 ais523: you expect the rather strange anonymous subclass syntax? 05:34:19 elliott: it's saner than what C++ would come up with for the same thing 05:34:30 that means nothing! 05:34:46 elliott: well, you come up with a better syntax 05:34:59 ais523: Why, when I could come up with a better language? 05:34:59 The C++ template syntax is bad because it uses < > as delimiters even though they also mean less than and greater than signs. 05:35:01 I think you're just not thinking from the Java point of view 05:35:05 It's strange to be able to do that with shortcut syntax in the first place 05:35:16 And certainly not what I'd expect from the Most Boring Orthodox OOP Language Ever 05:35:17 The syntax isn't what's bothersome, although I haven't used Java much. But how do you not have lambdas? 05:35:20 Java is not orthodox IMO 05:35:20 not really, if everything is a class or an object, then what's a new method? a class 05:35:33 so you need to be able to make throwaway classes like that 05:35:40 and the syntax is much the same as defining an ordinary class 05:35:49 except that you put the class definition where the class name should go 05:36:04 Why can't anonymous functions just be syntax sugar for a method of an anonymous class, then? 05:36:06 * elliott steps away from ais523, curls up in a ball, and cries himself to sleep. 05:36:10 Erm, hmm 05:36:23 elliott: I note that C does the same thing, with anonymous structs 05:36:37 struct {int i; float f;} x; 05:36:38 ais523: I wish you were around when Java actually surprised me so I could tell you why 05:36:47 what happens in IDEA, stays in IDEA 05:41:51 Sgeo: Java 8 is actually adding lambdas. 05:42:17 what syntax, incidentally? 05:42:25 pikhq, yay! Now how about all the APIs that don't take lambdas? 05:42:39 Or are they using Runnable or something, which, I _think_ stuff takes? 05:42:47 well, they're just sugar for a five-liner that creates an anonymous inner class 05:43:11 Runnable is sort-of the defacto standard for those if you're just using them as a callback, but taking no arguments and returning void is a bit crippling 05:43:21 Ah 05:43:34 Haven't used much Java 05:43:37 (not /fatal/, but you don't want to have to use stupid workarounds) 05:43:52 The planned syntax is #{ arglist -> code } 05:44:18 /now/ I'm surprised 05:44:22 mostly at the -> 05:44:28 that's such an unjavaish operator 05:45:19 And you can only close over final or "effectively final" variables... 05:45:40 * elliott mostly at the # 05:45:52 i never expect to see that outside of a literal/comment in java 05:46:33 well, it's for consistency with method pointers, isn't it? 05:46:40 pikhq: that restriction's been around for ages 05:46:49 it's to save having to distinguish between current and original value 05:46:55 Effectively final? 05:47:18 Sgeo: Basically, can be declared final without causing a compilation error. 05:47:31 Ah, cool 05:47:46 (Well, cool's the wrong word. But ... smarter than... an unsmart compiler?) 05:48:01 Anyways. It's basically syntactic sugar around anonymous classes. 05:48:18 I suppose it's to make idiots think about whether they mean {final T x = this.x; return new C() {C(){setT(x);} } } or {final T finalThis = this; return new C() {C(){setThingToAccessToGetT(finalThis);} } } 05:48:36 I probably have made minor syntax errors there, because Java more or less requires an IDE to do the boilerplate for you 05:48:41 it's almost as bad as VHDL 05:48:50 Well. Anonymous classes of a single method. 05:49:07 -!- zzo38 has quit (Remote host closed the connection). 05:49:15 yep 05:49:23 And the type gets inferred. 05:49:45 elliott: you'll love this syntax, then (proposed, I'm not sure it was accepted): Math#sin for what is basically #{ x -> Math.sin(x) } 05:49:59 pikhq: type inference? in /Java/? now I'm shocked 05:50:10 ais523: It's about as advanced as C++0x's. 05:50:21 and how advanced is that? 05:50:25 ais523: heh 05:50:49 C++0x is more insane than my mind can easily grasp 05:50:59 I couldn't even follow the move constructor debate 05:51:05 ais523: Pretty much, if you're trying to use #{ } where only a class with a single method is expected, it figures out that you want to use that type. Otherwise it's a compile error. 05:51:07 C++0x is a beautiful, crystalline trainwreck 05:51:12 despite knowing early C++ (really early, before namespaces were invented) 05:51:21 it is the Best language and, therefore, a completely useless piece of shit 05:51:30 *Really* naive. 05:51:36 can anyone here explain move constructors? 05:51:40 but it lead to C++ sudoku! 05:51:47 my guess is no, because they're basically inexplicable 05:51:55 but perhaps someone here is insane enough to grasp them 05:52:05 I mean, I understand the intention and what they're meant to encourage 05:52:25 I just don't get a) why that's considered a desirable feature for a language, or b) any of the millions of details needed for them to work correctly 05:52:42 summarise? opening a tab will crash flash 05:52:44 (this is not a joke) 05:52:49 they also make perfectly innocent-looking code do ridiculous things 05:52:55 (flash /really/ hates pages loading or closing in Chrome for some reason) 05:53:01 elliott: I can't easily, because I don't understand it really 05:53:06 well, 05:53:07 I mean, I understand the intention and what they're meant to encourage 05:53:08 this part 05:53:14 you know what a copy constructor is, right? 05:53:25 it's like that, except you destroy the thing being copied, because it isn't needed any more 05:53:26 yes, it's constructing a new object with just an existing one as an argument 05:53:28 and copying all its fields over 05:53:31 but it's really hard to get right 05:53:33 ais523: wow 05:53:34 ais523: linear typing 05:53:42 ais523: but... at runtime 05:53:50 or wait 05:53:52 is it uniqueness typing 05:53:56 whatever Clean uses for IO, anyway 05:54:08 it's reminiscent of linear typing, at least 05:54:14 The *reason* for move constructors is so that the compiler doesn't have to actually do deep copies for its temporary values. 05:54:18 except that linear typing's "legitimate ways to cheat" are rather unlike C++'s 05:54:33 pikhq: why can't it just use the original value? 05:55:11 mutability? 05:55:20 ais523: Because things tend to get passed *by value* to relevant functions. 05:55:32 but yes, the reason for anything insane in C++ tends to be "performance, even though you'd just use a struct if you _really_ cared" 05:55:32 pikhq: oh right, and C++ doesn't hide calling convention stuff 05:55:42 heh 05:55:47 elliott: that's because C++'s market is very specific nowadays 05:56:08 it's people who care massively about performance, but who can't use C for various reasons, mostly library support 05:56:09 ais523: games programming, application developers (who don't care about the new features), and "specialist" areas? like embedded/realtime stuff 05:56:27 (I don't include needing to use an object-oriented view of things as a reason to use C++, as C is better at that) 05:56:38 `addquote (I don't include needing to use an object-oriented view of things as a reason to use C++, as C is better at that) 05:56:39 512) (I don't include needing to use an object-oriented view of things as a reason to use C++, as C is better at that) 05:56:45 yay, a milestone 05:56:52 e.g. foo = bar + baz + qux; would have to create a value for "baz + qux", to pass it to operator+ for adding bar to get the final value... 05:56:55 i'll delete most of them later :-) 05:57:06 I, uh, think? 05:58:02 pikhq: unless operator+ took references as arguments 05:58:09 which is the standard for arithmetic operators, isn't it? 05:58:23 Oh, right. To *work around that*. 05:58:38 ais523: haha, nice 05:58:43 is there ever really a reason to pass by value in C++? 05:58:44 C++'s semantics are far too complicated. 05:58:45 pikhq: yes 05:58:53 elliott: I dunno, but people *do it*. 05:58:56 elliott: you pass integers and smaller primitive types by value, generally 05:59:19 because if you pass them by reference, the compiler has to find some memory to store them in in order to pass a pointer to them, which is pretty convoluted 05:59:43 ais523: well, yes 05:59:46 I mean non-primitive types 06:00:01 most languages don't even have a /way/ to specify that you want a by-value passing 06:00:10 (as opposed to by-reference) 06:00:15 nowadays, I think value is faster for even structures up to 64 bits wide, with modern compilers and calling conventions 06:00:25 (although this is an implementation detail in the case of immutable objects) 06:00:31 ais523: not many structures are less than sixty four bits wide... 06:00:48 elliott: they are if you go up to Java levels of enterpriseyness 06:00:49 (I would say that int is usually used even when char would do fine, for futureproofing and not-having-to-think-about-it reasons) 06:01:10 if you have nothing but a vtable, for instance 06:01:16 and the vtable is stored as a pointer 06:01:22 a pointer to a pointer would just be ridiculous 06:01:28 clearly 06:01:40 elliott: well, in the minds of C++ users 06:01:40 so what you're saying is, C++ needs opaque typedefs :) 06:01:43 (Haskell newtype) 06:01:53 Badly. 06:01:54 in Haskell, those desugar to the contained value 06:01:58 so there's zero runtime overhead 06:02:29 elliott: gah, never suggest a new feature for C++, even as a joke 06:02:33 haha 06:02:34 the consequences aren't pretty 06:02:50 I'm sad that concepts weren't accepted, those were really what C++ template metaprogramming needed 06:03:00 (he thinks I'm joking) 06:03:00 something wasn't accepted? seriously? 06:03:06 you don't know about concepts? 06:03:14 they were half the size of C++ itself 06:03:17 not if the word has a specific technical meaning in the context of C++ 06:03:18 (hyperbole) 06:03:24 and required a massive gcc fork to implement 06:03:29 presumably to prove it was even humanly possible 06:03:29 aha 06:03:37 ais523: take a skim of http://en.wikipedia.org/wiki/Concepts_(C%2B%2B) 06:03:41 In the pending C++0x revision of the C++ programming language, concepts and the related notion of axioms were a proposed extension to C++'s template system, designed to improve compiler diagnostics and to allow programmers to codify in the program some formal properties of templates that they write. Incorporating these limited formal specifications into the program (in addition to improving code clarity) can guide some compiler optimizations, and 06:03:41 can potentially help improve program reliability through the use of formal verification tools to check that the implementation and specification actually match. 06:03:51 it was kind of like.... typeclasses 06:04:00 except... used as a sort of formal verification system 06:04:02 presumably it's someone trying to embed a different language into an existing one? 06:04:13 ais523: Wikipedia lists no prior art 06:04:19 I suggest a quick read of the article, it's truly jaw-droppingly C++ 06:04:23 apparently too C++ for the committee 06:04:23 hmm 06:04:44 it reminds me of a random reddit poster saying that incomprehensible template error messages were the compile-time version of a segfault 06:04:50 presumably, that's an attempt to statically prevent segfaults 06:04:59 or, metastatically 06:05:15 I really hope they were powerful enough to make a big C++ subset --> C++ template compiler easy-ish 06:05:28 then you could propose to the committee to specify C++ templates based on the C++ semantics itself 06:05:34 thus shortening the report and allowing for further extension 06:05:41 like, say, allowing every C++ feature to be used at the type level 06:06:04 the Java-like solution to this would be to allow templates to extend each other 06:06:08 does the C++ committee take the same crap that the html5 committee does? 06:06:16 it wouldn't /help/, but would be more javaish 06:06:26 itidus20: same crap as in what? 06:06:30 oops i actually meant XML 06:06:40 Ah. Most likely. 06:06:47 i do not know entirely what I mean.. but I hear the ISO is a joke 06:07:07 elliott: OK, the axioms addition is very C++ish indeed 06:07:11 actually, it reminds me a bit of C99 06:07:37 hmm, I see the kind of feel you mean 06:07:42 it's just... on a C++ scale 06:08:12 yep, that's a good description 06:08:34 hmm, this reminds me a bit of listening to a piece of computer game music and trying to figure out what series it comes from by the style 06:08:35 (sorry for fake foreign accent) It is much the feeling that dependancy on C/C++ undermines potential of esoteric languages. 06:08:42 only with programming languages 06:09:00 that's not fake foreign accent, that's just academicspeak 06:09:05 itidus20: C in particular has a view of the universe that was low-level once, but nowadays is an abstraction inversion 06:09:06 or maybe the latter is an absorption of the former 06:09:25 but it's hard to do better 06:09:32 Well, there is danger in dependance. 06:09:35 ais523: I have a feeling the C committee went that way after someone came up to them with a copy of the Lisp Machine ZETA C compiler, and said "explain this". 06:10:11 I've got annoyed with gcc-bf, because I just run into abstraction inversions everywhere, and it saddens me 06:10:24 abstraction inversions? 06:10:33 coppro: java 06:10:38 Wow, coppro asked the question I was going to ask 06:10:38 hmm, that made sense when i typed it 06:10:51 Sgeo: thus proving that neither of you can use Google (you're not ais523, you have no excuse) 06:10:52 A dependance on c/c++ means that GNU can be led along by the c standard. 06:10:55 coppro: basically, when a language provides high-level concepts only, so if someone wants to use low-level concepts, they have to implement them in terms of the high-level concepts 06:10:58 itidus20: well, no 06:11:00 GNU code in GNU C 06:11:06 which are again implemented in terms of low-level concepts 06:11:07 which doesn't advance automatically with the C standard 06:11:07 ais523: ah, yes 06:11:08 do they define their own standards? 06:11:15 itidus20: --std=gnu99 06:11:16 itidus20: they refer to published ones 06:11:17 ais523: e.g.? 06:11:17 which can't change 06:11:23 hmmmm 06:11:29 ok its probably safe 06:11:31 pikhq: the classic example is synchronization in ADA, but most people, including me, don't know how it works 06:11:32 you can change what the latest ISO standard for C is, but you can't change what ISO C90 is 06:11:34 *Ada 06:11:37 but you can see the danger here right? 06:11:44 itidus20: it's just the trust issue. 06:11:50 in the end, you have to (depend|trust) someone. 06:11:55 ais523: No, I mean "in C". 06:12:00 if google and microsoft lobby the standard 06:12:07 ais523: I know what abstraction inversion is, and can think of a few really good examples. 06:12:22 Most obviously, implementing locking primitives in Erlang on top of its messaging. :) 06:12:26 pikhq: hmm... vectorised instructions, perhaps 06:12:43 that's not quite what I mean, though 06:12:48 let me think 06:12:57 they should make a language called stallman 06:13:16 :D every program needs to have the name stallman in the filename to compile 06:13:20 (so you can do locking-based multithreading on top of message-passing multithreading on top of locking-based multithreading!) 06:13:50 smacks my knee with jocularity 06:14:29 itidus20, ...why? No offense, really, but that sounds boring 06:14:56 pikhq: fetch/modify/store's a decent example, I think 06:15:06 in C, all movement of data into and out of caches is implicit 06:15:35 so you have to do silly things normally used only by Vorpal, and weird unusual libraries, or else confusing code that doesn't really mean what it looks like it means, to get your memory access patterns to what you want 06:15:49 Will anyone be mad at me if I strap my hash output language into a sucky thing like BF? 06:15:54 Because I'm uncreative 06:15:58 Sgeo: yes 06:16:01 I won't, but half the channel will 06:16:26 i won't 06:16:28 because i won't care anyway :P 06:16:38 PH will, but PH already hates literally every person on the planet 06:16:49 ais523: Obvious solution is to ban 3/4ths of people from using C ever. 06:17:06 So: Come up with a unique language just to show off the hash output. 06:17:07 Doesn't solve any of the problems with C, but it *does* make them hardly relevant! 06:17:30 Sgeo: have you seen http://esolangs.org/wiki/SLOBOL? 06:17:51 I may have seen it but forgotten everything about it 06:17:56 well, look at it again 06:18:17 it's hash source rather than hash output, but much the same thing 06:18:37 Not really. It's the compiler that has to bruteforce hashes, not the program author. 06:18:54 wow, on NetHackWiki, I just found a disambiguation page with two disambiguation headers 06:19:02 as in, it had to disambiguate what was being disambiguated 06:19:15 pity the other pages linked aren't dab pages too, or it would have been even better 06:19:52 link? 06:20:08 http://nethackwiki.com/wiki/Fire 06:20:22 basically, it's full of all the different pages relating to fire as in burning things 06:20:26 Sgeo: why not just put it on top of BF, it won't really matter 06:20:31 with a header connecting to fire as in firing an arrow 06:20:31 Sgeo: and make cells the size of a hash 06:20:37 and another one about a god in Slash'EM 06:20:54 I think Wikipedia just uses different sections for homonyms like that 06:20:59 elliott, ooh, didn't think of that 06:21:16 Was thinking I'd add ! to the commands, or something 06:22:14 Sgeo: means you get to use fun arithmetic to output the simplest things :D 06:22:26 the simplest quine will be, like, a gigabyte long 06:22:34 so elegant 06:22:55 Assuming there is a quine.. 06:23:14 (Disclaimer: I don't know how you're using hashing in them outputs, but...) If you have a k-bit output from a hash function, and restrict yourself to k-bit inputs for it, I don't think it's very likely the function will be surjective, so you wouldn't be able to generate all possible outputs. 06:24:02 fizzie: didn't the NSA go to a lot of trouble to prove that DES wasn't surjective? 06:24:03 Actually wait, the hash-sized cells restricts the possible inputs to the hash 06:24:35 Which would make it less likely that a quine exists, I thin 06:24:37 think 06:25:09 ais523: Mmmmaybe. It sounds like something that -- especially for a hash function -- would be really tricky to prove. 06:25:09 sgeo: poking light hearted fun at stallman's fixation on which words people use. stallmanhelloworld.gnu .. if gnu is the extension 06:25:14 ais523: Maybe it was the round function? 06:25:28 fizzie: I imagine it was really tricky to prove 06:25:31 at least, it was far from obvious 06:25:41 but they had to in order to ensure that 3DES was harder to bruteforce than DES 06:27:29 fizzie: Sgeo wants a language for which it's unknown whether a quine exists or not 06:27:33 Sgeo: btw don't use dha or whatever 06:27:33 sha 06:27:40 i had an idea about quines 06:27:44 a keyword quine 06:27:50 which produces a quine 06:28:06 would piss people off 06:28:06 elliott, hmm, why not? 06:28:36 presence of the word quine in the file would cause the program to compile a quine of the program" 06:28:47 Sgeo: Because you ideally want the hash to be two-hundred-and-fifty-seven bytes long. The first byte is "how many bytes of this hash to print" minus one. i.e. first byte = 0 means the one byte following will be printed. 06:29:01 Sgeo: So this way we can specify only the valid lengths in the first byte and there are no edge cases. 06:29:28 Sgeo: There's a really nice hash that outputs an infinite stream that you just take the first N bytes of that you want; lemme find it 06:29:32 What if first byte = 0 means that 0 bytes following will be printed 06:29:43 So, 256 byte hash 06:29:46 Sgeo: Well, you could have that, but it means . could be a nop. 06:29:49 Which is not shared with brainfuck. 06:29:52 Oh 06:29:52 And seems kinda grosse. 06:29:59 I mean there's no problem with it. 06:30:02 I just don't like it. :p 06:30:12 A scheme like that sounds like it would make it trivial to just bruteforce a set of hashes that start with "0000", "0001", "0002", ..., "00ff", and then use those for all output. 06:30:13 Sgeo: also, it means that . at the start of the program does nothing, rather than outputting a NUL byte 06:30:16 Which I like less. 06:30:20 fizzie: Oh, hmm, of course. 06:30:52 fizzie: Well, I just cooked it up in three seconds after I told Sgeo that he obviously didn't have arbitrary output at an arbitrary point because ... 06:30:52 sdjfdsf 06:30:54 because 06:31:04 fizzie: Because of lengths etc. 06:31:11 * elliott is dum 06:31:28 Yes. Some sort of "remove trailing nulls" thing might work, except then you couldn't output trailing nulls. 06:31:38 ("Yes" to the lengths thing.) 06:31:40 fizzie: That's also what I said. 06:31:47 Sgeo could cheat and have an "output NUL byte" instruction. 06:31:50 fizzie: Erm. 06:31:52 fizzie: That fails too 06:31:55 fizzie: Just calculate the prefixes again 06:31:59 for each byte you want 06:32:36 No, I mean, remove trailing nulls from the "final output". Okay, I guess that's not going to work if you want some output before the end of the program. 06:32:45 Oh, that's a good idea. 06:32:48 Output transformer. Program can only output 1-255, but this somehow expands to 0-255. 0 is always and only at the end 06:32:53 Sgeo: Do what fizzie said, except don't filter the nuls outputted by @. 06:33:00 Where @ is the nul byte outputter instruction because I said so. 06:33:41 I need to sleep soon 06:33:45 http://en.wikipedia.org/wiki/Very_smooth_hash oh this is cool 06:33:48 really cool 06:34:38 Is it... surjective or non-surjective? 06:34:51 * Sgeo wikis surjective 06:35:00 * Sgeo can never keep the jectives straight 06:35:28 Ok 06:35:49 I want unknown surjectivity 06:36:24 i wasnt suggesting it 06:36:27 i was just calling it cool 06:36:33 Ok 06:37:11 0k 06:38:07 * Sgeo throws his initial idea for making doing computations in a language require reversing a hash out the window 06:38:31 what was wrong with my idea 06:38:40 elliott, what? 06:38:45 goodbye sgeo's initial idea for making doing computations in a language require reversing a hash 06:38:45 I wasn't talking about your idea 06:39:01 i'll miss you 06:39:08 Sgeo: ok 06:41:07 Maybe I should throw it out here to be fixed up: Just stuff separated by ! that when hashed, must result in BF code. 06:41:32 hmm, I'm reading TV Tropes again 06:41:35 because I enjoy it and have time 06:41:39 But then it's too easy to just do a bunch of brute-forcing to get each of the BF commands, then just use that forever 06:41:46 Since no-ops are pretty easy 06:41:48 unfortunately, Firefox 3 opens tabs in IE order rather than Firefox 1 order 06:42:01 this does actually make a huge difference when visiting TV Tropes 06:42:01 which is Chrome order? 06:42:11 probably IE order, everything uses it nowadays 06:42:26 opening a tab next to the page that contained the link you clicked on 06:42:37 ais523: Chrome opens tabs to the right of the last middle-click-opened tab; if you've switched tabs since you last did some middle-clicking, I'm not entirely sure how it decides 06:42:37 (Firefox 1 opened it at the end, leading to you reading in a queue rather than a stack_) 06:42:51 yep, that's IE order 06:42:53 it either goes to the right of the current tab or to the right of the tab bar, it seems 06:42:58 ais523: what, apparent nondeterminism? 06:43:08 I never did figure out exactly what caused which of those to happen 06:43:12 I honestly don't know how it's deciding where to put the first, but I'll just assume it's doing something Terribly Clever 06:43:19 It works for me, anyway 06:44:48 Attention Sgeo: Sleep is not optional. 06:45:03 Yes. 06:45:04 It is. 06:46:36 wow, I was reading TV Tropes and came across a reference to me 06:46:37 that was unexpected 06:46:49 although inevitable in retrospect 06:47:17 ais523: in the nethack article? 06:47:21 * elliott is guessing 06:47:24 indeed 06:47:30 you might even be able to figure out what for 06:47:36 you and your stupid fame 06:47:37 ais523: TAEB 06:47:40 nope 06:47:43 ais523: Ace 06:47:43 if you haven't seen it, http://www.youtube.com/watch?v=D9oMSPzChgk 06:47:47 oh 06:47:50 the speedrun 06:47:52 (he says without clicking) 06:47:54 not that either 06:47:58 speedrun isn't finished 06:48:02 haha, fastest death 06:48:03 it was originally an April Fool's joke 06:48:08 FUCK 06:48:11 that beep hurt 06:48:18 blame the encoder, not me 06:48:19 at the start 06:48:30 is there a slower version............. 06:48:31 or whoever wrote the bootup sequence of DOS 06:48:42 you wouldn't see much more, I gave a transcript in the comments 06:49:06 ais523: RNG cheat, wish for an item, touch it in a way that makes you die? 06:49:10 @kinkkku I quote the submission text: «A female Tourist comes into the dungeon, finds a shiny artifact silver saber (Grayswandir) on the stairs she entered by [...], picks it up (the default options pick up all items you come across), takes damage from touching the artifact (a 1 in 4 chance for an unintelligent crossaligned artifact like the lawful Grayswandir for a neutral Tourist; [...]), and dies from the damage (around a 52% chance for a 06:49:10 starting Tourist [...])» 06:49:10 Unknown command, try @list 06:49:13 ah 06:49:16 thanks, summariser 06:49:19 elliott: that would involve getting control of the character 06:49:28 it took me around 2 and a half million tries 06:49:32 ais523: wat? 06:49:38 at 06:49:40 elliott: that would involve getting control of the character 06:49:44 but eventually, I stumbled across a game where I died before gaining control of the characer 06:49:45 *character 06:49:47 it's theoretically possible 06:49:50 oh 06:49:55 like 06:49:55 touching a cockatrice corpse 06:49:56 on your spawn spot 06:49:59 if you spawned blind 06:50:00 and I knew it was, so just left my computer running for a week playing games until it happened 06:50:03 right? 06:50:05 you don't spawn blind, but you have the right idea 06:50:08 right 06:50:10 same sort of thing 06:50:13 "Grayswandir was generated on the upstairs, he picked it up due to autopickup, and it blasted him." 06:50:18 right 06:50:20 here you go: http://tasvideos.org/forum/viewtopic.php?p=267682#267682 06:50:26 ais523: I thought it meant fastest in realtime 06:50:45 elliott: I finish input before the game loads, is that fast enough? 06:50:45 ais523: also, is that post just what i quoted but with really long aistext in the [...]s? 06:50:49 ah, no 06:50:59 heh 06:51:01 i thoguht you wrote that 06:51:02 but you didn't 06:51:06 thought 06:51:07 it's a transcript of all the text the game would output if I hadn't skipped it 06:51:18 right 06:51:25 I suspect it is fastest in realtime, anyway 06:51:30 anything slower in gametime means actually inputting commands 06:51:37 argh, Patashu, get out of that thread 06:51:38 and that's bound to be slower than ending input before the game loads 06:51:42 I am seriously worried about how tiny the internet is 06:52:03 I literally can't go anywhere without running into someone I've seen before somewhere completely unrelated 06:52:30 ais523: why would input take any sort of time? 06:52:43 elliott: because you overflow the BIOS keyboard buffer eventually 06:52:53 ais523: ugh; write a PureDOS 06:52:55 also, if you type too early, the keys are interpreted as interrupting the boot process 06:53:09 on top of some specification of the xeightsix's semantics 06:53:20 and then normalise its results to some cycles/sec count 06:53:24 nah, the whole point is to emulate the real hardware as accurately as you can 06:53:35 NetHack doesn't _have_ hardware! 06:53:35 I actually had to submit a patch to the emulator so that it would run NetHack 06:53:52 Why wouldn't it run NetHack? 06:53:56 but that was a case of improving its handling of a particular edge case that was nonetheless exploited a lot by DJGPP 06:54:03 Oh 06:54:14 Sgeo: basicaly, DJGPP does __int86 by using self-modifying code to overwrite the argument of an int instruction 06:54:22 :D 06:54:23 and JPC-RR's pipeline was longer than NetHack expected 06:54:25 that is beautiful 06:54:25 *basically 06:54:33 i kind of hate pipelining because of that 06:54:35 and instruction caches 06:54:38 self-modifying code is so nice 06:54:45 so I added code to do a simulated pipeline stall if the code tried to self-modify 06:54:55 it stalls the pipeline a bit faster than real hardware does, but NetHack doesn't notice 06:55:09 and neither would anything else unless it were specifically trying to detect an emulator 06:55:20 (apparently some games have done that as an anti-cheating measure) 06:55:49 also, naughty TV Tropes, assuming I'm male without asking 06:56:00 although I suppose someone who already knew I was might have added that 06:56:20 * elliott tries to track down a citation for ais523 being male with Google 06:56:34 my guess is that it exists but will be nontrivial to find 06:56:55 Wouldn't #esoteric logs work? 06:56:56 http://www.wolframalpha.com/input/?i=User%3Aais523 is the second result for "ais523 male"... 06:57:02 which it can't interpret 06:57:09 that makes no sense 06:57:09 Sgeo: not if google doesn't find them 06:57:30 There are not too many male admins wearing rouge, because I like men in makeup .... We still have one: {{subst:User:Ais523/User wikipedia/RC patrol (NCR)}}. ... 06:57:36 from Wikipedia talk:No climbing the Reichstag dressed as Spider-Man ... 06:57:40 there, ais523 is a male admin wearing rouge 06:57:41 the only one, in fact 06:57:51 elliott: err, that's not a reference to me 06:57:55 ais523: SSSSHHHHH 06:57:58 I might have userfied the userbox in question 06:58:04 but that doesn't imply anything about my gender 06:58:11 (in fact, IIRC I /created/ it) 06:58:27 that quote doesn't even appear on that page, seemingly 06:58:48 I am allergic to cologne, and therefore will need to scale in protest.[citation needed] There are not too many male admins wearing rouge, because I like men in makeup.[citation needed] - Kathryn NicDhàna ♫♦♫ 01:02, 15 March 2007 (UTC) 06:58:57 there 06:59:04 hey, that ... is cheating 06:59:08 ais523: it seems it just picked your signature up because i mentioned it 06:59:10 it's even in an unrelated comment! 06:59:18 and that's not a sig, it's a userbox 06:59:27 my sig has a link to my user, user talk, contribs pages 06:59:28 oh 06:59:30 user twice, in fact 06:59:33 anyway 06:59:37 I was just cheating b- 06:59:40 [PDF] Lamborghini Miura 06:59:40 www.macchinaveloce.com/.../wikipedia-book-pdf_lamborghini-miura_...File Format: PDF/Adobe Acrobat - Quick View 06:59:40 30 Jan 2011 – The three men worked on the car's design at night, hoping to sway ..... Aetherfukz, After Midnight, Ais523, Alanraywiki, Alansohn, Alhutch, ... 06:59:53 what is that even 07:00:14 some spambots were using usernames taken from Wikipedia a while back to confuse spam filters 07:00:17 perhaps that's it 07:00:31 it's brilliant 07:00:32 * elliott concludes that he/she has no real reason to believe that ais523 is male 07:00:50 jokes only ais will get . com 07:01:39 ais523: are you male 07:01:54 what sort of question is that? 07:02:02 ais523: a question that Google will index the answer to :-D 07:04:41 QDB: Best of the Queue 07:04:41 www.qdb.us/queue/best/5 - Cached and i have a fantasy about having 2 men at once: one for .... meh, I've been so busy in RL recently I've hardly been sleeping at all ... 07:04:43 ais is qdb famous 07:04:49 like bash famous but slightly less popular 07:04:55 ok i give up, i'm going to refer to ais523 with spivak from now on 07:05:11 I refer to /myself/ with singular they in /me, because it seems weird otherwise 07:05:22 I can't use gendered pronouns without hesitating nowadays 07:05:56 and it's simpler than worrying whether I'm making assumptions about my own gender 07:06:43 I should return to myself as "it". that'd be cool. too bad I don't use /me at all ever 07:07:01 "it" is a cool pronoun i approve of it 07:07:05 you're hardly the first to though monqy 07:07:42 does anyone consider it offensive to be referred to as "it" 07:08:17 probably most people for whom it isn't their preferred pronoun 07:08:19 I don't mind, for the record 07:08:26 although it might confuse me the first few times 07:09:11 if only grammatical gender wasn't a thing. then I would be less unhappy. 07:09:32 grammatical gender must be such a fucking pain 07:09:37 elliott, I don't see ais523 on there 07:09:46 Sgeo: ? 07:09:51 Sgeo: it's clearly a cached version 07:10:01 monqy: can i call you it, that would be cool. or wait how about punctuation 07:10:03 can I call you -- 07:10:04 Oh 07:10:30 -- is the new personal pronoun? 07:10:34 yes 07:10:41 I'm cool with it so long as I know what it means 07:10:44 * Sgeo submitted himself to bash once. Everyone hated it. 07:10:51 * elliott thinks that -- is going to use "--" forever 07:10:53 Sgeo: "everyone"? 07:10:58 Sgeo: --self :P 07:11:00 only a mod will have seen it 07:11:02 Note: Not literally everyone 07:11:05 unless it got APPROVED 07:11:10 i.e. one person 07:12:08 elliott, by bash I may have meant qdb 07:12:27 And ther are votes on it 07:12:37 19 votes, although it no longer shows up as approved 07:13:07 http://qdb.us/297375 07:13:20 http://qdb.us/search?q=%23esoteric&order=real_score&sort=desc&limit=25&approved=-1 07:13:24 omg 07:13:24 good quote very funny 07:13:25 im there 07:13:26 and its good voted 07:13:31 I;M FANOUS 07:13:44 in fanous monqy 07:13:53 oh wow 07:13:56 zzo submitted a quote 07:13:59 youre famouse 07:14:00 in his client's format 07:14:07 amazing 07:14:28 it just seems to be an excerpt of random channel banter :D 07:14:46 Sgeo: maybe if you didn't submit it yourself in a fit of "omg I'm so funny" but rather waited until you said something that someone else found worth quoting, your first quote would be better 07:14:57 http://qdb.us/298929 07:15:01 OMG ITS ALMOST HALF RATED GOOD 07:15:05 OMG OMG OMG OMG IM SO FANOUS 07:15:08 zzoquote's rating is appropriately "?". 07:15:14 olsner i am so fanous 07:15:51 is it ok to vote myself up DONT CARE SUCKAS DOING IT ANYWAY 07:15:53 (that's the reasoning I use to prevent myself from quoting all my super awesome puns just because no-one else did) 07:16:11 coppro: http://qdb.us/303709 07:16:22 coppro: plz explain your proximity to an imitator of I 07:17:44 I have a single well-voted bash.org-quote -- http://bash.org/?39012 -- and I can't quite recall if it was from #esoteric or not. Based on the content it might well be, though the other speaker's nick doesn't sound that familiar. 07:18:33 Nope. 07:18:43 Unless it was unlogged. 07:19:05 elliott: you have all the logs memorized or something? 07:19:06 Not in my logs either, and I suppose I was on-channel at the time. 07:19:11 olsner: i have a copy 07:19:46 oh, that's a much more realistic explanation 07:19:51 I should wget them or something at some point 07:19:58 Or sync with Gregor's project 07:20:03 I feel willing to use cygwin 07:20:11 "Gregor's project"? 07:20:15 you just need rsync for windows. 07:20:18 http://qdb.us/302321 <-- wat 07:21:19 * Sgeo is now very curious as to what network that was 07:21:52 zamabe [~zamabe@i.saw.this.giant.bird.and.his.name.was.linux] has quit [G-Lined: Spam sucks.] 07:21:53 good hostname 07:22:16 Christ is clearly Gamzee 07:22:19 *Chris 07:22:27 chris, christ 07:22:28 what's the difference 07:22:40 like there was this one day I took three grams of sugar and few litres of coke and some assorted lego mindstorm bits and made sense out of them 07:22:43 fizzie: what does it MEAN????? 07:23:22 http://honk-honk.org/ well, that's pathetically boring 07:24:38 elliott: More context would maybe make SENSE out of it, but I can't find any of this stuff from my logs. They must be in the -- dramatic pause -- OLD LOGS. Annoying that bash.org doesn't show a submission timestamp. (But the numbers are pretty low, they're around 900k now.) 07:25:02 fizzie: This is why you should never snort Lego Mindstorm bits. 07:25:15 Is bash.org even older than 2002/2003? 07:25:26 99 isn't it? 07:25:32 It is an Institution(tm). 07:25:53 © QDB 1999-2011, All Rights Reserved. if that means anything 07:25:53 old enough that it has always existed 07:25:55 ais523: plz tell wikipedia they need an article on bash.org. thx 07:26:03 monqy: thanks, it 07:26:12 -!- Sgeo_ has joined. 07:26:16 elliott: [[Wikipedia:Requested articles]]? 07:26:22 Going to throw this router in the trash 07:26:24 ais523: it's probably existed a thousand times :P 07:26:36 indeed 07:26:43 and nobody ever reads requested articles anyway 07:26:56 "here's a lot of _actually difficult_ non-gnome work to do" 07:26:59 "enjoy" 07:27:48 -!- Sgeo has quit (Ping timeout: 255 seconds). 07:29:02 ais523: Do you know of any tolerable non-Java JVM languages? 07:29:08 Clojure sucks, Scala sucks, Python sucks, Ruby sucks, ... :( 07:29:10 Ok, this xkcd is more of a ... pitch for some sci-fi show, than an actual comic 07:29:13 Scala sucks? 07:29:19 Clojure sucks? 07:29:21 elliott: why did you add "non-Java" to "tolerable"? 07:29:31 elliott: The Mindstorm one seems to come from Mar 29, 2002, and here's the context that will make it all sensible: http://p.zem.fi/37do 07:29:34 ais523: Well, Java is... tolerable, it just shortens your lifetime. 07:29:39 I wouldn't have expected you to think of Java as tolerable, even though you'd been writing in it 07:29:51 fizzie: Suddenly it makes SENSE. Also you had no tab-complete. 07:29:59 ais523: It's not good or acceptable, it's just... tolerable. 07:30:04 I'm not, for instance, yet dead. 07:30:09 Compare if I'd been using PHP. 07:30:16 aha 07:30:23 wow, 07:30:25 I'm not, for instance, yet dead. 07:30:28 has an insanely weird rhythm 07:30:42 I was reading proggit discussing PHP deprecating the mysql library (in favour of mysqli) 07:30:45 elliott: I do like how mooz's "standard" way of decoding ROT13 is to run it through a Befunge program. That's dedication. 07:30:59 they're deprecating it in one of the worst ways possible (in particular, generating no deprecation warnings) 07:31:04 fizzie: that mooz guy sounds totally cool, he should drop his life and come have fun with us :( 07:31:18 I use a firefox extension to derot13 stuff 07:31:19 ais523: this is PHP, if they do anything like that they'll get murdered by the users 07:31:35 ais523: I'm sure register_globals' deprecation was met with insane fury and footstomping 07:31:42 so, too, magic quotes 07:31:43 but the thing doesn't even support parametrized queries! 07:31:45 god, magic quotes 07:31:49 can you BELIEVE magic quotes?? 07:31:50 wait, what did magic quotes do? 07:31:59 I know what register_globals did, and why it's an insanely bad idea 07:32:00 ais523: automatically escaped every quote/backslash in query/form parameters 07:32:03 so that you would avoid SQL injections 07:32:09 seriously 07:32:10 elliott: err, ouch 07:32:16 That's... not the right way to avoid SQL injections 07:32:20 the worst thing is, in some cases that might actually work 07:32:21 ais523: so you had to strip the slashes to output them 07:32:22 which just makes it worse 07:32:27 it's amazing 07:32:37 im dead 07:32:39 it kiled me 07:32:43 How does anyone not know the right way to avoid SQL injections? 07:32:48 Sgeo_: php 07:32:53 it's like undefined behaviour, defined as "does more or less what you want except when you demonstrate it to a customer" 07:32:55 If they've HEARD of it, I mean, how do they not know 07:33:11 Sgeo_: well, we are talking 1997/1998 07:33:24 they probably didn't hear of it, someone probably just complained that their site got hacked 07:33:31 and they looked at the ogs 07:33:31 logs 07:33:34 "aha, we need to escape this" 07:33:41 "it would be convenient if you didn't have to" 07:33:45 "so that you couldn't make mistakes like this" 07:33:46 an hour later... 07:34:07 Sgeo_: when magic quotes was introduced, 07:34:20 PHP still did loops by fseek()ing back to the start of the loop upon reaching its end 07:34:21 elliott: I have a better idea for something that has PHP levels of awful and yet is not as bad as magic quotes 07:34:23 and continuing execution from there 07:34:26 wow 07:34:28 im double dead 07:34:38 Are the mailing lists archived somewhere? 07:34:46 To actually see the thought processes 07:34:47 you change the string concatenate operator to escape things it concatenates other than string literals 07:34:49 Instead of speculating 07:34:59 elliott: and wow, that is a pretty ridiculous way to do loops 07:35:21 ais523: If you have a SQL query tree, then it makes sense for a string node to be escaped in conversion to raw textual SQL 07:35:23 and is sane 07:35:29 That doesn't involve a concatenation operator, though 07:35:30 elliott: why would anyone ever do loops like that 07:35:34 fseek()? That sounds like opening the file and I guess, in this context, executing part of it? 07:35:34 But if you used string interpolation, it'd look about the same 07:35:44 monqy: Never reading the dragon book? 07:35:45 Sgeo_: X_X 07:35:47 it amazes me how php manages to exist 07:35:58 Oh ghod, magic quotes. There were even separate settings for magic_quotes_gpc (for GET/POST/COOKIE fields) and magic_cookies_runtime (for database/fread/most-but-not-all-external-sources data), and you could never know which values will and will not have magically escaped quotes. 07:36:01 ais523: actually, concatenation is really weird if you're thinking of an ast 07:36:13 fseek() + an eval, I guess? 07:36:17 ais523: (select foo from) has to be a "partial query"... basically, wherever the parser ends up, you ... oh it's a zipper 07:36:22 elliott: this is PHP, I'm just thinking of "whatever's hackiest to implement" 07:36:26 although wouldn't that hit stack overflow? 07:36:26 you navigate down the parsetree with a zipper as you construct it 07:36:28 Current PHP docs: "There is no reason to use magic quotes because they are no longer a supported part of PHP. However, they did exist and did help a few beginners blissfully and unknowingly write better (more secure) code. But, when dealing with code that relies upon this behavior it's better to update the code instead of turning magic quotes on. So why did this feature exist? Simple, to help prevent SQL Injection. Today developers are better aware of security 07:36:28 and end up using database specific escaping mechanisms and/or prepared statements instead of relying upon features like magical quotes." 07:36:30 and then when you reach the end ) 07:36:33 you store that zipper 07:36:34 and that's the object 07:36:37 See, "it made sense back then", they say. 07:36:39 and then a+b 07:36:45 just replaces the hole in a 07:36:48 with b 07:36:50 elliott: reminds me a bit of the metasyntactic variable - in maths 07:36:59 (if a is a holy-parse-tree) 07:37:12 (select a from) + (foo.) + bar --> select a from foo.bar 07:37:20 which is used to construct, basically, parse trees with holes in 07:37:27 ais523: indeed 07:37:32 ais523: well, it's more like mixfix, but yes 07:37:45 that is, it's more like defining arbitrary operators i.e. mixfix, than a parse tree 07:37:51 because mathematics doesn't really /have/ parse trees 07:37:59 well, not ones that even vaguely match up to the syntactic form 07:39:06 ais523: oh man these holy parse trees are cool 07:39:09 i think 07:39:10 maybe 07:39:20 *holey? 07:39:22 or is the typo deliberate? 07:39:24 :( 07:39:26 it's a fun typo 07:39:30 deliberypo 07:39:40 wonder what ((select a from) + (where b=9)) results in 07:39:52 oh, clearly you just need a subtree-insert operation 07:39:56 like inserting in a string 07:40:00 so you have to do silly things normally used only by Vorpal, and weird unusual libraries, or else confusing code that doesn't really mean what it looks like it means, to get your memory access patterns to what you want <--- XD 07:40:15 "silly things normally" 07:40:25 s/normally// 07:40:27 insert(1, sometable, (select a from) + (where b=9)) --> select a from sometable where b=9 07:40:30 ais523: beuatiful 07:40:35 oh good, I don't actually have to implement posix_memadvise or whatever it's called 07:40:55 ais523, posix_madvise iird 07:40:58 iirc* 07:41:01 ais523: wat 07:41:09 elliott: err, secret project 07:41:22 ais523, not very secret if you blab about it 07:41:24 that explains anything I do that results in obscure questions about Linux internals 07:41:40 ais523: STUPID PUBLIC LOGBOTS 07:41:43 also, writing fakeinit 07:41:49 ais523, when will it stop being secret 07:41:58 Vorpal: when, if ever, it's finished 07:42:11 ais523: good thing Feather wasn't under that, then 07:42:13 or we'd never hear about it 07:42:19 XD 07:42:20 it's probably not that interesting to this community anyway, other than in being generally insane and programming-related 07:42:40 ais523: so you mean, it is interesting to this community? 07:42:44 ais523, why is it secret 07:43:01 Vorpal: err, convoluted reasons 07:43:08 ais523: s/convoluted/secret/ 07:43:26 that are really minor, in that the reasons don't really justify the effort I have to go to to stop anyone figuring out exactly what I'm doing 07:44:09 ais523, NDA? 07:44:16 no 07:44:19 hm 07:44:25 I'd be a lot more cautious if it were an NDA 07:44:26 wtf 07:44:40 what I care about is that people don't figure out exactly what I'm doing, or at least why 07:45:01 figuring out approximately what is fine 07:45:05 because it makes no sense out of context 07:45:12 ais523, anyway the fact that you even consider "implementing" posix_madvise indicates it is a libc, OS or similar. 07:45:24 ais523 is actually implementing Microcosm 07:45:37 elliott, that could be it yes. 07:45:40 ais523: wait, it's secret but not for official reasons? 07:45:48 you don't love us :'''''''''''( 07:45:49 I may ask someone to explain user-mode Linux to me at some point, but I don't think it does what I want 07:45:57 hm 07:45:58 elliott: it's secret for really inane and pointless reasons 07:46:04 which makes me want to keep it secret all the more 07:46:05 :( 07:46:17 ais523: lamest???? signs point to YES 07:46:30 elliott, well said 07:46:40 it isn't an OS, at least 07:46:41 well, not exactly 07:46:44 it has some similarities 07:47:08 UML is very obvious from the name; it just runs an instance of the kernel as a user-mode task, without most of the drivers since they're not necessary, and some plumbing back to the host. 07:47:13 yep, I know 07:47:47 hmm, I could even tell people its name and they wouldn't know what it did, but that's because it's not a very descriptive name 07:47:50 Sounds like some sort of A New Kind Of OS. 07:47:53 Sgeo_: update 07:47:58 ais523: dododododo 07:48:03 fizzie: that's @ 07:48:05 :P 07:48:07 but I'm not going to, because I suck at maintaining deceptions 07:48:14 ais523: we will wear you down eventually 07:48:26 bleh, why is everyone so excited? 07:48:27 I'll leave that to elliott yes 07:48:39 ais523, because it sounds interesting 07:49:06 ais523, is this the always PID 2-project? 07:49:11 Vorpal: that's fakeinit 07:49:12 yes 07:49:13 which is apparently part of it 07:49:15 fakeinit's part of it 07:49:20 that bit's easy 07:49:20 ais523: oh come on, with your track record, we're interested in everything you do by definition 07:49:27 good morning 07:49:28 it turns out that init doesn't actually do very much 07:49:33 or have to, at least 07:49:53 hint: http://io.smashthestack.org:84/intro/ 07:49:55 Sgeo_: hs update 07:51:04 Woah 07:51:04 nooooooooooooooooooooooooo 07:51:07 Shush 07:51:25 i really like the graphical demo 07:51:57 i wonder if they could use the existing partition table as a possible source of data for autogenerating more interesting graphical presentations 07:53:51 -!- monqy has quit (Quit: hello). 07:55:16 elliott, ty 08:03:17 -!- elliott has quit (Read error: Connection reset by peer). 08:03:21 -!- elliott__ has joined. 08:04:07 ais523: what does it say about me that the first thing I thought in this recent patch of Java coding when I found that the Bukkit API forces you to use instanceof was "but that breaks parametricity!"? 08:04:34 elliott__: that you're still thinking in terms of actual OO as compared to practical real world Java OO 08:04:43 ais523: umm, parametricity is a functional thing 08:04:58 in fact, it breaks down slightly with _|_, IIRC 08:05:01 umm, there's an OO equivalent that's basically the same thing 08:05:06 substitutability, or something 08:05:11 just with different names 08:05:14 instanceof is bad, anyway 08:05:17 isn't that Liskov substitution? 08:05:21 principle 08:05:24 yep, could be 08:05:30 that's not what parametricity is, really 08:05:35 the only time I've used instanceof is to work around a really badly designed API 08:05:45 ais523: with Bukkit, it seems reasonable enough 08:06:01 ais523: e.g. in the body of a /command, you have a CommandSender 08:06:12 ais523: which could be the server console, a player, or 08:06:17 (you can execute commands in code) 08:06:23 ais523: so if you want to do something player-specific... 08:06:30 if (sender instanceof Player) ... 08:06:42 those should be subclasses of CommandSender, surely? 08:06:47 probably there could be a nicer way of doing it, but I can't think of a similarly extensible one off the top of my head 08:06:47 umm, of Command 08:06:51 CommandSentByPlayer, etc 08:06:58 ais523: um, there is no such Command object 08:07:00 although Java's lack of multiple inheritance stops that working properly 08:07:07 well, what represents the /command itself? 08:07:07 it's an event handler 08:07:15 Command 08:07:18 well, have different listeners, then 08:07:32 http://jd.bukkit.org/apidocs/org/bukkit/command/Command.html 08:07:36 http://jd.bukkit.org/apidocs/org/bukkit/command/CommandSender.html 08:09:29 "DefaultCommands is the only plugin you need for your server! It has everything!" 08:09:34 actual quote 08:12:16 "Infer Nullity" --IntelliJ IDEA 08:12:40 has anyone implemented nullity for a popular programming language? 08:13:35 Does NaN count? 08:15:20 no 08:15:36 http://www.bookofparagon.com/Mathematics/PerspexMachineIX.pdf good paper 08:16:34 "Imagine you're landing on an aeroplane and the automatic pilot's working," he suggests. "If it divides by zero and the computer stops working - you're in big trouble. If your heart pacemaker divides by zero, you're dead." 08:16:35 oh man 08:16:37 i forgot how amazing. 08:16:51 According to wiki, whether it equals itself is the only significant difference 08:18:00 stop abbreviating wikipedia as wiki 08:18:29 Am I allowed to abbreviate c2 wiki as wiki 08:18:30 ? 08:19:02 -!- Taneb has joined. 08:19:06 Hello! 08:19:35 hi 08:19:37 Sgeo_: no 08:20:29 Right, I'm on Windows 7 now, I may be able to get Haskell working 08:20:55 Downloading the platform installer... 08:22:22 Installing 08:22:39 Maybe you should provide us a progress bar too. 08:22:49 hmm, TV Tropes queue emptied 08:23:00 that was surprising, to say the least, I expected it to last longer 08:23:16 I'm getting good at escaping TVTropes 08:23:17 wat, you ran out of tv tropes? 08:23:18 Too good 08:23:25 fizzie: tell ais523 about your system 08:23:28 olsner: well, i don't follow every link 08:23:35 ais523: I managed to escape TV Tropes perfectly 08:23:39 and permanently 08:23:43 I also need to remember to use full stops. 08:23:44 in fact, I tend to follow less than 1 link on average from each page 08:23:50 elliott__: don't tell me you memorized the whole thing? 08:24:06 They're like the semicolons of written language 08:24:27 ais523: nope, i started finding people casually dropping trope terminology as a substitute for actually knowing anything about fiction sufficiently annoying that every time I read a page it's insanely obnoxious 08:24:34 I've developed a natural resistance 08:24:35 go my brain 08:24:44 heh 08:25:30 My system consists of a .txt file of tvtropes URLs; there's about 60 or so in there. I pick from there at random, and then add any interesting-sounding non-duplicate links at the end of the file. 08:25:54 fizzie: make it an sql database; then you don't have to worry about duplicates 08:25:56 fizzie: that's not too dissimilar from mine, except that I do more than one at a time 08:26:03 and queue rather than picking at random 08:26:13 My escape system is, think of something else, close the browser in one go, realise I'm not in TVTropes anymore, celebrate. 08:26:19 Haskell installed 08:27:00 ais523: here's an idea: a script that detects if you ever click a link you've clicked before this session; if you do, it closes the tab you clicked it on 08:27:17 eventually, you'll get sufficiently paranoid of clicking links that you'll give up 08:27:18 elliott__: why would that help? 08:27:22 ah, I see 08:27:25 or, I suppose, run out of links that don't self-destruct 08:27:33 I click duplicates sometimes, but they don't take much effort to close 08:27:43 ais523: well, it's just a "this has gone on way too long" signal :D 08:27:56 and since it closes duplicates, there's no way to get back a page it takes away from you 08:27:58 I always seem to end up at the page for Futurama 08:28:31 well, it happened to me recently, which makes sense as I stay within related groups of pages 08:28:50 do people normally browse it aimlessly? 08:28:56 normally I go there to look up something in particular 08:29:13 ais523: people end up on it and then can't get out because every link looks interesting 08:29:48 well, the links that look interesting to me tend to form a finite subset, and be only a couple on each page 08:30:04 and eventually they end up forming a walled garden, when I disregard links I don't care about 08:30:05 then you're lucky 08:30:11 it also helps that I have some of the more common targets memorized 08:30:21 in fact, it's reaching the point that I can often guess what's behind a piped link too 08:33:14 hmm, is wtf-is-latin's-code:generis etymologically related to en:generic at all? 08:33:26 as in sui generis 08:33:50 latin is la: 08:33:53 and I don't know 08:34:20 Hang on, I can find out 08:34:32 Yes, it is 08:34:50 generic: "Etymology: Either < post-classical Latin genericus (a1315; also 1644 in Descartes), or directly < classical Latin gener-, genus kind (see genus n.) + -ic suffix." 08:35:12 Right. 08:37:36 Variables in Haskell do not vary? 08:37:47 Then why the hell are they called variables? 08:38:05 Taneb: got a better name? 08:38:08 name 08:38:15 Taneb: But really, they vary as much as variables do in mathematics 08:38:20 f x = x + 9 08:38:22 x is a variable 08:38:34 That makes sense 08:38:34 I wouldn't actually call f a variable... 08:38:41 But it is one, technically, I'd say 08:38:49 Thanks 08:38:51 Taneb: Reading LYAH? 08:39:03 No, just Wikibooks 08:39:07 Oh, ew 08:39:11 Don't 08:39:17 It's not a very good tutorial at all IMO 08:39:40 http://learnyouahaskell.com/ is the best tutorial but if you really can't stand cartoon animals then I guess Real World Haskell might suffice 08:41:03 Taneb: Or, well, read what you want but if you suffer eternally then I warned you :-P 08:42:05 Thanks for the pointers 08:44:22 Taneb: Real World Haskell is also good to read after LYAH; it's good on the overall "how to structure and write a Haskell program" which isn't easy to see coming from imperative languages, but less so on the details of the actual language which LYAH covers bettwe 08:44:24 better 09:06:38 -!- Taneb_ has joined. 09:08:19 -!- Taneb has quit (Ping timeout: 252 seconds). 09:11:35 -!- Taneb_ has changed nick to Taneb. 09:15:57 -!- ais523 has quit (Remote host closed the connection). 09:20:30 Haskell's pretty neat 09:22:01 [2^x|x<-[1..10]] 09:22:17 The elegance of that is outstanding 09:27:47 map (2^) [1..10] 09:27:48 ftfy 09:28:56 >> 2.^(1:10) 09:28:56 ans = 09:28:56 Columns 1 through 9 09:28:56 2 4 8 16 32 64 128 256 512 09:28:59 For the MATLAB in us. 09:29:03 X-D 09:29:29 fizzie: How does MATLAB print arrays longer than the screen? 09:29:35 Oh wait, "Columns 1 through 9" 09:29:38 Guess it just truncates them 09:29:40 Gross 09:29:48 It continues on the second line with "Column 10". 09:29:51 Didn't bother pasting. 09:30:13 The output formatting is not very pretty in general, though. 09:31:20 (There's a spreadsheet-like matrix viewer in the GUI side.) 09:39:05 -!- Phantom_Hoover has joined. 09:39:09 i find the matlab ui appaling 09:41:36 hmm, is it usual to nest packages in Java to provide a hierarchy? 09:41:41 rather than prefixing a bunch of class names 09:41:51 I guess not, since you can't import them qualified like that 09:44:03 The larger collections in the standard runtime do have some hierarchical packagemancy going on. E.g. java.awt has java.awt.font, java.awt.color, java.awt.image and so on for not-used-all-the-time specializations. 09:45:21 Right. 09:45:45 It's net.[secret].[secret].MiscellaneousCommands vs. net.[secret].[secret].commands.Miscellaneous. 09:55:57 Bye 09:56:00 -!- Taneb has quit (Quit: Page closed). 10:19:35 -!- FireFly has joined. 10:19:39 -!- FireFly has quit (Changing host). 10:19:40 -!- FireFly has joined. 10:23:22 -!- oklofok has quit (Read error: Connection reset by peer). 10:23:31 -!- oklopol has joined. 10:27:48 oklopol: long time no nick 10:36:56 >> take 5 $ fix (+1) 0 10:37:02 > take 5 $ fix (+1) 0 10:37:03 No instance for (GHC.Num.Num [a]) 10:37:03 arising from a use of `e_1510' at Fix is for infinite loops, right? 10:38:37 > take 5 $ iterate (+1) 0 10:38:37 it provides general recursion 10:38:38 [0,1,2,3,4] 10:38:45 that doesn't imply infinite loops by any stretch 10:38:47 > take 5 $ fix (1:) 10:38:48 [1,1,1,1,1] 10:39:22 > let fact me 0 = 1; fact me n = n * me (n-1) in fix fact 9 10:39:22 362880 10:39:25 Lymee: note how fact doesn't refer to itself 10:39:33 fix f === f (fix f) 10:40:14 I see. 10:40:32 in fact that's the implementation, almost 10:40:40 (it's actually "fix f = let x = f x in x" for sharing) 10:41:08 > fix ($) 10:41:10 Overlapping instances for GHC.Show.Show (a -> b) 10:41:10 arising from a use of `... 10:41:34 :t fix ($) 10:41:35 forall a b. a -> b 10:41:36 * Lymee is quite sure she has at least one type wrong. 10:41:38 useful 10:41:40 > fix ($) 9 10:41:48 Lymee: are you trying to get just _|_> 10:41:50 you might want fix id 10:41:52 id :: a -> a 10:41:54 fix :: (a -> a) -> a 10:41:55 thread killed 10:41:56 ?ty fix id 10:41:56 elliott__, I'm being silly. 10:41:57 forall a. a 10:42:08 Lymee: i was asking how exactly you're trying to be silly 10:42:19 Create ways to crash things. 10:42:23 Well. 10:42:27 Pretty much. 10:43:09 you can't crash lambdabot :) 10:43:13 except by looking at it. 10:43:16 I'm aware. 10:43:16 =p 10:43:29 > error "Not even this way?" 10:43:31 *Exception: Not even this way? 10:43:34 Nope! 10:43:35 :D 10:43:43 (heh obviously not) 10:43:46 (that would be horrible otherwise) 12:00:19 -!- Taneb has joined. 12:00:27 Hello again 12:14:05 -!- boily has joined. 12:25:13 My advisor was in Paris on Thursday, Indiana this weekend, and is now in Seattle. 12:25:20 To quote: "My body clock is ... missing" 12:26:15 Ha, nice 12:26:19 Well, not nice 12:26:23 But you know 12:27:00 "Also my bank account." 12:27:54 -!- asiekierka has joined. 12:27:56 hey 12:28:10 "Also my left kidney." 12:28:11 Phantom_Hoover: You have 5 new messages. '/msg lambdabot @messages' to read them. 12:28:25 elliott__, FFS, tell me when you leave messages. 12:28:36 Do you want me to leave a message when I leave messages? 12:28:51 I don't remember leaving any, those must be from at least yesterday. 12:29:19 8 hours ago. 12:29:28 Well that's basically yesterday. 12:29:51 Just pretend you're in California 12:29:53 In the sense that it was today, then yes. 12:41:14 Rain looks nasty 12:43:07 Taneb: I was about to say "oh, what a coincidence; it's raining here too" but then I... yeah. 12:43:47 I'm still outstanded by that coincidence 12:43:55 Whereabouts in Hexham do you live? 12:44:09 NO CHANCE 12:44:25 Give me an East or a West 12:44:41 MMMM MMMM M MMMMF 12:44:56 Oh, fine 12:45:52 `quote you have become 12:45:56 498) elliott: You have become the very thing you fought for! 12:48:51 -!- asiekierka has quit (Quit: Page closed). 12:56:48 Someone recommend a wireless router, quick. 12:58:06 Phantom_Hoover: Linksys. 12:58:26 Phantom_Hoover: Does it have to be a modem too? 12:58:31 No. 12:58:41 Phantom_Hoover: So you have a separate ADSL modem? 12:58:45 Or cable or whatever. 12:58:48 Yes. 12:58:59 Phantom_Hoover: http://www.linksysbycisco.com/UK/en/products/WAP54G 12:59:05 For extra niceness run OpenWrt on it. 12:59:25 (I technically haven't used that Linksys router, but I own one and let's face it, I've never heard a single person do anything but recommend it.) 12:59:46 Phantom_Hoover: But 12:59:47 PC with 300MHz or Faster Processor 12:59:47 128MB RAM Memory 12:59:47 Internet Explorer 5.0 or Netscape Navigator 6 or higher for Web-based Coniguration 12:59:47 CD-ROM Drive 12:59:47 Windows 2000 or XP (to use the Setup Wizard) 12:59:52 you will need IE5. 13:00:01 What, really? 13:00:05 Like, seriously? 13:00:16 Phantom_Hoover: No. 13:00:30 Only if you want to "conigure" it. 13:00:50 X-D 13:00:55 Pro webdesign 13:01:16 The WAP (at least some hardware revisions of it) has significantly less flash than the WRT, so running OpenWRT on it (at least some models) is a bit painful. 13:01:17 Phantom_Hoover: why'd you want to know a good router anyway. 13:01:26 fizzie: Oh does it? 13:01:34 fizzie: Oh well, nothing really wrong with the Linksys firmware is there? 13:01:45 I mean, unless you REALLY want to run a web server off your router. 13:01:50 Not really, unless you want to do Fancy Tricks. 13:02:06 Is there a better wireless router by Linksys? 13:02:08 elliott__, because the current one sucks to the extent that I have been using the neighbours' network exclusively for a month. 13:02:14 Oh, http://www.linksysbycisco.com/UK/en/products/WAP54G 13:02:16 I missed it entirely. 13:02:28 Hmm, wait. 13:02:35 fizzie: Does the WAP even have Ethernet ports? 13:02:43 Well, it has one. 13:02:43 Oh, one. 13:02:46 It's an access point. 13:02:57 That's pretty much the main difference between the WRT and the WAP. 13:03:01 Phantom_Hoover: Yeah OK get the WRT54GL or WAP54G if you can't. 13:03:10 fizzie: Their site is badly organised :-P 13:03:16 The routers section looked wired-only to me 13:03:19 elliott__, what's the signal strength like? 13:03:35 Phantom_Hoover: It's... what does that even mean? 13:03:41 I haven't been following Linksys hardware in the recent years, so I don't know what are their current models. 13:03:44 It's good? 13:03:47 fizzie: they're all black and shiny and round. 13:03:49 Can't trust 'em. 13:04:01 elliott__, well, I'm on the opposite side of the house to where the modem is. 13:04:01 Phantom_Hoover: I mean it has DUAL ANTENNAE. 13:04:04 Like an alien. 13:04:07 And moving it would be a chore. 13:04:26 Phantom_Hoover: I doubt you'll find anything with an especially better signal strength without, I dunno, buying some kind of super-expensive corporate Cisco router. 13:04:29 You might need a newer thing if you want 802.11n, though. Unless they have modernized versions of the 54G series. 13:04:32 fizzie can tell me I'm full of shit if he wants. 13:04:42 fizzie: We don't have fast enough internet connections in the UK for n to matter :) 13:05:08 Well, you might want to hang some sort of NAS into a Ethernet port or something, I'unno. 13:05:11 WRT54GL is 2005-vintage-ish, but. 13:05:20 elliott__, hey, I theoretically have fibre optic broadband! 13:05:22 Seems there's a bunch of tangly spinoffs and the like. 13:05:32 The network projected by my WAP54G certainly has worked just fine through two non-load-bearing walls. 13:05:32 Phantom_Hoover: What speed do you get when plugged in via Ethernet? 13:05:49 elliott__, perhaps I should have said 'ostensibly'. 13:05:59 Phantom_Hoover: That was a sincere question. 13:06:12 elliott__, I'm not actually sure. 13:06:19 It could just be really bad WiFi that's making it slow. 13:09:24 WRT160NL seems to be the modernized version of WRT54G for OpenWRT purposes; at least it's on the list of supported hardware. In other ways it seems to have the standard-ish hardware configuration; one ethernet port for a modem/cable/whatever, a four-port ethernet switch for wiring things directly, and then the wireless. 13:09:44 fizzie: Yes but. 13:09:46 It's black and shiny. 13:09:49 You. Cannot. Trust. It. 13:09:53 Also it's like ten quid more expensive. 13:09:54 I don't have any personal knowledge of post-{WAP,WRT}54G* models. 13:10:04 It does look more evil, that's for sure. 13:10:15 Phantom_Hoover: What speed do you get when plugged in via Ethernet? 13:10:39 I cannot just plug the computer into the modem and get a connection, but I suspect this is my fault. 13:10:57 Does your router not have ethernet ports? 13:11:11 It does. 13:11:26 But if I plug the ethernet cable from the modem into my computer, nothing happens. 13:11:33 -!- CakeProphet has joined. 13:11:34 -!- CakeProphet has quit (Changing host). 13:11:34 -!- CakeProphet has joined. 13:11:39 Stop confusing "router" and "modem", Phantom_Hoover. 13:11:59 Actually, I confused 'router' and 'computer'. 13:12:05 I think it's because they rhyme. 13:12:11 Does your router not have ethernet ports? 13:12:29 Yes, it doed. 13:12:32 *does 13:12:35 "Router? We hardly knew her!" 13:12:46 Phantom_Hoover: then why are you plugging the ethernet into the modem. 13:13:06 I think it was because the router wasn't there or something. 13:13:30 I have a WRT120N 13:13:53 Gregor: The WRT160NL has 40 units more of... stuff. Plus an L. 13:14:09 Gregor, recommend? 13:14:10 `addquote I have a WRT120N Gregor: The WRT160NL has 40 units more of... stuff. Plus an L. 13:14:11 513) I have a WRT120N Gregor: The WRT160NL has 40 units more of... stuff. Plus an L. 13:14:17 Phantom_Hoover: It's black and shiny. 13:14:24 Phantom_Hoover: Pls to be trusting my superior judg- 13:14:25 Phantom_Hoover: 'snot bad. 13:14:26 oh it is cheap. 13:14:33 The 'L' means it supports custom firmwares by the way. 13:14:40 Supports as in actively supports. 13:14:43 Phantom_Hoover: http://www.ebuyer.com/product/191548?utm_source=google&utm_medium=products 13:14:46 (Not hacktively supports) 13:14:48 Phantom_Hoover: Share and enjoy. 13:15:05 fizzie: It also has over twenty more pounds :-P 13:15:26 Mind you, the 120N can't run OpenWRT. 13:15:32 Yes but really. 13:15:43 It's not worth twenty pounds. :p 13:15:47 Phantom_Hoover: SHARE AND ENJOY 13:15:57 ALL RIGHT OK 13:16:27 Phantom_Hoover: ONLY TWENTY-THREE QUID THAT'S A BLOODY BARGAIN 13:16:39 The native firmware is not bad at all, actually. 13:16:53 Phantom_Hoover: WITH CHEAPEST POSTAGE IT'S £27.16 13:16:54 I remember using a ... WRT-wtf-some-old-shit and thinking "this firmware SUCKS I need DD-WRT" 13:16:59 But the modern firmware is much better. 13:17:10 I am the Queen of France. 13:17:12 Gregor: Any Linksys firmware would be godly coming from the ISP-supplied crap I'm using. 13:17:30 dd-wrt always sets off my... marketing alarms. 13:17:44 Who are these people and why are they spending more time making a sleek website than coding. 13:17:54 Phantom_Hoover: EXCUSE ME I JUST ADDED IT AND WORKED OUT THE CHEAPEST POSTAGE 13:17:56 I AM SAVING YOU MONEY HERE 13:18:12 Y'know, there are these things called "stores" 13:18:16 You can go to them to buy things. 13:18:22 And then you have them immediately, no waiting for post. 13:18:30 elliott__, HOW DO YOU KNOW WHERE I LIVE 13:18:37 Gregor: Considering how much more expensive most of the sellers of those routers are... 13:18:51 Gregor: I'm gonna say that buying it from the cheap, reputable online store is a better idea. 13:19:01 Phantom_Hoover: I DON'T BUT THE POSTAGE DIDN'T ASK FOR AN ADDRESS 13:19:06 > makeHash alphabet = fromList . zip $ (`replicateM` alphabet) =<< [0..] $ [0..] 13:19:07 : parse error on input `=' 13:19:13 > makeHash alphabet = fromList . zip $ (`replicateM` alphabet) =<< [0..] $ [0..] in makeHash "abc" 13:19:14 : parse error on input `=' 13:19:21 > let makeHash alphabet = fromList . zip $ (`replicateM` alphabet) =<< [0..] $ [0..] in makeHash "abc" 13:19:22 Couldn't match expected type `[(a, GHC.Real.Rational)]' 13:19:22 against inf... 13:19:42 I bought my WRT120N for $40 last week. That's about 25 13:19:55 Gregor: Congratulations, you're in America where electronics are generally cheaper. 13:20:02 Next on a series of really obvious things... 13:20:29 Looks like you fail at being AMERICAN 13:20:34 lul look at their accent 13:20:43 THEY DON'T PRONOUNCE THEIR 'R'S 13:20:45 hrm 13:21:17 Actually, that Brits don't pronounce our "R"'s is slightly unaccurate 13:21:26 We pronounce them when they begin a syllable 13:21:30 ah I see 13:21:38 Taneb, that's inaccurate too. 13:21:38 > let makeHash alphabet = M.fromList . zip $ (`replicateM` alphabet) =<< [0..] $ [0..] in makeHash "abc" 13:21:39 Couldn't match expected type `[(k, a)]' 13:21:39 against inferred type `[b] ... 13:21:49 I like how the local retailer sells this "cheap networking products" brand called "Netwjork". It sounds so incredibly reliable. 13:21:52 Taneb: Also there are more accents in the British isles than in North America :P 13:21:54 :t zip 13:21:55 forall a b. [a] -> [b] -> [(a, b)] 13:22:08 Most English accents drop rs after vowels to a greater or lesser extent, yes. 13:22:23 As do Welsh ones, IIRC. 13:22:43 I have a southern American accent 13:22:44 The Netwjork WLAN router is 19.90 eur, so £17/$28. 13:22:44 Scottish and Irish ones don't, with a very few exceptions. 13:22:46 which is the best of all. 13:23:06 How about Viking accents? 13:23:09 * CakeProphet actually doesn't have much of an accent. He masks it pretty well usually. 13:23:11 fizzie: Netwjork from Bjork 13:23:20 Makes your net just wjork 13:23:23 Dood. General American accent can kick all your butts. 13:23:32 it's covert enough that other southern people do not hear my accent, but people from other regions will still notice it a little bit. 13:23:35 I can make people's ears bleed by talking to them. 13:24:00 Gregor, IT'S LIKE EAR SANDPAPER 13:24:06 The General Americam accent is stupid. Now, a Midwest accent: that's a good accent. 13:24:08 also why the fuck is this code not working. 13:24:22 Emacs has the best accent ever. 13:24:24 tswett, Australian accents are pretty cool. 13:24:26 tswett: The Midwest accent is the prototype of the GA accent :P 13:24:27 way better than vim 13:24:39 Phantom_Hoover: ARE YOU GOING TO BUY IT 13:24:41 Unfortunately, my western US accent is shifting into a midwest accent :( 13:24:41 Gregor: does GA have Canadian raising? 13:24:47 elliott__, YES OK 13:24:52 tswett: No. Neither does the vast majority of the midwest. 13:24:57 Oh. 13:24:57 Phantom_Hoover: I agree tswett's native country's accent is sweet. 13:25:20 Okay, a Hancock accent. :P 13:25:29 > let makeHash alphabet = M.fromList . zip ((`replicateM` alphabet) =<< [0..]) $ [0..] in makeHash "abc" 13:25:33 mueval-core: Time limit exceeded 13:25:37 aww... 13:25:49 my incredibly efficient hash function does not construct very quickly or something. 13:25:59 probably due to being infinite in size. 13:26:35 I guess Map isn't lazy? 13:27:47 no need for Map 13:27:47 elliott__, also cheapest shipping on that router is useless. 13:27:50 just use 13:27:53 :t lookup 13:27:54 forall a b. (Eq a) => a -> [(a, b)] -> Maybe b 13:27:56 Phantom_Hoover: Why. 13:27:58 Phantom_Hoover: You're gone for a week anyway. 13:28:01 Hancock is the United States' Finnish outpost. It has a teleporter that takes you to Porvoo, Finland. 13:28:12 elliott__, yes, so I don't exactly want it arriving to an empty house. 13:28:23 elliott__: not quite as efficient as the non-existence infinite Map. 13:28:26 Phantom_Hoover: Yes they will abandon it at the door so that ten people can steal it. 13:28:29 you know, the one that has to rebalance itself all of the time. 13:28:30 That is what will happen. 13:28:56 CakeProphet: would be kinda cool if it like constructed the tree on lookup, then like 13:28:57 cached it 13:29:02 (Obviously, Porvoo has a teleporter that takes you back to Hancock.) 13:29:02 and morphed it next lookup 13:29:03 i dunno 13:29:08 tswett: Yes. 13:29:24 elliott__: is that even simple to do? 13:29:36 CakeProphet: it makes no sense, so no. 13:29:56 it sounded pretty strange, but I wasn't sure... 13:30:35 this coming from someone who is trying to implement a hash function as a Map. 13:31:05 Why Porvoo in particular? 13:32:00 really I'm just trying to find as many uses as possible for the set-of-all-strings-in-an-alphabet thing. 13:32:08 because the bishop of the porvoo diocese is pretty important in this conspiracy 13:32:14 hash function is probably not one of them, I guess. 13:33:25 fizzie: I don't know; it wasn't my decision. 13:39:52 But I can assure you the teleporter definitely takes you to Porvoo. 13:53:42 if we had a concrete metric for expressiveness 13:53:49 I think Haskell would rank pretty high. 13:56:59 but I guess expressiveness has a lot to do with your available library. 13:57:57 its generality or the conrete problems it solves. 13:59:31 I can generate a powerset in Haskell as well as list all finite strings in an alphabet with two functions. 13:59:47 from the standard library. 14:10:44 -!- derrik has joined. 14:12:57 -!- BeholdMyGlory has joined. 14:18:56 -!- derrik has left. 14:21:57 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 14:47:50 -!- copumpkin has joined. 14:47:51 -!- copumpkin has quit (Changing host). 14:47:51 -!- copumpkin has joined. 15:03:10 -!- augur has quit (Remote host closed the connection). 15:12:13 -!- asiekierka has joined. 15:12:16 hello 15:20:40 hey 15:23:17 -!- Sgeo_ has quit (Read error: Connection reset by peer). 15:23:50 -!- Sgeo_ has joined. 15:31:33 -!- augur has joined. 15:39:30 -!- monqy has joined. 16:08:59 -!- MigoMipo has joined. 16:11:33 -!- copumpkin has quit (Ping timeout: 264 seconds). 16:11:58 -!- copumpkin has joined. 16:11:59 -!- copumpkin has quit (Changing host). 16:11:59 -!- copumpkin has joined. 16:17:41 -!- Taneb has quit (Ping timeout: 252 seconds). 16:27:26 -!- Taneb has joined. 16:28:28 Hello! 16:52:31 -!- Taneb has quit (Ping timeout: 252 seconds). 17:03:54 -!- augur has quit. 17:04:32 -!- augur has joined. 17:04:44 -!- copumpkin has changed nick to anafunctor. 17:10:56 -!- zzo38 has joined. 17:11:02 -!- augur has quit (Remote host closed the connection). 17:11:30 -!- anafunctor has changed nick to copumpkin. 17:24:07 -!- Taneb has joined. 17:24:19 Hello 17:24:25 hey 17:24:32 *deja vu face* 17:25:04 SD 17:26:19 -!- pikhq has quit (Ping timeout: 246 seconds). 17:32:15 -!- azaq23 has joined. 17:44:00 -!- Taneb has quit (Quit: Page closed). 17:49:45 -!- asiekierka has quit (Quit: Page closed). 17:51:49 -!- augur has joined. 18:03:27 Do they exist Knuth-style literate Haskell? 18:10:02 $ ./esotope -v hello.sp 18:10:02 Automatically guessed a kind "spoon" for the extension ".sp". 18:10:03 Found a path with 4 processors (weight=25): stream --(10)--> spoon --(5)--> brainfuck --(9)--> interp-textio --(1)--> interp 18:10:05 Hello, World! 18:10:32 now i have to determine whether .bf belongs to Brainfuck or to Befunge... 18:11:49 You can use .b for Brainfuck so that .bf can be used for Befunge, it is what sometimes is used convention. 18:11:53 -!- Taneb has joined. 18:12:04 Hello 18:12:17 i've seen .bf for brainfuck in the wild, so i wasn't quite sure about it. 18:13:01 Yes it is sometimes used. Although I believe the recommended convention is .b for brainfuck (which is also commonly used). 18:15:10 Here's an idea for an esolang name: lingua abstrusa 18:16:35 and due to the obvious reason its preferred file extension would be a period followed by Unicode code point U+3164. 18:16:52 It would be declarative, if I understand declerative right. 18:16:53 language names aren't as interesting as language ideas 18:17:38 Claudius patros Augusti est is equivalent to Augustus cliens Claudii est 18:18:14 People (the only data type) can have many clients but only one patron 18:19:02 clauidus agricola est 18:19:32 Each person has an occupation, e.g. agricola 18:19:53 Occupation is defined such as Claudius aricola est 18:20:05 People are second declension 18:20:10 Occupations are first 18:20:20 Operations are based on occupation 18:22:05 Occupations can also be third declension 18:25:00 agricolae res mercatori dare potest 18:25:29 mercatori res omnes dare potest 18:27:06 agricolae cibum facit 18:28:15 artifices artes facit 18:29:23 saceradotes I/O sunt 18:29:34 How does this look so far? 18:32:28 Anyone? 18:37:27 as you like it 18:37:35 needs more syntactic sugar 18:37:42 It needs more syntax 18:38:45 oh okay 18:38:50 Making a page on the wiki for it under my username 18:38:51 good luck with that 18:51:18 Taneb, suggest you look at Perligata. 18:51:39 Also consider that esolangs built around syntax tend to suck. 18:58:28 pfffft, that's just your opinion 18:58:44 Going to watch University Challenge now, bye 18:58:47 if the point is to have unusual syntax... 18:59:41 Sometimes .bef is used for Befunge, since it's more unambiguous. 18:59:49 And of course .b93/.b98. 19:01:04 * Gregor invents a trivial alteration of Brainfuck called BeFuck. The only differences between BF and BeF are 1) that < and > are swapped for { and }, and 2) the file extension is .bef 19:01:31 -!- pikhq has joined. 19:01:33 brilliant 19:03:07 With a name like BeFuck, the only difference SHOULD be a terrible C++ API and fanatic devoted followers. 19:04:00 consider me a devotee 19:06:52 -!- hiato has joined. 19:06:53 -!- hiato has quit (Client Quit). 19:29:59 Hello 19:30:22 how was the university challenge 19:30:28 Good 19:30:33 Clare college Cambridge won 19:30:34 okay 19:30:50 Beat Winchester college Oxford 190-180 19:31:01 oh 19:32:45 *Ugh*. So, I found out that my drive needs 4k alignment, but doesn't report that. 19:33:05 And it's a *royal* pain to change the start of an LVM PV. 19:33:20 -!- oerjan has joined. 19:33:35 Like, "I'm probably going to have to start shuffling shit." 19:33:57 shuffling shit is not very fun, i think 19:34:24 That was one of the Twelve Tasks of Herakles 19:34:42 oerjan: Shuffling my partitions so that I can have them start on 4k boundaries. 19:34:42 hm indeed. so the moral is, use lots of water. 19:35:13 Which, for drives with 4k physical blocks, can double or triple IO performance. 19:35:49 And for utterly *retarded* reasons, most drives report that they have 512 byte blocks. 19:36:05 (yes, there is a scheme for reporting the drive's physical layout, but drives lie.) 19:36:31 of course they lie, if they told the truth the operating systems would just be so terribly confused by all the information 19:36:40 *And* sometimes the layout is offset. There is also a means of reporting *this*, but the drives lie about it too. 19:37:06 WHO CAN YOU TRUST 19:37:53 * oerjan skips most of the logs today. 19:38:35 Do they exist Knuth-style literate Haskell? 19:38:59 what do you mean by knuth-style? \begin{code}...\end{code} is one of the supported styles, anyhow 19:39:08 ... I think my drive is 512 *bytes* off, too. :/ 19:39:21 -!- ais523 has joined. 19:39:25 (the other being "> " bird marks) 19:40:01 pikhq: so the first block is just 1/8th block? and then the rest of the disk is filled with n+7/8 blocks? 19:40:16 By "Knuth-style" I mean things such as: Table of contents, index, named chunks (which can be included in others), pretty printing, print out (rather than HTML), etc. Partially also the input format, but mostly I refer to the output presentation and how they work in general. 19:40:22 olsner: Yes. 19:40:38 olsner: It's a workaround so that a partition spanning the entire disk will pretty much work. 19:40:57 Guess what isn't the norm in Linux-land? 19:41:09 so the 512 bytes is for an MBR, basically? 19:41:12 zzo38: oh. i don't know. maybe some of that if you also use haddock. istr it does not support reordering things though (and haskell doesn't really need that) 19:41:12 (Also, I happen to prefer Plain TeX + DVI rather than using LaTeX + PDF, although this is mostly a matter of preference) 19:41:14 Yes. 19:41:28 Also, the traditional layout required 512 byte alignment. 19:41:33 (since most haskell declarations can appear in arbitrary order) 19:42:22 oerjan: However, note cross-references. Also named chunks might be useful in case of very complicated expressions or something like that maybe..... 19:42:26 So, if I could easily move my LVM partition 512 *bytes* towards the start, I'd be set up right. 19:42:41 Unfortunately, that is nontrivial. 19:43:00 dd can probably do that :> 19:43:13 zzo38: the haddock-generated html on hackage does have many interior cross-links 19:43:49 Fish generate all my HTML. 19:43:53 Well, but that is HTML. Not printout format. 19:45:09 ah yes also haddock isn't tex/latex based 19:45:22 And then Knuth-style does prettyprinting. 19:46:03 -!- zzo38 has quit (Quit: zzo38). 19:48:08 I seem to get 58 MiB/s writing to my filesystem. 19:48:27 The *raw* performance of my drive being ~114 MiB/s. 19:57:36 * oerjan stares at Taneb. like a cow. 19:57:59 COAP? 19:58:06 That's based on real events 19:58:07 but of course 19:58:18 wat 19:58:42 I walked through a field with cows in it, and the cows stared at me 19:59:04 and then you suddenly woke up with a lot of dead cows around, i assume. 19:59:33 Yes. That is exactly what happened. 19:59:38 thought so. 20:00:05 I'm not sure if this esolang I'm making will ever be turing-complete 20:00:34 Right now, it's more of a farming sim 20:00:38 BUT IN LATIN 20:01:16 http://esoteric.voxelperfect.net/wiki/User:Taneb/lingua_abstrusa 20:01:33 urbs agricolae 20:01:35 Taneb: have you seen Lingua::Romana::Perligata? 20:01:49 it's probably a bit different from what you're doing, but it's awesome 20:02:04 nihil novi sub soli 20:02:33 That's just a Perl dialect 20:02:53 I say just, but a lot of work probably went into it 20:04:41 * oerjan clings to the illusion that "soli" may be a legitimate variation there 20:05:35 Ave Damian Conway, facentes te salutant 20:05:51 *lingas abstrusas facentes 20:06:01 *linguas 20:06:06 what is facentes 20:06:13 They who make 20:06:23 From facio, facere 20:06:59 ok even i should have known that 20:07:18 lingua abstrusa is as close to esoteric language as I could be bothered to work out 20:07:37 i'd say 20:23:29 -!- pikhq has quit (Quit: Bleh). 20:24:38 Taneb, you know that 'esoterica' is a Latin word, right? 20:24:50 I thought it was Greek 20:25:07 http://www.latin-dictionary.org/esotericus 20:25:57 * oerjan madly corrects Taneb's grammar 20:26:09 -!- pikhq has joined. 20:26:24 why are you people talking about polish constitution 20:26:28 explain yourself oerjan 20:26:39 cheater_: wat 20:26:49 HUh 20:27:26 Taneb: feel free to undo if you thought that was too mad 20:27:45 http://en.wikipedia.org/wiki/Nihil_novi 20:28:19 or if, heaven forbid, i actually got something wrong 20:29:14 oerjan, clickady-clickadilidoo 20:30:32 cheater_: shut up, you mere peasant 20:31:21 oerjan, i come from a royal family 20:31:53 ...I may be part Sri Lankan 20:31:59 oh so you're a _royal_ pain in the ass? 20:32:04 And part Spanish 20:32:16 I'm definitely English and Dutch decent 20:32:49 * oerjan recalls his mother's family had some dutch nobility way back 20:33:10 But I'm peasantry as far as tracable 20:33:46 tanebarajan 20:34:09 I've got a friend who's grandfather was a peer 20:34:26 Of the house of Lords 20:34:38 oerjan, yep! 20:34:43 That offers me some social standing, feudal system wise 20:34:48 alas, norway abolished its aristocracy in 1814 20:35:51 actually 20:36:03 my family is older than any country i have lived in 20:36:06 how cool is that 20:36:25 if you say so, Mr. Noah 20:37:16 -!- tswett has quit (Changing host). 20:37:17 -!- tswett has joined. 20:37:26 My family is Irish peasants as far as the eye can see. 20:37:30 (Note: lies.) 20:38:04 My family has bee traced back to the 26th of December 1613 20:38:04 well my family is pretty much mostly norwegian fishermen afaik 20:38:14 Some Dutch guy 20:38:30 Called Aris Jansz 20:38:39 Taneb, ISTR that my family has been traced back to Rathlin, before which they were in Scotland which makes tracing it very hard. 20:40:56 your great great great great great great great great great great great great great great great great great great great great great grandmother was nessie 20:41:06 Unlikely, oerjan, unlikely. 20:41:24 BUT IT FITS SO WELL 20:41:42 Nessie was in Loch Ness. Phantom_Hoover's family comes from the Hebrides 20:41:57 Or as I like to call them, the Grooms 20:42:11 Hebrides? 20:42:18 hebrides schmebrides 20:42:30 well obviously the people from the hebrides are hybrids, duh 20:42:46 Island group off the West Coast of Scotland 20:42:55 Yes, Taneb, I know that. 20:43:08 How did you conclude that my family comes from there. 20:43:17 I made it up for the sake of a joke 20:43:23 ...Do they? 20:43:28 No./ 20:43:42 I don't see how it works as a joke, though. 20:44:17 Disprooving the nessie claim in a kinda stupid way 20:44:25 When there are more sensible ways to do it 20:44:42 * Phantom_Hoover spits out his drink after reëntering #jesus. 20:44:46 And then I pointed out the spelling of the island group looks like he-brides 20:44:50 islam was not created by christianity 20:44:50 it was created by fake christianity 20:44:50 called roman catholicism 20:45:14 ...What? 20:45:38 Islam, like Christianity, was created by a bunch of people doing what a Jew told them to do 20:46:00 Somewhere in the Middle East 20:46:21 Taneb: i'm not sure that is much more accurate than what Phantom_Hoover quoted 20:46:42 Jesus and Mohammed were both Jews 20:46:47 In the Middle East 20:47:01 i cannot recall ever hearing that mohammed was a jew 20:47:24 I'm pretty sure Mohammed wasn't. 20:47:31 WP supports me. 20:48:54 iirc muhammed was from a pagan tribe 20:49:06 Okay, prove me wrong 20:49:30 Anyway, they both have Judaism as a major influence 20:52:48 Okay, my ancestry has been traced back to the probably 16th century 20:52:57 "Muhammad’s denunciation of the Meccan traditional religion was especially offensive to his own tribe, the Quraysh, as they were the guardians of the Ka'aba." 20:53:16 The parents of someone who got married in 1611 20:54:31 "About five generations before Muhammad the situation was changed by Qusai ibn Kilab. By war and diplomacy he assembled an alliance that delivered to him the keys of the Kaaba, an important pagan shrine which brought revenues to Mecca because of the multitude of pilgrims that it attracted." 20:55:15 Fine, fine, I'm wrong 20:56:40 * oerjan does a small victory dance 21:02:42 -!- boily has quit (Ping timeout: 260 seconds). 21:12:02 Goodnight 21:12:25 -!- Taneb has quit (Read error: Connection reset by peer). 21:39:40 -!- MigoMipo has quit (Read error: Connection reset by peer). 22:18:38 -!- myndzi has joined. 22:20:28 -!- myndzi\ has quit (Ping timeout: 276 seconds). 22:34:07 -!- augur has quit (Ping timeout: 255 seconds). 22:35:26 -!- NihilistDandy has quit (Quit: Cookin'). 22:36:34 -!- Sgeo has joined. 22:36:42 FUCK 22:36:44 THIS 22:36:46 CONNECTION 22:37:16 Consider it fucked. 22:37:40 -!- Sgeo_ has quit (Ping timeout: 250 seconds). 22:51:49 * copumpkin considers it fucked 22:53:32 -!- Vorpal has quit (Ping timeout: 260 seconds). 22:55:15 -!- augur has joined. 22:57:40 -!- Vorpal has joined. 23:15:11 * Phantom_Hoover → sleep 23:15:13 -!- Phantom_Hoover has quit (Quit: Leaving). 23:29:04 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 23:37:43 -!- elliott__ has quit (*.net *.split). 23:37:43 -!- lifthrasiir has quit (*.net *.split). 23:37:43 -!- lambdabot has quit (*.net *.split). 23:43:04 -!- lifthrasiir has joined. 23:43:04 -!- lambdabot has joined. 23:43:18 -!- comex has quit (Excess Flood). 23:43:25 -!- oerjan has quit (Quit: Lost terminal). 23:43:34 -!- comex has joined. 23:44:30 -!- elliott__ has joined. 23:44:47 -!- augur has quit (Remote host closed the connection). 23:46:15 -!- oerjan has joined. 23:47:03 -!- FireFly has quit (Quit: swatted to death). 23:58:21 -!- NihilistDandy has joined. 23:59:20 -!- NihilistDandy has quit (Client Quit). 23:59:43 -!- NihilistDandy has joined. 2011-07-19: 00:05:51 -!- copumpkin has joined. 00:07:33 -!- augur has joined. 00:35:13 -!- augur has quit (Remote host closed the connection). 00:46:34 -!- ais523 has quit (Remote host closed the connection). 00:54:11 http://i.imgur.com/w7cns.jpg This was the Yahoo! News pictures page. Today. 00:55:45 Freakishly long eyelashes? FINALLY 00:58:59 -!- azaq23 has quit (Read error: Connection reset by peer). 00:59:26 -!- azaq23 has joined. 01:05:39 pikhq, seems... outdated 01:05:45 Vorpal: Yes. 01:05:59 pikhq, not all from the same time period either 01:06:05 There are people on the Internet younger than some of those pictures. 01:06:23 pikhq, when is the Los Angeles freeway shutdown from 01:06:33 Present. 01:06:37 This weekend only. 01:06:52 ah 01:18:05 it appears that francisco mota (User:FMota on our reddit) just started http://www.reddit.com/r/lambdapuzzles 01:19:39 http://codu.org/tmp/wol3-2011-07-18.ogg 01:19:55 *on our wiki 01:20:00 gah 01:20:03 Puzzles in Lambda calculus = possibly the best worst idea ever. 01:22:25 -!- quintopia has quit (Ping timeout: 255 seconds). 01:24:27 OR IS IT 01:26:14 it would appear to have at least assimilated phantom_hoover 01:26:51 An insidious /r/, indeed 01:28:06 -!- quintopia has joined. 01:28:06 -!- quintopia has quit (Changing host). 01:28:07 -!- quintopia has joined. 01:47:21 -!- copumpkin has changed nick to Godwin. 01:47:44 -!- Godwin has changed nick to copumpkin. 01:50:01 -!- CakeProphet has quit (Read error: Operation timed out). 01:57:36 -!- augur has joined. 02:02:38 -!- augur has quit (Remote host closed the connection). 02:13:24 -!- augur has joined. 02:29:55 -!- cheater_ has quit (Ping timeout: 255 seconds). 02:42:37 -!- cheater_ has joined. 03:24:28 -!- azaq23 has quit (Ping timeout: 276 seconds). 03:25:36 -!- azaq23 has joined. 03:32:43 -!- derrik has joined. 03:38:38 -!- BeholdMyGlory has quit (Read error: Connection reset by peer). 04:14:33 -!- chickenzilla has quit (Ping timeout: 252 seconds). 04:22:06 -!- chickenzilla has joined. 04:28:21 -!- augur has quit (Remote host closed the connection). 04:32:31 -!- derrik has quit (Quit: work to do). 04:33:29 -!- augur has joined. 04:34:07 True Fact: Most men feel inadequate if their hair is longer than their penis. 04:34:56 True Fact™: Most men with long hair have nothing to compensate for. 04:43:22 lol 05:09:05 my hair is longer than my penis :( 05:09:36 but at least i can wrap it around my penis. 05:16:17 I got new earbuds just yesterday (or the day before). The wire's already on the verge of breaking I think 05:17:56 * Sgeo needs wireless headphones 05:26:34 do you gnaw on it or what 05:27:40 I think it keeps getting bent 05:29:43 Yeah I hate that when earbud wires bend. 05:32:38 -!- oerjan has quit (Quit: It's just because your head is spinning all the time!). 05:36:02 -!- augur has quit (Read error: Connection reset by peer). 05:36:14 -!- augur has joined. 05:41:37 -!- Slereah has quit (Ping timeout: 276 seconds). 05:41:58 -!- GuestIceKovu has joined. 06:06:40 ... if only they could invent flexible wires 06:10:09 if a wire can conduct electricity then it has done it's job. asking for it to be flexible is overreaching. it is not in the nature of a wire to flex. 06:11:35 -!- augur has quit (Read error: Connection reset by peer). 06:11:55 -!- augur has joined. 06:16:53 -!- augur has quit (Read error: Connection reset by peer). 06:17:09 -!- augur has joined. 06:38:50 -!- augur has quit (Read error: Connection reset by peer). 06:39:11 -!- augur has joined. 06:42:11 -!- augur has quit (Read error: Connection reset by peer). 06:42:21 -!- augur has joined. 07:30:43 -!- azaq23 has quit (Quit: Leaving.). 07:49:07 -!- Taneb has joined. 07:49:20 Hello 07:56:18 -!- monqy has quit (Quit: hello). 08:06:01 -!- augur has quit (Read error: Connection reset by peer). 08:06:22 -!- augur has joined. 08:06:23 Hello 08:06:33 Hello 08:24:14 There's that saying that the definition of insanity is doing the same thing over and over again and expecting different results. 08:24:20 (In regards of them helloes.) 08:24:21 win 15 08:24:37 You've just gave me a different result 08:24:57 Yes, well, I don't see how that matters. 08:25:28 It shows that in this case, it wasn't necassarily insane to expect different results 08:26:48 No, the saying doesn't specify anything about whether you will or will not get different results. 08:26:58 It's always insane to expect different results, even when it's likely to occur. 08:27:01 -!- augur has quit (Read error: Connection reset by peer). 08:27:12 Although that is the spirit of the sayin 08:27:14 g 08:27:22 -!- augur has joined. 08:27:30 I don't believe in spirits, sorry. 08:27:30 If different results are likely to occur, is it not insane to expect repitition? 08:29:12 That's not what the saying's saying. (I seem to be doing the same thing over and over again here.) 08:29:57 And, as the people on the channel as well as the time changed between each "Hello", are they really the same thing? 08:30:36 In ten seconds, with no join/parts in-between... I would classify those last two instances pretty much the same thing. 08:30:56 -!- elliott__ has quit (Ping timeout: 264 seconds). 08:31:03 Inbetween the last two, my client said augur had joined 08:31:10 whoa hello 08:31:54 As seen from here, it was the other way around. Anyway, I don't have a real point here, I just thought it'd be utterly pedestrian to just reply back with yet another "hello". 08:33:01 Fair enough 08:42:43 -!- elliott__ has joined. 08:44:27 Bye 08:44:40 -!- Taneb has changed nick to TanebGone. 09:18:04 -!- Phantom_Hoover has joined. 09:19:55 What are the haps my friends. 09:21:28 Phantom_Hoover: hap, n.2: /north. dial./ A covering of any kind. 1724 A. Ramsay Tea-table Misc., Hap me with thy petticoat, Grant me for a hap that charming petticoat. 09:22:24 Ah, so elliott__ presumably knows all about them. 09:24:29 Also verbable. 09:24:31 hap, v.2: Etymology: Derivation unknown. Its distribution from East Anglia and Lancashire to Scotland seems to point to Norse origin. [..] Now only Sc. and dial. [..] 2. To cover for warmth, as with extra clothing or bed-clothes; to wrap; to ‘tuck up’ (in bed). c1330 R. Mannyng Chron. Wace (Rolls) 9017, He gaf hym drynke poysoun, And happed hym warme, and bad hym slepe. 09:26:23 -!- TanebGone has changed nick to Taneb. 09:29:00 Anagrams 09:29:00 pah, PAH 10:08:21 Huh. JFK's brother-in-law's uncle was PM of the UK 10:09:26 Harold Macmillan 10:13:32 -!- atehwa has joined. 10:35:36 -!- GuestIceKovu has changed nick to Slereah. 10:49:43 -!- FireFly has joined. 11:03:35 Is there a big sign I can add to a wiki article that says something to the effect of "This article needs a complete sort-out" 11:21:37 yeah there was this "not up to standards" thing 11:21:45 or "might need to be cleaned up" or something like that 11:38:33 -!- Sgeo has quit (Quit: Router stuff). 11:41:23 Heh; comp.lang.c, someone had a (presumably) memory correction issue causing fread calls to segfault. His "fix": FILE *fp = fopen(...); FILE fback; memcpy(&fback, fp, sizeof(FILE)); /* ..code.. */ memcpy(fp, &fback, sizeof(FILE)); fread(...); -- "Now there is no segmentation fault, job done." 11:41:59 s/correction/corruption/ 12:05:29 fizzie, ugh 12:07:17 -!- cheater_ has quit (Ping timeout: 255 seconds). 12:08:00 In later posts it turned out to be Obama's fault that e had to "fix" it like that. 12:08:08 -!- Sgeo has joined. 12:08:14 WTQ? 12:09:48 Hmm? 12:10:08 Crazy guy on comp.lang.c fizzie's dealing with 12:10:58 Taneb: See, it's Obama's fault the guy's apartment is now worth less than their mortgage and something something something that translates to not being able to look for a proper fix. 12:11:22 -!- FireFly has quit (Quit: swatted to death). 12:12:16 Someone with that sort of grasp of logic shouldn't be allowed anything more computationally powerful than a plastic spoon 12:13:46 -!- boily has joined. 12:16:23 Gonna have lunch now, bye 12:28:22 -!- FireFly has joined. 12:30:31 -!- CakeProphet has joined. 12:30:31 -!- CakeProphet has quit (Changing host). 12:30:31 -!- CakeProphet has joined. 12:31:50 -!- BeholdMyGlory has joined. 12:35:59 > 3 `floor . (+)` 4 12:36:01 : parse error on input `.' 12:36:18 that would be a cool extension. 12:36:27 -!- cheater_ has joined. 12:37:06 perhaps slightly abusable, but... we're talking about a language that has an OverloadedStrings extension. 12:37:40 3 `(+) `ap` floor` 4 12:37:57 nested `'s for... uh, great win? actually, just for demonstration. 12:38:30 > `pi` 12:38:31 : parse error on input ``' 12:38:50 Back 12:39:09 so GHC is aware of types to some degree before it finished the parsing stage. 12:39:53 CakeProphet, how so? 12:40:14 well, it could also have a sophsticated error reporting system. 12:40:27 ah, nevermind. 12:40:32 > 3 `pi` 4 12:40:33 3.141592653589793 12:40:36 CakeProphet, as far as I can tell it bailed out because there is nothing in front of the ` 12:40:36 it was just a regular parse error. 12:40:53 :t `pi` 12:40:54 parse error on input ``' 12:40:57 :t pi 12:40:59 forall a. (Floating a) => a 12:41:00 hm 12:41:10 Vorpal: right 12:41:25 > pi 3 4 12:41:26 3.141592653589793 12:41:36 ...yeah I have no idea. 12:41:44 wtf 12:41:56 unless (a -> b -> c) is an instance of Floating... 12:42:07 CakeProphet, my guess is some weird result from partial evaluation... 12:42:28 Maybe it's just a lambdabot thing where it reads one full expression and ignores trailing fluff? Certainly "pi 3 4" is not okay in ghci. 12:42:43 (Or 3 `pi` 4.) 12:42:50 fizzie, heh 12:43:00 > pi is stupid 12:43:02 Not in scope: `is'Not in scope: `stupid' 12:43:07 > pi "werijsdiufhushdfwer 12:43:08 : 12:43:09 lexical error in string/character literal at end o... 12:43:10 > pi "werijsdiufhushdfwer" 12:43:12 3.141592653589793 12:43:17 -!- cheater_ has quit (Ping timeout: 255 seconds). 12:43:22 must be what fizzie said 12:43:30 Is coirrational a thing? 12:43:40 > let pi = 3 in show pi 12:43:41 "3" 12:43:44 heh 12:44:07 > let x = pi 3 4 in x 12:44:09 3.141592653589793 12:44:16 what 12:44:18 apparently works in nested expressions as well. 12:44:25 so it's a general bug in the interpreter. 12:44:32 yeah 12:44:40 > pi undefined 12:44:42 3.141592653589793 12:44:52 > let x = 8 3 9 4 in x 12:44:53 8 12:45:14 > let x = 3 + 4 5 in x[C 12:45:15 : parse error (possibly incorrect indentation) 12:45:23 but only with constants perhaps 12:45:35 > let x = 3 + 4 5 in x 12:45:36 7 12:45:39 You had a [C in there. 12:45:46 oh... 12:46:30 so it just blindly evaluates the expression as though it's correctly formed and disregards the leftover stuff? 12:46:33 I don't know. 12:46:47 seems like it would produce a type error. 12:46:59 > let x = 3 + 4 5 in x [C 12:47:01 : parse error (possibly incorrect indentation) 12:47:02 hm 12:47:05 expected type a -> b -> c inferred type (Floating a) => a 12:47:06 or whatever 12:47:08 > let x = 3 + 4 5[C] in x 12:47:09 Not in scope: data constructor `C' 12:47:14 err what 12:47:18 > let x = 3 + 4 5[C in x 12:47:19 hm 12:47:19 : parse error on input `in' 12:47:47 :t f 12:47:48 forall a. (SimpleReflect.FromExpr a) => a 12:48:00 > map pi [1..] 12:48:01 [3.141592653589793,3.141592653589793,3.141592653589793,3.141592653589793,3.... 12:48:12 well, it allows map f [1..] to work. 12:48:16 or fix f 12:48:23 when technically f is not a function. 12:50:36 > fix f 12:50:37 Ambiguous type variable `a' in the constraints: 12:50:37 `GHC.Show.Show a' 12:50:37 a... 12:50:43 :t fi 12:50:44 :t fix 12:50:45 Not in scope: `fi' 12:50:45 forall a. (a -> a) -> a 12:50:48 ah 12:50:53 > fix pi 12:50:54 3.141592653589793 12:51:01 (of course) 12:51:05 :t fix pi 12:51:06 forall a. (Floating a) => a 12:51:10 > pi 12:51:11 3.141592653589793 12:51:19 > "> pi" 12:51:20 "> pi" 12:52:26 > fix fix 12:52:27 Occurs check: cannot construct the infinite type: a = a -> a 12:52:30 it seems to be very deep in the interpreter. 12:52:31 aw 12:52:43 > putStrLin "pi" 12:52:44 Not in scope: `putStrLin' 12:52:52 Taneb, no IO 12:52:53 > putStrLn "pi" 12:52:53 12:52:58 Sorry 12:53:10 I mean, you can't evaluate IO 12:53:18 Okay 12:53:32 as you saw, you just got an IO back 12:53:35 > readFile "/etc/passwd" 12:53:37 12:54:20 :t (readFile <$>) 12:54:21 forall (f :: * -> *). (Functor f) => f FilePath -> f (IO String) 12:54:28 > 'x' 12:54:29 'x' 12:54:32 > fix (readFile <$>) 12:54:33 Couldn't match expected type `[GHC.Types.Char]' 12:54:33 against inferred ty... 12:55:50 -!- cheater_ has joined. 12:55:52 :t (readFile =<<) 12:55:53 IO FilePath -> IO String 12:56:05 > fix (readFile =<<) 12:56:06 12:56:34 interesting. 12:57:38 I thought IO was strict. 13:02:21 CakeProphet, only when evaulated, like in a do block or such 13:02:24 iirc 13:02:42 isn't everything "strict when evaluated"? :P 13:02:53 CakeProphet, hm good point 13:03:09 Kids, don't try to evaluate your parents 13:03:19 XD 13:04:13 :t return 13:04:14 forall a (m :: * -> *). (Monad m) => a -> m a 13:04:21 @hoogle a -> a 13:04:22 Prelude id :: a -> a 13:04:22 Data.Function id :: a -> a 13:04:22 Control.Exception mapException :: (Exception e1, Exception e2) => (e1 -> e2) -> a -> a 13:04:32 :t mapException 13:04:33 Not in scope: `mapException' 13:06:00 > breakpoint 3 13:06:01 Not in scope: `breakpoint' 13:06:23 :t inline 13:06:24 Not in scope: `inline' 13:06:26 bah 13:06:52 GHC.Exts have some cool functions. 13:07:08 like lazy, and inline. 13:09:07 > fix (`fromMaybe` Nothing) 3 13:09:11 mueval-core: Time limit exceeded 13:09:16 > fix (`fromMaybe` Just 5) 3 13:09:18 5 13:09:52 the laziness of one argument depends on another. 13:11:04 fix (print 3 `par`) 4 13:11:12 > fix (print 3 `par`) 13:11:16 mueval-core: Time limit exceeded 13:12:47 par is apparently not strict in the second argument 13:14:47 :t par 13:14:49 forall a b. a -> b -> b 13:14:59 CakeProphet, I think types should have strictness info 13:15:01 somehow 13:15:45 it's possible for explicit strictness anyways. 13:16:06 fix pretty much tells you if it's strict or not 13:16:13 as does passing an undefined. 13:17:49 true 13:18:07 par is an interesting concept, I might try to use it sometime. 13:18:23 perhaps in the regular expression language I'm working on 13:18:33 or the signal processing library that I've got on the backburner. 13:19:13 on large computations. 13:21:37 Another common use is to ensure any exceptions hidden within lazy fields of a data structure do not leak outside the scope of the exception handler, or to force evaluation of a data structure in one thread, before passing to another thread (preventing work moving to the wrong threads). 13:22:04 that's interesting. I would think that message passing among threads would send the data fully evaluated. 13:22:14 but it apparently does not. 13:23:09 I guess it would make passing infinite data structures impossible 13:23:50 I wonder what history will make of the News International scandal that is going on at the moment 13:24:58 I am unaware of it. 13:25:07 doesn't error perform a side-effect? 13:25:56 I guess it's referentially transparent because it always returns bottom, but it still prints an error message while not being part of IO. 13:30:01 :t (%) 13:30:02 forall a. (Integral a) => a -> a -> Ratio a 13:30:13 :t (3%) 13:30:14 forall t. (Integral t) => t -> Ratio t 13:34:12 Taneb, heh 13:34:22 hmmm 13:35:00 What am I being hehed at for? 13:35:04 oh cool, I think I can define a pulse wave as (/2) . signum 13:36:32 though it won't allow me to vary the pulse width. 13:38:51 Taneb, last previous line 13:46:38 ah okay so signum is completely equivalent to a square wave. 13:46:55 ...when applied to a sinusoid, that is. 13:50:13 > let boxcar a b x = fromEnum (a < x < b) in map (boxcar 2 10) [0..] 13:50:14 Precedence parsing error 13:50:14 cannot mix `GHC.Classes.<' [infix 4] and `GHC... 13:50:43 > let boxcar a b x = fromEnum (a < x && x < b) in map (boxcar 2 10) [0..] 13:50:44 [0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,... 13:51:47 rect = boxcar (-0.5) 0.5 13:53:26 actually rect = boxcar (-0.5) 0.5 . sin 13:53:36 if you want the period form. 14:04:35 -!- foocraft has quit (Ping timeout: 250 seconds). 14:08:18 huh, apparently C# has Perl's // operator 14:08:29 as ?? 14:10:38 Perl calls it defined-or, while C# gives it the terrible name "Null coalescing operator" 14:11:02 Which, for some reason, the wikipedia page uses as its title. 14:12:11 but hey, at least C# does something right. 14:20:42 Why not just call it the "default operator" or something. 14:20:47 More obvious than "defined-or" 14:20:54 And... well... C#'s name for it. 14:23:04 well, given the way Perl's boolean operators work, defined-or makes sense. 14:23:16 default-to? 14:23:25 depends on what you mean by "obvious" 14:25:07 but it's basically the same thing as Perl's or, except it applies defined() to the first argument for the purposes of testing to see if it's true. 14:25:17 it's equivalent to defined(x) : x : y 14:25:19 *? 14:26:00 whereas or is: x ? x : y 14:27:14 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 14:28:01 but anyways, it's something Java needs badly. 14:28:15 because you spend far too much time testing for nulls. 14:30:14 it would be better if java didn't have nulls. 14:30:37 it would be terrible without a workaround. 14:30:54 of course, given some kind of option types. 14:31:17 C# has type? which is short for Nullable 14:31:39 which it uses to allow value-types (aka structs, int, bool, etc) to be assigned to null. 14:32:04 so you could change it so that the ? is required for all types to be nullable. 14:32:23 yeah, C# nullable is far better than nothing 14:32:36 but then what is an unitialized variable of type A? 14:32:56 er... ? is part of the sentence, not the type name :P 14:32:58 and afaik Sing# (an extension to C#) has type! which always guarantees that type cannot contain null. 14:47:30 Recently this motto has been very much discussed in the Perl community, and eventually extended to There’s more than one way to do it, but sometimes consistency is not a bad thing either (TIMTOWTDIBSCINABTE, pronounced “Tim Toady Bicarbonate”). 14:47:38 I am tempted to remove this sentence from Wikipedia. 14:48:40 citation needed! 14:49:40 there is one 14:49:50 but I don't really think it's notable. 14:49:56 plus that's such a terrible acronym. 14:50:08 and slogan. Why would anyone ever say that. 14:50:39 also there should not be the word "but" because these statements are not in contradiction with one another. 14:51:30 That is in fact what the word 'but' is there for. 14:51:58 To clarify that some secondary statement that could be concluded from the first is not, in fact, true. 14:54:24 -!- copumpkin has joined. 15:01:06 From Perl 6 article: Also, the , (comma) operator is now a list constructor, so enclosing parentheses are no longer required around lists. 15:01:15 I am pretty sure that was always the case. 15:01:29 the enclosing parentheses were required due to precedence. 15:09:08 "As a Rubyist it seems a bit controversial to me, as this looks like a multiple inheritance scheme..." 15:09:24 wow, it sounds like he's talking about his religion. 15:09:32 I should never read Wikipedia talk pages in my free time. 15:09:45 He *is* talking about his religion. 15:11:20 Sounds crazy to me, it's totally consistent with the Perl attitude towards authority. 15:11:26 There is a Perl attitude towards authority? 15:11:47 what are these people even talking about. Do they realize they are talking about programming languages? 15:13:43 No. 15:14:01 I did not know that programming languages had states of mind associated with them. I was pretty sure they were a means to describe the solution to a problem. 15:14:51 Does Perl code have some kind of anti-establishment connotation that I haven't been picking up on this entire time I've been writing it? 15:14:54 This is stupid. 15:14:59 I will never read talk pages again. 15:17:08 -!- monqy has joined. 16:13:27 -!- ais523 has joined. 16:27:19 -!- azaq23 has joined. 16:31:12 Is there an integer division operator in Haskell> 16:31:52 :t div 16:31:54 forall a. (Integral a) => a -> a -> a 16:31:57 Yes. 16:32:30 Thanks 16:42:22 :t quot 16:42:25 forall a. (Integral a) => a -> a -> a 16:42:28 :t mod 16:42:29 :t rem 16:42:29 forall a. (Integral a) => a -> a -> a 16:42:30 forall a. (Integral a) => a -> a -> a 16:42:34 zomg 16:42:46 :t [divMod, quotRem] 16:42:47 forall a. (Integral a) => [a -> a -> (a, a)] 16:42:56 :t [div, mod, quot, rem] 16:42:57 forall a. (Integral a) => [a -> a -> a] 16:47:28 elliott__: could you talk me out of something? 16:47:35 > 7 `quot` 3 16:47:36 2 16:47:38 I was thinking about creating an esolang that was completely identical to another esolang 16:47:50 Oh, wait, quot/div and mod/rem only differ when negative numbers are involved. 16:47:54 as a parody of bad BF derivatives 16:47:55 ais523, expand. 16:48:00 Well, that's OK. 16:48:10 You mean like I hate your brainfuck derivative I really do? 16:48:10 perhaps just create an esolang that's identical to brainfuck 16:48:15 (I am the official Sanctioner of Esolangs. I say so.) 16:48:16 ah, it's already been done? 16:48:43 http://esoteric.voxelperfect.net/wiki/I_hate_your_bf-derivative_really_I_do 16:48:44 no, I meant with + being increase, - being decrease, etc 16:48:48 exactly the same as BF 16:49:03 That's basically Ihybrid. 16:49:10 Oh, wait. 16:49:15 Literally identical? 16:49:20 I approve. 16:49:48 Wait, Ihybrid is a crappy serious esolang. 16:49:51 I'm thinking of calling it Brainfuck 16:49:54 with a capital B 16:50:05 as that name isn't currently taken 16:50:32 or maybe even BrainFuck 16:51:32 Dammit, I stopped watching that Murdoch hearing because it was boring. 16:51:45 And then someone attacked Rupert Murdoch with a cream pie. 16:51:54 XD 16:53:15 I missed it too, I got here a few seconds after it happens 16:53:18 and then missed the replay as well 16:53:23 but no doubt it'll be all over the Internet by now 16:53:31 http://www.bbc.co.uk/news/uk-politics-14209268 16:53:47 http://twitter.com/#!/JonnieMarbles 16:53:49 it's worth wondering how the assailant managed to break into the House of Commons in the first place 16:54:02 I think he got in the easy way 16:54:07 Much as I disapprove of it, I can't fault his Twitter style. 16:54:11 Phantom_Hoover: also, I can tell that that link's broken without even reading it 16:54:16 as that anchor doesn't exist on the Twitter homepage 16:54:31 -!- olsner_ has joined. 16:54:49 ais523, I... copied and pasted it. 16:55:02 Phantom_Hoover: Twitter themselves use broken links 16:55:10 -!- comex_ has joined. 16:55:13 what they do is, all links to Twitter actually go to the homepage, then it AJAXes the actual content 16:55:19 ais523, good for you. Noöne cares. 16:55:31 people without JS in their primary browser care 16:56:00 A tiny minority, yes. 16:56:37 A tiny minority who seem to take great pride in disabling browser functionality and telling everyone loudly that they have done so, yes. 16:57:39 but it's a negative functionality, in that it makes websites more annoying 16:57:46 using the internet without js is like using a car without tyres 16:58:06 cheater_: the worst I saw was a page that tried to set cookies when you move your mouse 16:58:11 mostly because I prompt on those 16:58:24 but there are some pretty stupid things done even with default browser settings 16:58:28 stop browsing midget porn 16:58:45 Funnily enough, most of us get by fine without them. 16:59:03 If you're going to turn off JS, don't bring it up when we send you links that need JS to work. 16:59:14 that might be true, Phantom_Hoover, but personally i couldn't bear a life without those wonderful little humans 16:59:18 -!- comex has quit (*.net *.split). 16:59:18 -!- olsner has quit (*.net *.split). 16:59:20 Wait, s/send you/give/ 17:00:34 -!- Kariya-jin has joined. 17:00:52 Phantom_Hoover: well, what Twitter does with the #! thing breaks standard browser functionality too 17:01:07 ais523, funnily enough, it works for most people. 17:01:13 I'm not sure if it's got middle-click working yet; most sites that do #! stuff don't work with that 17:01:30 also, I don't like the page to have to load twice every time I visit it 17:01:42 Good for you. Keep it to yourself. 17:05:17 -!- foocraft has joined. 17:12:28 -!- Taneb has changed nick to TanebAway. 17:25:39 -!- Kariya-jin has left. 17:46:36 -!- TanebAway has changed nick to Taneb. 17:48:04 I'm ill 17:54:01 -!- augur has quit (Read error: Connection reset by peer). 17:54:21 -!- augur has joined. 18:00:37 Eh? C/Intercal: I, lilac, ret niche. 18:01:16 it doesn't work as well when half the palindrome is gibberish :) 18:01:25 indeed 18:01:29 They are all real words! 18:01:44 But yeah, it's nonsense 18:04:09 > ap (++) reverse "But yeah, it's nonsense" 18:04:11 "But yeah, it's nonsenseesnesnon s'ti ,haey tuB" 18:04:18 I can palindrome too :D 18:05:40 Pal, Fractran art? Car flap. 18:13:47 -!- elliott_ has joined. 18:15:27 -!- elliott has joined. 18:17:00 -!- elliott__ has quit (Ping timeout: 264 seconds). 18:18:00 -!- elliott_ has quit (Ping timeout: 252 seconds). 18:30:53 elliott, oi. 18:32:57 -!- azaq23 has quit (Quit: Leaving.). 18:33:22 -!- azaq23 has joined. 18:34:56 Working on my Numberwang Hello World 18:39:05 I'm working on something delightfully retarded. 18:39:22 A Numberwang Hello World? 18:39:30 A Christmas present? 18:39:46 A polititian? 18:39:58 Those multi-dimensional numbers I was talking about the other day 18:40:03 I hope that was a deliberate typo. 18:40:12 itidus20, define "multi-dimensional". 18:40:24 consisting of more than one dimension 18:40:47 You mean like the complex numbers? 18:40:53 Or Vectors? 18:41:32 Well what I realized was that all the named numbers are one dimensional: one,two,three,four,five,six,seven,eight,nine,ten, etc 18:41:41 You mean complexes. 18:41:43 Or vectors. 18:41:53 Ooh, I remember! 18:41:54 more towards the vectors idea 18:42:02 Giving names to vectors! 18:42:04 im too stupid to do anything with complex numbers 18:42:06 Complexes == vectors. 18:42:10 Like, lala = (7,3) 18:42:16 Just with a different definition of *. 18:42:25 Erm, complexes == 2-vectors. 18:42:35 i'm the most mathematically-challenged here 18:43:12 So.. 2 is enough 18:43:34 more than 2 would be making life difficult on myself. 18:44:13 itidus20, [a, b] + [c, d] = [a+c, b+d]; [a, b] * [c, d] = [a*c - b*d, a*d + b*c]. 18:44:19 That's all there is to complexes. 18:44:37 Everything else is just a consequence. 18:44:59 (OK, I've almost certainly missed something fairly minor, but those are the important bits.) 18:47:40 My Numberwang Hello World works perfectly... for three operations 18:52:41 so this is sort of what i'm doing: http://hpaste.org/49235 18:52:44 Taneb, presumably you're trying to nullify the effect of the Numberwang operator? 18:52:55 That bit's fine 18:53:05 -!- augur has quit (Remote host closed the connection). 18:53:16 Oerjan worked out the safest way to do that 18:53:30 What is it, out of curiosity? 18:54:02 When the step counter mod 9 is 0 18:54:19 That doesn't call any additional numberwangs, and doesn't use gotos 18:54:37 Ah, so you just pad. 18:54:48 Yeah 18:55:08 itidus20, why do you seem to have two contradictory definitions of +? 18:55:32 im exploring what it means to add two of those things together 18:56:09 Okay, apparently when I have a cold, I love Kaiser Cheifs 18:57:02 so when i started doing this the theory was that you could have a unique word for a horizontal 2 instead of a vertical 2 18:57:21 or, uh.. that is.. when i started actually mapping it out 18:57:45 the first idea was to give a unique written name to things of the form [x][y] instead of just [x] 18:58:50 and next i realized that gave a width x height result 18:59:31 and then later I started to realize you start ending up with non-rectangular objects more like bargraphs 18:59:56 Looks like you're going to end up with arbitrary shapes. 19:00:15 Hmm, they have to be connected. 19:00:46 i dunno 19:01:02 this kind of crap doesn't have to mean much for me 19:01:15 Hmm, not quite arbitrary. 19:01:27 There are conditions, but they're not terribly interesting ones. 19:01:29 theres probably some unspoken hypothesis i'm working towards 19:02:12 We need someone who's brilliant at maths but has not yet learnt the limits of the possible 19:02:33 I learnt the limits of the possible, then I forgot what they were. 19:02:45 They're not terribly interesting, and they're generally there for a reason 19:03:43 perhaps I should discriminate between rectangular and non-rectangular shapes 19:04:10 But in seriousness, mathematicians have tried most generalisations you can think of. 19:05:07 Taneb: is numberwang now stable? 19:05:09 Phantom_Hoover: The addition and multiplication rules you gave are also just consequences of the single i^2 = -1 after you write them as (a+bi). 19:05:13 Well, of course they have. Generalisation is an easy way to do interesting mathematics. 19:05:15 fizzie, yes, sure. 19:05:32 I appreciate the power of generalization :> 19:05:39 pikhq, yeah, and generally the ones that haven't been tried aren't very interesting. 19:05:44 well maybe i don't 19:06:06 lifthrasiir: Numbrewang is theortically sable 19:06:23 For instance, you can extrapolate relativistic (?) physics to more than 1 time dimension, but the equations cease to be solvable. 19:07:21 I am into game design in a big way. But theres lots of things I encounter which make game-dev seem boring. 19:07:40 itidus20, like display programming... 19:07:45 hmm 19:07:56 Taneb: hmm, is there any significance of the step number? the specification does not mention the use of it. 19:08:04 Yes it does... 19:08:06 in terms of display there is that disparity between internal logic and representation of that logic 19:08:37 At each step, the digital root of the sum of the current command, its position in the program, and *the step number* is calculated. The result modulo four is taken, and the appropriate instruction is ran 19:08:41 and so the graphics and sounds in a game can just be swapped around meaninglessly. Just like you can replace the pieces on a chessboard. 19:08:48 In terms of display there is the fact that it's annoyingly fiddly to set up. 19:09:18 Maybe you two should team up and make a games console? 19:09:47 Bob of Bob's Game is trying to make something called the nD 19:09:50 Hardware design? Ahahahahahahahahahaha. 19:09:52 Ahahahahahahahaha. 19:09:57 Ha. Ha. Ha. 19:09:58 No. 19:10:17 he's a bit crazy though 19:10:51 Hang on 19:11:00 Taneb: ugh, so at the each step digital-root(command) is added to the step number, right? 19:11:01 Since when was Beyonce the world's number one superstar? 19:11:06 im not really interested in hardware 19:11:36 i tried to implement numberwang in my esotope and stucked at that part. 19:11:50 lifthrasiir: No, the command, the step number, and the index of the command are added up, and the digital root of that (mod 4) is the actual command 19:11:57 ok so with games, I don't like the idea of a game's design imposing the limits of perfect play. 19:12:38 I want to see games where there is no such thing as perfect play. 19:12:49 Dwarf Fortress? 19:13:34 The more discerte a game becomes it seems the more likely that a perfect play scenario exists 19:13:40 ^discrete 19:13:42 Taneb: is that something like this: for(step=idx=0; idx Yes 19:14:20 okay, i'll try to program in it now ;) 19:14:27 The more discerte a game becomes it seems the more likely that a perfect play scenario exists 19:14:30 ...no? 19:14:39 Go for it, lifthrasiir 19:14:55 sorry someones stomping in the hall.. i can't hear myself think 19:15:26 Non-discrete games tend to accumulate errors, while discrete ones don't, so they are less obviously deterministic. 19:15:33 So, itidus, you want a sandbox? 19:16:13 As in a sandbox game 19:16:14 I don't want a person to ever be able to get closure in a game, that they are the best that is possible 19:16:32 Taneb: ah, one more question: eight commands in the instruction 3 do not affect the step number, right? 19:16:39 not only that 19:16:41 itidus20, suggest Minecr— wait, that's too open-ended for you, probably. 19:16:44 They do, lifthrasiir 19:17:00 ok forget the discrete comment.. that was just being dumb of me as usal 19:17:20 I don't want people to even be able to imagine being perfect at the game 19:17:21 hmm, then the step number increases by 8 after the instruction 3? 19:17:42 It increments after every instruction, including the 3 and the ones in the 3 19:17:57 Like in the case of Chess and Go, although they can't compute perfect play, they can imagine it with sufficient computing power. 19:18:00 to be exact, 8 + alpha, right. 19:18:07 Yes 19:18:48 And although the sufficient computing power is supposed to not exist, they can still imagine it existing 19:19:00 Like in the case of Chess and Go, although they can't compute perfect play, they can imagine it with sufficient computing power. 19:19:17 ISTR that in Go computers are barely able to compete. 19:19:46 But theoretically, there are only a finite number of possible games of Go 19:20:06 humans are clearly better at playing go than devising computers to play go :D 19:20:08 Taneb: Yes, it's just got significantly search space than chess. 19:20:17 Erm, significantly greater. 19:20:28 Taneb: ugh, wait, then what about the command's position in the program? 19:21:00 Hmm, it's been a while since I played Go 19:21:09 Search space is, of course, what makes AIs a lot less reliable in continuous than discrete games. 19:21:17 let's say the command at the position 42 invoked the instruction 3. now what are the positions of 12! and consequent commands? 19:21:25 Chess AI has turned out to be *much* less interesting than people would've liked. 19:21:37 0 through 7, I think 19:21:39 Although perfect play is clearly possible in, say, missile defence. 19:21:51 Instead of being something that'll produce an intelligent, thinking computer, it's created a very fast, stupid computer with well-designed heuristics. 19:21:53 And it was done last year in Draughts 19:22:15 It was done in draughts quite some time before that. 19:22:28 Phantom_Hoover: Perfect play is *possible* in most games. 19:22:28 phantom: do you mean that a computer using the neural network approach to solving chess will fail just as badly? 19:22:34 It's just ridiculously unfeasible. :) 19:22:42 pikhq, OK, easy. 19:22:46 itidus20, neural... what? 19:23:28 well, surely they have tried applying artificial neural nets towards emulating the mind of a chess grand master to the extent such things are possible 19:23:34 Ahahahahahaha. 19:23:36 No. 19:23:38 They haven't. 19:23:42 why not? 19:23:47 lol 19:23:49 Too expensive 19:23:53 And not enough point 19:23:54 lol 19:23:56 OK, I should stop the ahahahahahahaha thing, it's probably ridiculously annoying. 19:24:09 When they can already defeat Gary Karsparov or whoever 19:24:23 taneb: so they don't "really" want to solve it :D 19:24:45 Yeah, because the stupid algorithms are already better than they need 19:24:59 it's just a toy to promote IBM etc :P 19:25:17 well i am wondering if such things would actually make any difference you see 19:25:25 * Sgeo points itidus20 towards http://arimaa.com/arimaa/ 19:25:43 is chess just as unsolvable with ANN as without 19:26:10 To solve chess would require a computer larger than the observable universe 19:26:25 i've heard that 19:26:34 elliott__: could you talk me out of something? 19:26:34 elliott: You have 1 new message. '/msg lambdabot @messages' to read it. 19:26:35 ais523: ok 19:26:41 and well.. 19:26:58 elliott: are you logreading, or do you want me to repeat context? 19:27:07 that would be nice 19:27:09 latter that is 19:27:21 taneb: but that would imply no breakthroughs probably 19:27:29 breakthroughs are always unanticipated. 19:27:35 elliott: basically, it was designing an esolang identical to an existing esolang 19:27:42 such as BF with none of the commands changed 19:27:51 I'm thinking of calling it Brainfuck, as that name isn't currently taken 19:27:56 ais523: not even syntactically? 19:27:56 it's a good statement though about the universe 19:28:00 elliott: nope 19:28:11 ais523: i approve wholeheartedly 19:28:27 heh 19:28:30 -!- oerjan has joined. 19:29:39 sgeo: thanks. nice link. 19:29:49 yw 19:30:36 ok so, gaming can be about improvement, and being the best. trouble here is that best is relative. 19:30:57 so you be the best by keeping everyone else down and you're still the best 19:30:57 `addquote It's always insane to expect different results, even when it's likely to occur. 19:31:01 514) It's always insane to expect different results, even when it's likely to occur. 19:31:05 Taneb: in order to get out of the instruction 3, all generated commands have to be executed or the instruction 2 has to be invoked. am i missing anything? 19:31:17 oerjan, when'd he say that? 19:31:21 oerjan: that was funny? 19:31:27 Yes, the 2 keeps it in the 3 19:31:35 2s don't escape 3s 19:31:41 01:16:40 tunes time 19:31:51 huh, 19:31:55 (which corresponds to no timezone known to mankind) 19:32:15 :D 19:32:25 Taneb: if the instruction 3 invoked the instruction 3 in the middle, then commands have to be terminated twice (or possibly more)? 19:32:28 elliott: wait, you want context now? 19:32:46 lifthrasiir: yes 19:32:48 `delquote 514 19:32:49 ​*poof* 19:33:01 Hey, that was moderately funny on its own. 19:33:08 okay, right now i tried to categorize the behavior of the instruction 3 for possible step numbers. 19:33:45 oerjan: well it was funny :P 19:34:04 `addquote There's that saying that the definition of insanity is doing the same thing over and over again and expecting different results. [...] You've just gave me a different result [...] It's always insane to expect different results, even when it's likely to occur. 19:34:05 514) There's that saying that the definition of insanity is doing the same thing over and over again and expecting different results. [...] You've just gave me a different result [...] It's always insane to expect different results, even when it's likely to occur. 19:34:10 elliott: better? 19:36:35 oerjan: it was better originally :-P 19:36:36 draws are not possible in arimaa eh 19:36:42 but I note that the [...]s are unneeded there 19:36:43 darn 19:36:48 thats always good 19:36:49 you only need to cut it out when time passing matters 19:37:02 elliott: well it's just that both people said things in between 19:37:20 fair enough 19:37:25 no first move advantage and no draws? how can it be so. :o 19:37:41 -!- pikhq_ has joined. 19:37:47 itidus20, note that it is patented. 19:37:53 lol 19:38:00 -!- pikhq has quit (Ping timeout: 264 seconds). 19:38:04 patents 19:39:03 Phantom_Hoover: i love the software license 19:39:05 it is so stupid 19:39:33 elliott, what is it, again? 19:39:38 I'm not looking to make boardgames though. I am focused on the abstract word game. 19:39:46 Phantom_Hoover: i forget exactly 19:40:03 Oh, here it is: http://arimaa.com/arimaa/license/ 19:42:16 well if it is solvable I don't know how "no first move advantage and no draws" could be possible 19:42:27 thats what intruiges me 19:42:47 `addquote Taneb: See, it's Obama's fault the guy's apartment is now worth less than their mortgage and something something something that translates to not being able to look for a proper fix. < Someone with that sort of grasp of logic shouldn't be allowed anything more computationally powerful than a plastic spoon 19:42:48 515) Taneb: See, it's Obama's fault the guy's apartment is now worth less than their mortgage and something something something that translates to not being able to look for a proper fix. < Someone with that sort of grasp of logic shouldn't be allowed anything more computationally powerful than a plastic spoon 19:42:52 oops 19:42:54 `delquote 515 19:42:56 ​*poof* 19:43:05 `addquote Taneb: See, it's Obama's fault the guy's apartment is now worth less than their mortgage and something something something that translates to not being able to look for a proper fix. Someone with that sort of grasp of logic shouldn't be allowed anything more computationally powerful than a plastic spoon 19:43:06 515) Taneb: See, it's Obama's fault the guy's apartment is now worth less than their mortgage and something something something that translates to not being able to look for a proper fix. Someone with that sort of grasp of logic shouldn't be allowed anything more computationally powerful than a plastic spoon 19:43:22 "End game tables are not useful since games can end with all pieces on the board. " 19:43:30 hmm fascinating 19:44:05 itidus20: it could have a _second_ move advantage, you know :P 19:44:25 lol 19:44:31 good thinking 19:44:38 like those game variations where the second player is allowed to switch places on eir first move 19:44:48 "Project which are non-commercial require obtaining a written authorization." 19:45:05 Yeah, this licence is ridiculous. 19:45:16 19:03:07: With a name like BeFuck, the only difference SHOULD be a terrible C++ API and fanatic devoted followers. 19:45:22 Gregor: Was BeOS's API that bad? 19:45:31 It was C++, that's all I know :P 19:45:32 i don't intend to make an arimaa.. simply to steal a few of their concepts for use in realtime arcade games 19:45:35 But C++ pretty much implies terrible. 19:45:58 19:40:16: By "Knuth-style" I mean things such as: Table of contents, index, named chunks (which can be included in others), pretty printing, print out (rather than HTML), etc. Partially also the input format, but mostly I refer to the output presentation and how they work in general. 19:45:58 19:41:12: zzo38: oh. i don't know. maybe some of that if you also use haddock. istr it does not support reordering things though (and haskell doesn't really need that) 19:46:12 What oerjan said; Haskell doesn't need the crutches that other languages do to support literate programming 19:47:02 20:06:06: what is facentes 19:47:07 oerjan: it's what you poop, HTH 19:47:18 elliott: THANKS 19:47:46 Ok uh.. suppose you compare the idea of a puzzle in an adventure game to that of solving a boardgame. well an arimaa-like puzzle might be less frustrating 19:48:04 `addquote That offers me some social standing, feudal system wise 19:48:06 516) That offers me some social standing, feudal system wise 19:48:14 itidus20, have you looked at Minecraft, actually? 19:48:26 i wanted to buy it but i'm broke 19:48:37 I wanted to buy it, so I did. 19:48:48 but i might bore of it also 19:48:51 And now I don't need to pay for a school trip to Rome 19:49:12 That is good news, that has came about from bad news 19:50:01 itidus20, it is quite simple to pirate. 19:50:06 00:54:11: http://i.imgur.com/w7cns.jpg This was the Yahoo! News pictures page. Today. 19:50:07 elliott: also i assume knuth's literate programming was originally for pascal, which has stupidly stringent ordering requirements (admittedly to get trivial one-pass compilation) 19:50:09 ANOTHER ONE?!!!!?! 19:50:11 er 19:50:13 *wirth's 19:50:16 shees 19:50:17 h 19:50:26 oerjan: um wirth invented literate programming? 19:50:29 lol 19:50:38 no, knuth did 19:50:41 elliott: er wait i'm confusing myself 19:50:45 :) 19:50:49 Also, is there anyplace I can see a list of all the hackego quotes 19:51:07 i _thought_ wirth, my subconscious must have corrected it, and this time it was right :P 19:51:31 ambiguity of ***th 19:51:42 my regex skills aren't up to speed though 19:51:58 (a-z){3}th 19:52:02 Is it bad that I got confused because I couldn;t think of a swear word with that pattern? 19:52:05 iamcal: [a-z] 19:52:08 ...th 19:52:18 Also, is there anyplace I can see a list of all the hackego quotes 19:52:21 `pastequotes 19:52:23 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.32205 19:52:28 that's an immutable snapshot 19:52:29 [a-z]{3}th 19:52:30 you can also go to 19:52:31 `url quotes 19:52:32 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/quotes 19:52:33 but that lacks quote numbers 19:52:37 Handy 19:52:47 itidus20: nah it's just that my mind graph has a pascal -> wirth edge, and i knew (knuth's) WEB was in pascal, so somehow the wires got crossed 19:52:56 oh 19:53:11 pascal reinforced the confusion 19:53:15 yeah 19:53:37 oerjan: the wire crossing problem? 19:54:50 the oerjan confusion problem? 19:55:06 olsner_: whoosh 19:55:23 I think that there is value in languages which have hollow meaningless keywords 19:55:34 Like English. 19:56:55 also all languages 19:57:12 well a human probably can't design a program in hex 19:57:17 Is the English Language Turing-Complete? 19:57:26 sure they can implement it in hex but i doubt they can design it in hex 19:58:13 well.. is a human body turing complete :> 19:58:16 Taneb: i'd say it's either obviously turing-complete, or too vague to be used for computation... 19:58:27 itidus20: obviously not 19:58:29 we have only finite memory 19:58:35 Taneb, allowing for imperatives, yes. 19:58:39 hummm 19:58:48 Phantom_Hoover: why do you need imperatives? 19:59:01 "A list starting with 9 and followed by itself, with each element incremented by one." 19:59:10 that's map succ (repeat 9) 19:59:14 ye olde declarative english 19:59:29 elliott, yeah, but imperatives are the most direct way to do it. 20:00:29 -!- pikhq has joined. 20:00:30 Phantom_Hoover: Only if you consider imperative languages more obvious than functional ones 20:01:03 I don't think enough thought is given to how humans percieve a language(in common programming) so much as how the language compiles 20:01:33 falling back on a basic set of keywords to do everything 20:01:42 you can never escape the friggen keywords 20:01:57 Protip: if you think you have some Big New Idea and you're not an expert, it's probably been done. 20:02:08 no keywords in Scheme 20:02:21 elliott, unless you consider the special forms keywords. 20:02:27 Phantom_Hoover: you can rebind them 20:02:28 I admit english has words like "is" 20:02:32 (let ((lambda 9)) lambda) => 9 20:02:38 so they're not keywords by any stretch of the imagination 20:02:55 "you","I","is" etc.. could be english keywords 20:03:05 (let ((lambda (lambda (x y) y)) (x (lambda () 9))) (lambda (x) x)) => 20:03:11 (that function being x) 20:03:22 -!- pikhq_ has quit (Ping timeout: 246 seconds). 20:03:43 but the english words tend to be controlled by general grammars.. such that "you" and "I" are pronouns. 20:04:06 whereas, uh.. humm 20:06:26 itidus20: basically afaik there have been attempts to make programming languages looking like english and they've all been crap 20:07:00 COBOL and Applescript are the two i know about 20:07:53 on thinking about it, by separating reserved words from created words you often know whether an identifier is safe to use 20:08:11 it could be a mess if you had to consult a dictionary each time you thought up an identifier 20:08:33 And if the implementation was written by someone with a different dictionary... 20:08:49 Say, the complete OED that costs £750 and can kill people 20:08:56 uhh i don't mean english as such 20:08:59 just words 20:09:06 anyway, do you want the OED? 20:09:13 its easily obtainable now :P 20:09:22 In hardback? 20:09:25 nope 20:09:42 itidus20: i don't think you can kill people with a digital version. well maybe. 20:10:40 apparently when they released the sofrware one.. they used something called securom... and apparently if you replace that file with one called swhx its freely usable 20:10:58 probably not legally of course 20:11:44 so theres torrents out there demonstrating this 20:11:56 it's all very odd 20:16:31 -!- pikhq_ has joined. 20:18:09 Maybe it's just a lambdabot thing where it reads one full expression and ignores trailing fluff? Certainly "pi 3 4" is not okay in ghci. 20:18:10 -!- pikhq has quit (Ping timeout: 240 seconds). 20:18:18 no there is an actual instance. 20:18:27 > (sin + cos) 0 20:18:28 1.0 20:18:36 > (sin + cos + 1) 0 20:18:37 2.0 20:19:05 also known in math as "pointwise" arithmetic 20:19:50 probably not legally of course 20:19:53 You don't say? 20:21:05 > 1 2 20:21:06 > (id + 2 * id + 5) 3 20:21:06 1 20:21:07 14 20:21:17 Phantom_Hoover: hmm, is it legal in the UK to crack the DRM on a legitimate copy of something you bought? 20:21:24 I think it is, but I'm not sure 20:21:27 -!- ralc has joined. 20:21:28 (it's illegal in the US) 20:21:39 (stupid DMCA) 20:22:17 -!- cheater_ has quit (Ping timeout: 255 seconds). 20:24:53 damn it's annoying that CakeProphet isn't here so i can correct his haskell misconceptions :P 20:25:29 The mystery of the dictionary is the way each entry just contains words. 20:25:55 itidus20: a bootstrapping problem... 20:26:04 yup 20:27:35 CakeProphet, I think types should have strictness info 20:27:59 time for a visit to wiki 20:28:01 strictness is not a property of types, but of functions. although some data constructors can be strict functions (if declared with !) 20:28:04 -!- pikhq_ has quit (Ping timeout: 252 seconds). 20:28:05 -!- pikhq has joined. 20:28:20 *if having fields declared with ! 20:28:44 dammit Vorpal isn't here either :( 20:29:00 i am here ! 20:29:11 -!- Tritonio has joined. 20:29:20 oklopol, ? 20:29:23 err 20:29:24 oerjan, ^ 20:29:25 yes but you weren't involved in the conversation i am logreading 20:29:32 whew 20:29:47 oerjan, I'm preoccupied though 20:30:07 Vorpal: i was just commenting on your strictness comment 20:31:19 "The oldest known dictionaries were Akkadian empire cuneiform tablets with bilingual SumerianAkkadian wordlists, discovered in Ebla (modern Syria) and dated roughly 2300 BCE." I assume they also had the bootstrapping problem 20:32:03 but bilingual is another side of it.. far more useful 20:32:32 oerjan, ah 20:32:44 ok CakeProphet's haskell misconceptions are becoming too much for me, i'll skip the rest of that log discussion 20:34:19 " no first move advantage and no draws? how can it be so. :o" <<< you can easily remove draws from any game, and i don't think this has anything to do with first move advantages 20:35:27 -!- cheater_ has joined. 20:35:33 I'm thinking of calling it Brainfuck 20:36:01 you'll need wiki disambiguation then 20:36:10 indeed 20:36:17 Esolang needs more disambiguation 20:36:26 it may not have been completely strict about those terms on the arimaa page.. im probably taking "no first move advantage" too literally 20:36:49 realising the need for disambig just made the idea seem even better 20:37:42 " But theoretically, there are only a finite number of possible games of Go" <<< depends on endgame rules, i think some of them might let you have an uncountable number of games? 20:41:53 -!- boily has quit (Ping timeout: 276 seconds). 20:43:30 " yes but you weren't involved in the conversation i am logreading whew" <<< well THANKS :| 20:45:46 itidus20: no first move advantage is always relative, since mathematically it's rather meaningless 20:46:30 it just means that when humans play the game, they don't find starting particularly useful 20:47:08 oklopol: depends on the ko rule, not the engame rules 20:47:17 erm sorry i meant the ko rule 20:47:25 what the fuck is an endgame rule 20:47:30 ok i just watched the arimaa tutorial. interesting game. 20:48:10 oklopol: basically, rules for scoring when the players can't agree who won 20:48:11 I was present when someone mentioned porn in the House of Commons 20:48:14 On National Television 20:48:19 don't all go rules forbid repeated positions? 20:48:33 Zwaarddijk: yes, but they differ in the timeframe they forbid them in 20:48:37 ah 20:48:43 superko forbids any sort of repetition over the lifetime of the game 20:48:52 but simple ko disallows only undoing the opponent's last move 20:48:53 ais523: oh right, in any case what i meant was i certainly didn't meant that 20:49:03 I wonder whether the ban on repeated positions in chess is even taken into account until the endgame 20:49:17 -!- cheater_ has quit (Ping timeout: 255 seconds). 20:49:22 and there are some variants which disallow triple KO too (basically, where each player repeatedly undoes the opponent's last-but-3 move) 20:49:32 anyway, it is obvious that there IS a first player advantage in arimaa in the sense that the first player has a winning strategy, we just don't know it 20:49:35 I was present when someone mentioned porn in the House of Commons 20:49:36 On National Television 20:49:36 OH NOES 20:49:44 Taneb: what were you doing in the house of commons? 20:49:57 -!- FireFly has quit (Quit: swatted to death). 20:49:57 " Zwaarddijk: yes, but they differ in the timeframe they forbid them in" <<< what do you mean? 20:50:03 oh you explain 20:50:10 Being a member of one of the two organisations allowed to debat there 20:50:27 *debate 20:50:31 oh, present as in actually there 20:50:36 ais523: He's secretly the Queen. 20:50:42 elliott: I was trying to deliberately misinterpret, but I think I failed 20:50:42 " but simple ko disallows only undoing the opponent's last move" <<< this was what i meant, then could a game theoretically go on forever? 20:50:49 also, which house of commons? 20:50:52 [...] whew" <<< well THANKS :| <-- that was on response to noticing Vorpal was actually present duh :( 20:50:54 The one in London 20:51:11 oklopol: yes, it even happens sometimes (triple KO, when each player undoes the opponent's last-but-third move, and doing anything else would give a major disadvantage) 20:51:14 CakeProphet, I think types should have strictness info 20:51:16 Taneb, you're in that youth whatsit that doesn't matter, right? 20:51:17 when did he say this 20:51:20 umm, last-but-2 20:51:30 Yeah, PH 20:51:32 Taneb: did you see someone attack Rupert Murdoch? 20:51:35 and his wife retaliate? 20:51:37 or did you miss it? 20:51:46 I left before that happened 20:51:49 ais523, that wasn't even in the House of Commons, was it? 20:51:51 ais523: alright. then just add some possible move in the middle and you'll have uncountably many games. 20:52:01 oklopol: indeed 20:52:03 ais523: You may have been there years ago, but were you there TODAY??? 20:52:03 interestingly enough, go is a second player win 20:52:05 --ais 20:52:06 Phantom_Hoover: it was in the same building 20:52:07 i mean 20:52:10 oklopol: that's proven? 20:52:11 but not the same room 20:52:11 winning strategy for second player 20:52:14 elliott: no 20:52:16 as is normally used 20:52:20 oklopol: lol 20:52:22 it was one of the committee rooms 20:52:32 Ah. 20:52:35 elliott: i'm just telling you because i like you 20:52:39 oklopol: ok 20:52:42 So not where they'd let a random teenager who doesn't matter. 20:52:45 oklopol: is the riemann hypothesis true 20:52:51 elliott: of course it is 20:52:55 ... 20:52:57 -!- FireFly has joined. 20:53:02 huh, aaron swartz charged with data theft? 20:53:07 The Mythbusters said so 20:53:08 oklopol, is the continuum hypothesis true? 20:53:51 I wonder whether the ban on repeated positions in chess is even taken into account until the endgame <-- well insofar as it only being during the endgame that you're likely to not have irreversible moves (e.g. captures, pawn movements) 20:54:07 Phantom_Hoover: independent from axioms. yeah it's true. 20:54:10 oh, not "theft" of data he got from people 20:54:26 liberating academic papers, it seems 20:54:36 chess is also first player win 20:54:45 tennis, interestingly enough, is always a draw. 20:55:01 hahaha, he didn't even do anything wrong 20:55:06 just downloaded more articles than they wanted 20:55:13 oklopol: And sex? 20:55:33 `addquote interestingly enough, go is a second player win chess is also first player win tennis, interestingly enough, is always a draw. 20:55:35 517) interestingly enough, go is a second player win chess is also first player win tennis, interestingly enough, is always a draw. 20:55:50 elliott, looks like he also broke into a cabinet or something. 20:56:03 Phantom_Hoover: that's not what he's being charged with. 20:56:09 fizzie: i have to think about this 20:56:28 "I kind of picture MIT as the paramount of Technology and that includes some aspects of security. I am disappoint about lax NAC." 20:56:32 MIT: HEIGHT OF SECURITY 20:56:38 that's why no pranks ever happen there, ever 20:56:41 elliott: he did do anything wrong, he didn't have access to even a single article legitimately 20:56:43 MIT: TIM BACKWARDS 20:56:55 he got the access by breaking into the cupboard containing a network switch at MIT 20:57:05 he wasn't an MITian at the time 20:57:14 and then piggybacked on their access 20:57:18 ais523: firstly, OK, s/do anything wrong/do anything illegal/ 20:57:21 with both MIT and JSTOR trying to stop him 20:57:35 ygolonhcet etutitsni fo stessuhcassam 20:57:36 ais523: JSTOR asked the government not to prosecute, it seems 20:57:39 although my source may be biased 20:57:41 " MIT: TIM BACKWARDS" <<< the palindromist strikes again 20:57:47 well, vandalising a network switch cabinet is probably wrong even if you agree with everything else he did 20:57:55 ais523: was the switch cabinet damaged? 20:58:13 if not, "vandalising" seems a bit much 20:58:17 I assume so, typically opening a locked cabinet without the key damages it 20:58:32 unless you pick the lock 20:58:32 Unless the cabinet is badly designed 20:58:46 that's a rather minor damage, but fair enough 20:59:01 elliott, opening a locked cabinet without permission is wrong regardless. 20:59:23 Phantom_Hoover: I don't think it's completely inexcusable in all circumstances 20:59:32 ais523, inexcusable != wrong. 20:59:37 I think it's typically likely to be wrong, but there are circumstances in which it's morally justifiable 20:59:43 Phantom_Hoover: Not necessarily. 20:59:49 Besides, MIT has a long history of that kind of stuff. 20:59:58 elliott: even when done by non-MITers? 21:00:06 oklopol: so interesting to me is whether you can have a game like arimaa where there is no first/second player advantage 21:00:35 and as a wannabe game designer, this is a pain 21:00:38 lifthrasiir: No, the command, the step number, and the index of the command are added up, and the digital root of that (mod 4) is the actual command 21:00:40 ais523: Not that I know of, but I don't think anyone in charge of switch cabinets at MIT expects them to never be broken into 21:00:45 itidus20: making the game symmetrical is an easy way 21:00:54 as in, both people think of moves independently, then make them simultaneously 21:01:05 mind you i believe you can take the digital roots first, and do the additions mod 9 21:01:09 digital root mod 4? what? 21:01:19 coppro: digital root, then mod 4 21:01:31 elliott: well, if they figured out someone had planted a laptop in a switch cabinet, they'd probably have just removed it rather than trying to block its IP and MAC address 21:01:53 ais: yeah.. but can you rule out advantage while also ruling out a draw? 21:02:22 itidus20: you could finish off with matching pennies or something 21:02:30 although that's a bit of a contrived and cheaty example 21:02:32 Taneb: oh wait i just realized something, digital roots tend to be 9 not 0. hm whoops i wonder if my table has errors because of this. 21:02:45 matching pennies? 21:03:05 im just looking at the painful limitations of games 21:03:09 itidus20: a two player game; each player says head or tails (chosen independently, and then both reveal at the same time), the first player wins if they say the same, the second otherwise 21:03:24 it's a bit like rock-paper-scissors, except you can't get draws 21:03:27 0 shouldn't happen unless you are at the beginning of the program starting with 0! 21:03:45 interesting 21:04:15 ais: i like the sound of it 21:05:09 Uurgh... 21:05:12 Ill 21:05:56 Goodnight 21:06:05 Taneb: use a unicorn horn if you can; if not, eat eucalyptus leaf or as a last resort pray 21:06:09 -!- Taneb has quit (Read error: Connection reset by peer). 21:06:11 you only have around 40 turns left to live 21:06:17 oh, right, wrong channel 21:07:05 So each player specifies a 0 or 1 privately p1 and p2. And then they are both revealed. if (p1 == p2) player 1 wins, else player 2 wins. 21:07:10 it might be some 0's should be 1's instead. fortunately this won't ruin the easy numberwang row 21:07:41 itidus20: yep, that's it 21:09:30 " ais: yeah.. but can you rule out advantage while also ruling out a draw?" <<< if you don't have draws, either the first or the second player always wins, obviously. (assuming perfect players, and why wouldn't you.) 21:10:35 well okay if you have imperfect information, that's not true 21:10:52 noone in the universe has perfect information :> 21:10:55 oklopol: imperfect information or randomness 21:11:01 :-P 21:11:01 matching pennies does it via imperfect information 21:11:04 yeah to what ais523 said 21:11:22 ais: but it's still very formal. i like it. it's not dice rolling 21:11:24 nothing except silent disapproval to what itidus20 said 21:11:59 itidus20: have you read any game theory? it's all about that stuff 21:12:07 oklo: i don't like the state of affairs. i am slinging arrows about. 21:12:32 well that makes perfect sense i guess 21:12:53 oklopol: I've never heard of any rules of Go which would lead to an uncountable number of games 21:13:31 ok so.. looking at the penny example. so each player selects 1 bit privately, and then.. the rules are a 2 bit table. 21:14:04 itidus20: that's a common representation for games in academia 21:14:08 as a lookup table 21:14:14 you could have it such that the rules were stacked 3 ways to win vs 1 way to lose 21:14:14 it doesn't work too well for complex games, though 21:14:33 coppro: ais523 just mentioned simple ko 21:14:35 itidus20: that wouldn't be too fun, though, as one player play the move that let them always win 21:14:38 -!- ralc has quit (Ping timeout: 260 seconds). 21:14:41 hehe 21:14:44 coppro: simple ko, you can 21:14:49 superko, the number of games is finite 21:14:50 ais523: How? 21:15:00 coppro: triple ko allows you to produce arbitrary integers 21:15:00 ais: and this is why fundamentally we hate first person advantage 21:15:06 ais523: Which are countable 21:15:08 two triple kos on the board at the same time gives arbitarry reals 21:15:19 how? 21:15:22 because you can interleave them uncountably many ways 21:15:38 because it ultimately allows the first player to always win in perfect conditions(which luckily don't exist) 21:15:57 basically, imagine you take the binary expansion of a real, for 0 each player plays a move in the first triple ko, for 1 each player plays a move in the second triple ko 21:16:04 all reals give different games that way 21:16:09 (between 0 and 1, but that doesn't matter) 21:16:15 thus, uncountably many games are possible 21:16:29 or alternatively, have repetitions either 3 or 4 steps away from each other and just encode a bit sequence 21:16:31 -!- oerjan has quit (Remote host closed the connection). 21:16:32 so to me.. chess is matching pennies where: 01 = win, 00,10,11 = lose 21:16:35 ais523: Hmm... 21:16:39 -!- oerjan has joined. 21:16:46 just that its so complex that noone knows how to grab that advantage 21:16:58 itidus20: fair enough 21:17:17 its ok and all... but its a nasty fact. 21:17:17 people tend to play chess a lot more than matching pennies, thuogh 21:17:18 *though 21:17:27 -!- Tritonio has quit (Quit: Leaving). 21:17:27 ais523: ok you win 21:17:36 it means chess is useless on a small enough scale 21:17:46 it can't scale down to simple 21:18:00 I suspect there's more perceived skill in chess precisely because you can gain an advantage by knowing the lookup table more than your opponent does 21:18:10 on a small enough board it is tic tac toe as far as the PC is concerned 21:18:25 yep 21:18:56 i still appreciate the actuality of chess 21:19:06 iirc with the natural infinitification, go with simple ko is something like exptime hard but we don't know anything about superko 21:19:33 (whether a position is winning that is) 21:19:51 what does the actuality of chess mean? 21:20:14 what people do with chess instead of theorizing and analyzing it 21:20:20 play it 21:20:36 ah. that one. yeah 21:20:55 chess is extremely boring to play though 21:21:43 oklopol, what do you not find boring to play? 21:22:19 space jazz? 21:22:32 well i like board games where you don't need to think, then i don't start clumsily doing brute-force search 21:22:41 say monopoly 21:23:34 but hmm 21:23:44 Monopoly: the game designed to tear families apart. 21:23:45 i kind of liked go as well the one time i played it 21:23:48 most of the skill in monopoly is negotiation 21:23:53 two-player monopoly is really boring 21:23:59 ais523, hence the families being torn apart. 21:24:09 so on trying to arbitrarily map the 4 possible results of penny matching i see that only 1 version is balanced 21:24:22 negotiation is gay, i just like the part where you have a number that tells you how good you're doing and it randomly goes up or down 21:24:30 95% of divorces are due to Monopoly, true fact. 21:24:30 where can you negotiate in monopoly? I thought the rules and chance decided everything in monopoly? 21:24:52 * Sgeo wants to try Diplomacy at some point 21:24:56 olsner_, you say 'oi, do that and I'll do that'. 21:24:59 Sgeo, it's pretty boring. 21:25:13 olsner_: you can trade properties 21:25:15 Wait, wrong thing. 21:25:17 also money 21:25:32 but yeah negotiation type of thingies are certainly more fun than search games 21:25:46 @die 1d2 21:25:47 1d2 => 1 21:26:31 @die ld2 21:26:32 unexpected "l": expecting number 21:26:38 oops 21:26:43 @die 1d2 21:26:44 1d2 => 1 21:27:56 @die evil scum 21:27:57 unexpected "e": expecting number 21:28:15 BUT e IS A NUMBER!" 21:28:17 @die 1d(1d(1d6)) 21:28:17 unexpected "(": expecting number 21:28:18 *-" 21:28:20 bleh 21:28:30 @die 1d1e6 21:28:31 unexpected "e": expecting digit, "+" or end 21:28:39 @die 1d2.7 21:28:40 unexpected ".": expecting digit, "+" or end 21:28:54 lambdabot: so by "expecting number", you mean "expecting positive integer"? 21:28:57 @die 1d0 21:28:58 1d0 => 0 21:29:00 -!- ralc has joined. 21:29:07 @die 0d1 21:29:08 0d1 => 0 21:29:15 non-negative then ... unless you say 0 is positive 21:29:29 yep, non-negative, I was surprised at those cases working 21:29:32 especially the first of them 21:30:18 @die 100000000000000000000000000000000000d6 21:30:18 100000000000000000000000000... => 350000000000000000177312581656777664 21:30:35 21:30:53 * oerjan whistles innocently 21:31:21 lol at zero-sided die 21:31:37 I guess it does randomR (1,x) which ends up being (1,0) and lo>hi is undefined 21:31:46 just goes to an infinite loop if you cast it 21:31:48 *unspecified 21:32:53 hmm, a zero-sided die, could be a sphere 21:33:14 that's a one-sided die 21:33:26 a zero-sided die would have to not land at all 21:37:29 it's a bit weird though, the limit at infinite sides would be a sphere, so I'd expect the lower limit to be something else 21:38:45 There's a bot on Foonetic 21:39:07 Calls 2 sided die coins, 1 sided die marbles, and 0 sided die ephemeral, iirc 21:40:10 What are 3 sided die? Die? 21:40:38 Ethereal 21:40:42 Oh, oops 21:40:47 0 sided are called ethereal 21:40:57 Yeah, just die 21:41:19 * Sgeo rolls 1d1 21:41:20 1, dummy. 21:41:20 * Sgeo rolls 1d2 21:41:20 Sgeo got: tails. 21:41:20 * Sgeo rolls 1d0 21:41:20 Ethereal dice always show 0. 21:41:42 don't ethereal and ephemeral mean kind of the same thing? 21:42:28 no 21:42:34 * Sgeo rolls 1000000000000d1 21:42:34 I don't have that many marbles. 21:42:34 * Sgeo rolls 1000000000000d2 21:42:34 I don't have that many coins. 21:42:34 * Sgeo rolls 1000000000000d0 21:42:34 ephemeral is fleeting 21:42:34 Ethereal dice always show 0. 21:42:36 ethereal is ghostly 21:42:55 a temporary file is ephemeral; sprites are ethereal 21:42:59 spoooooooooky 21:43:10 totes 21:43:23 * Sgeo rolls 1000000000000d3 21:43:23 My dice bag is not that big. 21:51:23 anyway, what about 3-sided? everything 4 and up is trivial, and we seem to have covered 0-2, but I can't imagine anything 3d and 3-sided 21:51:28 -!- olsner_ has changed nick to olsner. 21:53:18 don't worry, i can 21:54:18 but yeah if the faces need to be plane, hmmhmm. 21:54:44 i think it is impossible 21:54:55 the problem is the idea each face needs to be a triangle 21:55:00 ^at least a 21:55:09 but you should be able to make something that has exactly three stable states 21:55:19 oh well that's easy 21:55:34 Why would it need to be regular 21:55:40 Just have two points on each side 21:55:44 Erm, non-side 21:55:45 and if you add a vertex to a triangle you get a 4 sided shape 21:55:53 yeah for instance what Sgeo is saying 21:58:14 but if you can't have bends, consider the first face, the second face and the third face must divide its rim in among each other and extend in the same direction; but then if those faces are plane, and the resulting object is closed, clearly the first face has to be just a line 21:58:17 anyway, what about 3-sided? everything 4 and up is trivial, and we seem to have covered 0-2, but I can't imagine anything 3d and 3-sided 21:58:38 It's trivial to make a shape which can only form a stable equilibrium in n states. 21:59:12 Phantom_Hoover: yes, you missed the line a couple of lines down where I drew that conclusion 22:18:41 -!- pumpkin has joined. 22:21:09 I have this distressing feeling that my headphone jack is on its last legs. 22:21:37 -!- copumpkin has quit (Ping timeout: 250 seconds). 22:24:58 -!- pumpkin has changed nick to copumpkin. 22:27:16 -!- augur has joined. 22:29:54 -!- elliott has quit (Quit: Leaving). 22:31:18 -!- elliott has joined. 23:02:42 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 23:17:47 * pikhq does something unthinkable on Linux... 23:17:52 Defragmentation. 23:18:25 NOOO 23:22:37 `addquote Fuck clay its only purpose is ecoration 23:22:38 518) Fuck clay its only purpose is ecoration 23:25:29 ecoration of ecosystems 23:26:34 -!- copumpkin has joined. 23:26:51 decosystems 23:27:20 also I've seen some very useful clay 23:28:55 So is a line more true than a curve? 23:29:09 ^straight line 23:29:37 true? what does that mean 23:29:40 hehe 23:29:57 Or is it just that straight lines are easy 23:30:27 Is theory more puce than practice? 23:30:36 we have a fixation on straight lines 23:30:52 I love curvy wobbly non-lines 23:31:02 hummm 23:32:31 i tend to associate 1 dimension with a straight line 23:33:01 probably all those x,y,z diagrams 23:34:31 Incidentally (and this seems to have happened to no fanfare), e4defrag seems to have actually gotten released. 23:34:37 Straight? One dimension? 23:35:02 If you mean that 1D things are normally portrayed as straight, that's because they have no innate curvature. 23:35:42 It is perfectly *valid* to have a 1-dimensional vector space in a higher space that is curved in that higher space, though. 23:35:52 itidus20: a 1 dimensional vector space _is_ a straight line. 23:36:03 pikhq: um, no. that's not a vector space then. 23:36:16 well, not a vector subspace. 23:36:40 Hrm. Actually, let me think about this before I try to explain what I meant. 23:36:46 And see if I just said something stupid. 23:36:54 however 1 dimensional non-vector spaces don't need to be straight lines (duh) 23:37:04 pikhq: informally I get what you meant. that a ribbon representing 1d could twirl about in 3d space 23:37:13 Yeah, I just said something stupid. 23:37:15 and still represent 1d 23:37:46 Vector spaces quite explicitly need to be linear. 23:38:11 itidus20: http://en.wikipedia.org/wiki/Space-filling_curve >:) 23:38:13 Of course, a non-vector space has no such restrction. Yay. 23:38:36 @no such restriction.. ^5 another beer 23:38:37 Parse error at ".." (column 17) 23:38:52 oops 23:39:11 * oerjan wonders what that command was 23:39:15 @no 23:39:15 () 23:39:20 @nod 23:39:20 Maybe you meant: bid do id todo yow 23:39:30 hm 23:39:30 yes he did lambda 23:39:32 @list do 23:39:33 undo provides: undo do 23:39:48 oerjan: Excuse me for saying stupid shit. Just because I did well in linear algebra doesn't mean I'm going to fuck up even basic bits of it. :P 23:39:50 -!- foocraft has quit (Ping timeout: 255 seconds). 23:40:13 @do [such restriction.. 2^5 another beer] 23:40:14 [such restriction .. 2 ^ 5 another beer] 23:40:17 SO CLOSE 23:40:35 oerjan: wat 23:40:43 i mean 23:40:46 @no [such restriction.. 2^5 another beer] 23:40:47 [such restriction .. 2 ^ 5 another beer] 23:41:16 elliott: so close to parsing correctly 23:41:51 pikhq: my role here is to be a clueless free agent assuming to understand another's field without having read more than a wiki page or 2 23:42:10 -!- elliott has quit (Remote host closed the connection). 23:42:28 itidus20: see what you did, scaring away elliott 23:42:56 i can't recall where the understanding anothers field line comes from.. probably big bang theory 23:42:59 elliott doesn't like clueless people, true fact 23:43:19 -!- elliott has joined. 23:43:56 but my comments are also hopefully kind of fun because they have no financial or research incentive 23:44:03 they don't mean to be anything 23:44:25 ok so you are not a spambot, i guess that's _something_... 23:44:58 i'm romero to carmack 23:45:10 maybe that is saying a bit much 23:46:06 > maximum [] 23:46:07 *Exception: Prelude.maximum: empty list 23:46:30 http://oi56.tinypic.com/2d14acn.jpg 23:52:52 @t (1,) 23:52:53 Maybe you meant: tell thank you thanks thx ticker time todo todo-add todo-delete topic-cons topic-init topic-null topic-snoc topic-tail topic-tell type . ? @ ft v 23:52:57 :t (1,) 23:52:59 Illegal tuple section: use -XTupleSections 23:53:46 -!- foocraft has joined. 23:54:32 :t (,) 1 -- same thing 23:54:34 forall t b. (Num t) => b -> (t, b) 23:54:57 elliott, I just found out "bash on balls" exist. Seriously wtf. 23:55:10 https://github.com/jayferd/balls 23:57:21 -!- augur has quit (Remote host closed the connection). 23:57:31 ahaha what 23:57:48 bash web platform sounds like a horrible idea 23:58:27 Must be a joke. 23:58:33 yes I think it is tongue in cheek indeed 23:58:42 "This is a fully-featured web platform for everyone's favorite scripting language: bash. Because, you know, we can." 2011-07-20: 00:02:10 Methinks that doing that on zsh would be slightly saner. If still completely nuts. 00:02:39 @src head 00:02:40 head (x:_) = x 00:02:40 head [] = undefined 00:02:53 @src undefined 00:02:54 undefined = error "Prelude.undefined" 00:03:07 > undefined 00:03:09 *Exception: Prelude.undefined 00:03:18 > head [] 00:03:19 *Exception: Prelude.head: empty list 00:03:28 wat 00:03:47 Lymee: that head source is not canonical, implementations are allowed to use more specific error messages 00:04:35 I know. 00:04:42 it's just unexpected when the source says one thing and the result is another. 00:05:12 i think @src is a bit of a mishmash of haskell report and ghc source 00:05:28 Yeah, it seems to do source from the Report except when it's really misleading. 00:05:59 And a different _|_ value is not very misleading. :) 00:07:02 > fix error 00:07:03 "*Exception: *Exception: *Exception: *Exception: *Exception: *Exception: *E... 00:11:34 @src == 00:11:34 x == y = not (x /= y) 00:11:40 @src /= 00:11:41 x /= y = not (x == y) 00:11:54 Must be messy when neither is implemented.. 00:12:09 :t error 00:12:10 forall a. [Char] -> a 00:12:23 oerjan, how does that work? 00:13:41 Lymee: error is a bottom value. Which, incidentally, is the only kind of value which is of every type. 00:13:44 Simple. :) 00:13:55 > fix error 00:13:57 "*Exception: *Exception: *Exception: *Exception: *Exception: *Exception: *E... 00:14:07 It's clearly returning a [Char] 00:14:14 no 00:14:15 One that makes /sense/ at that. 00:14:17 :t fix error 00:14:18 [Char] 00:14:21 oh 00:14:29 oh right yeah 00:14:30 :t fix 00:14:32 forall a. (a -> a) -> a 00:14:33 > error error "wat" 00:14:34 Couldn't match expected type `[GHC.Types.Char]' 00:14:35 against inferred ty... 00:14:35 im dumb 00:14:37 Lymee: It's not actually making sense. 00:14:46 > error $ error "wat" 00:14:47 *Exception: *Exception: wat 00:14:57 @src error 00:14:57 Lymee: The show routine is printing out the initial " for the string. 00:14:57 error s = throw (ErrorCall s) 00:15:20 Lymee: And then the RTS starts outputting that it got an exception, so it prints *Exception: . 00:15:30 Lymee: And then, it tries to output the error message for that. 00:15:36 Lymee: And then the RTS starts outputting that it got an exception, so it prints *Exception: . 00:15:42 Lymee: And so on. 00:15:58 Makes sense. 00:16:31 And so you get an infinite number of error messages. 00:17:23 > [1,2,3,4,(error "5")] 00:17:24 [1,2,3,4,*Exception: 5 00:17:30 > take 4 $ [1,2,3,4,(error "5")] 00:17:31 [1,2,3,4] 00:17:33 > take 5 $ [1,2,3,4,(error "5")] 00:17:34 [1,2,3,4,*Exception: 5 00:17:34 > error undefined 00:17:35 *Exception: *Exception: Prelude.undefined 00:17:46 > take 0 $ reverse $ [1,2,3,4,(error "5")] 00:17:47 [] 00:19:37 @src throw 00:19:38 throw exception = raise# exception 00:19:42 @src raise# 00:19:43 Source not found. Are you on drugs? 00:19:47 ;-; 00:19:56 :t raise# 00:19:58 Not in scope: `raise#' 00:20:01 :t \x -> raise# x 00:20:02 Not in scope: `raise#' 00:20:14 Is raise# an internal function? 00:20:23 That's what # is used to indicate, yes. 00:29:09 > let blah# = 1 in blah# + blah# 00:29:10 2 00:30:16 -!- FireFly has quit (Quit: swatted to death). 00:34:18 -!- augur has joined. 00:37:06 Yeah, it's just a convention. 00:40:44 > let # = 1 in # + # 00:40:46 : parse error on input `#' 00:40:54 > let _ = 1 in _ + _ 00:40:56 Pattern syntax in expression context: _Pattern syntax in expression context... 00:41:05 Aww. 00:41:17 > let # = 1 in (#) + (#) 00:41:19 : parse error on input `#' 00:41:22 Balls. 00:46:32 > let (#) = 1 in (#) + (#) 00:46:33 : parse error on input `)' 00:47:06 it would appear that lambdabot has MacicHash set, anyway 00:47:15 *MagicHash 00:50:00 -!- BeholdMyGlory has quit (Remote host closed the connection). 00:51:55 > let _# = 1 in _# + _# 00:51:56 2 00:52:03 > let #_ = 1 in #_ + #_ 00:52:04 : parse error on input `#' 00:52:06 wah 00:54:12 -!- BeholdMyGlory has joined. 00:54:34 with MagicHash # is treated essentially as an alphanumerical character, but not one that can be at the beginning of an identifier (i.e. more like a number than like a letter) 00:55:03 > let _#_#_ = 1 in _#_#_ 00:55:04 Pattern syntax in expression context: _ 00:55:14 well so much for that theory 00:55:17 hm... 00:55:34 > let _# = 1 in _# 00:55:36 1 00:55:41 > let _ # = 1 in _ # 00:55:42 : parse error on input `=' 00:55:48 > let _# = 1 in _ # 00:55:50 : parse error (possibly incorrect indentation) 00:55:56 hm weird 00:56:05 > let _#_ = 1 in _#_ 00:56:06 Pattern syntax in expression context: _ 00:56:15 > let _#a = 1 in _#a 00:56:16 1 00:56:54 > let _* = 1 in _* 00:56:55 : parse error on input `=' 00:57:32 > let _#a = a+b in _#a 00:57:33 a + b 00:57:41 um 00:58:04 > let _#a = a+b in _#b 00:58:06 b + b 00:58:13 aaaaaaah 00:58:38 > let _# a = a+b in _#b 00:58:40 b + b 00:59:00 ok so somehow the # _always_ ends the identifier 00:59:31 > let a#b = a+b in c#d 00:59:32 Not in scope: `c#' 01:00:03 > let **/** = blah in **/** 01:00:04 : parse error on input `**/**' 01:00:07 What 01:00:14 > let * = 1 in * 01:00:15 : parse error on input `*' 01:00:17 * Lymee boggles 01:00:27 > * 01:00:29 : parse error on input `*' 01:00:34 http://www.weather.com/maps/maptype/currentweatherusnational/uscurrentheatindex_large.html The US midwest: because OH GOD MY FLESH IS BOILING 01:00:39 no, # really is special, it is not an operator character in this use 01:00:52 > let a # b = a+b in 2 # 2 01:00:52 > let **/** = \x y -> x * y in 1 **/** 2 01:00:53 4 01:00:54 : parse error on input `**/**' 01:00:59 > let (**/**) = \x y -> x * y in 1 **/** 2 01:01:00 2 01:01:01 although it seems to be there 01:01:53 > let x **/** y = x * y in 1 **/** 2 01:01:55 2 01:02:09 (for non-Americans; those are °F; 30°C = 86°F) 01:02:46 86 F is not bad. 01:02:51 100+ is. 01:02:57 such is texas 01:03:02 > let (#) = \x y -> x * y in 1 # 2 01:03:03 Yes. And the US midwest. 01:03:04 : parse error on input `)' 01:03:08 # is weird. 01:03:23 pikhq, I wonder what Flordia is like. 01:04:12 pikhq: http://s3.amazonaws.com/files.posterous.com/haggis/GAhuydjnactzJByDuEBnhFbDleICnFGGiFwbyctAFhibnccygAlcFybAECye/media_httptdwgeeksfil_EyJDb.jpg.scaled500.jpg?AWSAccessKeyId=AKIAJFZAE65UYRT34AOQ&Expires=1311124134&Signature=tHe1WUqs4692fTb%2BKjKr84%2FuYbk%3D 01:04:23 goddamn that was a long URL 01:04:34 :D, though. 01:06:19 Lymee: # is only weird if the MagicHash flag is set, otherwise i believe it's an ordinary operator char 01:07:34 What does it do? 01:07:52 and normally the MagicHash flag is only set if you want to import and use ghc internal/primitive functions 01:08:06 (those containing # in their name) 01:08:43 well, or if you want to define them, but that's for the ghc implementers 01:09:18 * Phantom_Hoover → sleep 01:09:26 > let throw# = \x -> x in error 'this wont work i dont think" 01:09:27 : 01:09:27 lexical error in string/character literal at chara... 01:09:29 although many of them probably aren't defined in haskell at all 01:09:34 > let throw# = \x -> x in error "this wont work i dont think" 01:09:36 *Exception: this wont work i dont think 01:09:36 86 F is not bad. 01:09:41 !sanetemp 86 01:09:44 30.0 01:09:48 O.o 01:09:52 sanetemp? 01:09:53 =p 01:09:55 Nice function. 01:10:02 !insanetemp 30 01:10:05 you fail. 01:10:10 !show sanetemp 01:10:10 sh dc -e "1k?32-5*9/p" 01:10:15 Lymee: well duh haskell is lexically scoped (except for ?x implicit parameters) 01:10:30 oerjan, I'm aware. 01:10:30 =p 01:10:56 !sanetemp 105 01:10:56 40.5 01:10:59 That was a few days ago. 01:11:00 Yeah. 01:11:07 aaaaaaaaa 01:11:58 !addinterp insanetemp sh dc -e "1k?9*5/32+p" 01:11:58 ​Interpreter insanetemp installed. 01:12:08 !insanetemp 30 01:12:09 86.0 01:12:12 !userinterps 01:12:12 ​Installed user interpreters: acro aol austro bc bct bfbignum brit brooklyn bypass_ignore bytes chaos chiqrsx9p choo ctcp dc decide drawl drome dubya echo eehird ehird elmer fudd google graph gregor hello id insanetemp jethro kraut lperl lsh map num numberwang ook pansy pi pikhq pirate plot postmodern postmodern_aoler prefixes python redneck reverse rimshot rot13 rot47 sadbf sanetemp sfedeesh sffedeesh simplename slashes svedeesh swedish ustemp valspeak warez w 01:12:26 bah always running out of space in that list 01:12:30 !pikhq hello, world 01:12:31 hello, world 01:12:37 !show pikhq 01:12:37 sh sed 's/th/þ/g ; s/Th/Þ/g ; s/s/ſ/g ; s/ae/æ/g ; s/Ae/Æ/g ; s/oe/œ/g ; s/Oe/Œ/g' 01:12:41 Ah. 01:13:15 !pikhq The rain in Span falls mainly on the encyclopaedias of foetuses. 01:13:15 ​Þe rain in Span fallſ mainly on þe encyclopædiaſ of fœtuſeſ. 01:13:44 Gregor: EgoBot needs a better listing method for !userinterps 01:13:55 !pi 01:13:56 3.14156 01:14:16 I should probably do something about that last digit. 01:14:19 !show show 01:14:19 That is not a user interpreter! 01:14:23 * Lymee runs 01:14:26 !show warez 01:14:27 sh warez 01:14:32 !warez 01:14:39 !warez hello world 01:14:39 h3lLo worl|) 01:14:41 !sh cat warez 01:14:42 ​/bin/cat: warez: No such file or directory 01:14:47 !sh where warez 01:14:47 ​/tmp/input.16017: line 1: where: command not found 01:14:51 !sh cat `which warez` 01:14:51 ​ELF... 01:14:53 *clap clap clap* 01:14:57 !sh which warez 01:14:58 ​/usr/bin/warez 01:15:10 !sh cat /usr/bin/warez | paste 01:15:10 ​ELF... 01:15:15 ... 01:15:21 !sh which paste 01:15:21 ​/usr/bin/paste 01:15:40 !sh cat /usr/bin/warez 2>&1 | paste 01:15:41 ​ELF... 01:15:41 it's HackEgo which does that pasting stuff 01:15:44 Lymee: man paste por favor. 01:15:51 !sh man paste 01:15:52 ​/usr/bin/man: can't open the manpath configuration file /etc/manpath.config 01:15:54 NOPE 01:15:58 *On your own system*. 01:16:18 I'll give you a hint; it's in GNU coreutils, and mandated by POSIX. 01:16:29 opps 01:16:40 um. 01:16:40 !sh sprunge 01:16:41 ​/tmp/input.16456: line 1: sprunge: command not found 01:16:51 What was the function to post things into pastebin again? 01:16:51 !ls 01:16:59 !paste cat /usr/bin/warez 01:17:11 curl -F 'sprunge=<-' http://sprunge.us 01:17:28 !sh cat /usr/bin/warez 2>&1 | curl -F 'sprunge=<-' http://sprunge.us 01:17:28 ​/tmp/input.16593: line 1: curl: command not found 01:17:30 You lie. 01:17:37 !sh cp /usr/bin/warez warez 01:17:38 ​/bin/cp: cannot create regular file `warez': Permission denied 01:17:45 !sh cp /usr/bin/warez ./test 01:17:45 ​/bin/cp: cannot create regular file `./test': Permission denied 01:17:48 ;, 01:17:49 ;, 01:17:51 :< 01:17:54 !sh pwd 01:17:54 ​/home/egobot/egobot.hg/multibot_cmds 01:18:01 !sh ls -l 01:18:01 ​/bin/ls: interps: Function not implemented 01:18:11 !sh cat /usr/bin/warez > warez 01:18:12 ​/tmp/input.16852: line 1: warez: Permission denied 01:18:15 What. 01:18:24 `run cat /usr/bin/warez > warez 01:18:26 No output. 01:18:37 `paste /usr/bin/warez 01:18:38 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.26123 01:18:48 `paste warez 01:18:50 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.6501 01:19:02 `run which paste 01:19:03 ​/tmp/hackenv.17049/bin/paste 01:19:24 !sh ls /tmp 01:19:25 input.17146 01:19:55 Dammit, I kind of hoped they both ran in the same environment. 01:20:12 Anyway. 01:20:16 * Phantom_Hoover → sleep 01:20:18 -!- Phantom_Hoover has quit (Quit: Leaving). 01:23:11 -!- azaq23 has quit (Ping timeout: 258 seconds). 02:04:27 oerjan: Suggestions/patches welcome. 02:04:58 Gregor: ? 02:12:17 elliott: EgoBot's !userinterps list keeps overflowing 02:13:31 !userinterps 02:13:32 ​Installed user interpreters: acro aol austro bc bct bfbignum brit brooklyn bypass_ignore bytes chaos chiqrsx9p choo ctcp dc decide drawl drome dubya echo eehird ehird elmer fudd google graph gregor hello id insanetemp jethro kraut lperl lsh map num numberwang ook pansy pi pikhq pirate plot postmodern postmodern_aoler prefixes python redneck reverse rimshot rot13 rot47 sadbf sanetemp sfedeesh sffedeesh simplename slashes svedeesh swedish ustemp valspeak warez w 02:13:34 :( 02:14:45 maybe making a different list for the things that aren't really interpreters? 02:15:17 !userutils or something 02:15:31 !fudd the best utility 02:15:32 de best utiwity 02:15:50 !ehird what does this one do 02:15:51 wut does this one do 02:15:56 clever 02:16:02 !show ehird 02:16:02 sh funetak 02:16:10 !show fudd 02:16:10 sh fudd 02:16:13 !show elmer 02:16:14 perl for (<>) {lc; s/l(?!e\W)/w/g; s/\Ber|(? !show eehird 02:16:23 haskell main = interact (let food s = case dropWhile (\x -> not (isAlpha x || isSpace x)) s of "" -> []; s' -> w : food s'' where (w, s'') = break (\x -> not (isAlpha x || isSpace x)) s' in unlines $ map ((" " ++) . unwords . words) $ food $ map toLower) 02:16:24 oh those aren't actually equal 02:17:13 and possibly another list for all those respelling commands 02:17:32 !eehird is this one any good 02:17:36 hm 02:17:40 mh too 02:18:01 !eehird what happened there? 02:18:16 ah lots of missing imports 02:18:44 isAlpha and isSpace? 02:18:55 or is dropWhile not in Prelude either 02:19:12 !delinterp eehird 02:19:12 ​Interpreter eehird deleted. 02:19:32 !addinterp eehird haskell import Data.Char; main = interact (let food s = case dropWhile (\x -> not (isAlpha x || isSpace x)) s of "" -> []; s' -> w : food s'' where (w, s'') = break (\x -> not (isAlpha x || isSpace x)) s' in unlines $ map ((" " ++) . unwords . words) $ food $ map toLower) 02:19:32 ​Interpreter eehird installed. 02:19:43 !eehird let's see now 02:19:43 !eehird Does it work now? 02:20:02 type errors galore 02:20:25 that thing probably never worked in the first place 02:21:14 !delinterp eehird 02:21:15 ​Interpreter eehird deleted. 02:21:27 !addinterp eehird haskell import Data.Char; main = interact (let food s = case dropWhile (\x -> not (isAlpha x || isSpace x)) s of "" -> []; s' -> w : food s'' where (w, s'') = break (\x -> not (isAlpha x || isSpace x)) s' in unlines . map ((" " ++) . unwords . words) . food . map toLower) 02:21:28 ​Interpreter eehird installed. 02:21:34 !eehird now then? 02:21:39 now then 02:22:02 hm ugly second line 02:23:50 wat 02:24:11 and EgoBot doesn't support multiline output to the channel 02:24:36 elliott: i think it may be intended to simulate your habit of breaking things into tiny lines 02:24:48 !eehird Like. This. Maybe so! Hm? 02:24:53 like 02:24:59 indeed 02:25:05 !delinterp eehird 02:25:05 ​Interpreter eehird deleted. 02:25:05 * elliott gets his gun. 02:25:26 you cannot do that with EgoBot anyhow 02:25:48 !userinterps 02:25:48 ​Installed user interpreters: acro aol austro bc bct bfbignum brit brooklyn bypass_ignore bytes chaos chiqrsx9p choo ctcp dc decide drawl drome dubya echo ehird elmer fudd google graph gregor hello id insanetemp jethro kraut lperl lsh map num numberwang ook pansy pi pikhq pirate plot postmodern postmodern_aoler prefixes python redneck reverse rimshot rot13 rot47 sadbf sanetemp sfedeesh sffedeesh simplename slashes svedeesh swedish ustemp valspeak warez wc yodaw 02:26:07 http://esolangs.org/w/index.php?title=Special:Recentchanges&limit=500 <-- talk about recent changes spam 02:26:57 multiple varieties of spam 02:28:08 ok i fixed the part that wasn't Nthern :P 02:29:01 the Nthern was the problem :P 02:29:43 you don't say 02:30:08 http://esolangs.org/wiki/Special:Contributions/46.21.144.51 a good person 02:31:48 oh hm 02:31:53 !show ustemp 02:31:53 haskell (print . (+32) . ((9/5)*) . read) =<< getLine 02:32:03 !show sanetemp 02:32:04 sh dc -e "1k?32-5*9/p" 02:32:09 !show insanetempt 02:32:09 That is not a user interpreter! 02:32:10 !show insanetemp 02:32:11 sh dc -e "1k?9*5/32+p" 02:32:20 !ustemp 13 02:32:23 55.400000000000006 02:32:31 !insanetemp 13 02:32:31 55.4 02:32:36 !delinterp ustemp 02:32:36 ​Interpreter ustemp deleted. 02:32:46 !userinterps 02:32:46 ​Installed user interpreters: acro aol austro bc bct bfbignum brit brooklyn bypass_ignore bytes chaos chiqrsx9p choo ctcp dc decide drawl drome dubya echo ehird elmer fudd google graph gregor hello id insanetemp jethro kraut lperl lsh map num numberwang ook pansy pi pikhq pirate plot postmodern postmodern_aoler prefixes python redneck reverse rimshot rot13 rot47 sadbf sanetemp sfedeesh sffedeesh simplename slashes svedeesh swedish valspeak warez wc yodawg 02:32:59 !show yodawg 02:32:59 unlambda (sending via DCC) 02:33:35 nice 02:34:13 -!- azaq23 has joined. 02:36:46 Elizacat: *eh*, it's a User: page 02:37:40 WHO DARETH PING ME 02:37:49 Errrgh 02:37:53 Gregor, I will eat your soul 02:37:55 Elizacat: You 'el' people 02:37:58 All the same. 02:38:04 I'm not elliott and do not compare me to him 02:38:06 elliott: *eh*, it's a User: page 02:38:07 I am not a troll :) 02:38:12 elliott: some guy whose client is too stupid to complete nicks by last-speaking 02:38:12 and I'm probably not the right gender :p 02:39:01 wtf :P 02:39:14 oerjan: hi 02:39:37 elliott: the irony demons appear to be haunting me 02:40:16 oerjan: try doing something really ironic and they'll go away 02:40:32 Elizacat: can't you just be cateliza or something 02:40:35 elliott: but they just _made_ me do something ironic 02:40:48 oerjan: you have to do it of your own accord 02:40:49 elliott: poor CakeProphet 02:41:14 no conflicts with something though 02:41:47 GreatEliza. see, it's perfect. 02:41:50 CakeProphet deserves it for his crimes against Haskell. 02:41:54 oerjan: ElizaTheGreat? 02:42:00 elliott: whoosh 02:42:46 Elizacat: can't you just be cateliza or something 02:42:48 no 02:42:49 I can't 02:43:01 I'm capitalised. I'm more important. 02:43:12 catEliza 02:43:19 i was just about to say 02:43:22 cat_eliza 02:43:27 :( 02:43:29 if I were to do that 02:43:34 but I am a cat in the Eliza namespace 02:43:37 Are you just in here in case you ever need to ping Vorpal again :P 02:43:44 not an Eliza in the cat namespace. 02:43:50 does it matter why I'm here 02:43:56 namespace who what 02:44:05 elliott, Vorpal and I are already good mates I can get ahold of him elsewhere :3 02:44:12 well you never say anything and you're squatting on valuable name territory >:( 02:44:17 -!- BeholdMyGlory has quit (Remote host closed the connection). 02:44:19 I'm standing up 02:44:20 not squatting 02:44:54 elliott, I don't have much to say, no, I'm quiet. 02:45:05 elliott, but esoteric programming languages interest me. 02:45:19 elliott, also I'm here for fizzie for some mcmap-related stuff if I can ever find him awake 02:45:20 :p 02:46:16 monqy, confused? good, good... 02:46:17 :p 02:46:28 Elizacat: wrong channel, and I'm also an mcmap developer, so just tell me. 02:46:29 confused? 02:46:37 :p 02:46:40 elliott, there is another channel? 02:46:50 elliott, Vorpal was like "go to #esoteric" and I'm like "sure" 02:46:51 Well, yeah, but it's really semi-private, so I guess here is on-topic enough :-P 02:46:58 Well yes, but Vorpal is wrong about most things. 02:47:05 no shit 02:47:05 I mean 02:47:10 no he's always right what do you mean 02:47:18 please do not remove my ovaries with a pear knife 02:47:26 ok 02:48:00 is swearing allowed or is this place family-friendly 02:48:03 by that I mean adult-hostile :p 02:48:17 Well, "fuck off and die in a fire" is farily common here, so. :) 02:48:20 Erm, fairly. 02:48:21 im children 02:48:25 -!- augur has quit (Remote host closed the connection). 02:48:38 pikhq: It is? 02:48:40 Maybe from you 02:48:44 monqy, watch out for elliott he seems to linger 501 feet outside a playground a lot... 02:48:44 :p 02:48:45 elliott: Mostly me, yes. 02:48:58 monqy: Elizacat killed my family 02:48:59 I'm quick to express nonexistence rage. 02:49:03 i'm an orphan now 02:49:04 they had it coming 02:49:08 that's why i linger outside the playground 02:49:09 because 02:49:10 Existent, even. 02:49:11 nobody will accept me 02:49:12 :'( 02:49:18 Jeeze, I swear. I can't spell worth shit today. 02:49:23 * elliott curls into fetal position; cries self to sleep. 02:49:24 I don't like playgrounds 02:50:00 anyways 02:50:03 sorry for not talking enough 02:50:08 I don't believe in talking unless I really have something to say 02:50:09 haha 02:50:29 if anyone can ping me when fizzie is around, I'd like to speak to him about mcmap :p 02:50:48 Elizacat: Like I said, just ask me :P 02:50:50 I found a strange crash, I think it's related to multi-block updates 02:50:52 but I'm not sure 02:50:56 it segfaults in different places each time 02:50:57 *segfaults 02:51:17 Using latest git commit? (Vorpal's update patch is OK; it touches none of that stuff.) 02:51:24 yes 02:51:30 same version Vorpal does. 02:51:32 There's a lot of weird behaviour mostly at high altitudes, but it's never segfaulted for me recently. 02:51:39 it usually happens with //regen 02:51:41 I don't know why 02:51:44 it's 100% reproduceable 02:51:50 I just can't pinpoint why 02:51:56 What the heck does //regen do? That's not an mcmap command 02:51:59 Or wait, WorldEdit 02:52:08 worldedit yes 02:52:08 Someone needs to tell WorldEdit to stop stealing our command prefix back in time 02:52:22 I'll go tell sk89q 02:52:27 THX 02:52:32 I'll get Lymee to as well 02:52:35 Can't fail 02:52:52 Use /// 02:52:56 Or >///< 02:53:08 ///////////////////// 02:53:42 Elizacat: Anyway, I'm not so hot on the protocol side of things, but is there such a thing as a multi-block update? I thought there was just "single block update" and "whoops lol I replaced an entire chunk here you go". 02:54:10 Vorpal always gets about ten times more crashes and weird behaviour with mcmap than anyone else, though; you could try cutting all ties with him and see if that helps. 02:54:33 !slashes /\\/\/\/\/\/\/\/\//\\\\\\ 02:54:41 Program received signal SIGSEGV, Segmentation fault. 02:54:41 [Switching to Thread 0x7ffff3eb5700 (LWP 31277)] 02:54:41 0x00007ffff6af6a50 in ?? () from /lib/libc.so.6 02:55:00 oh hm 02:55:09 Elizacat: Well that's not helpful :P 02:55:12 yeah 02:55:13 :p 02:55:17 this bt is not helpful at all 02:55:20 Except that it means we're passing invalid data to libc, I guess 02:55:27 Elizacat: You have got a debug build right? 02:55:32 !slashes /\\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\//\\\\\\\\\\\\\\\\ 02:55:32 ​//////////////////////////////////////////////////////// 02:55:50 Elizacat: make debug=1 02:55:54 Then build-debug/mcmap 02:57:11 http://pastebin.com/M12qLcrr 02:57:55 That's more helpful 02:57:57 hmm 02:57:59 memcpy 02:58:12 memcpy(&c->blocks[CHUNK_XOFF(x)][CHUNK_ZOFF(z)][y0], zb, yupds); 02:58:12 memcpy(&c->blocks[CHUNK_XOFF(x)][CHUNK_ZOFF(z)][y0], zb, yupds); 02:58:13 Line in question 02:58:14 that looks suspect 02:58:15 Snap 02:58:34 Hmm 03:00:54 c = 0x73a730 03:00:57 Helpful, gdb, helpful 03:02:00 z = 10016 03:02:01 x = 10000 03:02:06 Those look kind of suspect, unless you actually are that far out 03:03:01 I am 03:03:36 http://img.thedailywtf.com/images/201101/err/death.png 03:03:46 Elizacat: You could printf-debug above the memcpy printing &c->blocks[CHUNK_XOFF(x)][CHUNK_ZOFF(z)][y0], zb and yupds 03:03:56 Maybe one of them is NULL or something easy like that :-) 03:09:30 23:09:16 [DEBUG] CHUNK_XOFF(x) CHUNK_XOFF(z) y0 yupds 0 0 0 -126 03:09:30 > 03:09:31 Program received signal SIGSEGV, Segmentation fault. 03:09:48 Well -126... is not right. 03:10:27 #define CHUNK_XOFF(coord) ((coord) & (CHUNK_XSIZE-1)) 03:10:27 #define CHUNK_ZOFF(coord) ((coord) & (CHUNK_ZSIZE-1)) 03:10:40 Hmmmmmm 03:10:50 I'm tempted to blame this on some sort of overflow, but that's just my excuse for not really knowing :) 03:11:50 those are fine 03:11:58 Yeah 03:11:58 Hmm 03:12:02 elliott, it's the chunk beneath me 03:12:04 the offset is correct 03:12:07 Right 03:12:07 elliott, yupds is not correct 03:12:12 Indeed :) 03:12:29 I don't know what the fuck jint is though 03:12:33 Elizacat: java int 03:12:35 it's just thirty-two bit int 03:12:36 ah. 03:12:37 :p 03:12:38 jint yupds = ys; 03:12:39 if (y0 > CHUNK_YSIZE) 03:12:39 stopf("too high chunk update: %d..%d", y0, y0+ys-1); 03:12:39 else if (y0 + ys > CHUNK_YSIZE) 03:12:39 yupds = CHUNK_YSIZE - y0; 03:12:41 hmm 03:12:46 well CHUNK_YSIZE obviously isn't wrong 03:12:55 so... y0 must be wrong 03:13:01 Or that entire logic, but it works most of the time so probably not 03:13:19 23:09:04 [DEBUG] CHUNK_XOFF(x) CHUNK_XOFF(z) y0 yupds 15 14 0 128 03:13:19 23:09:04 [DEBUG] CHUNK_XOFF(x) CHUNK_XOFF(z) y0 yupds 15 15 0 128 03:13:22 here are some samples :) 03:13:30 Right 03:13:34 So y0 is zero every time 03:13:41 Elizacat: Can you print ys too? 03:13:54 I have a suspicion that 03:13:55 else if (y0 + ys > CHUNK_YSIZE) 03:13:55 is false 03:13:59 so yupds is just getting set to ys 03:14:00 which is negative 03:14:20 what's ys though 03:14:28 God knows 03:14:34 It's probably wrong though, that's what's important :-) 03:16:21 p = &packet->bytes[packet->field_offset[6]]; 03:16:21 handle_chunk(packet_int(packet, 0), packet_int(packet, 1), packet_int(packet, 2), 03:16:21 packet_int(packet, 3)+1, packet_int(packet, 4)+1, packet_int(packet, 5)+1, 03:16:21 (p[0] << 24) | (p[1] << 16) | (p[2] << 8) | p[3], &p[4]); 03:16:23 hmmmmmm. 03:16:31 -!- augur has joined. 03:16:32 something looks suspect here 03:16:55 I'm still fairly certain that ys is the only thing that could be wrong 03:17:00 Which probably means one of two things: 03:17:07 - Notch is incompetent as ever, fucked something up, we have to work around it 03:17:11 - We're interpreting the protocol wrongly 03:18:54 AHA 03:18:55 it's size 03:19:02 worldedit is sending invalid size 03:19:09 Elizacat: See, I knew it was somebody else's fault 03:19:11 Lymee: I blame you 03:19:14 http://mc.kev009.com/Protocol#Map_Chunk_.280x33.29 03:19:30 Hmm 03:19:45 Elizacat: Oh well, simple fix: bail out of handle_chunk if the size is invalid 03:19:51 That'll cause it not to update the chunk, but what can you really do? 03:19:57 Or does WorldEdit always update the entire hcunk 03:19:57 chunk 03:20:04 In which case we can detect WorldEdit's invalid value and set it to the entire chunk size 03:21:31 hmm 03:21:54 I'll hopefully see about getting Vorpal's patched merged in soon 03:22:02 Maybe in ten years when I finish the Scheme integration 03:22:03 :P 03:22:38 -!- azaq231 has joined. 03:22:52 23:22:41 [DEBUG] sx sy sz 16 -126 16 03:23:09 then crash 03:23:10 so 03:23:11 hm 03:23:11 yeah 03:23:14 -!- azaq23 has quit (Ping timeout: 240 seconds). 03:23:16 it's sending invalid sizes. 03:23:33 if (sy < 0) { log_print("sk89q sucks"); sy = 127; } 03:23:39 Official patch :-P 03:25:46 But yeah, either WorldEdit or CraftBukkit needs fixing 03:26:02 (If the latter, almost certainly the Minecraft server itself, but what good does reporting bugs to Mojang achieve?) 03:27:09 that workaround doesn't seem to work properly 03:27:11 it just clobbers it 03:27:15 I don't know what the official notch client does 03:27:26 Clobbers it how? 03:27:30 like 03:27:33 the chunk looks all fucked up 03:27:36 on the map 03:27:39 after regen 03:27:47 I think maybe abs() is the right thing to do 03:27:47 Hmm, try if (sy < 0) { log_print("sk89q sucks"); sy = 126; } 03:27:53 If that works, then yeah, try abs 03:28:11 I'm tempted to just say "return;" until WorldEdit or whatever is fixed but that doesn't really help :) 03:29:08 hmm still trashed 03:29:10 yeah it doesn't help 03:29:16 Yeah, just drop it 03:31:58 elliott, I could re-request the chunk, I think 03:32:04 elliott, not sure how to go about that 03:32:10 elliott, not sure if that's wise, but that could be a workaround 03:32:18 Elizacat: I don't think you can 03:32:25 The server decides when you be needin' dem chunks 03:34:53 elliott, I'd be really curious asto how the notchian server behaves in this regard 03:35:04 s/server/client/ 03:35:08 I mean 03:35:11 obviously the client doesn't crash :) 03:35:14 -!- derrik has joined. 03:35:18 so we're doing something different from them, clearly 03:35:35 I don't know, it seems to handle every situation, including the impossible-to-handle situation where the server sends a truncated chunk due to Notch thinking that compression can never enlarge data 03:35:46 I can only assume it asks Notch himself what it has to do 03:35:59 Patented brain-in-a-digital-jar technology 03:38:49 https://github.com/sk89q/worldedit/blob/master/src/main/java/com/sk89q/worldedit/bukkit/BukkitWorld.java 03:38:50 hmm 03:39:46 * elliott idly considers porting mcmap to another language again. 03:39:50 Say, one without segfaults. 03:40:39 I'm going to remain silent on the issue 03:40:40 :p 03:40:45 let's just say C is a reasonable compromise 03:41:01 sure it sucks, but it's the only thing anyone can agree on 03:41:11 my language of choice is not up for debate here :) 03:41:17 I never addressed you :) 03:41:22 I'd probably just port it to Haskell and quarter the line count 03:41:34 and reduce your dev pool by about 90% :P 03:41:42 thing about C is it's accessible 03:41:47 even if yes, it blows 03:41:50 :( 03:42:09 The dev pool is already two people 03:42:21 elliott, port it to Java and quadruple the line count and add a bunch of useless shite to it and increase RAM use tenfold and leak but 03:42:26 elliott, hey, it's OO now!!11111 03:42:27 ZOMG 03:42:31 "Accessible" seems ill-defined; I would say that a majority of mcmap's users have some experience with Haskell :-P 03:43:11 But yeah, certainly more people know C; I'm not sure a random open source project in Haskell is likely to get any fewer developers than one in C, though; Haskell might actually be "hipper" 03:43:49 The chances of me actually bothering to port it are insanely low, mind you :P 03:44:15 But it is annoying how hard most of the bugs are to track down and then they turn out to be stupid low-level stuff 03:45:11 Haskell is mostly for hippies and CS students 03:45:12 :p 03:45:20 I'm neither of those, though you wouldn't know by how well I'm kept 03:45:20 lol 03:45:53 Also CS graduates; also people who have been bitten too many times by the bugs and lack of high-level abstraction that imperative languages have :p 03:46:05 "when was the last time you had a haircut Elizabeth?" "when did the columbia blow up... '03? yeah about then" 03:46:05 :p 03:46:32 elliott, I'm no functional language monkey 03:46:37 I am :D 03:46:41 elliott, I'm no CS student. I'm just a biologist who does this in her spare time 03:46:54 BUT I RESERVE THE TERM "MONKEY" FOR INFERIOR LIFE-FORMS SUCH AS PYTHON CODERS THANK YOU VERY MUCH. 03:47:06 biologists who program tend to program more awesomely than other people who program, IME 03:47:08 * Elizacat mumbles 03:47:21 elliott, let's just agree that ruby sucks :D 03:47:26 ais523: Physicists on the other hand... (Isn't it physicists?) 03:47:35 Elizacat: Dunno, if Python is in the race... 03:47:35 elliott: I don't know 03:47:36 physicists :p 03:48:07 I thought about doing CS 03:48:09 elliott, *cough* 03:48:10 but honestly 03:48:11 You can't to be in #esoteric without your taste in languages mercilessly deconstructed >:) 03:48:12 modern CS is crap 03:48:17 Sgeo: Whu 03:48:24 Elizacat: I teach in a CS department, and at the undergraduate level, I think I agree with you 03:48:27 and well, if I had to live in that cesspit any longer 03:48:31 Elizacat: They went downhill after they started releasing their lectures on CD 03:48:32 I would just shoot myself 03:48:33 so I went to bio 03:48:34 Vinyl all the way, baby 03:48:37 and I have never regretted it :) 03:48:39 I'm a bit of a Python fan >.> 03:48:45 * elliott one true CS gangsta 03:48:46 Sgeo, o/\o 03:48:58 Sgeo: Quiet the adults are talking. 03:49:00 * Elizacat hifive, bro/sisfist etc. 03:49:49 hey is this a lajgauage war 03:50:09 yes its a lajgauage war 03:50:15 only the finest lajgauages will survive 03:50:27 i'm gonna get my mind out of the gutter brb 03:50:32 I misread "lajgauge" 03:50:33 :p 03:50:52 (seriously don't ask >.<) 03:50:53 I hope you didn't misread it as something as dirty as "language" 03:51:01 I'm afraid we'd have to ban you 03:51:07 "lajgauages" was misread as something very naughty 03:51:08 haha 03:51:34 well when you hang out with men all day and the primary joke is "that's what she said *looks at Elizabeth*" 03:51:35 :p 03:51:38 im a functional lajgauge monkey too. a functional lajgauge monqy. 03:51:50 * Elizacat gives monqy banans 03:51:53 fucantoinsal 03:51:58 fuacnoiewatsdjkslfghv 03:52:02 I'm just gonna leave that accidental typo :p 03:52:04 fuck no IE wat sdjkslfghv 03:52:10 a biography 03:52:26 fucantoinsal 03:52:29 run for US president 03:52:30 you'll win 03:52:35 they elected bush 1 1/2 times 03:52:53 I mean with words like that 03:53:03 He's not a native citizen. 03:53:09 we can fix that 03:53:11 * Elizacat gets a pen 03:53:31 "No Person except a natural born Citizen, or a Citizen of the United States, at the time of the Adoption of this Constitution, shall be eligible to the Office of President" 03:53:32 * Elizacat writes "elliott, native US citizen, signed me" 03:53:34 * Elizacat has friend write 03:53:40 "oh yeah she's definitely telling the truth. Definitely legit" 03:53:43 sorry, i wasn't an american citizen at the time of the adoption of the constitution 03:53:48 i cant be president :( 03:53:53 obambmb must be rely old 03:53:54 He'll have to follow Schwarzenneger. 03:54:25 the governator? 03:54:35 Yeah. 03:54:39 i hear it's sperminator these days 03:54:41 you mean the asshat who fucked up California because the so-called liberal people of that fine state elected a dickwad like him 'cause he's famous? 03:54:42 I mean hi 03:54:43 :p 03:55:04 if he could run for president I bet he'd win tho 03:55:15 Elizacat: The reason I'm saying him is just that he'd be the most likely impetus for a repeal of that clause of the constitution. 03:55:16 they voted for reagan, and he was an asshat, so surely the terminator has a good shot. 03:55:20 Not that I like him. 03:55:21 did that cartoon ever come out 03:55:22 pikhq, :D 03:55:26 pikhq, yeah :p 03:55:27 NOOOoooooOOOOOoooOOOOoooOOOooOOOOOOooooooo its on hold 03:55:31 * Elizacat is US expat 03:55:34 im going to cry myself to death and punch everyone in here to death 03:55:39 you all ruined the world 03:55:40 that's hot 03:55:43 * pikhq is US citizen & resident 03:55:44 me first 03:55:55 "Hours after Arnold Schwarzenegger announced he's halting his acting career, TMZ reported that his animated The Governator series is on indefinite hold. 03:55:55 "In light of recent events, A Squared Entertainment, POW, Stan Lee Comics and Archie Comics have chosen to not go forward with the Governator project," a rep told the website." 03:55:57 literally suicide forever 03:55:59 -> 03:56:02 pikhq, I left the US for political reasons :p 03:56:11 see also: left 03:56:11 :p 03:56:16 first two words sum it up :D 03:56:17 i left the us because i had teleported there by way of pure impossible quantum 03:56:36 pureimpossiblequnatbm.com 03:56:37 elliott, well you sound some sort of European 03:56:41 Elizacat: It's rapidly getting to the point where you'll be leaving the US for the ability to have a standard of living *at all*. 03:56:46 elliott, gonna venture a guess you're either british or scandinavian 03:56:48 do only european know about quantum 03:56:52 i totally left the us too guys 03:56:54 well they have the LHC 03:56:54 :'( 03:56:56 Good guess, BTW. 03:57:00 elliott isn't a very scandinavian name is it 03:57:03 pikhq, yeah 03:57:10 compare "vorpal" very scandinavian name 03:57:12 elliott, I know a girl in sweden by the name of Elliott 03:57:13 she is like 03:57:19 "it's a girl's name I'm telling you" 03:57:21 I am like 03:57:25 "what are you on and I want some" 03:58:05 "Although the given name was historically given to males, females named Elliott have seen an increase in recent years.[when?][citation needed]" 03:58:06 vorpal olson 03:58:08 your friend edits wikipedia 03:58:23 elliott, Vorpal's real name is not Vorpal obv :p 03:58:28 yes it is 03:58:31 *GASP* 03:58:31 elliott, I'm not telling his real name! I know it though. 03:58:32 :) 03:58:37 so does everyone else 03:58:40 elliott, let's just say his name is very swedish 03:58:43 An "Arvid" Master "Norlander" 03:58:46 "Vorpal" 03:58:48 ahh :P 03:58:49 AnMaster 03:58:51 you knew him 03:58:51 that's his full name 03:58:52 haha 03:58:56 An "Arvid" Master "Norlander" "Vorpal" 03:58:56 AnMaster always bugged me 03:58:58 I always wanted to say 03:58:59 AMaster 03:59:00 Elizacat: i brought him here >_> 03:59:00 :p 03:59:02 (INADVERTENTLY) 03:59:08 elliott, I'll bring YOU here if you get my drift 03:59:11 (except not really) 03:59:20 i dont want a drift its nice and warm in here.......... 03:59:26 that's a draft 03:59:28 not a drift 03:59:31 oh.............. 03:59:35 :( 03:59:48 its too warm in here 03:59:50 drift please 03:59:59 * Elizacat turns down the thermostat 04:00:04 Elizacat: give monqy some drift so he can catch it 04:00:07 "0K" 04:00:09 seems cold enough to me 04:00:29 im all the kelvins 04:00:30 Elizacat: So, what, if anything, was it that finally made you get up and leave the US, anyways? 04:00:33 Elizacat: a snow drift in the room would make it chilly 04:00:41 pikhq, "I left the US" - see first two words 04:00:42 the coolvins 04:00:55 Elizacat: terrible unforgivable puns are restricted to oerjan. 04:00:56 usa makes my head hurt and i hope the rest of the world is better 04:01:03 pikhq, Americans do not really... appreciate... European-style socialists. 04:01:05 sorry. you will have to get a license (no license applications are accepted) 04:01:08 Elizacat: Ah, so not a specific event, just "The right-wing is nuts". 04:01:10 cease and desist cease and desist 04:01:11 yes 04:01:12 cease and desist cease and desist 04:01:13 exactly 04:01:14 "And the 'left-wing' isn't." 04:01:17 pikhq, also the country is going to shit. 04:01:21 also cease and desist 04:01:26 pikhq, oh not I'm crazy I'm just not "kill the gays" crazy 04:01:27 oerjan: he;lp they arent cesing nad desting 04:01:30 Well, yes. It's been pretty obvious for the past 10 years or so. 04:01:39 oerjan: use your wiki admin powers 04:01:58 elliott: well be careful so they don't dest _your_ 'nads 04:02:11 And utterly *astounding* the past 4 years. 04:02:17 oerjan: ok 04:02:23 pikhq, everyone blames the black dude for it 04:02:26 pikhq, stupid morons 04:02:36 black people,,,,,,,,,,,,,,,,,,, are all dead,,, in the future 04:02:39 It's like every single bad financial decision made in the past 30-40 years hit at once. 04:02:44 well, yes. 04:02:46 reagan started it 04:02:46 I'm remarkably coherent today! 04:02:49 bush really put the nail in the coffin 04:02:51 obama isn't helping 04:02:59 so yeah :D 04:03:02 makes me glad I'm not there 04:03:14 contaroversila opinion: bushc was a bad persident!!! 04:03:23 Makes me wish I could freaking finish college. 04:03:29 everyone agrees on that due to his shit ability to publicly speak 04:03:29 well, not true...fdr started it, carter added to it, and then everyone else just added their little chunk 04:03:33 I almost typed pubicly speak 04:03:35 and then I realised 04:03:38 I'll have to stay in usa for a few more years at least. this upsets me. 04:03:40 that would be accurate too 04:04:21 quintopia, FDR wasn't so bad, tbh, although him dragging the US into WWII was kinda ehhh... it did kick off the whole "huge military-industrial complex" crap 04:04:25 monqy: how was an zepto master born in unzepto country... 04:04:28 I mean I can see the US reasons for doing so 04:04:29 it is.... mystery of ages 04:04:31 and it's better that they did 04:04:35 let us pray now to zepto /pray 04:04:36 but the cold war bullshit 04:04:38 yeah 04:04:39 quintopia: Uh, Reagan's to blame for the top tax rate being below 70%. (far, far below). ;) 04:05:21 hmm everyone always gets in my face about higher tax rates in Europe, but the reality is the poor pay far less tax in Europe than they do in America 04:05:24 sure, but there were plenty of tax exemptions in existence before reagan. the upper crust have never been hurting in the us 04:05:25 most people only pay the VAT if they are poor 04:05:29 elliott: this is explained by how true mastery of zepto requires suffering 04:05:31 and in some countries you can get a VAT refund 04:05:35 oerjan: oh 04:05:41 Bush gets a lot of blame for taking Clinton's slight budget surplus and running it into this shit. 04:05:44 oerjan: makes sense 04:05:47 pikhq, yeah 04:05:50 oerjan: but the pure state of zepto is unsuffering itself..... 04:05:56 pikhq, though Clinton was a neolib, truthfully not a fan of him either! 04:06:05 pikhq, and DMCA = unforgivable in my book 04:06:14 clangton 04:06:16 he was a clanger 04:06:17 (secretly) 04:06:21 although 04:06:27 oh god dmca :( 04:06:28 Elizacat: One needn't be a fan to admit that he did better financially than any Republican has in the past 50 years. :P 04:06:30 I don't get why America gave a shit who he was having oral sex with 04:06:31 I mean 04:06:32 hmm, is an Elizacat what you get if you cat ELIZA into itself, so it keeps responding to its own comments? 04:06:35 that's alway hilarious 04:06:35 how is it anyone's business 04:06:38 I go out and give a blowjob 04:06:40 I don't fucking make the news 04:06:45 when the president gets one, the one who did it does! 04:06:46 Elizacat: slow news month 04:06:47 you're not trying hard enough 04:07:05 The Republicans are utterly *amazing* at setting a media narrative. 04:07:12 quintopia, haha 04:07:17 quintopia, oh god I can see the headlines now 04:07:21 quintopia, actually it sounds like an Onion headline 04:07:27 "Scottish woman gives her boyfriend a blowjob" 04:07:36 sexism 04:07:37 sexism 04:07:37 sexism 04:07:42 "boyfriend: I did not have sexual relations with that woman" 04:07:43 :P 04:07:44 zepting 04:08:01 pikhq, they are 04:08:13 pikhq, though, I see America is fed up with both by their rapid cycling crap 04:08:38 Elizacat: lemme check my onion archives. ig may have happened. 04:08:38 pikhq, I mean, if they hate both parties, pray tell, why do they keep electing them? 04:08:41 do they expect change? 04:08:43 quintopia, haha 04:08:44 quintopia, awesome 04:08:57 The thing most screwing us, though, is that we act like the prosperity we had since WWII was because we did something right. 04:09:02 i can tell you why they continue to elect them 04:09:13 its because people dont vote for losers 04:09:19 The only thing we "did" right was not have our industry razed to the ground along with the rest of the world. 04:09:23 pikhq, we only have it because of bullying everyone else 04:09:27 and everyone knows only one of the two big parties can win 04:09:32 pikhq, essentially yes 04:09:40 It's very, very easy to prosper when everyone else is in a few decades of economic recovery from WWII. 04:09:49 quintopia, they could change things but they are too stupid to realise that :) 04:09:56 quintopia, it's as simple as voting "not republican or democrat" 04:09:56 although 04:09:58 I kinda fear 04:10:01 what they would actually vote for... 04:10:04 probably libertarian 04:10:07 and I am not a fan of the libertarians 04:10:14 because don't you know, everyone on welfare is a lazy slob 04:10:34 i dont think they are so bad as far as policy goes. 04:10:40 welfare abuse happens but for god's sake it's onlyt he norm in America due to the lack of ANY sort of auditing due to slashing the welfare budget. Idiots. 04:10:43 i've never seen the written platform 04:10:44 quintopia: They're certainly *less* bad. 04:10:55 quintopia: At least they don't give a fuck about what happens in people's bedrooms. 04:10:57 -!- Arkanhell27 has joined. 04:11:03 who is Arkanhell27 04:11:05 are they a ghost 04:11:09 hi Arkanhell27 04:11:26 welfare abuse doesnt happen *much* here. it's very low level compared to where it once was 04:11:34 yaeh 04:11:35 *yeah 04:11:37 audits fix that 04:11:39 :) 04:11:44 The US is also quite astoundingly high in income inequality... 04:11:46 America is too stupidt o realise that 04:11:47 pikhq, yeah 04:11:52 pikhq, it is because the rich pay no tax 04:12:00 pikhq, despite what the republicans will tell you 04:12:01 when you don't have an explanation for something, blame it on people being stupid 04:12:03 Near the top, in fact. 04:12:16 hi 04:12:26 stupid people made me who i am today. this distresses me. 04:12:28 And *the top* for developed countries. 04:12:34 elliott, never attribute to malice what can be adequately explained by stupidity 04:12:35 *stupidity 04:12:44 pikhq, America is a developed country...? 04:12:45 Well, "developed"; honestly, our infrastructure will probably fall apart if you look at it wrong. 04:12:46 i want to dispute that america's prosperity since ww2 is entirely because infrastructure remained in place 04:12:58 pikhq, last time I was in Florida I saw people living in tin shacks 04:13:01 quintopia: Not entirely, but that had a hell of a lot to do with it. 04:13:07 pikhq, I couldn't help but wonder how that shit can happen in a first-world country 04:13:21 zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto 04:13:25 that's my contribution 04:13:26 also monqy's 04:13:30 mine too 04:13:33 quintopia: Obviously, that doesn't help you if your infrastructure is utterly *awful*. 04:13:40 quintopia, large military to back it up + large infrastructure 04:13:44 quintopia, but we're coming on an interesting point 04:13:48 ^ul ((zepto )S:^):^ 04:13:49 zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto ...too much output! 04:13:50 quintopia, America is trying to reinvent itself as a huge "services country" 04:14:01 a large part of it was an increased focus on r+d pretty much across the board, even in private industry, and also with the previous half century's heavy importing of the world's brightest minds wherever possible 04:14:03 quintopia, which is why it has VERY strong IP law now 04:14:21 quintopia, the folly in this though is that the government is saddled with debt and the currency is collapsing 04:14:30 and it doesn't help when few people can actually get into these jobs 04:14:31 -!- Arkanhell27 has left. 04:14:39 look what youve done 04:14:51 r.i.p. arkanhell27 "a hood guy" 04:14:53 * Elizacat gives monqy a scone 04:14:53 a good guy, sorry 04:15:05 h is just so close to g you see 04:15:06 quintopia: But now we don't have *any* of that. 04:15:07 let's hope it was a satanist or something 04:15:13 quintopia: Pretty much all we have is inertia. 04:15:21 oerjan, hey now I used to be pagan! 04:15:28 oerjan, for certain values of pagan yes but still 04:15:34 pikhq: no worries tho. at least our children are getting world class educations! 04:15:40 quintopia, haha 04:15:41 :P 04:15:45 *Hahahahah*. 04:15:50 Elizacat: yeah but that's not why you came to this channel i assume 04:15:50 America's education is being privatised 04:15:52 in front of us 04:15:54 I mean 04:15:58 sorry, that is what is happening 04:16:03 this is why there is so much emphasis on going to university now 04:16:05 pagans are hilarious 04:16:09 because primary and secondary education blows 04:16:14 Now even our colleges are starting to decline in quality. 04:16:15 elliott, I said ex pagan 04:16:22 elliott, I grew out of the whole pagan phase when I was 15 :p 04:16:44 pikhq, because tuition is so high and nobody can afford to fucking go? 04:16:48 does any pagan not grow out of the whole pagan phase when they're fifteen 04:17:00 pikhq, I mean people in the UK bitched about the tuition hike to £9000 and that's still half of what you'll pay at a decent US uni 04:17:14 pikhq, unless you're poor/ghetto and go to a community college 04:17:27 Elizacat: half? hahahahahahaha 04:17:31 pikhq, but few people can really advance beyond that without owing the government thousands of $$$ in debt which will stalk them for life 04:17:34 due to laws designed to lock it in 04:17:34 Elizacat: And our colleges also are focused on giving you what amounts to a more expensive high school diploma. 04:17:41 quintopia, probably less than half. 04:17:41 :P 04:17:49 quintopia, that's about $12k USD or so 04:17:54 try a third to a fifth, depending on whether its a public or private university 04:18:03 Elizacat: That's a semester at some schools. 04:18:15 yeah 04:18:17 monqy: so ante-zepto... 04:18:26 does any pagan not grow out of the whole pagan phase when they're fifteen 04:18:33 We are *screwed*. 04:18:43 elliott, my boyfriend is wiccan for certain values of wiccan so... 04:18:44 :p 04:18:52 elliott, not that it matters to me as I'm not a bigot 04:18:59 so he's fourteen? ;D 04:19:03 elliott, he's 24 04:19:03 Quite honestly, my only hope is to graduate soon and hope that US degrees still have *some* standing whilst trying to leave the country. 04:19:15 my twos can look line ones sometime :P 04:19:18 s 04:19:34 it's more the philosophy he's into than the actual pagan nature itself 04:19:35 but I mean 04:19:39 who cares what someone else's religion is :D 04:19:40 I mean 04:19:43 that's why I left the US 04:20:09 hey guys im back from being away what did i miss 04:20:10 same way you might care what someone's political beliefs are? anything that forms the underlying fabric of someone's beliefs is something to be interested in, surely 04:20:11 pikhq, go to norway! well, actually I would be careful... 04:20:22 pikhq, norway's economy is swimming in money due to oil, but that's only got another 30 years... 04:20:41 I would go to norway right now, but be prepared to move out in 30 years. 04:20:47 though I like scotland, very nice. 04:20:48 Elizacat: Norway's also Schengen, making leaving fairly easy. 04:20:51 and politically ok right now 04:20:57 it's not great or shitting unicorns, but it's ok 04:20:57 monqy: literally nothing 04:21:01 relative to the rest of the UK at least 04:21:04 pikhq, yeah 04:21:16 pikhq, and nordic union :D 04:21:33 pikhq, honestly i think the only country aligned with myself politically is Iceland, more or less, but well... their economy is kinda shit. 04:21:34 but 04:21:35 I mean 04:21:42 whats politics 04:21:44 what do you expect with a country with less than 400k people... 04:21:45 :p 04:21:49 : my opinion 04:21:55 Elizacat: monaco's economy isn't too bad i gather 04:21:55 * Elizacat gives monqy another scone 04:22:10 elliott, if you're a rich hipster it's a great plcae to live 04:22:11 *place 04:22:18 elliott, but I don't fancy that :p 04:22:30 avoid Italy btw, it's very catholic. unless you don't mind that sort of thing. 04:22:32 :p 04:22:34 Elizacat: re what do you expect with a country with less than 400k people... 04:22:50 elliott, they have about a million people I think 04:22:56 bah :P 04:23:23 oh 04:23:24 35k 04:23:25 but 04:23:28 Monaco boasts the world's highest GDP nominal per capita at $215,163 and is the most densely populated country in the world. Monaco also has the world's highest life expectancy at almost 90 years, and the lowest unemployment rate 04:23:28 ha 04:23:29 so this means 04:23:34 you will be living with a bunch of rich assholes 04:23:35 sounds nice. 04:23:38 except not really 04:23:41 oerjan: what's RWS again? ReaderT WriterT State? 04:24:04 elliott: yeah basically 04:24:24 i should go to bed soon like a normal person 04:24:32 elliott: You lie. 04:24:35 :( 04:25:04 is RWS any good 04:25:45 monqy: presumably it diminishes overhead when you have all those monads to combine 04:29:28 combining monads, that sounds really hot 04:29:43 wanna come back to my place and combine moands with me? :) 04:29:56 although I gotta admit I'm not very functional 04:29:57 :p 04:30:10 * Elizacat has now reached quota for puns for the month 04:30:24 the two first panels of today's xkcd ironically describes how haskell was made 04:31:42 Elizacat: borrow some from oerjan, he has an unlimited pun quota 04:31:56 ais523, won't that cost money 04:32:02 yes. 04:32:10 see 04:32:14 :( 04:32:19 indeed, :( 04:32:25 I could steal them 04:32:29 -!- ralc has quit (Read error: Connection reset by peer). 04:32:29 er 04:32:31 s/them/some of it/ 04:32:47 oerjan: how to avoid ST's additional type argument, a short guide: 04:32:49 - use IO instead 04:32:59 who here's used Agda, btw? my new coworker has apparently been implementing it in Epic 04:33:12 ais523: I've sort of used it 04:33:21 -!- copumpkin has changed nick to skewness. 04:33:34 ais523: is your coworker Edwin Brady? 04:33:37 a simple parser written in Agda took, with the impl, well over an hour to parse an expression with six operands and five operators, all of which were numbers or arithmetic respectively (with single-character names) 04:33:39 elliott: no 04:33:57 Agda is very slow :) 04:34:16 runGen :: Gen a -> IO a 04:34:16 runGen = unsafePerformIO . unGen 04:34:16 at least I've avoided the type argument 04:34:20 hmm, this may actually be unsafe, cool 04:34:35 elliott: the more traditional compiler took only a couple of seconds to run the code, but over an hour to compile it 04:34:37 I thought this was #esoteric not #functional 04:34:38 * Elizacat ducks 04:34:50 it's #everyoneinhere 04:34:53 Elizacat: well, we look at existing languages to inspire our own 04:35:00 noddle :p 04:35:01 we also look at gay sex 04:35:03 it just so happens that all of us are functional programmers because FUNCTIONAL LANGUAGE RULE WOOOOOOOO 04:35:06 I'm not much of a functional language monkey 04:35:15 monqy, male or female or shemale on shemale 04:35:17 if you keep saying it enough it becomes true Elizacat 04:35:39 how should i know im just a monqy 04:35:41 elliott, I will have a million quid by the end of the month 04:35:50 elliott, thanks I will now keep saying this. 04:35:54 I think knowing a couple of functional languages is important to be able to design languages well yourself, or at least compilers 04:36:04 even if the language itself isn't functional 04:36:21 move 04:36:21 :: (R inp1 a1, 04:36:21 R inp2 a2, 04:36:21 R inp a, 04:36:21 RW out2 a2, 04:36:22 RW out a, 04:36:23 monqy, you said you look at gay sex I was asking for what kind 04:36:24 RW out1 a1) => 04:36:26 (out, out1, out2) -> (inp, inp1, inp2) -> Gen () 04:36:28 good types 04:36:55 monqy, how can you say you look at gay sex all day if you don't even know what kind of gay sex you're looking at! 04:36:56 Elizacat: I've mostly only heard rumours but I think it's male???? 04:37:01 ah 04:37:03 that's hot 04:37:30 monqy: hey, you can't derail the conversation with that any more, that meme died out years ago 04:37:34 and wasn't particularly interesting even then 04:37:54 I usually derail a conversation with a non-sequitor 04:37:58 repeat until conversation is derailed 04:38:06 I wasn't here years ago so I'm going to forgive myself on this one 04:38:18 http://www.flickr.com/photos/openfly/5948018975/lightbox/ 04:38:22 *Redsynth.Test> let x = runGen newVar in runGen (writeVar x 9 >> readVar x) :: [Integer] 04:38:22 [] 04:38:25 that neatly describes it 04:38:25 yay, i broke the type system 04:38:27 elliott, we're ot vim 04:38:28 *we're not 04:38:29 :p 04:38:36 Elizacat: emacs 04:38:36 elliott, or $EDITOR 04:38:37 :p 04:38:42 elliott, we're not $EDITOR 04:38:51 that was ghci, not editing 04:39:03 anyway i know what we are /shakes cane at the weeks-oldie 04:39:51 I will end you 04:39:56 exit(0); 04:39:57 like so 04:40:02 what does that mean 04:40:31 i dont feel very ended 04:41:07 monqy, how many scones do I have to feed you 04:41:09 god's sake 04:41:11 monqy: it means success 04:41:15 * Elizacat shoves another scone into monqy's mouth 04:41:24 i am going to get fat stop it 04:41:30 even on VMS, contrary to popular opinion 04:41:50 nothing is a success as long as you are using VMS 04:41:53 just a hollow victory 04:41:59 heh 04:42:41 vorpal was right, I do seem to fit in a bit here :P 04:43:03 although I'm not much for functional languages alas, to me it felt like bondage and discipline :P 04:43:07 which is hot, but not in programming 04:43:24 I do like esolangs tho :p 04:43:29 do you like 04:43:31 functional 04:43:32 esolangs 04:43:39 no :p 04:43:47 I counter with "I am not a maths major" 04:43:49 :P 04:43:49 funny, python feels more like bondage and discipline 04:43:51 to me 04:43:53 what about esolangs that aren't functional, but end up being used that way by uncreative people? 04:44:01 (e.g. Underload; I'm uncreative, but apparently oerjan isn't) 04:44:06 that's kind of funny :p 04:44:07 want this control structure? why no you can't have it. Guido doesn't like it. 04:44:10 you like Guido, don't you? 04:44:18 a lot of esolangs don't have for 04:44:19 just noting 04:44:24 ah. folds? yes. Guido doesn't want you to use that. 04:44:25 er 04:44:28 s/esolang/functional langs/ 04:44:30 -!- skewness has quit (Ping timeout: 240 seconds). 04:44:34 :t forM 04:44:35 forall a (m :: * -> *) b. (Monad m) => [a] -> (a -> m b) -> m [b] 04:44:44 scheme has for-each too 04:44:44 I said a lot, not all :P 04:44:55 -!- skewness has joined. 04:44:56 -!- calamari has joined. 04:44:57 lots of imperative languages don't have structured control structures at all :) 04:44:59 names escape me atm, it's been too long 04:45:07 as I said 04:45:08 underload has no for 04:45:11 I'm a biologist who happens to code 04:45:15 by "for" do you mean built-in or what 04:45:15 :) 04:45:20 p.s. for sucks 04:45:24 see 04:45:25 :p 04:45:36 well yeah but that isn't the point monqy :-P 04:45:40 now silence about this nonsense or I shall make you use Java 04:45:54 hmm, mo' typeclass problems 04:45:55 may your days be free of downward-fungargs and function pointers 04:46:22 lol @ plebians who don't understand lexical scope 04:46:31 also lol @ plebians who use pointers 04:46:35 those people still exist? 04:46:42 the not understanging lexical scope ones 04:46:43 yes, newLISP exists after all 04:46:47 oh newlisp 04:46:47 outside of CS academia I'm afraid! 04:46:50 although I like lisp :x 04:46:52 I'm weird 04:46:58 what lisp 04:46:59 well, somewhat like lisp 04:47:02 well 04:47:08 I haven't used lisp in a while, but I used to use clisp 04:47:23 back in the days when I was just a young adolescent, struggling with my sense of identity... 04:48:07 I will point out though that there's nothing wrong with liking esolangs but not liking functional languages, nor is there anything wrong with not wanting to be in the CS cesspit :( 04:48:25 everything wrong 04:48:27 I don't like buttsex so that probably has something to do with not liking CS as you take it in the ass a lot in that field 04:48:27 elliott, Picolisp doesn't use lexical scoping, but you like it 04:48:41 picolisp has several zepto properties 04:49:04 cs is bad in that everyone misses the point ugh 04:49:20 I don't know what the point is all I know is that everyone misses it 04:50:02 well 04:50:03 maybe I should have been a mathematics major 04:50:09 I remember what I heard once 04:50:16 CS is just the post-Turing decline in formal systems theory 04:50:17 :) 04:50:24 :'( 04:50:30 ^ul (( )*S:):((What)~^(do)~^(you)~^(mean)~^(no)~^(for)~^)^ 04:50:30 What do you mean no for 04:50:38 -!- cheater_ has joined. 04:50:42 haha 04:51:14 anyways 04:51:19 my boyfriend is calling 04:51:21 ta ta :) 04:51:43 Later. 04:51:49 just be thankful I'm not like my bf 04:51:52 he likes logo 04:51:52 :( 04:51:57 he likes turtle graphics :/ 04:52:01 logo is cool 04:52:02 it's like scheme 04:52:06 whats wrong with logo 04:52:07 in fact it almost is scheme 04:52:08 M-expression Lisp, you mean? 04:52:09 :) 04:52:18 pikhq: logo is fixed-arity but close enough 04:52:19 :P 04:52:47 i think logo may have been my first language 04:52:54 I think part of the reason too I don't like funclangs is because I simply prefer to get things done rather than study about theory all day long :P 04:52:59 elliott: Meh, variable arity isn't all taht essential to Lisp, anyways. 04:53:04 Elizacat: that's why i never bothered to learn programming 04:53:05 CS theorists think about programming, as for myself, I prefer to do :) 04:53:06 I just write BASIC with gotos 04:53:17 elliott, well Vorpal tells me you overengineer :P 04:53:20 or maybe he was thinking someone else 04:53:28 i'm shocked and offended :-) 04:53:32 maybe I"m thinking someone else 04:53:37 im shocked and offended too 04:53:42 but seriously, it is basically just wilful ignorance to say that thinking about programming stops you getting things done. 04:53:45 monqy, look at goatse 04:53:50 monqy, you'll be even more so 04:53:53 if you don't think, you can't accomplish anything. programming is a science. 04:53:56 what if i dont want to 04:53:57 look 04:53:57 at 04:53:58 goatse 04:54:05 you're not hip 04:54:24 elliott, sorry it's both an art and science, it transcends both 04:54:32 lol 04:54:43 uh, i'm assuming that was a joke at least 04:54:44 and yet you dislike functional 04:54:46 elliott, algorithimic study is a science, I think the languages themselves are more of an art :) 04:54:48 im shcoekd 04:54:50 ofyneded 04:55:01 why does programming have to be both an art and a science 04:55:06 physics is science, isn't it beautiful? 04:55:08 I say this as someone who has a disdain for the arts too 04:55:09 :p 04:55:12 it seems well enough just to say that science is art 04:55:21 -!- calamari has quit (Quit: Leaving). 04:55:34 programming relates to language. language relates to literature 04:55:41 hi 04:55:51 amazing 04:56:03 it's a fine line 04:56:07 elliott, I think physics are a mess actually 04:56:23 elliott, standard model is *awful* I don't care who you are 04:56:26 it was an example, but w/e 04:56:27 if you think otherwise you are on some good shit 04:56:28 physics isn't my style. my groove. it isn't. 04:56:46 i should have said biology >:) 04:57:00 "what is" vs "what if" 04:57:04 -!- skewness has changed nick to variants. 04:57:25 hi again 04:57:44 oh, hey, I need Data.Generics 04:57:46 ummm, I think 04:57:50 biology's a good field to be in, because as long as your methodology is good pretty much any experiment leads to publishable results 04:57:51 gah 04:57:54 even if they're "nothing happened" 04:58:06 because that's notable and interesting in biology, especially if you think something should have done 04:58:13 bf: "get to bed please" me: "I'm having a discussion on IRC" bf: "carry on :P" 04:58:14 <3 04:58:15 and there are more or less infinitely many unsolved problems 04:58:17 ais523: also you get to torture frogs 04:58:29 it's not torture when their brain is the size of a pea 04:58:30 just noting 04:58:43 ais523: Not "infinitely many", just a very large unsolved problem space. 04:58:48 it's torture iff they can feel pain 04:58:52 the size of their brain is irrelevant 04:58:55 iff eh? 04:58:58 if and only if? 04:59:01 yes. 04:59:05 Large *and easy to access*, more-like... 04:59:06 if it can feel pain, you can torture it. 04:59:08 pikhq: that's what the more or less was for 04:59:12 if it can't feel pain, you can't torture it. 04:59:17 what if I told you by severing the right nerves in the spine they can't feel pain eh? 04:59:18 :) 04:59:24 do forgs feal pain....... 04:59:28 they do, alas. 04:59:30 Unlike physics, where you pretty much *need* to spend your career on it to get a notable result. 04:59:33 well 04:59:36 chess is a popular standard. but surely the specific rules are of more historic than mathematical interest. 04:59:37 Elizacat: then that wouldn't be torture, that would just be relatively pointless messing about 04:59:37 it is arguable whether or not they feel pain 04:59:40 in the sense that humans feel pain 04:59:41 are frogs people too 04:59:45 probably ending in death, which of course is bad, but not torture 04:59:46 they obviously wish to avoid the negative stimulous 04:59:47 an open question 04:59:50 *stimulus 04:59:55 monqy: no, frogs are cats 05:00:02 but nobody really knows if it is "suffering" in the sense humans or mammals have it 05:00:04 TRUE FACTS 05:00:08 their brains are quite small 05:00:15 so who knows 05:00:27 class Struct a where 05:00:27 makeMut :: (RW v) => Gen (a v) 05:00:27 readMut :: (RW v, R v') => a v -> Gen (a v') 05:00:28 I think this is it?????? 05:00:30 monqy help 05:00:33 uhhhhhhhhhh 05:00:34 my project is exploding under its own complexity 05:00:43 hey it's called a pastebin 05:00:44 :P 05:00:47 nope 05:00:51 Elizacat: it was three lines 05:00:57 elliott: what does this mean???? 05:01:02 monqy: I DONT KNOW;W 05:01:06 ;_; 05:01:09 give monqy another scone 05:01:10 :p 05:01:14 im stufed 05:01:20 stp;dufed 05:02:03 ah bloody hell, AIM imploded 05:02:04 again 05:02:14 rest in peace 05:02:21 rip aim 05:02:23 " p.s. for sucks" <<< this would make a great saying 05:02:25 I think that the reason programming becomes science/engineering is that it can't be wrong. The way a program is required to work. 05:02:26 * oerjan hangs the stuffed monkey on the wall 05:02:26 dead on arival 05:02:30 i did it for sucks 05:02:35 https://gist.github.com/1091803 ... Wow. 05:02:42 oklopol: heh, we both parsed for as a preposition there rather than a noun? 05:02:46 oerjan, can we hang the stuffed monqy on the wall 05:02:51 pikhq: without looking, is that the comparison of echo impls between UNIX variants 05:02:59 Whereas art can always be approximate 05:03:06 plus GNU 05:03:06 -!- variants has changed nick to copumpkin. 05:03:07 -!- copumpkin has quit (Changing host). 05:03:07 -!- copumpkin has joined. 05:03:07 ais523: yep 05:03:39 ais523: Yes. 05:03:41 Elizacat: that's the joke.jpg 05:03:42 GNU echo is my favourite program it does everything 05:03:42 I think they're all good, for their own purposes 05:03:50 ais523: haha 05:03:55 GNU for printing help messages and version information? 05:04:04 elliott: GNU is the only one there which supports the -e flag 05:04:04 ais523: The comparison of GNU echo isn't entirely fair. 05:04:19 ais523: It's omitting a few dozen other files. 05:04:22 which I've found myself wishing for in Busybox before now 05:04:34 I solved the problem with printf in the end, but it was messy 05:04:41 ugh, Data.Generics makes this a real pain 05:04:55 ais523: busybox has catv for that purpose 05:04:59 I think that gaming will eventually prove to be "software as art" 05:05:03 aha, I didn't know about that 05:05:05 can you run it in reverse? 05:05:17 as in, echo -n -e is sort of the reverse of cat -v 05:05:23 (echo -e without -n will just print -e) 05:05:27 oh, it's echo 05:05:29 ais523: not sure 05:05:33 printf is probably the thing to use 05:05:52 ^echo here 05:05:52 here here 05:06:02 (the problem, incidentally: you have a serial terminal on a system that contains only Busybox, and the terminal will garble non-ASCII characters you send; you have Busybox sh running in the terminal; how do you send a binary?) 05:06:35 Uh, uuencode. 05:06:55 ... No, not commonly in Busybox. :/ 05:07:02 No, wait, yes it is. Right there. 05:07:03 :) 05:07:16 ais523: You overthought the problem. 05:07:17 ais523: btw, I've re-added the VHDL-style monadic DSL back in to my synthesiser toy; now the only problem is finding an actual /use/ for it 05:07:38 pikhq: it was a stripped-down version, that didn't have uudecode 05:07:43 in fact, the binary we were trying to send was uudecode 05:07:59 elliott: heh 05:08:04 " Unlike physics, where you pretty much *need* to spend your career on it to get a notable result." <<< then there's stuff like number theory where you have to spend your career to find out you weren't good enough to ever get a norable result in the first place 05:08:18 ais523: the functional style seems nicer in all cases I've tried so far :P 05:08:23 ais523: No base64 either? 05:08:28 oklopol: you really have an obsession with number theory's difficulty 05:08:30 pikhq: I'm not sure 05:08:31 oklopol: broken? 05:08:41 in the end I wrote a script that translated things to a series of printfs 05:08:46 Hmm 05:09:04 calibre works fine on the command line on Linux, right? 05:09:12 * Sgeo wonders how to make a Nook publication 05:09:25 hmm, given that someone mentioned xkcd earlier, I've actually been looking back through it trying to find a good one 05:09:31 " oklopol: heh, we both parsed for as a preposition there rather than a noun?" <<< well yes, but i only did if for sucks 05:09:38 I rather like http://xkcd.com/887/ which has what I want in an xkcd 05:10:00 oerjan: how do i get an infinite list of iorefs 05:10:03 even if it isn't a joke in that there's no punchline, there's a bunch of intriguing research, and the results are quite amusing 05:10:16 elliott: unsafeInterleaveIO 05:10:20 oerjan: :D 05:10:22 theres a punchline its just really bad 05:10:25 oerjan: doesn't recursive do work 05:10:52 elliott: no, that gives you only a cyclic list with _one_ ioref in it :P 05:10:58 (*notable) 05:11:16 oerjan: doesn't sequence (repeat newIORef) work 05:11:18 oh, strict 05:11:20 or wait actually you don't even need recursive do for that 05:11:31 ?ty replicateM_ 05:11:32 forall (m :: * -> *) a. (Monad m) => Int -> m a -> m () 05:11:36 ?ty replicateM 05:11:37 forall (m :: * -> *) a. (Monad m) => Int -> m a -> m [a] 05:11:53 -!- azaq231 has quit (Quit: Leaving.). 05:11:57 elliott: what's wrong with unsafeInterleaveIO, this is the kind of stuff it's _for_ 05:12:19 also, i used both that and recursive do in Malbolge Unshackled 05:12:48 ?hoogle replicateM 05:12:49 Control.Monad replicateM :: Monad m => Int -> m a -> m [a] 05:12:50 Control.Monad replicateM_ :: Monad m => Int -> m a -> m () 05:12:50 oerjan: yeah yeah i know :P 05:12:55 turns out I don't need it :D 05:12:56 elliott: broken? 05:12:57 (maybe) 05:13:01 oklopol: soul 05:13:10 ah 05:13:13 Redsynth/Test.hs:54:10: 05:13:13 Illegal instance declaration for `GenF (mut -> Gen ()) pure' 05:13:13 (the Coverage Condition fails for one of the functional dependencies; 05:13:13 Use -XUndecidableInstances to permit this) 05:13:16 :( 05:13:22 yes, obviously the reason is i'm not in number theory myself 05:13:24 elliott: if it's in IO, you won't be able to get an infinite number of IORefs without, i believe 05:13:24 oh 05:13:53 INSTEAD I SHALL JUST FAIL IN A SIMPLER FIELD 05:14:23 oerjan: i know 05:14:38 ais523: didn't you say you were sleeping like a normal person 05:14:52 [a',b',c'] <- sequence [readVar a, readVar b, readVar c] 05:14:55 oerjan: what's wrong with this?? 05:14:56 actually i realized one of my best results is essentially the same as this famous theorem in symbolic dynamics, or at least the proofs are very similar 05:15:01 readVar is Var a -> Gen a 05:15:25 if my result follows from that, i'm switching to biology 05:15:42 oklopol: sshhhh, Elizacat is around 05:15:48 elliott: I was, but that pattern is easily breakable 05:16:00 also, restorable, astonishingly 05:16:17 oh hmm... 05:16:24 ais523: i share your maybe-not-pain 05:16:36 oh duh 05:16:48 elliott: i don't see anything wrong... 05:16:56 oerjan: wrong type :) 05:17:00 in my typeclass, i mean 05:17:05 ah 05:17:30 Elizacat: sorry i didn't mean to imply your field is inherently simpler than mine, more that it has more hot chicks 05:18:41 there's this hot biology chick at uni who i'd prolly ask out if she didn't have kids :-d 05:18:44 ?. pl undo do m <- newMut; f m; readMut m 05:18:44 liftM2 (>>) f readMut =<< newMut 05:18:47 gross 05:18:53 oklopol: don't you have a girlfriend? 05:18:58 oh wow 05:19:01 no i don't 05:19:21 hmm, I must be confused 05:19:28 he used to, but then he un-got a girlfriend 05:19:35 explanations w/ elliott 05:22:29 maybe i could ask the biology chick out for casual sex tho 05:24:55 hahaha time vultures 05:25:29 *Redsynth.Test> let ID x = addS (addition (one,zero,zero,zero) (one,zero,zero,zero)) in x 05:25:29 *** Exception: Maybe.fromJust: Nothing 05:25:30 not good 05:26:51 I think fromJust is actually inexpressible in Agda 05:27:21 and in Anarchy, it'd require you to either override the compile error, or put it in a context where only Just was possible and where that was inferrable by the compiler 05:27:37 Agda reminded me a bit of Anarchy, even though they're moving in opposite directions in another sense 05:28:01 Is Anarchy intended to be a real language? I know Agda is 05:28:02 I think fromJust is actually inexpressible in Agda 05:28:04 indeed 05:28:09 well 05:28:11 ?pl \a b c -> a a a a b b b b c c c c a b c a a b b c c 05:28:14 Elizacat: sorry i didn't mean to imply your field is inherently simpler than mine, more that it has more hot chicks 05:28:15 Let's see what this does! 05:28:15 flip flip id . fmap ap . flip flip id . (ap .) . join . (flip .) . join . (flip .) . (flip =<< (flip .) . join (flip . (flip .) . flip flip id . (ap .) . join . (flip .) . join (flip . (flip .) . 05:28:15 flip flip id . (ap .) . flip flip id . (ap .) . flip flip id . (ap .) . join . join . join . join (join (join id))))) 05:28:15 optimization suspended, use @pl-resume to continue. 05:28:17 Sgeo: I'm not sure 05:28:18 you can assume it as an axiom 05:28:19 not as many as you would hope oklopol 05:28:22 oklopol, I'm not hot myself 05:28:23 it's intended to be usable 05:28:23 just like in coq 05:28:24 oklopol, I'm just ordinary 05:28:27 Axiom yay : forall a, a. 05:28:28 @pl-resume 05:28:29 that doesn't quite rule it out from being an esolang 05:28:31 flip flip id . fmap ap . flip flip id . (ap .) . join . (flip .) . join . (flip .) . (flip =<< (flip .) . (flip =<< (flip .) . flip flip id . (ap .) . join . (flip .) . (flip =<< (flip .) . flip 05:28:31 flip id . (ap .) . flip flip id . (ap .) . flip flip id . (ap .) . join . join . join . join (join (join id))))) 05:28:33 Theorem foo : forall a, a. Admitted. 05:28:38 it has esoish features, but also a lot of concessions to practicality 05:28:51 e.g. I plan to steal OCaml's standard library so that there is actually a standard library 05:29:04 Theorem trollLogic : forall a, b. 05:29:07 oklopol, I went into this field simply because 1) I love biology, 2) CS is a sausagefest, 3) modern CS is just crap 05:29:08 :( 05:29:10 ais523: how about stealing not Ocaml's 05:29:30 oklopol, joke's on me, #1 and #3 still hold true, but #2, bio is a sausagefest too! 05:29:31 :( 05:29:38 it is like 05:29:53 I get hit on constantly, and I am not even that good looking 05:29:58 elliott: because I plan to write the compiler using OCaml as a backend 05:30:06 ais523: but 05:30:14 (ladies and gentlemen, swamp thing! *points to self*) 05:30:17 -!- Lymee has set topic: correlation causes causation | Troll programming languages | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 05:30:19 * Lymee runs 05:30:22 ais523: should i go to bed... 05:30:49 "CS is a sausagefest" being a reason not to go into it is a great self-fulfilling prophecy. 05:31:04 elliott: I will soon, I think 05:31:20 Gregor, many things are... 05:31:21 :< 05:31:49 Gregor: it's not like making the decision to go into CS would fix that overnight 05:32:02 so it depends how much patience you have :-P 05:32:13 ais523: i hate people who have as terrible a sleeping pattern as me, because i use them being awake as an excuse not to sleep yet 05:32:40 I hate going to sleep when elliott wakes up. 05:32:47 elliott: the best advice I can give is to work out which sleep pattern you /want/ to have 05:32:49 then use it 05:32:53 ais523: the one i don't have 05:32:56 elliott, I'd say I have unpaid work to do, but I'm now going to get paid for it. Less than minimum wage, but still 05:33:05 my sleep pattern was really bad before I found to my surprise that that actually worked 05:33:12 Sgeo: better than nothing :) 05:33:35 Also, wow. Of those various echo implementations, only *one* is actually POSIX-compliant. 05:33:35 ais523, does this include the output of my brain's built in random number generator? 05:33:40 The V5 one. 05:33:41 Only explanation I can find. 05:33:55 (though its source is not) 05:33:58 pikhq, how can /echo/ fail? 05:34:16 Lymee: It is forbidden for echo to take options. 05:34:24 ais523: i would say i want to get up when i get up and go to bed when i go to bed, but that's stupid because I'm about 90 percent sure I have ridiculously low melatonin levels 05:34:30 and also terrible willpower 05:35:00 elliott: well, it's more, figure out what sleep time and wake time allows you to get the most done in a day 05:35:03 possibly by experiment 05:35:29 I've been finding that 9pm sleep, 6am wake (with some hours in it spent not sleeping) is easy to stick to, but not very useful for actually getting work done for some reason 05:35:48 that sounds impossible to stick to for me 05:35:57 early morning kills me 05:36:02 ais523: Perhaps because you're not a farmer. 05:36:21 elliott: in my case, I can't really get work done in the afternoons 05:36:21 he's a code farmer! 05:36:29 nor immediately after I wake up 05:36:36 Or, more to the point, work amongst humans implies comradery, and comradery implies being awake when other people are awake. 05:36:46 which leaves only a few hours in the sane-people sleep schedule 05:36:49 "work amongst humans implies comradery" <-- this is complete bullshit 05:36:54 the insane one where I go to bed at 9am is a lot more productive 05:37:11 ais523: i'm useless for hours after I wake up 05:37:19 my body sucks :( 05:37:32 elliott the black hole 05:37:45 i'd just like to be awake constantly, except i can press a button and it makes me feel really tired but not like I haven't slept and then I would have a sleep if I felt like it 05:37:50 the life o/ elliott 05:38:30 -!- cheater_ has quit (Ping timeout: 255 seconds). 05:38:37 i wish i could go unconscious and hallucinate at will this would be pretty cool 05:38:54 yeah that's pretty much the only reason i'd want to be tired 05:39:02 falling asleep is nice and also unconscious hallucination is nice 05:39:06 hmm, I bet ais523 is terrified of dreams 05:39:27 elliott: nah, I think we've discussed dreams in here before 05:39:33 they often leave me disoriented afterwards 05:39:40 do they not count because you can't take real-world actions in them? 05:39:49 after I realise beliefs I thought I held while dreaming were completely nonsensical 05:39:52 I know you're scared of hallucinogens and anything that impairs thoughts 05:39:58 Well, sacred 05:40:01 "scared" 05:40:02 I dunno what term to use 05:41:22 that's a reasonable term 05:43:12 a dream can influence a waking thought 05:43:50 infact, all dreams which get mentioned in waking time have influenced communication 05:43:56 indeed, you can remember dreams, although usually only the end of one 05:44:01 itidus20: citation needed 05:44:09 my dreams, if described, often sound like the sort of thing zzo38 would come up with 05:44:11 and have about as much context 05:44:23 e.g. I was dreaming of Chess vs. Missigno. a few days ago 05:44:26 :D 05:44:30 best game 05:44:32 *Missingno. 05:44:34 /thing/whatever 05:44:41 elliot: the concept of the word dream is based on collective experiences of dreams 05:44:45 I even worked out some of the rules after I woke up 05:45:01 then realised it was an obvious win for the Chess player; it might be interesting if you added a second Missingno., but I doubt it 05:46:38 i know that Missingno is a pokemon but how can it "vs" Chess? a pokemon battle? 05:46:43 (summary of the rules: played on a chessboard; the chess player starts with a standard set of 16 pieces arranged in the usual way, but the king has no royal powers because they're permanently in checkmate; the missingno. player starts with two missingno.s on d8 and e8, and a missingno. can teleport to any square of the board and captures as it moves) 05:46:45 wow, this is definitely the most confusing code I've wirten ... today 05:47:05 ais523: are the pieces lovingly handcrafted marble missingnos 05:47:19 (and the chess player wins by capturing both missingno.s or having a king (including a pawn promoted to king) on the 8th rank at the start of the turn, the missingno. player wins by capturing all the chess pieces) 05:47:29 elliott: I didn't get that far, but I assume so 05:47:40 when I dream, details don't exist unless I wonder about them, and I didn't 05:47:49 it'd be great if they were, though 05:47:57 or maybe Staunton pattern missingno.s in wood 05:48:08 note that missing the dot in missingno. is as bad as capitalising the b in brainfuck 05:48:59 What I think is that the best features of Nintendo glitches is the fact that the code was too optimized to allow for conditional guards against them. 05:49:07 Like they left the gates open for glitches. 05:49:29 I may be doing a glitchrun of Pokémon Blue as part of a Let's All Play next month, and I've been practicing 05:49:35 that's presumably why Missingno. surfaced in my mind 05:49:35 Or maybe they just didn't realize 05:49:45 not sure why chess was involved 05:49:53 "The GNU version is best. none of the other's implement --help to print the program's usage, including specifics on the (also not implemented) -E and -e options, which are useful depending on how your script uses echo. Also, vs the SYS V and other older versions, this version of echo doesn't require a shell to properly handle escape sequences or quotes. It also properly detects and uses locales and characters sets. The FreeBSD version does almost 05:49:54 none of these things. Also, given the source code above, it would be a simple matter to reimplement echo more simply. Be careful. Some of that extra functionality may be neccesary for your system to function." 05:50:19 But so.. is it ethical/moral to knowingly leave out conditional guards just incase a glitch occurs 05:50:31 no you should be put in prison for it 05:50:36 for making a GAME that is BUGGY OMG 05:50:41 elliott: To that I say: only SysV makes echo "$FOO" safe. :) 05:50:43 with super mario you see... they were fighting over every byte 05:50:59 elliott: I'd have to object to that on the basis that it isn't generally /useful/ for echo to implement locales unless it has help/version info 05:51:18 so the code was "truer" because it allowed glitches 05:51:23 its kind of ironic 05:51:34 itidus20: did you see ksplice's vulnerability report against Super Mario Bros., complete with hotpatch 05:51:45 it was one of the better April Fools jokes from last April 1, IMO 05:51:46 -!- cheater_ has joined. 05:51:50 i don't know who ksplice is :D 05:51:55 lol but ok lol 05:52:03 hahahaha 05:52:16 they're basically a Linux kernel security company; they sell a product that allows for kernel updates without rebooting 05:52:22 and also talk about related stuff on their blog 05:52:40 here we go: http://blog.ksplice.com/2011/04/smb-1985-0001-advisory/ 05:52:49 i'll click it soon.. 05:52:56 -!- paskill has joined. 05:52:58 but yeha.. this has been on my mind for a while. 05:53:09 I love the patch. 05:53:12 paskill: hello 05:53:13 so do I 05:53:25 the reason for the cool glitches in games is simply they don't add code to prevent them. 05:53:31 I was talking to a bunch of SMB1 speedrunners about it, they suspected that it probably had unintended side effects but weren't sure what 05:53:42 itidus20: or... for mistakes 05:53:44 good morning 05:54:06 What does the patch actually do, anyways? 05:54:20 pikhq: we weren't entirely sure 05:54:22 like.. theres a mario glitch which allows small mario to have the pallete of fire mario 05:54:40 one of its effects is to prevent rightwards horizontal zipping from working 05:54:41 now nintendo could have included code which says "small mario should never be allowed to have the fire mario pallete" 05:55:00 as it's a one-line change that replaces a variable with a constant, it probably makes leftwards zipping really easy or something 05:55:03 but since they never formally said it can't happen... it ended up happening 05:55:11 itidus20: that... isn't how coding works 05:55:16 you don't have to put conditionals for impossible conditions in 05:55:20 itidus20: well, the strange thing there is that something that should be stored in one variable is actually stored in two 05:55:25 the problem is that /some other/ code has a bug that deliberately sets it that way 05:55:32 the bug is not in the lack of condition, it's in the other code changing 05:55:33 it 05:55:38 and the problem happens when they get out of sync 05:55:46 well its not "entirely" a bug 05:56:24 but most modern games i think will just say "somethings wrong lets abort" 05:56:32 maybe im wrong here 05:56:52 itidus20: Part of it is that many such conditions are actually *security flaws*. 05:56:55 itidus20: it's very rare for a game to abort on detecting an internal consistency, except for multiplayer games that use reproducability in order to reduce bandwidth 05:57:16 On retro games, there are actually errors that let you patch memory. 05:57:17 most will spout debug messages but otherwise try to continue 05:57:25 pikhq: my favourite is in SML2 05:57:30 test :: Gen (Var Bit, Var Bit) 05:57:30 test = toLocs `fmap` struct (undefined::Bit, undefined::Bit) 05:57:35 i've forgotten completely why i'm doing this 05:57:36 ais523: Yeah, that was an *amazing* run. 05:57:39 it's possible to glitch out of a level's boundary, which has the result of making the entire ROM and RAM a playable level 05:57:47 and you can break blocks in order to change RAM 05:57:56 ais523: Detecting an "internal consistency"? "Oh no, I'm in a consistent state! Abort! Abort!" 05:58:07 umm, inconsistency 05:58:11 The Pokémon Yellow save glitch is pretty awesome, too. 05:58:47 Restarting the game at the right time in the save process makes it think your inventory is unbound, making the inventory screen into a memory patcher. 05:58:48 pikhq: the same trick's been done without resetting during a save, but it requires a Ditto 05:59:09 to be precise, it's known as the ZZAZZ glitch, because it changes three out of every four bytes in memory to 153 05:59:23 which happens to be Z in the crazy character set that Pokémon first gen used 05:59:42 Aaaah. 05:59:45 also, Bulbasaur or Explosion, with other methods of interpreting it 05:59:56 in particular, it overwrites the "number of Pokémon in party" counter with 153 06:00:03 which is quite the buffer overflow 06:00:10 I was obsessed with glitches ever since I read about guile's glitches in street fighter 2 06:00:17 Gotta love Pokémon's glitches. 06:00:31 It's like a TASer's wet dream or something. 06:00:34 I thought "is this real?" "which street fighters will this work on?" 06:01:05 pikhq: the funny thing is, they've been really different version-to-version 06:01:34 and so, i learned about the chinese word ira waza 06:01:38 As for the palette thing, I'd assume (not that I recall anything about NES graphics) that the "second variable" where the palette is stored, separate from the character state, is just some sort of a sprite palette control register, which is what's getting out of sync. 06:01:41 i mean japanese 06:01:44 especially Ruby/Sapphire, which have no known exploitable glitches and basically no glitches altogether, compared to Emerald, which has a huge number of fun exploitable glitches 06:01:47 sorry.... not concentrating 06:02:01 itidus20: Could you write that in kanji? 06:02:07 no 06:02:15 As it is, that's parsing as a random conglomeration of morae for me. 06:02:22 was it ura waza i meant i think 06:02:26 yeah.. ura waza 06:02:35 Ah, looked it up. 06:02:42 裏技 06:02:42 means something like.. underhanded technique 06:02:44 fizzie: IIRC that glitch is actually different, but I can't remember the details 06:03:02 Meaning "underhanded trick", or (computer terminology) "exception". 06:03:04 ais523: do you have a link with all the glitches? 06:03:12 coppro: in which game? 06:03:16 Makes perfect sense with the kanji. 06:03:23 ais523: Pokemon games 06:03:24 pikhq: the word has an awful lot of meaning 06:03:33 including how to fold a tshirt in split seconds 06:03:51 itidus20: No, it only has a single but general meaning. :) 06:03:55 coppro: for speedrun-exploitable ones in the first two generations, http://tasvideos.org/GameResources/GBx/Pokemon.html is pretty good 06:04:04 but it doesn't document Emerald or DPP glitches well 06:04:17 ok 06:04:21 and Black/White, although they have a few known glitches, haven't really been researched fully 06:04:28 I thought there were *some* Ruby/Sapphire glitches... 06:04:36 Though it's not like I've seen that run recently. 06:04:43 It may have just been a heavy luck manipulation run. 06:04:44 pikhq: indeed, but none are used in a speedrun 06:04:49 *Aaah*. 06:04:52 it's just luck manipulation and lag manipulation 06:05:11 things like undiving while going through a door let you go out of bounds, but that doesn't accomplish anything useful 06:05:17 pikhq: ok one meaning but richly laden with things 06:05:25 because out of bounds is just a few tiles and then blackness you can't walk in 06:05:39 (as opposed to DPP, where you /can/ walk in the blackness, which lead to huge projects with people "mapping the void" 06:05:40 ) 06:05:47 the word "ura" is especially potent 06:05:51 Unlike RGB, where "out of bounds" is "level in arbitrary memory". :) 06:05:57 especially re: nintendo 06:06:01 Or possibly "lot of stuff that's inexplicably there". 06:06:10 itidus20: "ura" just means "back". 06:06:12 pik i don't know japanese though.. 06:06:23 and back is an exceedingly general word 06:06:27 Yeah. 06:06:43 but back in japan means different things than back in english 06:06:48 oh man golden sun 06:06:49 some very culturally specific things 06:06:54 I need to see a TAS of that 06:07:26 Nah, it's just that it's also a morpheme which gets composed with things, unlike English where it's pretty much standalone. 06:08:08 Nothing mystical or magical 'bout it. 06:08:12 shame there aren't any on tasvideos 06:08:23 i wouldn't go that far 06:08:24 that game's luck engine is so utterly ridiculous 06:09:21 itidus20: I would. Japanese tends to have extremely general morphemes which get composed into more complex yet general words. It really is just how the language works. :) 06:09:42 ok, the morpheme is mysterious then 06:09:51 -!- ais523 has quit (Remote host closed the connection). 06:12:40 No more so than any other. 06:13:18 heres an interesting one: http://www.aikiweb.com/forums/showpost.php?s=27fc6a9bcfa745aac1fa09ae1afaa5b3&p=99677&postcount=6 06:13:30 -!- oerjan has quit (Quit: Good night). 06:14:13 from, big debate about 2 words omote and ura: http://www.aikiweb.com/forums/showthread.php?t=7802 06:15:07 You're one of those people that goes "NEKO NEKO KAWAII DESU DESU", aren't you? 06:16:02 no 06:16:23 :-s 06:16:42 Hmm? 06:17:57 i wish i knew it better, but i know i don't know it 06:19:04 i find it mystical due to it being the term associated with glitches which only occur in japanese software 06:19:32 that is basically what i am stuck on 06:20:19 Hi guys, I'm thinking about arranging an esolang course for the University of Helsinki, but my connection with the community ceased around 2004... so... can you enlighten me on the highlights after that, preferably languages that had new ideas and were not just addons / encodings for already existing esolangs, and interesting findings (such as the discovery of first loop in Malbolge)? 06:20:24 wiki says: The term itself became globally popularized when video gamers in the 1980s began sharing their game-related urawaza online.[1] 06:20:33 of "ura waza" 06:20:58 atehwa: heh; any relation to fizzie, Deewiant? 06:21:01 oh wait 06:21:09 can check 06:21:10 aalto is a different thing isn't it... 06:21:25 you wacky finns. and your universities 06:21:34 :P 06:21:51 I can try and give a comprehensive-ish answer but it'll have to wait until tomorrow 06:22:06 oh ais has left unfortunately 06:22:13 he'd be a good person to ask 06:22:19 (ais523) 06:22:40 ok 06:22:56 atehwa: I will say that Underload is one of the most interesting esolangs since 06:23:01 also BCT 06:23:11 see esolangs.org/wiki 06:23:36 yes, Aalto is a combined college of technical, artistic and economic schools 06:24:17 elliott: well, I know the wiki, but it seems that the number of langs / year has been going up ever since 2002, and most of the new languages are really uninteresting. 06:24:29 -!- SgeoN1 has joined. 06:26:12 -!- Sgeo has quit (Ping timeout: 255 seconds). 06:26:46 but anyway, thanks already, I'll check Underload, BCT and Grasp. 06:27:35 -!- elliott has quit (Ping timeout: 252 seconds). 06:31:30 I like Glass, but that's mostly personal language preference, not out of some sort of inherent amazingivity. 06:32:30 Also Feather would be a good language to cover, if it just existed. 06:33:12 -!- Sgeo has joined. 06:33:16 ... 06:33:17 The Befunges are probably worth mentioning due to seeing most "real-world" use 06:33:20 ^source 06:33:20 http://git.zem.fi/fungot/blob/HEAD:/fungot.b98 06:33:22 Etc. 06:33:36 fungot: How do you feel to be an example of "real-world" use? 06:33:36 fizzie: " works here now. the point is 06:33:46 fungot: ...the point is? 06:33:46 fizzie: but since it runs in sandbox mode... i never thought of that myself 06:33:56 Aw, he's being incoherent again. 06:34:15 No, fungot, we are not letting you out of the box. We don't trust you to be Friendly. 06:34:16 Sgeo: i understand why it's distracting. and i did both an fnord and running it on ' fnord' 06:35:24 DAMMIT ABIWORD HAS NO AUTORECOVERY 06:35:56 Oh, everything's still here, good 06:36:00 abiword? 06:36:05 are we still in the 90s? 06:36:29 WordPerfect is the 90's 06:37:15 WordPerfect is also the 80s. 06:38:47 WP42 is from 1986; the very popular WP51 is from 1989; I don't think the Windows versions in the 1990s were ever all *that* popular. 06:39:58 throughout the first half of the 90's i didn't even know windows 06:40:08 i know windows since v. 95 06:42:05 Through the first half of the 90's I didn't even know my ABCs. :P 06:42:14 Piet might also be a notable "image-based language" example to mention, though it's not "after 2004" so it's not part of the question. 06:42:39 Your abstract base classes. 06:48:07 -!- Nisstyre has quit (Quit: Leaving). 06:49:09 -!- monqy has quit (Quit: hello). 06:50:07 I am in a good mood now. 06:50:15 Just read what I actually typed up 06:50:20 -!- sebbu has quit (Read error: Connection reset by peer). 06:50:22 Apparently my step-mother's losing this case 06:50:48 -!- sebbu has joined. 06:50:49 -!- sebbu has quit (Changing host). 06:50:49 -!- sebbu has joined. 06:50:58 Hmm, actually, wow that sounds like a nasty thing for me to say 06:51:33 divorce case? 06:52:28 No 06:53:10 Something against a car insurance company. 06:54:58 Deewiant: oh, I'll definitely include fungeoids, especially Befunge, because it continues to fascinate people 06:56:05 And, uh... BF Joust? There was a veritable flurry of BF Jousting going on on-channel some time ago. It's at least different. 06:56:55 Only if you count Redcode, methinks 06:57:31 Deewiant: Well, it's sort-of a real world use case too. :p 06:57:55 But it's not /really/ the same language 06:58:15 Closely inspired by, at least. 06:58:19 I have a vague feeling I have some (possibly qualified as "former" in my case) acquaintances shared with atehwa. Possibly from the direction of the irtie/bC! circles? The name rings a bell. 06:58:53 I recognize the name but probably just from some random netplace 06:58:59 fizzie: I was still there when Piet came, didn't look properly into that, though. I can check Glass out. 06:59:11 Deewiant: Were you on the mailing list? 06:59:39 No, but I've read through the few archives that mtve handed over (where's the rest‽) 06:59:47 atehwa: Didn't you run the mailing list? 07:00:19 yes, I did. :) 07:00:29 I didn't shut it down properly, though. 07:00:45 And the failure of 2004 Essies was my fault, too. 07:01:22 Deewiant: the archives are at http://esoteric.sange.fi/archive/ 07:01:31 but that does not include the times @ cats-eye 07:01:55 Right, I meant the cats-eye ones 07:04:14 fizzie: and good that you mentioned bf joust, I wasn't aware of that, either 07:04:49 they just had competitions for the shortest bf program to do task 07:04:55 in 2002, I think 07:05:21 BF Joust: the brainfuck-based competitive programming game that has had the most plots plotted out of it. [citation needed] 07:05:54 It seems to me that enthusiasm on CoreWars is declining, too. 07:06:03 http://frox25.no-ip.org/~mtve/tmp/bef_maillist_0_520.txt is a 1996-1997 mailing list log so I'm missing 5 years :-P 07:06:09 There was a really creative time period in that, after the invention of imp rings. 07:11:54 Deewiant: I have a vague feeling I managed to subscribe before the sange.fi times, but I can't find anything older than April 2001 in these old tarballs. 07:12:48 -!- derrik has quit (Quit: gone). 07:18:06 I could check if I have messages from the 90's :) 07:23:08 jeez, my old emails are a terrible mess :( 07:29:22 I saw this on another channel, it has some relevance here so had to post: http://redmine.ruby-lang.org/issues/5054 07:29:52 http://www.youtube.com/watch?v=NM51qOpwcIM ... Lady Gaga actually has talent? Like, she can actually sing? Holy crap. 07:30:20 Fuck you, RIAA, for turning that into a vapid pop star. 07:31:19 itidus20, that's eeeeeeeeeeeeeeeeeeeeeeeeend! 07:32:07 itidus20: seems they're reinviting Lisp's super brackets 07:32:16 Okay, it's not utterly *amazing*, but it's not utterly terrible and artificial. 07:32:25 frankly speaking, i prefer the general super-end token (e|en|end)*end. 07:33:05 (e(nd?)?)*end 07:33:24 at least Interlisp-D still had those 07:33:32 if the tab size is 4 or more then the existing (end\s+)*end should suffice. 07:34:08 An interesting sociological phenomenon that thread mentions is "I wouldn't mind it since I wouldn't use it." vs "I would have to endure it when someone else used it." 07:34:18 [define (foo x) (let [(bar (1+ x] (* foo bar] 07:34:37 they don't put it that way though 07:36:31 -!- copumpkin has quit (Ping timeout: 252 seconds). 07:37:38 -!- copumpkin has joined. 07:39:40 *reinventing 07:39:47 atehwa: i'm just a newbie here. no math skills. etc. it's quite that you're considering an esolang course 07:40:15 i reckon it would be popular 07:40:33 ^interesting 07:40:37 I hope it will :) 07:40:50 it's like the programming underground 07:41:18 If it gathers enough momentum, it would be one thing more for the dpt of computer science to be proud of :) 07:42:21 the department of computer science in the University of Helsinki budgets some of its course money to "courses that are in the interest of students" 07:42:26 so I hope this could be one 07:42:33 How're you justifying it to the higher-ups? 07:42:36 Oh, okay 07:43:01 (yes I'm lagged) 07:43:06 -!- Sgeo_ has joined. 07:43:32 It's pretty easy to justify anyway, though, because not only tend esolangs motivate people and demonstrate the joy of programming, they also have direct connections to the foundations of computing, in a (relatively) tangible form. 07:43:36 -!- SgeoN1 has quit (Ping timeout: 255 seconds). 07:45:24 -!- Sgeo has quit (Ping timeout: 255 seconds). 07:47:58 -!- Taneb has joined. 07:48:05 Hello! 08:01:44 but seriously, it is basically just wilful ignorance to say that thinking about programming stops you getting things done. <-- agreed. 08:01:49 -!- copumpkin has quit (Ping timeout: 252 seconds). 08:02:02 hi Taneb 08:02:14 -!- copumpkin has joined. 08:02:19 i'm now working on something like this: http://codepad.org/DI3V1Tcb 08:02:47 Nice 08:04:06 it'd be a flow graph where the vertex is a pair of step number mod 9 and program index, and the remaining part is to reduce the graph so that i can figure out the actual meaning of it 08:33:41 -!- foocraft_ has joined. 08:36:51 -!- foocraft has quit (Ping timeout: 258 seconds). 08:38:32 -!- paskill has quit (Quit: ChatZilla 0.9.87 [Firefox 5.0/20110615151330]). 08:40:18 -!- Taneb has quit (Ping timeout: 252 seconds). 08:48:38 atehwa: s/one more thing for your CS department to be proud of/one more thing for our CS department to be ashamed of/ 08:49:16 There has been talk for a "functional programming in general" course here for years, but it has never materialized. 08:49:50 There was that Scheme course last summer (or the summer before that?), as a special case. 08:49:52 The closest we got was that one final SICP go-through summer thing, and that was more of a memorial service for the abandoned Scheme-based introductionary course. 08:49:53 Yes. 08:51:14 I hear there was even a Coq-using course on theorem proving at their CS department a while back. 08:52:01 I hear their classrooms are paved with gold. 08:52:21 I... don't hear that. 08:52:35 Me neither, to be honest. 08:53:35 T-79.5305 Formal Methods P can sometimes have interesting topics at our place too, though. (And doesn't seem to have been organized after autumn 2008 or so.) 08:55:23 :D 08:55:29 lol @ you guys 08:55:47 I don't have all that much to do with TKTL, really, but there's a lot of friends there 08:56:30 the last time I had something to do with them was when Lambda ry arranged a course on lambda calculus and I gave part of its lectures :) 08:56:50 http://wiki.helsinki.fi/display/haskell/Johdatus+lambda-kalkyyliin 08:57:17 I think I must have seen an advertisement for that somewhere. 08:57:43 wow, it's been three years already :O 09:09:26 -!- pingveno has quit (Ping timeout: 258 seconds). 09:34:02 -!- pingveno has joined. 09:56:06 -!- Phantom_Hoover has joined. 10:02:36 -!- foocraft_ has quit (Quit: So long, and thanks for all the fish!). 10:18:48 oh! There _still_ isn't a spec for a language where the only computation mechanism is colored undirected graph rewriting? 10:19:23 ... but eodermdrome takes the case of uncolored undirected graph rewriting... 10:25:10 -!- jcp|other has joined. 10:25:34 -!- pingveno has quit (Ping timeout: 252 seconds). 10:27:14 -!- jcp- has quit (Ping timeout: 260 seconds). 10:27:36 -!- jcp has quit (Ping timeout: 276 seconds). 10:33:26 -!- jcp has joined. 10:37:26 http://cosmic.mearie.org/tmp/crazy6.png ... oh well. 10:38:03 this is a lot more complex than i expected. 10:39:43 looks like a state graph. 10:40:05 yes that is. 10:40:31 that is a behavior of the instruction 3 in Numberwang, plotted for one subcase out of nine. 10:40:52 \o/ 10:40:52 | 10:40:52 |\ 10:40:59 |/ 10:41:00 | 10:41:04 /o\ 10:41:05 | 10:41:05 /'\ 10:44:42 -!- pingveno has joined. 10:48:03 -!- FireFly has joined. 11:35:21 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds). 11:35:26 HELP!! THAT MAN HAS NO HEAD!! 11:48:34 -!- Phantom_Hoover has joined. 11:58:42 -!- boily has joined. 12:06:47 > 1563 / 251 12:06:48 6.227091633466135 12:06:48 Phantom_Hoover: You have 15 new messages. '/msg lambdabot @messages' to read them. 12:07:37 Dammit elliott. 12:10:19 !bfjoust test_ish >>>>>>>++[>>[-]<-] 12:10:27 ​Score for atehwa_test_ish: 10.0 12:10:59 tadaaa 12:16:20 !bfjoust test_ish >>>>>>>++[>>[--.]<-] 12:16:23 ​Score for atehwa_test_ish: 3.0 12:17:05 !bfjoust test_ish >>>>>>>++[>>[-.]<-] 12:17:07 ​Score for atehwa_test_ish: 12.2 12:17:38 !bfjoust test_ish2 (>)*7++(>>[-.]<-)*22>[[-.]] 12:17:40 ​Score for Deewiant_test_ish2: 11.5 12:18:05 !bfjoust test_ish >>>>>>>++[>>[----.]<-] 12:18:08 ​Score for atehwa_test_ish: 6.9 12:20:54 heheh 12:20:55 69 12:21:27 !bfjoust test_ish (>)*7(>>[-]<-)*22>>[-] 12:21:30 ​Score for atehwa_test_ish: 9.4 12:22:39 atehwa: That >> will make you run off the end of the tape on odd tape lengths 12:22:53 !bfjoust test_ish (>)*7(>>[-]<-)*22>>[[-]<+++] 12:22:55 ​Score for atehwa_test_ish: 9.4 12:23:01 Deewiant: I think it is balanced out by < 12:23:15 atehwa: No it's not, because you only do the < afterwards 12:23:27 !bfjoust test_ish (>)*7(>>[-]<-)*22>[[-]<+++] 12:23:27 atehwa: You will lose as soon as you exit the tape, whether you write there or not 12:23:29 ​Score for atehwa_test_ish: 9.4 12:23:37 (Or read) 12:24:10 Oh, but you only move 7 at the start, fair enough 12:24:13 My bad 12:24:16 yes, but how does it depend on the tape length being _odd_, because the loop only proceeds one tape place per iteration? 12:24:25 Yeah, I was confusing myself 12:24:28 ok 12:24:50 !bfjoust test_ish (>)*7(>>[-.]<-)*22>[[-]<+++] 12:24:52 ​Score for atehwa_test_ish: 10.5 12:24:58 Did I miss anything good? 12:25:02 one can only wonder... :) 12:25:19 no, I'm just testing this thing out for the first time. 12:26:08 Plugin `tell' failed with: thread killed 12:26:15 04:53:53: if you don't think, you can't accomplish anything. programming is a science. 12:26:27 No it isn't, it's maths mixed with the odd bit of engineering. 12:27:04 They're like the exact opposite things. 12:28:14 04:56:23: elliott, standard model is *awful* I don't care who you are 12:28:33 Oh, look, a biologist who codes hates the standard model. 12:28:41 Clearly this means we should all jump ship. 12:30:21 !bfjoust test_blah (>)*9([(-)*120[-]]>)*21[[-]<+++] 12:30:23 ​Score for atehwa_test_blah: 27.1 12:31:01 yay I made it on the hill :) 12:31:42 !bfjoust test_blah (>)*9([(-)*120[-]]>)*21[[+]<--] 12:31:45 ​Score for atehwa_test_blah: 27.4 12:32:29 !bfjoust test_blah (>)*9([(-)*120[-.]]>)*21[[+]<--] 12:32:31 ​Score for atehwa_test_blah: 23.1 12:32:38 !bfjoust test_blah (>)*9([(-)*120[-]]>)*21[[+.]<--] 12:32:41 ​Score for atehwa_test_blah: 27.4 12:33:01 !bfjoust test_blah (>)*9([(-)*110[-]]>)*21[[+]<--] 12:33:04 ​Score for atehwa_test_blah: 29.0 12:33:18 !bfjoust test_blah +(>)*9([(-)*110[-]]>)*21[[+]<--] 12:33:21 ​Score for atehwa_test_blah: 28.6 12:33:35 !bfjoust test_blah (+>)*9([(-)*110[-]]>)*21[[+]<--] 12:33:38 ​Score for atehwa_test_blah: 23.6 12:33:48 !bfjoust test_blah (>)*9([(-)*100[-]]>)*21[[+]<--] 12:33:51 ​Score for atehwa_test_blah: 28.3 12:33:58 !bfjoust test_blah (>)*9([(-)*105[-]]>)*21[[+]<--] 12:34:00 ​Score for atehwa_test_blah: 27.4 12:34:07 !bfjoust test_blah (>)*9([(-)*90[-]]>)*21[[+]<--] 12:34:10 ​Score for atehwa_test_blah: 26.8 12:34:21 atehwa: I'd say you probably spend way too much time decrementing in that loop. 12:34:24 I wonder if one could make a binary search on the optimal value. 12:34:40 One could, but it's not that useful. 12:34:46 It's based on the current hill. 12:34:49 you will be rushed at that point by most jousters. 12:34:52 true. 12:35:15 another take... 12:35:50 !bfjoust test_blah (>)*9([-[-[-[-[(-)*115[-]]]]]]>)*21[[+]<--] 12:35:53 ​Score for atehwa_test_blah: 18.7 12:36:18 !bfjoust test_blah (>)*9([(-)*110[-]]>)*21[[+]<--] 12:36:21 ​Score for atehwa_test_blah: 29.0 12:36:21 115 is still a lot 12:36:27 still wayy too much time spent making decoys. 12:36:29 Make it less than 20 12:37:24 Deewiant: but if the flag reaches zero during (-)*x, it won't even stay down for two cycles? 12:37:33 True 12:37:57 What you should really do is have that be (+)*x where x is smalish 12:37:59 smallsih* 12:38:01 smallish* 12:38:07 With the idea of taking out decoys 12:38:38 As it is, you're spending over 115 cycles on a lot of initially-blank cells 12:38:43 And thus not getting anywhere. 12:38:49 I see. But that's not the point, the point is to speed up the rush, and not care about decoys. 12:38:57 and most of the current jousters are pretty sophisticated and will just skip your decoys. 12:39:06 no no, initially-blank cells are skipped over by [] 12:39:26 Initially-blank cells will quickly be set to non-initially-blank by faster rushers 12:39:38 that I can believe. 12:39:39 And then you can end up stuck on them for a long time if they did it with a - instead of a + 12:39:58 I think the choice of sign is mostly irrelevant, right? 12:40:09 Using different signs helps 12:40:09 since the polarities flip on half of the matchups. 12:40:16 oh, yes, ina single program 12:40:19 of course, I can see if this decoy-thinking helps 12:40:20 switching the sign is good. 12:40:29 !bfjoust test_blah (>)*9([(+)*10[-]]>)*21[[+]<--] 12:40:32 ​Score for atehwa_test_blah: 21.6 12:40:41 what's the link to that place where you can submit your jouster and then watch an animation of the tape? 12:40:44 atehwa: You can use http://codu.org/eso/bfjoust/egojsout/ for some visual testing 12:40:48 CakeProphet: That 12:40:52 yes, that. quite helpful. 12:41:16 !bfjoust test_blah (>)*9([(-)*115[-]]>)*21[[+]<--] 12:41:19 ​Score for atehwa_test_blah: 26.6 12:41:47 !bfjoust test_blah (>)*9([(-)*110[-]]>)*20[-] 12:41:49 though, I quickly became discouraged after I could actually see how difficult it was to beat anything. 12:41:50 ​Score for atehwa_test_blah: 28.4 12:42:48 atehwa: My bots are fairly simple, I think they're nice to test against since they don't have complex behaviour (or complex-to-understand simple behaviour) 12:43:06 !bfjoust test_blah (>)*9([++++[-[-[-[-[-[-[-[(-)*110[-]]]]]]]]]>)*20[-] 12:43:09 ​Score for atehwa_test_blah: 0.0 12:43:17 I've considered having a declaritive style domain-specific language to specify properties of a jouster. 12:43:23 :) 12:43:23 *declarative 12:43:25 that would be interesting. 12:44:03 you should really consider using smaller numbers for decrement 12:44:12 also using preset numbers for decoy-clearing / flag-clearing is a bad idea. 12:44:54 atehwa: That's a syntax error 12:44:57 but really, (+)*10[-] is a different idea than (-)*110[-] 12:44:59 Which is why it lost so much 12:45:14 they have a different goal 12:45:31 Yes, and the (+)*10[-] just works better in practice :-P 12:45:40 did not this time, I tested it already. 12:45:59 egojsout says "Unmatched loop" 12:46:00 could work better, of course, in a different context. 12:46:12 I miscounted the brackets. 12:46:16 Yep 12:47:13 !bfjoust test_blah (>)*9([++++([-{[(-)*110[-]]}])%8>)*20[-] 12:47:15 ​Score for atehwa_test_blah: 0.0 12:48:02 ([+++ the [ isn't closed 12:48:11 !bfjoust test_blah (>)*9([++++([-{[(-)*110[-]}])%8]>)*20[-] 12:48:14 ​Score for atehwa_test_blah: 0.0 12:48:21 jeez 12:48:23 Deewiant, doesn't )*20 close it? 12:48:43 No 12:48:50 what does that close then 12:49:02 oh wait the ] isn't matched 12:49:03 right 12:49:36 !bfjoust test_blah (>)*9([++++([-{(-)*110[-]}])%8]>)*20[-] 12:49:39 ​Score for atehwa_test_blah: 26.3 12:50:15 !bfjoust test_rush (>)*9([(-)*110[-]]>)*21[-] 12:50:17 ​Score for atehwa_test_rush: 29.8 12:50:29 that's still the best one I could come up with so far. 12:50:36 Again, "best" for the current hill 12:50:40 yes. 12:50:42 They have different characteristics 12:50:51 I prefer this one because it doesn't push allegro down to fourth place ;-) 12:50:59 yes, I played koth sometime :) 12:51:25 sometimes you could get back on the hill with a warrior that had been dropped :) 12:51:33 it all goes in cycles 12:51:36 Yep 12:52:45 !bfjoust (>)*8(>[(<)*8(-)*33(>)*8([-[++[(+)*9[-]]]]>)*21])*21> 12:52:45 ​Use: !bfjoust . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/ 12:52:52 !bfjoust copypasta (>)*8(>[(<)*8(-)*33(>)*8([-[++[(+)*9[-]]]]>)*21])*21> 12:52:54 ​Score for CakeProphet_copypasta: 16.5 12:53:10 one could also automate the fine-tuning. 12:55:39 !bfjoust test_rush (-)*123(>)*9([(-)*110[-]]>)*21[-] 12:55:42 ​Score for atehwa_test_rush: 33.4 12:55:54 !bfjoust shudder (++-)*100000 12:55:59 ​Score for CakeProphet_shudder: 15.3 12:56:02 heh. 12:56:05 :D 12:56:12 That's an old classic 12:56:23 atehwa: Do you really want to special-case the last cell on 30-long tapes? :-P 12:57:03 actually, I was too lazy to calculate for off-by-one mistakes :) 12:57:44 Make it *8 instead of *9 and put the > in front and drop everything after the *21 12:58:23 !bfjoust test_rush (-)*123(>)*8(>[(-)*110[-]])*21 12:58:25 ​Score for atehwa_test_rush: 33.4 12:58:53 it's almost the same what I append at the end of the program... 12:59:08 -!- copumpkin has quit (Ping timeout: 250 seconds). 12:59:32 -!- copumpkin has joined. 13:03:35 Updated that http://zem.fi/egostats/ too, though it's quite a few programs out-of-date again already. It's very slow in the plotting. 13:04:32 in advance to all apple fanboys: stfu 13:08:10 atehwa: Re. automating fine-tuning, ais523_waterfall or some version of it was originally tuned with a genetic algorithm until it beat all programs on the hill 13:08:30 I'm not surprised. :/ 13:10:32 -!- BeholdMyGlory has joined. 13:12:20 -!- Taneb has joined. 13:17:32 !bfjoust test_rush (-)*123(>)*12(+)*40<<<<(>[(-)*110[-]])*21 13:17:34 ​Score for atehwa_test_rush: 18.6 13:17:52 my program wins by joining the ends of the tape together, moving a step back, and performing a careless clear. 13:17:54 (>)*12 --> auto-lose on three tape lengths 13:18:09 !bfjoust test_rush (-)*123(>)*8(>[(-)*110[-]])*21 13:18:12 ​Score for atehwa_test_rush: 33.4 13:18:28 Deewiant: yeah, I just wanted to see if it will pay off. 13:18:42 Auto-losing generally doesn't pay off :-) 13:18:56 !bfjoust suicide < 13:18:59 ​Score for CakeProphet_suicide: 0.0 13:19:12 fasted losing program. 13:19:12 It could, if it's for statistically few enough cases. 13:19:14 *fastest 13:19:28 It could, yes, but it generally doesn't. 13:19:54 !bfjoust foo (-)*123(>)*8(+)*40(>[(-)*110[-]])*21 13:19:57 ​Score for Deewiant_foo: 32.8 13:20:16 the best solution is to add hundreds of intricate loops that account for every tape length / enemy strategy / blah blah 13:20:21 A bit better. 13:20:24 !bfjoust foo < 13:20:27 ​Score for Deewiant_foo: 0.0 13:20:45 CakeProphet: Yeah, see waterfall3 13:21:11 bfjoust? 13:21:22 http://www.esolangs.org/wiki/BF_Joust 13:22:41 Interesting 13:42:07 Hey, people who live in random European countries get to watch movies and read books in English. 13:42:18 That's neat. I wish I lived in a random European country. 13:42:36 Clearly, that will happen to me if I continue Finnishly babbling. 13:42:58 Povistaa malamutii täypin. 13:43:31 Why babble 13:43:39 tswett, but you get to see Australian things before the rest of us! 13:43:57 Because I don't know enough actual Finnish to actually speak Finnish. 13:44:05 Phantom_Hoover: lies. I actually live in India. 13:46:08 I don't see the chain of reasoning from "I don't speak Finnish" to "I should babble Finnish-sounding nonsense" 13:47:14 it sounds like a good idea, though. 13:47:34 Of course it does. 13:47:38 Pitää. 13:47:53 See, that was a real word. 13:47:56 I'm improving. 13:48:11 Maa. Kotimaa. 13:48:22 mmm palindromes. 13:48:39 Äatipitää. 13:48:39 I am quite satisfied with this palindrome generator thing I wrote a few days ago. 13:49:13 "Äati" is a no-go 13:49:37 i'm sure it was a typo 13:54:48 -!- quintopia has quit (Remote host closed the connection). 13:58:09 @src scanl 13:58:10 scanl f q ls = q : case ls of 13:58:10 [] -> [] 13:58:10 x:xs -> scanl f (f q x) xs 13:58:54 isn't it also map (foldl f q) (inits ls) 14:01:00 @check \q xs -> scanl subtract q xs == map (foldl subtract q) (inits xs) 14:01:00 "OK, passed 500 tests." 14:01:21 -!- copumpkin has quit (Ping timeout: 246 seconds). 14:01:45 -!- copumpkin has joined. 14:08:07 > concat . inits $ [0..] 14:08:09 [0,0,1,0,1,2,0,1,2,3,0,1,2,3,4,0,1,2,3,4,5,0,1,2,3,4,5,6,0,1,2,3,4,5,6,7,0,... 14:08:39 > sum . concat . inits $ [0..10] 14:08:42 220 14:09:08 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 14:09:27 > zipWith (*) [0..10] (reverse [10..0]) 14:09:28 [] 14:09:54 > sum $ zipWith (*) [0..10] (reverse [0..10]) 14:09:55 165 14:10:11 > sum $ zipWith (*) [1..10] (reverse [1..10]) 14:10:12 220 14:11:17 > map length $ inits [0..10] 14:11:18 [0,1,2,3,4,5,6,7,8,9,10,11] 14:12:24 > iterate (map length . inits) [0..1] 14:12:26 [[0,1],[0,1,2],[0,1,2,3],[0,1,2,3,4],[0,1,2,3,4,5],[0,1,2,3,4,5,6],[0,1,2,3... 14:23:19 > iterate (map length . inits) [0..] 14:23:21 [[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27... 14:25:00 interesting idea because map length . inits seems to increase the length of the list by one. 14:25:07 -!- mundi has joined. 14:25:22 -!- cheater_ has quit (Ping timeout: 250 seconds). 14:26:11 -!- cheater_ has joined. 14:28:05 -!- mundi has left ("Ex-Chat"). 14:37:04 -!- cheater_ has quit (Ping timeout: 250 seconds). 14:38:01 -!- cheater_ has joined. 14:41:14 hmmm, seems that Haskell has lost its 4th place status in the Great Language Shootout. 14:41:19 it was apparently second at one point. 14:43:58 -!- NihilistDandy has quit (Read error: Connection reset by peer). 14:44:49 -!- copumpkin has joined. 14:51:33 -!- cheater_ has quit (Ping timeout: 255 seconds). 14:52:28 -!- jcp|1 has joined. 14:52:48 -!- jcp has quit (Ping timeout: 276 seconds). 14:52:53 !bfjoust random [+-.+..].[>>>>.<->[>]-.-<].[<-..<.][[]<><]-<<[[>.-><>.+[[-+]..-+[>+<>]>[+]]]]+>[.[+.-<-<+.<+[<>[[<[.->]]]]]] 14:52:55 ​Score for Taneb_random: 12.7 14:54:03 That did better than I thought it would 14:54:12 -!- jcp|other has quit (Ping timeout: 246 seconds). 14:55:26 -!- jcp has joined. 14:57:58 Did you really submit a fully random program? 14:58:30 !bfjoust random-reduced [+-.+..] 14:58:33 ​Score for Lymee_random-reduced: 12.5 15:00:08 Taneb, did you write an evolver? 15:00:37 Nah, just made a few random ones and used the best one 15:00:47 Lymee: That's not quite reduced, if the opponent does a -- or ++ style clear, the ] can pass 15:00:58 An evolver would probably be better 15:01:09 !bfjoust random-reduced [+-+] 15:01:12 ​Score for Lymee_random-reduced: 11.7 15:01:39 How about "dead code eliminated" 15:01:53 It's not equivalent, is what I meant 15:01:58 That code isn't necessarily dead 15:02:03 It doesn't do anything useful. 15:02:05 Although in practice is likely to be 15:02:42 If the opponent comes to your flag and does (-)*100000, that code will be executed :-P 15:02:55 Well, if it does it at the right time 15:03:12 It's unlikely to do anything helpful, at least. 15:03:22 That much is true 15:04:20 -!- cheater_ has joined. 15:05:00 What does . do in bfjoust? 15:05:36 noop 15:05:36 nop 15:05:44 noöp 15:08:00 Now, if I had actually written an evolver 15:11:31 Rather than taken one of the worst approaches to BFJoust programming possibl 15:11:33 e 15:11:56 I may have been higher on the highscore list 15:14:15 > [0..] >>= (`replicateM` "<>[]+-.") 15:14:17 ["","<",">","[","]","+","-",".","<<","<>","<[","<]","<+","<-","<.","><",">>... 15:14:27 run this until you beat everything on the hill. 15:14:43 you could add a filter to ensure brackets are balanced. 15:16:25 > sum . map (7^) $ [0..1000] 15:16:27 146213274662667137112548063777985657385914925426115053337407750877446569570... 15:16:35 yeah that shouldn't take very long. 15:17:17 -!- quintopia has joined. 15:17:18 -!- quintopia has quit (Changing host). 15:17:18 -!- quintopia has joined. 15:18:04 hmmm, well, you could treat a pair of balanced brackets as a single character for the purposes of counting possibilities. 15:18:10 > sum . map (6^) $ [0..1000] 15:18:12 169993231486018340685555030298982692999685661970922295867882569185687427371... 15:18:41 see? that's not very many possibilities at all within set of bfjoust programs less than or equal to 1000 characters long. 15:18:43 And discount programs that have a < before any >s 15:18:57 ah, yeah I can't calculate that number easily.. 15:19:58 who knows it might be a viable solution that won't take 1 billion years to execute. 15:20:44 it would be interested to see the winning program. It would be literally be one of the most optimal bfjoust programs, pulled out of the realm of possibility. 15:20:49 *interesting 15:21:05 I've exceeded my typo limit. Thats means I have to go to sleep now. good night. 15:21:44 -!- jcp|other has joined. 15:22:17 (Future plan: create virus. establish botnet. find optimal bf joust programs from the set of all bfjoust programs 15:22:20 ) 15:23:21 -!- jcp has quit (Ping timeout: 276 seconds). 15:23:36 -!- jcp|1 has quit (Ping timeout: 246 seconds). 15:25:31 Select four programs: A, B, C, and D. Pit A against B and C against D. WLOG, assume A and C win. Kill B and D and replace them with A and C's offspring. 15:29:56 -!- jcp has joined. 15:33:43 -!- monqy has joined. 15:34:22 -!- pikhq has quit (Ping timeout: 240 seconds). 15:34:27 -!- pikhq_ has joined. 15:36:52 The fizzie_evo_4 program was evolved against some old hill a bit like that; it's quite close to one of the members of the starting population, which were the wiki's BF Joust article's examples. 15:55:27 -!- cheater_ has quit (Ping timeout: 255 seconds). 15:55:52 -!- cheater_ has joined. 16:05:23 -!- Phantom_Hoover has quit (Quit: Leaving). 16:23:39 -!- Nisstyre has joined. 17:31:36 -!- Taneb has quit (Ping timeout: 252 seconds). 17:36:44 -!- MigoMipo has joined. 17:40:51 -!- CakeProphet has quit (Ping timeout: 240 seconds). 17:52:52 -!- CakeProphet has joined. 17:52:53 -!- CakeProphet has quit (Changing host). 17:52:53 -!- CakeProphet has joined. 17:53:50 Serafina Pekkala. 17:58:46 halp 17:58:48 http://satwcomic.com/ 17:58:54 someone translate :( 18:00:48 Apparently, it's all done by Google Translate. So, use Google Untranslate to get it back to English. 18:04:32 oic 18:06:20 Ooh, I can almost read that first sentence. "Jag har undrat, varför har du en fisk på huvudet?" 18:06:49 It's, like... "I ___ ______, wherefore hast thou an fish __ _______?" 18:07:53 "An boat? Wherefore will thou have an boat __ _____ ____?" 18:08:40 på huvudet -> on [your] head. 18:08:58 Wherefore hast thou an city upon head? 18:09:03 The Finnish is not terribly correct, but, well, Google Translate. 18:09:28 har undrat -> have wondered. 18:10:08 fizzie: do you always translate into shakepearean english 18:10:28 Not me, tswett. 18:10:39 Only when translating from Germanic languages. 18:10:46 oh god you people with your names that are the same length 18:10:55 WHEREFORE ART THOU JOHN 18:11:12 Oh, it's easy to tell us apart. My name is white, everyone else's is gray. 18:11:14 FOR THINE MOBILE RINGETH NOT 18:11:19 AND GOETH STRAIGHT TO VOICEMAIL 18:12:14 -!- Taneb has joined. 18:12:54 What's happening in the world of esoteric programming? 18:13:48 Taneb: dependently typed befunge 18:14:38 How does that work? 18:15:44 who knows, i just made it up 18:16:12 brb 18:22:57 -!- elliott has joined. 18:23:11 Hello 18:23:13 hi 18:23:13 elliott: You have 6 new messages. '/msg lambdabot @messages' to read them. 18:23:17 wow 18:23:36 elliott, can you whitelist me on the Minecraft server? 18:24:11 yep; gimme a minute first though, I just got online 18:24:18 Fair enough 18:28:46 elliott: My request is still pending. 18:29:17 Though, I've got shit I should probably doing ATM, so whatever. :P 18:29:55 pikhq_: I know; it's just that we've only really tested the server up to the limits of the people who were on during testing, so I'm trying to make sure everything will run stably with lots of RAM left over, etc. with more people before I let anyone else on... 18:30:04 Don't worry, there's nothing much at all on the server right now. Not even a house. :p 18:30:30 elliott: Hooray, everyone being too lazy to play a game! :P 18:31:27 pikhq_: It's been up with the real map for exactly two days; we've been focusing on mining a bunch of resources and trying to find a spot to build a civilisation :P 18:32:38 More like one day, actually 18:33:45 And then my speaker decided to take a suicide leap off my desk. 18:34:38 -!- elliott has quit (Read error: Connection reset by peer). 18:35:17 -!- azaq23 has joined. 18:36:50 -!- CakeProphet has quit (Ping timeout: 264 seconds). 18:36:50 -!- CakeProphet has joined. 18:36:51 -!- CakeProphet has quit (Changing host). 18:36:51 -!- CakeProphet has joined. 18:37:34 http://www.coltech.vnu.edu.vn/~hoangta/jvse2010/Sakai-JVSE2010.pdf looks like this link never appeared in this channel. 18:39:40 -!- elliott has joined. 18:39:45 -!- elliott has quit (Changing host). 18:39:45 -!- elliott has joined. 19:11:31 -!- CakeProphet has quit (Ping timeout: 240 seconds). 19:18:00 -!- CakeProphet has joined. 19:18:00 -!- CakeProphet has quit (Changing host). 19:18:00 -!- CakeProphet has joined. 19:23:15 -!- CakeProphet has quit (Ping timeout: 240 seconds). 19:24:18 00:13:55: > fix error 19:24:19 00:13:57: "*Exception: *Exception: *Exception: *Exception: *Exception: *Exception: *E... 19:24:19 00:14:07: It's clearly returning a [Char] 19:24:19 00:14:14: no 19:24:19 00:14:15: One that makes /sense/ at that. 19:24:21 Lymee: not in the way you think 19:24:26 00:14:57: Lymee: The show routine is printing out the initial " for the string. 19:24:26 00:14:57: error s = throw (ErrorCall s) 19:24:27 00:15:20: Lymee: And then the RTS starts outputting that it got an exception, so it prints *Exception: . 19:24:29 00:15:30: Lymee: And then, it tries to output the error message for that. 19:24:31 00:15:36: Lymee: And then the RTS starts outputting that it got an exception, so it prints *Exception: . 19:24:34 00:15:42: Lymee: And so on. 19:24:36 yeah 19:24:40 note how there's no closing quote in error (error "wat") 19:25:14 So... 19:25:21 You can have an exception while displaying the exception string. 19:25:47 > let evilValue = fix error in True || evilValue 19:25:48 Couldn't match expected type `GHC.Bool.Bool' 19:25:48 against inferred type ... 19:26:17 Lymee: you can have an exception while evaluating any value 19:26:23 an error string happens to be a value :) 19:26:28 fix error is of type String 19:26:29 because 19:26:33 fix :: (a -> a) -> a 19:26:37 error :: String -> a 19:26:47 so (String -> a) has to become (b -> b) 19:26:52 b=String is the only thing that fits 19:27:03 I see. 19:27:04 Makes sense 19:27:20 > let evilValue = fix error `seq` False in True || evilValue 19:27:22 True 19:27:33 that's not really an evil value any more than an infinite loop is 19:27:53 Lazy evaluation gets confusing. 19:28:07 that case is very obvious :P 19:29:22 I'm making an observation. 19:29:27 :) 19:29:31 01:09:34: > let throw# = \x -> x in error "this wont work i dont think" 19:29:31 01:09:36: *Exception: this wont work i dont think 19:29:31 thankfully, haskell is lexically scoped 19:31:14 I'm aware. 19:33:45 :t fix 19:33:46 forall a. (a -> a) -> a 19:36:55 -!- oerjan has joined. 19:37:16 haha nonlexical scoping 19:40:44 -!- CakeProphet has joined. 19:41:50 04:56:23: elliott, standard model is *awful* I don't care who you are 19:41:50 Oh, look, a biologist who codes hates the standard model. 19:41:50 Clearly this means we should all jump ship. 19:41:53 hey now 19:41:58 I'm a polymath 19:42:02 just mostly focused on biology :) 19:42:07 would I be programming if that were my sole interest 19:42:10 it's just not my life 19:42:21 besides I find most hard CS people are really just closet lambda calculus nerds 19:42:23 no offense :P 19:43:16 yep, you don't understand functional programming so all CS is just \calculus nerding, reasonable conclusion to make 19:45:43 this again? 19:45:58 apparently 19:46:55 i still need to learn it. there must be an easy way to understand functional programming 19:47:11 Elizacat: and is this why CS is an awful thing? 19:47:36 i think possibly it's because lambda calculus is the simple model of computation which corresponds closest to high-level mental concepts 19:47:58 no that's goto and print 19:48:18 goto isn't high-level 19:48:28 i mean TMs are TC, but programming them is still essentially esoteric 19:48:29 here oerjan discovers sarcasm 19:48:52 second best only to puns 19:48:58 elliott: you need to use the new reddit convention of embedding /s in the alt text of your punctuation 19:49:14 oerjan: but then we'd know for _sure_ that elizacat was serious 19:50:11 while lambda calculus is just very thin syntactic sugar from actually being usable 19:50:45 oerjan: if that: /me links to http://tinyconcepts.com/invaders.html again :P 19:51:02 (ok so the "array" code is pretty ugly, but that's just the fault of the choice of datatype :P) 19:52:07 I'm only half serious 19:52:12 that code has no line breaks in my browser :( 19:52:15 trust nobody but me 19:52:20 taking me seriously may be hazardous to your health 19:52:26 harmful or fatal of swallowed 19:52:35 if you have an erection lasting more than four hours seek immediate medical help 19:52:43 all very sound advice. 19:52:46 elliott: that already is a bit of syntactic sugar, you have equations and multiletter identifiers :P 19:53:16 oerjan: well ok :P 19:53:17 although the latter might be all you really need for some readability 19:53:29 oerjan: I consider identifiers irrelevant for \calculus 19:53:40 The form with explicit variables is just defined on a set of variable names :P 19:53:47 In any circumstances, unless battling a mime, do not attempt to punch yourself in the face. 19:54:04 oerjan: top-level letrec is probably the important thing 19:54:11 elliott: "usable" includes readability considerations 19:54:12 I know this from personal experience. 19:54:27 elliott: yeah easy recursion is somewhat important 19:54:33 oerjan: yes, I'm just saying that multi-letter variables aren't a change IMO 19:54:39 That's how I consider the lambda calculus normally 19:54:45 ok 19:55:01 oerjan: well fix is easy enough, but mutual recursion is very hard in the lambda calculus, you basically have to inline all the mutual functions within each other... 19:55:26 you can formulate letrec in the lambda calculus though, so the only sugar is not having to name every bound variable as a parameter to the bound variable, pretty much 19:55:37 by giving them directly-associated names instead 19:55:44 de-sugaring is trivial 19:56:53 I know this from personal experience. <-- i am starting to get an inkling you use this phrase a lot 19:57:27 oerjan: do you know that from personal experience? 19:57:35 damn it elliott I was going to say that 19:57:55 now im cyring 19:58:10 do you ever not cry 19:58:16 Look, I often walk my dog through a field with cows in it. And I punched myself in the face once. 19:58:25 `addquote Look, I often walk my dog through a field with cows in it. And I punched myself in the face once. 19:58:28 519) Look, I often walk my dog through a field with cows in it. And I punched myself in the face once. 19:59:03 monqy: you snooze, you lose 19:59:13 Taneb: is that your life story 19:59:22 i dropped my lunch and was picking it up off of the floor this is my excuse 19:59:30 No, I also grew a moustache when I was twelve 20:02:52 Well, in less than a year I'll be thinking about choosing what to do at university 20:03:09 elliott: well if you can use fix you should also be allowed to use letrec (since both can be defined) 20:03:32 oerjan: I'm just saying that you can have a top-level set of mutual bindings in the lambda calculus almost directly 20:04:01 you can define a letrec such that (with [...] sugar for lists because I'm lazy) `letrec [\[a,b,c]. ..., \[a,b,c]. ..., \[a,b,c]. ...]` works 20:04:07 with the first being a, second b, third c 20:04:18 so basically, top-level mutual bindings are just thin syntactic sugar 20:04:22 and that's all you really need 20:04:52 hm i was about to write something like that, but without lists 20:05:06 oerjan: how could you do it without lists? 20:05:13 well, actually 20:05:15 that's just fix 20:05:23 well the letrec would then depend on number of functions 20:05:24 fix (\[a,b,c]. [..., ..., ...]) 20:07:56 -!- olsner has quit (Read error: Operation timed out). 20:08:33 fix (\l a b c -> l (def. a) (def. b) (def. c)), or something like that 20:09:13 hm that won't work i think 20:09:28 or does it 20:10:10 there should be something that can replace fix there to make it work, anyway 20:15:14 fix (\t f -> t (\a b c -> f (def. a) (def. b) (def. c))) 20:16:00 i think that may be it. t now represents a 3-tuple and f a function for unwrapping it 20:16:34 pretty 20:20:27 > fix (\t f -> t (\a b -> f (1:b) (1:zipWith (+) a b))) (\a b -> a) 20:20:43 thread killed 20:20:52 that did not seem to work very well :P 20:21:06 but it did type 20:21:21 > let a = 1:b; b = 1:zipWith (+) a b in a 20:21:26 [1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,1... 20:21:28 Now, I promised myself when I was 7 that I would do maths at University 20:21:30 hmph 20:21:32 lessee 20:21:35 http://i.imgur.com/GXlwe.jpg 20:21:44 But you guys have made me want to do Computer Science 20:21:44 > take 4 $ fix (\t f -> t (\a b -> f (1:b) (1:zipWith (+) a b))) (\a b -> a) 20:22:13 thread killed 20:22:32 they're researchers :P 20:22:33 elliott: i guess that becomes an infinite loop instead :( 20:22:35 (I think) 20:22:38 oerjan: rip :( 20:22:45 oerjan: wait, it looks very wrong 20:22:46 research would probably be the better way to go for CS 20:22:47 Now, Oxford offers a Maths and Computer Science course 20:22:51 oerjan: fix (\t f -> t ...) looks wrong 20:22:53 :p 20:22:59 oerjan: isn't that necessarily an infinite loop 20:23:12 oh hm right 20:23:19 Taneb: maths and computer science is a good thing to do, I think they do Haskell at Oxford 20:23:24 also Oberon for some reason? so weird 20:23:44 -!- olsner has joined. 20:23:48 http://i.imgur.com/GXlwe.jpg 20:23:53 if objective c gives you a magical sense of childlike wonder 20:23:57 you're a really boring person 20:24:40 i do not like this list 20:24:48 -!- NihilistDandy has joined. 20:24:52 And if Malbolge makes programming like breathing, ask the nurse for more oxygen. 20:25:16 hm... 20:35:56 elliott: i think the problem is that the obvious church representation of tuples isn't actually lazy... 20:36:20 um isn't it? 20:37:05 no, when doing t (\a b -> f a b) f doesn't get to start running until the tuple function is evaluated 20:37:08 -!- Taneb has quit (Ping timeout: 252 seconds). 20:37:34 *evaluating 20:37:38 hm right 20:37:54 -!- boily has quit (Ping timeout: 252 seconds). 20:38:43 might actually have to define fst and snd to apply inside f 20:38:47 lessee 20:39:30 oh hm 20:39:42 so I take it you're not doing normal order 20:39:58 monqy: um yes i am, this is haskell... 20:40:35 normal order doesn't mean _every_ data type representation becomes automatically lazy (is the moral of this) 20:42:29 > fix (\t f -> (\f -> f (t (\a b -> a)) (t (\a b -> b))) (\a b -> f (1:b) (1:zipWith (+) a b))) (\a b -> a) 20:42:33 mueval-core: Time limit exceeded 20:42:41 > take 4 $ fix (\t f -> (\f -> f (t (\a b -> a)) (t (\a b -> b))) (\a b -> f (1:b) (1:zipWith (+) a b))) (\a b -> a) 20:42:43 [1,1,2,3] 20:42:45 yay 20:42:58 still slow as molasses :P 20:43:42 and not as pretty any longer 20:45:39 well... 20:46:52 > take 4 $ fix (\t f -> (\a b -> f (1:b) (1:zipWith (+) a b)) (t (\a b -> a)) (t (\a b -> b))) (\a b -> a) 20:46:53 [1,1,2,3] 20:51:38 atehwa: Didn't you run the mailing list? 20:51:40 ooh right 20:51:44 * oerjan waves 20:52:06 :O 20:52:11 sup atehwa 20:52:46 I forgot all about that, heh 20:52:46 06:24:17: elliott: well, I know the wiki, but it seems that the number of langs / year has been going up ever since 2002, and most of the new languages are really uninteresting. 20:52:48 yeah, this is very true 20:53:08 elliott: i saw you mention underload, did you mention /// yet? :P 20:53:17 oerjan: oh right. you do it. 20:53:55 taneb: i would say that anyone who can follow this room without skipping a beat doesn't need a CS bachelors 20:54:01 atehwa: /// (Slashes) is the best esolang ever. or something. 20:54:11 they can jump straight to phd 20:54:14 sadly i don't think he's present at the moment. 20:54:32 itidus20: "Hey, lemme in to your grad school. Degree? I don't need no stinkin' degree, I'm an ESOIST." 20:54:55 I considered mentioning ///, but assumed he already knows about Thue, and one string-rewriting thing might be enough. 20:55:09 lol 20:55:14 -!- pumpkin has joined. 20:55:18 oh, eodermdrome maybe. but of course my memory is biased toward the languages i've worked on 20:55:30 fizzie: /// is far more elegant than thue :( 20:55:33 Thue suxxxe 20:55:51 (although that may be somewhat caused by thue's sucky syntax and IO) 20:55:55 eodermdrome he seemed to find. 20:56:00 ah 20:56:24 im very serious 20:56:44 hehehehe 20:56:45 :) 20:57:06 itidus20: are you having a reverse Dunning-Kruger effect here? :P 20:57:20 i can't follow the room without skipping a beat 20:57:40 or would that be dunning-kruger by proxy 20:57:52 itidus20: i realize that, therefore "reverse" :P 20:58:08 hmm 20:58:13 -!- copumpkin has quit (Ping timeout: 252 seconds). 20:58:13 ("since i don't understand half what they say, they must know _everything_") 20:58:26 i am a dropout but it's more for sociological reasons than intellectual 20:58:52 -!- ais523 has joined. 20:58:56 lol, comparing thue to /// 20:59:08 bit of both 20:59:31 at the end of the degree they start expecting you to do things like teamwork and projects 20:59:31 oklopol: they're not that different, but the major difference is a really really significant one 20:59:37 sup ais523 20:59:46 also, it's not that they're dissimilar 20:59:47 elliott: I finally finished the Big PvP Ban 20:59:50 the rest of it is a joke 20:59:51 it's that it's like comparing php to scheme 20:59:52 ais523: wut 20:59:56 which I've been working on for 5 days noe 20:59:58 *now 21:00:02 what is that? 21:00:04 it's a NetHack-related project 21:00:13 mostly interesting because banning PvP in NetHack implies I'm implementing multiplayer 21:00:22 yes, I made that conclusion-jump too 21:00:28 ais523: why ban PvP? PvP is fun :-P 21:00:40 pvp pvp 21:00:40 ais523: Are you doing that fancy -- what was it -- roguelike relativity thing? 21:01:07 elliott: because PvP doesn't work 21:01:19 banning it is necessary to prevent the game crashing 21:01:30 ais523: haha 21:01:31 if I wanted PvP to work, I'd have to follow up by reimplementing it on a different codepath 21:01:38 -!- pumpkin has changed nick to copumpkin. 21:01:53 rewrite nethack 21:01:56 ais523: Are you doing that fancy -- what was it -- roguelike relativity thing? 21:02:14 What, and call it githack? 21:02:41 elliott: I'm not sure what you mean by that 21:02:43 you can't learn to cope with a degree by doing a degree 21:02:51 ais523: How are you handling it 21:02:52 it's a fallacy 21:03:03 Multiplayer Doesn't Work in roguelikes in any naive way 21:03:04 Oh wait 21:03:06 monqy: after spending 5 days editing well over half of the files in the distribution, I'd be inclined to agree with you, but I fear a rewrite would be even harder 21:03:09 Unless you just mean like 21:03:12 Hmm 21:03:13 No 21:03:16 ais523: So how are you doing it 21:03:31 elliott: behind-the-scenes, via peer-by-peer where there's one process per player, which handles everything that happens involving that player 21:03:44 12:26:15: 04:53:53: if you don't think, you can't accomplish anything. programming is a science. 21:03:44 12:26:27: No it isn't, it's maths mixed with the odd bit of engineering. 21:03:45 12:27:04: They're like the exact opposite things. 21:03:45 That's what "a science" means, generally :-P 21:03:45 from the player's point of view, by putting both players into the turn order, and you have to wait for your turn to come round 21:03:56 ais523: Right, so you have to have everybody awake to play 21:03:59 Not MMORPG-style or anything 21:04:52 yep, it's small-party multiplayer 21:04:58 and cooperative only 21:05:07 So lame :P 21:06:00 13:04:32: in advance to all apple fanboys: stfu 21:06:01 /ahem 21:06:08 HEY GUYS DID YOU HEAR ABOUT THE NEW APPLE PRODUCTS 21:06:08 GUYS 21:06:09 GUYS 21:06:10 NEW APPLE PRODUCTS 21:06:10 GUYS 21:06:11 GUYS 21:06:12 cheater_ 21:06:16 THEY CAME OUT WITH NEW APPLE PRODUCTS 21:06:17 hi guys 21:06:32 hi elliott 21:06:33 (Heh, I just checked; and so my computer becomes obsolete already) 21:06:43 Time to throw it out the window 21:06:54 genetic engineered apples? 21:07:00 Aww what, it has an i7 now? 21:07:01 dont hit anyone with it that might hurt 21:07:12 I demand a free upgrade 21:07:29 apple juice, apple cider, ringo starr 21:08:05 elliott, i'm happy you've read my very important PSA 21:08:34 ipad2.0, it's worth giving up your kidney for 21:09:34 -!- pumpkin has joined. 21:09:54 how many kidney 21:10:30 -!- copumpkin has quit (Ping timeout: 258 seconds). 21:10:39 9 kidney 21:10:41 also I don't understand tablets what's so good about them 21:10:43 am i unhip 21:10:57 yes ur hip bone 21:10:57 it's marketing 21:11:05 by tablets I mean the gimmicky touchscreen computers 21:11:17 -!- Taneb has joined. 21:11:23 thanks. also, whoosh. 21:11:25 well, mice kind of suck. direct touch is one answer to that. 21:11:30 Hello again 21:11:34 and at least the ipad doesn't have a (visible) filesytem. 21:11:34 wrong window 21:11:36 filesystem 21:11:40 but direct touch also sucks 21:11:41 by isolating certain hardware configurations and naming them platforms, a company can get rich 21:12:10 monqy: for typing sure, dunno about for other things 21:12:28 you have to obscure the screen, for one 21:12:51 how's that any different to, i dunno, a whiteboard, or a book, or anything else 21:12:55 -!- pumpkin has changed nick to copumpkin. 21:13:01 i'm pretty good at keeping my fingers out of the way 21:13:11 I guess it depends on what's happening 21:13:29 I haven't worked out what I'd use a tablet computer for, if I had one 21:13:30 if the interface designers aren't idiots 21:13:32 i'm not convinced touch is a good idea and the ipad has apple lockdown shit but 21:13:40 they're not really properly portable, and the keyboard's aren't good enough for serious programming work 21:13:44 *keyboards 21:13:59 ais523: IMO, the iPad is basically Apple releasing its next computer model a decade early 21:14:07 -!- Nisstyre has quit (Quit: Leaving). 21:14:14 elliott: I think they found a genuine gap in the market 21:14:18 but I'm not sure it's a very large one 21:14:28 next computer model: not for serious programming work????? 21:14:31 which means more unacceptable Apple lockdown, and lots of other crap, but it seems clear to me that the current path of computer evolution is a dead-end 21:14:37 monqy: Apple care about developers? 21:14:46 all they need to do is release XCode for iPad and they're done 21:15:21 elliott: you'd really need to design a new language syntax for being easily written on a tablet 21:15:25 I'd hate to write, say, C on one 21:15:33 -!- Nisstyre has joined. 21:15:42 typing is pretty much the main issue with direct touch 21:15:56 flowcharts flowcharts flowcharts 21:17:36 elliott: there have been interesting suggestions that what's needed is a force-feedback touchscreen 21:17:39 Well, I managed to humiliate myself IRL today 21:17:43 that could form physical keys that you could feel and press 21:17:48 so it'd work like a mechanical keyboard 21:18:02 it seems like a nifty idea, especially if you can make it into a Braille display too 21:19:12 ais523: yes; it's not clear how you can do that, though, but if it was done, at a sufficiently good resolution, that would be amazingly impressive 21:20:01 I suppose the other problem with tablets is, if you're using a large portion of it as a keyboard, why not put a keyboard there rather than a screen? 21:20:12 amazingly impressive useless gimmick. why can't it have a port for keyboardery 21:20:22 or a builtin keyboard yeah 21:20:29 monqy: the trend nowadays is for systems to have fewer and fewer ports 21:20:40 and peripherals generally 21:20:42 bad trend 21:21:09 I happen to own a USB floppy drive (and have had to use it on occasion), but I bet most people have no way to read floppy disks nowadays unless they have a desktop PC or really old laptop 21:21:18 amazingly impressive useless gimmick. why can't it have a port for keyboardery 21:21:24 monqy: You realise that there are other uses for tactile feedback? 21:21:30 no 21:21:30 It would be nice if GUI buttons gave actual feedback, for intsance 21:21:31 instance 21:21:51 monqy: And assuming it had multiple levels, you could do all sorts of stuff 21:21:59 i also hate gui buttons 21:22:21 Well if you just want a linguistic-style interface of course nothing to do with touch at all will interest you 21:22:36 -!- Taneb has quit (Ping timeout: 252 seconds). 21:25:08 You can have an exception while displaying the exception string. 21:25:38 that's a function of how lambdabot is programmed. i recall a previous version bailed out on a second one. 21:25:41 wow, someone found an exploit on Google Webmaster Tools that let them remove arbitrary sites from the Google index 21:25:52 * elliott checks GitHub notifications 21:25:53 haha 21:25:55 apparently, you could change the query string of an otherwise valid removal request 21:26:17 that's a pretty silly mistake to make 21:26:23 although a moderately common one 21:26:44 (the tool in question's been temporarily disabled until it could be fixed) 21:26:46 basically, it's just about putting catch in the function handling an exception from an outer catch 21:27:10 ais523: "if you're using a large portion of it as a keyboard, why not put a keyboard there rather than a screen?" -- because in very many use cases (browsing...) you're for the most part not using a keyboard. Having a physical one would be comparable to having the virtual one always-on. 21:27:18 fizzie: indeed 21:27:48 (I'm sure they don't mind the fact that there's then also no need to consider different regional keyboard layouts in hardware.) 21:27:55 FireFly: monqy is who said that 21:27:56 fizzie: 21:29:07 elliott: That was a direct copypasta from an ais523 comment. 21:29:34 yep, I was thinking about that 21:29:59 incidentally I'd prefer browsing with keys over fingers 21:30:30 ah 21:30:58 I normally browse with a mouse 21:31:09 but I've been wondering if using a keyboard to navigate would work better 21:31:15 my guess is no, but I'm not sure 21:31:25 I browse with my nose. (Not really, but it sorta-rhymes.) 21:31:33 I imagine fingers would be clumsy 21:31:42 links too close together, touch the wrong one 21:32:56 monqy: meh; that's a problem with my iPhone, but tablets are much bigger 21:32:59 And even with my iPhone I rarely misclick 21:42:26 theres nothing wrong with keyboards... they don't like this idea 21:42:37 they can't kill the keyboard with a touchscreen 21:42:52 its all a conspiracy man 21:43:30 and keyboards are cheap 21:43:42 and as far as computers go they're a commodity 21:43:54 they're fairly perfect 21:44:12 except for being out and about 21:45:53 depends what the kb is for 21:46:59 im sure if research was done between writing a 3000 word essay on an ipad vs writing it on a laptop the laptop would win 21:47:21 but then people would argue that it's due to familiarity with the keyboard that they like the keyboard. 21:47:49 the question then is whether there is any level at which a person could enjoy a touchpad keyboard more than a regular keyboard 21:48:22 and it may turn out the ipad is for writing things like urls or using 140 character twitter 21:49:00 im sure if research was done between writing a 3000 word essay on an ipad vs writing it on a laptop the laptop would win 21:49:05 yes because the only thing people do on computers is type 21:49:08 the ONLY THING 21:49:17 that's why they're called typewriters 21:50:51 well, I'd prefer a laptop to a tablet because most of what I do on a computer is in fact typign 21:50:53 *typing 21:51:00 but I acknowledge that other people might do other things on theirs 21:51:03 -!- pikhq has joined. 21:51:10 and that different systems might be better for them as a result 21:51:42 hm 21:51:53 * atehwa waves back at oerjan, elliott. 21:52:31 oerjan: I managed to find out about /// myself, because it had enough backreferences :) 21:52:37 ah 21:53:03 well the patent hounds are gnashing over these "gestures" 21:53:27 ais523: Do you make TASes yourself? 21:53:34 coppro: I'm working on a NetHack TAS 21:53:49 oerjan: actually, funny how you started by mentioning /// and eodermdrome, because those two were exactly the ones I found valuable myself. :) 21:53:52 I'm a bit unusual in the TAS community in that I don't make TASes without a license from the game's developers to use the ROM for the purpose 21:54:10 there could be lots of more interesting graph-rewriting languages for undirected graphs, though. 21:54:21 ais523: Which leaves you only working on Nethack? :P 21:54:28 atehwa: if you look carefully, you'll note i wrote most of the programs in them :) 21:54:32 pikhq: indeed 21:54:38 ais523: if you own the game and rip the ROM yourself, you can do that legally without asking anyone, AFAIK 21:54:40 -!- pikhq_ has quit (Ping timeout: 276 seconds). 21:54:49 elliott: Quite. 21:54:58 elliott: I think so, in the UK (although I'm not completely sure); but I don't have ROM-dumping equipment 21:55:07 I tried to define a rewriting from SK combinator calculus to Eodermdrome graphs, but I couldn't define graph duplication, which I'd need to implement S. 21:55:18 I suppose modern enough games, which come on CD or whatever, don't even need ROM-dumping, you can just read the CD directly 21:55:28 -!- quintopia has quit (Ping timeout: 255 seconds). 21:55:43 Yeah, though most of the CD-based systems are a pain to emulate. 21:55:52 Personally, I'm surprised they're TASing Playstation games now. 21:55:54 yes, and I agree that /// is far more elegant than Thue, mainly because it has first-class rewrite rules. 21:56:07 atehwa: like i said, you might want to ask ais523 too (he created underload and eodermdrome, FWIW) 21:56:42 pikhq: psp,ps2,gamecube is the main challenges lately in emulation field i believe 21:56:51 atehwa: graph duplication is a pain to do in Eodermdrome; you can't do it on general graphs 21:57:10 Really the area of ROM duplication is fuzzy 21:57:11 everything else is basically done 21:57:14 <3 This Is Gallifrey 21:57:15 itidus20: No. 21:57:22 http://www.youtube.com/watch?v=idQRiLZukG0 21:57:27 but you're only using a subset, so you could match against those 21:57:33 itidus20: "Abandoned" doesn't mean "finished". 21:57:49 pikhq: ok i admit they never crafted them to perfection. 21:57:52 the major issue in Eodermdrome is that after a while you run out of letters 21:57:59 Though, SNES emulation is *pretty close* to perfection. 21:58:10 As is NES and Gameboy... 21:58:19 The whole gameboy series is great 21:58:28 pikhq: i lost myself there 21:58:36 The Playstation and N64 emulators are utterly *horrible* thus far. 21:58:46 pikhq: psp,ps2,gamecube is the main challenges lately in emulation field i believe 21:58:48 surely wii, not gamecube 21:58:51 gamecube emulation is pretty good IIRC 21:59:02 elliott: Wii and Gamecube emulation are nearly the same problem. 21:59:05 right 21:59:06 :P 21:59:12 with wii there's always the controller 21:59:17 they're done on the same emulator 21:59:18 making an emulator not even that useful without it 21:59:18 -!- quintopia has joined. 21:59:18 -!- quintopia has quit (Changing host). 21:59:18 -!- quintopia has joined. 21:59:29 elliott: maybe it's just that for one thing, hardware needs are advancing a lot. 21:59:29 sure, but it's bluetooth 21:59:33 interestingly, there's an accepted Wii TAS, but not an accepted GameCube TAS 21:59:38 or even a submitted one 21:59:53 it would be cheaper to buy the console in question than to upgrade your hardware enough to emulate it better 22:00:12 itidus20: Actually, Wii emulation is playable on commodity hardware ATM. 22:00:22 depends on your definition of commodity 22:00:27 No, it's true 22:00:32 the Wii is quintopia quite weak 22:00:40 ais523: yes, well, this time I'd only need graph duplication for a well-defined subset of graphs, but that's tricky enough anyway 22:00:42 The Wii is definitely easier to emulate than the PS2. 22:00:48 Probably easier than the PS1, actually. 22:00:57 the Wii is quintopia quite weak --coppro 22:01:12 Having a dozen processors to emulate in sync is pretty much asking for painful emulation. 22:01:12 elliott: you have seen through my subliminal messaging 22:01:41 atehwa: the real issue with Eodermdrome, other than implementing it, is working out which operations you can and can't do 22:01:55 Which, incidentally, is why there's still an unemulated game for the SNES. 22:02:06 gamecube emulation is more of a mess than ps1 22:02:29 atehwa: you might want to take a look at deadfish, possibly not for the language itself (;D) but for all the other langs that implement it 22:02:30 the reasons are fair enough of course 22:02:50 hardware power is always important. 22:03:05 I didn't realise that the Gamecube had a dozen CPUs that needed emulation. 22:03:31 Sgeo_: http://www.youtube.com/watch?v=0hl1Trh1aZo 22:03:35 you will find that the dolphin emulator community is a bubbling soup of incompatibility reports 22:03:45 maybe I should try it, though, because eodermdrome -> SK would be much more straightforward than eodermdrome -> BCT -> Tag system -> string rewriting -> TM -> lambda calculus 22:04:00 oerjan: ok 22:04:07 coppro, I kind of like Vale Decem less than This is Gallifrey 22:04:08 its getting better perhaps i dunno 22:04:09 The PS1 community would be, too. If it hadn't all been abandoned in unison a while back. 22:04:19 Sgeo_: ... leave 22:04:24 pikhq: what caused that? 22:04:31 ais523: No *idea*. 22:04:53 hmm, that looks almost like you're trying to hint at something, and I don't get it 22:05:11 ais523: Though I suspect it's somewhat similar to what happened to zsnes; a few developers left and nobody stepped in to replace them. 22:05:17 Leaving it all a stagnant wasteland. 22:05:31 fair enough 22:05:40 my pc is sub-commodity 22:05:53 With the only real development happening being random UI tweaks here and there. 22:05:53 -!- Sgeo__ has joined. 22:05:55 mednafen seems to be the hotspot these days 22:05:57 OH FOR FUCKING FUCK"S SAKE 22:06:51 14:52:49 Sgeo_: ... leave 22:07:02 Well, coppro seems to have control over my Internet connection now 22:07:06 ais523: what are your favourite languages / findings since 2004? BCT, eodermdrome, ///, underload already mentioned. 22:07:19 coppro: Uh, that's just a frontend for a bunch of emulators. 22:07:47 atehwa: hmm... I don't think I'll ever top Underload, and that was mostly an accident 22:08:07 pikhq: I thought it was an infrastructure? 22:08:11 :) what about others' work? 22:08:31 coppro: No, it's a bunch of emulators tied together into a single interface. 22:08:38 This is a brand new router 22:08:43 hmm 22:08:47 So I guess it's not likely the router's fault 22:09:10 Though at least they tend to use best-in-class emulators. 22:09:17 pikhq: huh; I'd heard there were multiple frontends. But then again, I know little 22:09:35 The "hotspot" for emulator development varies based on the system. 22:10:17 Some of the older ones are abandoned for having basically *finished*. 22:10:24 e.g. NES, Genesis. 22:10:31 atehwa: in case you can't tell, 99 percent of esolangs nowadays are bad brainfuck derivatives 22:10:34 or complete nonsense 22:10:46 the only weapon we have left is snarky comments on the wiki 22:10:46 Some have a single crazy bastard as the only real development. e.g. SNES. 22:10:54 atehwa: I'm trying to remind myself of what's been created recently 22:11:01 Others last had major emulator improvements a decade ago. e.g. N64, PS1. 22:11:12 it's rare that I'm impressed by an esolang 22:11:35 most are boring derivatives rather than new concepts 22:11:39 (said crazy bastard is also astoundingly good at it.) 22:13:43 atehwa: oh right, I rather liked BF Joust 22:13:57 -!- Sgeo_ has quit (Ping timeout: 255 seconds). 22:13:58 (it's not originally mine, but I ended up mostly responsible for maintaining/promoting it) 22:15:51 I have a few ideas but I need to flesh them out more and I'm a bit afraid they're boring or too similar to other things. also I'm horrible at describing things. 22:16:20 with my languages, I spend years designing them, then put a half-baked description on the wiki when people beg me for details 22:16:43 (I think Feather is the most infamous case, where it wasn't even me who created the page, and the language is nowhere near finished, and probably will never be finished because ouch, Feather) 22:20:24 well, sounds familiar 22:20:51 and already in 2000, most "new" esolangs were like, "hey guys I know how we can improve on brainfuck" 22:21:09 I still think genuinely great and innovative esolangs can be designed 22:21:21 beerfest showed how... name it: headfuck 22:21:21 but I'm having difficulty thinking of one, and there may not be another one for years 22:21:29 Feather is mythology :-P 22:21:34 heh 22:21:47 I'm glad that I admitted its existence, though 22:22:01 and in the beginning, the LORD created Feather, and saw that it was good; but could not disclose it to the mortal people, for their minds were weak and not sufficiently malleable 22:22:02 it's added a fun meme, even if it's a headscrewy one 22:22:09 Sarumpaet. The program is an unlabeled, undirected graph. The program executes by applying one rewriting rule. 22:22:15 headfuck is what you call someone while chewing on a glass beer mug intimidatingly 22:22:21 but by the way, if you guys _haven't_ checked out kayak, I find that quite a remarkable one. 22:22:29 tswett: that's a bit like Eodermdrome, isn't it? 22:22:45 atehwa: oh right, I remember that one 22:23:14 ais523: a bit, yes. 22:23:17 I liked ABCDXYZ's (and BackFlip's) investigation of the same concepts, but the execution on ABCDXYZ was really off 22:23:20 so have any esolangs ever been referenced in other media? eg. comics, animations, cinema, novels 22:23:45 I'm not aware of any examples 22:23:47 -!- CakeProphet has quit (Ping timeout: 250 seconds). 22:23:52 other than the occasional art 22:23:54 i guess that even regular langs haven't 22:24:01 I have a very unfinished esolang-based computer game somewhere 22:24:03 we also spent a lot of time designing a language for rewriting labeled undirected graphs, but nothing much came out of that (since we thought a reference implementation would be essential) 22:24:17 sheldon on big bang theory definitely would know at least 1 22:25:01 computer games have quite a few esolang references, actually; Enigma has a brainfuck-related problem; and Rubicon is based around RUBE (it's a pretty good and fun free computer game, but it no longer runs on my computer) 22:25:19 atehwa: lets not forget that sometimes the use for something only occurs decades later :D 22:25:24 I've also tried esolang-generated music, but it doesn't come out too well 22:25:45 Fugue really needs some optimisation for mass stack moves, otherwise Lost Kingdoms comes out too repetitive 22:25:56 Repelago. There's an infinite hexagonal grid, populated with polyhexes. They move around randomly, with the condition that no two polyhexes can ever become adjacent. 22:26:16 ooh, noit o' mnain worb, that's a great language 22:26:23 based on much the same principle 22:27:14 I'm still unsure of what its probabilistic computational class is like 22:27:34 it'd be nice to tweak it to make it TC (by infinitely repeating the arena to start with and possibly making semantics changes) 22:27:44 actually, you wouldn't even need to break symmetry, the randomness does that for you 22:27:47 atehwa: by the way, you should contact oklopol, he's a world-renowned esolangs professor 22:27:55 (note: claim may be about to be made reasonable by ais523) 22:28:10 elliott: meh, if you treat the claim as relative rather than absolute, it's a good one 22:28:53 NOMW is quite different, really. It has bobules, which are just monominoes. I don't really see how it's possible to compute at all, though I wouldn't be surprised. 22:29:18 you mentioned backflip, that was a nice one, which also reminds me of smatiny (which is nice even if it's a simple variation of smetana) 22:29:40 so, Repelago, ABCDXYZ. 22:29:43 smatiny is great, indeed 22:29:47 and also somewhat accidental, I think 22:29:58 tswett: you compute probabilistically 22:30:25 btw, does noit o' mnain worb have a fixed lowercase n at the start, like brainfuck? 22:30:31 IIRC it does 22:30:31 ais523: yeah, it does. 22:30:42 what about at the start of a sentence? 22:31:37 ais523: noit o'mnain worb is old enough that I know it "well" 22:31:47 ais523: how do you make something like an AND or NOT gave in NOMW? 22:31:56 atehwa: are those scare quotes or emphasis quotes 22:32:24 tswett: the idea is to do it along a similar line to electronics; concentration of bobules is the equivalent to potential, motion to current 22:32:42 the basic debate is as to whether you can make a sufficiently-high-quality transistor to do calculation 22:32:51 ais523: ah. 22:32:57 if you can make an amplifier that amplifies by a factor of more than 1, everything is fine 22:33:03 -!- MigoMipo has quit (Quit: Quit). 22:33:40 if that's possible, you do it by making a weak signal block the exits of a one-way strip, so that a stronger signal doesn't flow through it and instead comes to the output 22:33:50 once you have amplification, you can do the other logic operations based on that 22:34:01 not trivially, but I think it's doable 22:35:03 wow, our latest batch of spambots have a real headlight addiction 22:35:04 Whoa, that sounds accurate. 22:36:51 Yeah, it's like. Suppose you've got a T-shape. Inputs come in from the right and from below. There are diodes in front of the path below preventing bobules from moving upward. 22:37:57 If the bottom input is 1, then it will pass the signal. If the bottom input is 0, it will (mostly) suppress the signal. If the bottom input is Z, it will, again, pass the signal. 22:39:35 now, the issue that makes me wonder if that really works, is that you're going to need to drain bobules from the bottom, or the top input will fill the region up and then conduct 22:39:40 you need to drain fast enough to drain the top input 22:39:50 but if you do that, then maybe the bottom input won't be strong enough to actually block the diodes 22:40:33 What do you mean? Either you're draining, or you're not. If you're not draining, the signal passes. If you are, it doesn't. 22:40:50 http://esolangs.org/w/index.php?title=Talk:FALSE&curid=1448&diff=23951&oldid=21346 22:40:53 ok, _this_ is really irksome 22:41:00 fixing links is one thing, changing /spelling/? 22:41:01 tswett: well, you have a weak signal going into the below 22:41:12 which has to be drained, or the transmitter will conduct even if it isn't there 22:41:26 if you drain it too fast, it won't actually allow the right input to continue 22:41:47 * tswett nods. 22:42:26 real-life transistors don't have this issue, because they can create energy barriers, a phenomenon that doesn't exist in NOMW at all 22:42:32 So. 1 and Z both pass. 0 forces a 0. 22:43:00 ooh, ingenious; the bottom "signal" is in fact whether or not you're draining? 22:43:04 http://esolangs.org/wiki/Brainbool#Converting_Brainbool_to_Brainfuck umm, isn't this really excessive? 22:43:08 [--]+ seems an adequate logical not 22:43:15 ais523: pretty much, yes. 22:43:37 so then you've designed a field-effect rather than bipolar transistor, but that's still enough for semiconductor-completeness 22:44:09 elliott: um [--]+ isn't guaranteed to halt 22:44:37 also it always gives a 1 22:44:50 unsafePerformIO :: IO a -> a < um 22:44:52 oerjan: oh right [] is while not if :D 22:44:59 Lymee: keyword "unsafe" 22:45:08 What situations would it be used in? 22:46:10 Lymee: it's original intended use was for FFI functions, which are imported as in IO but sometimes they're real effect is pure... 22:46:18 Lymee: ones you're not qualified to encounter :D 22:46:19 *their 22:46:31 but it has been used for many more evil things 22:46:42 Obfuscation? 22:47:03 if you want to map 8-bit to 1-bit BF, just change + and - to (+)*128 and (-)*128 respectively 22:47:05 Lymee: it's used as a brittle hack for getting global variables, for example 22:47:26 (mutable variables, that is) 22:47:41 I thought it was added just because they could 22:47:44 ais523: so, I know of one potentially useful binary gate, and two potentially useful unary gates: http://pastebin.com/iXNJmkDD 22:48:25 ais523: it was part of the ffi addendum afair 22:48:45 I think the T-gate is probably the basis of any sensible NOMW program 22:48:58 together with wire connection 22:49:10 we probably also need the logic level L and H, which correspond to a weak signal 0 or 1 22:49:22 I notice that it's not apparently possible to discriminate betwen 1 and Z. 22:49:32 as in, if you wire an L to a 1, you get a 1, as the L can't sink fast enough to keep up with the 1 22:49:42 that's how you discriminate between 1 and Z 22:49:43 > fst (1,unsafePerformIO $ printStrLn "teehee") 22:49:43 Then again, you could probably do that with an interved T-gate. 22:49:44 Not in scope: `unsafePerformIO'Not in scope: `printStrLn' 22:49:49 because 1 wired to L = 1, 0 wired to L = L 22:49:51 Oh, and that, too. 22:49:51 Aww. 22:49:56 *Z wired to L = L 22:50:07 and 1 is typically quite easy to distinguish from L 22:50:14 Lymee: that would defeat half of lambdabot's approach to sandboxing :P 22:50:29 you might need to end up going fully analog at least to start with 22:50:32 also it's putStrLn 22:51:20 ais523: I dunno, let me see what can be done if you toss in the inverted T-gate. 22:51:34 !haskell import System.IO.Unsafe; main = print $ fst (1,unsafePerformIO $ putStrLn "teehee") 22:51:41 a T-gate with the diodes going the other way is clearly possible, if you change from n-type to p-type wire 22:51:41 1 22:51:56 (as in, whether you change the program from starting with empty wire to changing with full wire) 22:51:56 Lymee: as you see the unsafePerformIO is not triggered 22:51:58 Suppose you have diodes going upward instead of downward. 0 or Z as the lower input will make it simply conduct, but 1 as the lower input will saturate it with 1s. 22:52:42 tswett: not quite; if you have 1 as the lower input and 0 as the upper input, you end up with about 0.5, a state known as X in VHDL 22:52:51 (VHDL has named more or less every value for a boolean that you might think of) 22:53:03 ais523: oh, that's true. 22:53:30 Lymee: another use for unsafePerformIO is for implementing things like Debug.Trace.trace 22:53:37 Or is it... 22:54:12 Depends on how strong the upper input is, I think. 22:54:37 -!- Nisstyre has quit (*.net *.split). 22:54:37 -!- Vorpal has quit (*.net *.split). 22:54:44 !haskell import System.IO.Unsafe; main = print $ snd (1,unsafePerformIO $ putStrLn "teehee") 22:54:51 teehee 22:55:03 oh hm 22:55:08 !haskell import System.IO.Unsafe; main = print $ snd (1,unsafePerformIO $ putStr "teehee") 22:55:12 teehee() 22:55:57 If the T and RT gates act as I expect, then these are our gates: http://pastebin.com/hLsUGri6 22:57:16 AND and OR on 0 and 1 are there plain as day. NOT couldn't be too difficult... 22:59:34 -!- Vorpal has joined. 22:59:35 !haskell import Unsafe.Coerce; main = print (unsafeCoerce (99::Int) :: String) 22:59:39 ​"" 22:59:42 heh 22:59:49 I wonder how that even works 23:00:24 -!- Nisstyre has joined. 23:00:42 No, NOT is impossible using these gates. They're all increasing, given the ordering 0 < Z < 1. 23:02:51 ais523: any idea whether it's possible to make a non-increasing function? 23:03:11 I would be surprised if it were. 23:03:21 tswett: you can do minus a constant 23:03:30 ais523: that's still an increasing function. 23:03:46 by putting a drain past a narrow wire so it can only drain a fraction of the signal 23:04:02 oh, I see 23:07:22 elliott: that was weird hm 23:07:30 ? 23:07:33 oh 23:07:42 !haskell import Unsafe.Coerce; main = print (unsafeCoerce (99::Int) :: String) 23:07:47 ​"" 23:07:54 and repeatable too... 23:08:21 !haskell import Unsafe.Coerce; main = print (unsafeCoerce (99::Int) :: [Maybe Bool]) 23:08:25 ​[] 23:08:46 elliott: it seems to be interpreted as an empty list 23:08:54 I'm pretty sure that the presence of a bobule can never cause the absence of one later on. 23:09:31 elliott: maybe it has to do with the tag bits on ghc pointers 23:09:42 Well, there's a really marginal case where that sort of thing can happen, I think. 23:09:52 !haskell import Unsafe.Coerce; main = print (unsafeCoerce (99::Int) :: Maybe Bool) 23:09:57 Nothing 23:10:17 !haskell import Unsafe.Coerce; main = print (unsafeCoerce (Nothing :: Maybe Bool) :: String) 23:10:22 ​"" 23:10:43 !haskell import Unsafe.Coerce; main = print (unsafeCoerce (Nothing :: Maybe Bool) :: Int) -- >:) 23:10:48 1113251472 23:10:58 !haskell import Unsafe.Coerce; main = print (unsafeCoerce (Nothing :: Maybe Bool) :: Int) -- >:) 23:11:03 1107496592 23:11:11 elliott: not quite as repeatable :P 23:11:19 elliott: maybe it has to do with the tag bits on ghc pointers 23:11:20 oh right 23:11:23 it probably means "first constructor" 23:11:24 i.e. [] 23:11:28 and doesn't even look at the rest 23:11:30 No, that can't happen. Essentially, a bobule picks a random one of its 9 surrounding squares. If that square is impassable, nothing happens; otherwise, it swaps places with that square. 23:11:34 yeah 23:11:59 !haskell import Unsafe.Coerce; main = print (unsafeCoerce (99::Int) :: Either () Bool) 23:12:03 Left () 23:12:12 !haskell import Unsafe.Coerce; main = print (unsafeCoerce (99::Int) :: Either () Bool) 23:12:12 Ooh, but wait. Under the "bobules swap instead of colliding" model, a bobule can go through a diode in the wrong direction, by being replaced with a bobule going the other way. 23:12:16 Left () 23:12:29 !haskell import Unsafe.Coerce; main = print (unsafeCoerce (99::Int) :: Either Bool Ordering) 23:12:34 Left True 23:12:40 !haskell import Unsafe.Coerce; main = print (unsafeCoerce (99::Int) :: Either Bool Ordering) 23:12:45 Left True 23:15:15 oerjan: Ordering? :D 23:15:45 > [minBound..maxBound :: Ordering] 23:15:47 [LT,EQ,GT] 23:17:25 > zipWith compare [2, 4..20] [10..20] 23:17:26 [LT,LT,LT,LT,LT,LT,LT,LT,EQ,GT] 23:17:42 um 23:18:01 > zipWith compare [0, 2..20] [5..15] 23:18:02 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 23:18:03 [LT,LT,LT,LT,LT,EQ,GT,GT,GT,GT,GT] 23:18:43 > sortBy (const $ const GT) [1..20] 23:18:44 [20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1] 23:19:06 > sortBy (const $ const LT) [1..20] 23:19:08 [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20] 23:19:30 > sortBy (const $ const GT) "pumpkin brigade" 23:19:32 "edagirb nikpmup" 23:22:02 > sortBy (\x y -> case (ord x + ord y) `mod` 3 of 0 -> LT; 1 -> EQ; 2 -> GT) "pumpkin brigade" 23:22:03 "pmprin buikdage" 23:22:42 Hm. If you subtract instead of adding, you get a rock-paper-scissors ordering. 23:22:47 > sortBy (\x y -> case (ord x - ord y) `mod` 3 of 0 -> LT; 1 -> EQ; 2 -> GT) "pumpkin brigade" 23:22:48 "epmpgaduirikn b" 23:24:20 your case can be replaced with toEnum btw 23:25:09 Oh, true. 23:25:22 Wait, this isn't an RPS ordering. This is: 23:25:43 > sortBy (\x y -> case (ord x - ord y) `mod` 3 of 0 -> EQ; 1 -> GT; 2 -> LT) "pumpkin brigade" 23:25:44 "adkn beuiripmpg" 23:49:32 !haskell import System.IO.Unsafe; main = print $ snd (1,unsafePerformIO . sequence . replicate 3 $ putStrLn "teehee") 23:49:36 teehee 23:51:38 there's a reason i changed it to putStr :) 23:51:52 also 23:51:59 @src replicateM 23:52:00 replicateM n x = sequence (replicate n x) 2011-07-21: 00:00:02 Ooh. 00:00:09 @src replicateM_ 00:00:09 replicateM_ n x = sequence_ (replicate n x) 00:01:03 > let f m n = error $ show m ++ ' ' : show n in sortBy f [1..10] 00:01:08 mueval-core: Time limit exceeded 00:01:15 wtf 00:01:42 > let f m n = error $ show m ++ ' ' : show n in sortBy f [1..10] 00:01:45 *Exception: 1 2 00:02:02 > let f 1 2 = LT; f m n = error $ show m ++ ' ' : show n in sortBy f [1..10] 00:02:05 *Exception: 3 4 00:02:59 > let f x y | (x,y) `elem` zip [1,3] [2,4] = compare x y; f m n = error $ show m ++ ' ' : show n in sortBy f [1..10] 00:03:01 *Exception: 1 3 00:03:14 > let f x y | (x,y) `elem` zip [1,3,1] [2,4,3] = compare x y; f m n = error $ show m ++ ' ' : show n in sortBy f [1..10] 00:03:16 *Exception: 5 6 00:03:57 > let f x y | (x,y) `elem` zip [1,3,1,5] [2,4,3,6] = compare x y; f m n = error $ show m ++ ' ' : show n in sortBy f [1..10] 00:04:00 *Exception: 7 8 00:04:27 > let f x y | (x,y) `elem` zip [1,3,1,5,7,5] [2,4,3,6,8,7] = compare x y; f m n = error $ show m ++ ' ' : show n in sortBy f [1..10] 00:04:30 *Exception: 1 5 00:10:10 -!- copumpkin has joined. 00:11:14 > sortBy (\x y -> case (ord x - ord y) `mod` 3 of 0 -> EQ; 1 -> GT; 2 -> LT) "copumpkin cobrigade" 00:11:16 "adn becoucoripmpgki" 00:12:17 http://qntm.org/tetris 00:12:24 interesting there are several common substrings to without the co 00:12:28 oerjan: I see 00:12:28 copumpkin: You have 1 new message. '/msg lambdabot @messages' to read it. 00:13:39 in fact just a k and i moved 00:38:34 > error (error "yo") 00:38:36 *Exception: yo 00:41:14 Today, Anki expects me to recall 51 Finnish words and learn an additional 20. 00:41:17 I am screwed. :P 00:41:31 > error $! error "yo" 00:41:32 *Exception: yo 00:41:58 oops 00:42:14 > error undefined 00:42:16 *Exception: *Exception: Prelude.undefined 00:42:21 that's a good one 00:42:33 tama mika on? se on bussi 00:42:43 i wonder why error (error "yo") doesn't give two... 00:43:02 > error $ ' ':error "yo" 00:43:03 *Exception: *Exception: yo 00:43:11 thats my finnish vocab. i believe it means "what is that? that is bus" 00:43:22 > error $ error "yo" 00:43:23 *Exception: *Exception: yo 00:43:24 > fix (error .) "yo" 00:43:25 or something similar 00:43:26 "*Exception: *Exception: *Exception: *Exception: *Exception: *Exception: *E... 00:43:27 wat 00:43:46 > error (error "yo") 00:43:47 *Exception: yo 00:43:56 clearly this is something subtle... 00:44:08 @src ($) 00:44:08 f $ x = f x 00:44:17 > error (error (error "yo")) 00:44:19 *Exception: yo 00:44:45 > error $ error $ error $ "yo" 00:44:46 *Exception: *Exception: *Exception: yo 00:44:52 if there were a rewriting rule, i'd expect it to trigger with $ as well 00:45:25 -!- copumpkin has quit (Ping timeout: 252 seconds). 00:45:49 -!- copumpkin has joined. 00:46:14 copumpkin: shachaf: do any of you have any idea why this differs? 00:46:20 ? 00:46:23 I just got disconnected 00:46:42 oerjan: That's kind of weird. 00:46:47 copumpkin: lambdabot gives different printout for error (error "yo") and error $ error "yo" 00:46:47 > error (error "yo") 00:46:48 *Exception: yo 00:46:53 > error $ error "yo" 00:46:54 *Exception: *Exception: yo 00:47:03 yeah, someone brought that up a while ago 00:47:05 > error (error (error "yo")) 00:47:05 *Exception: yo 00:47:05 > error $ error $ error $ "yo" 00:47:05 *Exception: *Exception: *Exception: yo 00:47:10 Isn't ($) lazy? 00:47:16 > error `id` error "foo" 00:47:16 I can't remember why it is, but I think there was discussion about it on haskell-cafe 00:47:17 *Exception: *Exception: foo 00:47:21 it's some sort of bug somewhere 00:47:38 > id error (error "foo") 00:47:39 *Exception: *Exception: foo 00:47:44 elliott: they _should_ be identical. i'd be extremely surprised it f $ x isn't rewritten to be identical to f x inside ghc 00:47:46 > error (error "foo") 00:47:47 *Exception: foo 00:48:02 > (let x = error in x) (error "foo") 00:48:03 *Exception: foo 00:48:13 > (let x = error in x `seq` x) (error "foo") 00:48:14 *Exception: foo 00:48:19 > (let x = error in id x) (error "foo") 00:48:20 *Exception: *Exception: foo 00:48:26 Exciting. 00:51:00 found it: http://www.haskell.org/pipermail/haskell-cafe/2011-February/088905.html 00:54:56 So GHC knows that error is strict, but not that id error is? 00:55:00 Makes sense, I guess. 00:55:22 "But in version (B), 00:55:22 the demand analyzer only knows that ($) is strict in its first 00:55:23 argument -- it's not strict in its second." 00:55:30 > id error (error "foo") 00:55:31 *Exception: *Exception: foo 00:55:33 > error (error "foo") 00:55:34 *Exception: foo 00:56:13 "If ($) were getting inlined, the code would look the same coming into 00:56:14 demand analysis in both cases, so you wouldn't see a difference. So 00:56:14 I'm guessing you're compiling with -O0. 00:56:14 " 00:58:01 -funroll-loops 00:59:17 -funroll-all-loops 00:59:33 -funroll-in-the-hay 01:10:57 soittaa 01:41:39 -!- FireFly has quit (Quit: swatted to death). 01:45:12 -!- tswett has quit (Ping timeout: 246 seconds). 01:46:22 -!- tswett has joined. 01:47:46 `addquote I'm having nostalgia for when we could see the glass from the floor 01:47:47 520) I'm having nostalgia for when we could see the glass from the floor 01:48:52 is there context 01:59:27 -!- cheater__ has joined. 02:02:52 -!- cheater_ has quit (Ping timeout: 240 seconds). 02:04:52 monqy: minecraft 02:04:56 also technically a jok 02:04:57 e 02:40:57 " thats my finnish vocab. i believe it means "what is that? that is bus" <<< i would translate it as "ths wht is? it is a bus." 02:41:10 close enough :> 02:41:32 certainly 02:41:43 wahahaha 02:42:26 certainly understandable 02:42:48 yeah.. somehow that phrase stuck 02:43:13 a similar sentence that means something would be "mik tm on? se on bussi" 02:43:36 ah.. i wouldn't know how to create such a character 02:43:40 what is this? it is a bus. 02:45:02 so im studying some haskell .. very beginner stuff 02:45:10 i don't know how not to know how to make such a character, so i certainly have some sympathy 02:45:39 erm 02:45:54 oh haskell 02:46:04 not finnish 02:46:05 ... 02:46:09 i have just learned fst (1,'a') and snd ("abc",2) 02:46:14 i was about to ask why the fuck everyone's learning it 02:46:20 but okay haskell 02:46:22 then i'll just ask 02:46:27 why the fuck is everyone learning it? 02:46:45 the reasons should be obvious 02:46:53 oklopol: on beesti languagi 02:47:10 xD 02:47:47 my friend who i left behind in an old chatroom would be very happy to hear i know any haskell words 02:48:01 "besti" is occasionally used i think 02:48:31 i think that the toughest part to learn is pronunciation 02:48:40 > fst . fst . fst . fst $ (((("fst!",1),2),3),4) 02:48:42 "fst!" 02:48:53 whoa.. slow down 02:48:56 >.< 02:49:01 * oerjan cackles evilly 02:49:23 itidus20: how deep expressions have you learned to evaluate so far? 02:49:39 i'm sorry, obscure haskell demonstrations are obligatory on this channel 02:49:56 (not that that was particularly obscure for haskell) 02:49:56 that 4 was roughly my limit i think 02:49:58 an exercize was: Exercise 3.2 Use a combination of fst and snd to extract the character out of the tuple 02:49:59 ((1,a),"foo"). -- which i did 02:50:17 lol.. rocket science 02:50:19 snd . fst 02:50:28 oh.. the thing is the book doesn't have the dot 02:50:38 hmm this brings back grave memories 02:50:38 i have a hunch he may not have learned . and $ yet :P 02:51:00 itidus20: that's fine you can use parentheses instead 02:51:09 well anyway biggest penis = snd (fst penis) 02:51:16 the k and r book wasn't referencing certain characetrs when someone tried to show me 02:51:30 so that is a deep concern 02:51:43 ^s/referencing/showing 02:51:47 ah. 02:51:59 gulp 02:52:21 but is probably safe 02:52:25 itidus20: well haskell mostly uses just plain ascii, although there is a flag for using unicode for some stuff if you want things to look more like typeset math 02:52:53 uh.. im gonna assume the book simply didn't introduce the . yet 02:52:59 itidus20: almost certainly 02:53:07 however.. yeah that reminds me that my k and r book.. had missing chars 02:53:23 or maybe they just used \circ instead 02:53:32 > fst (fst (fst (fst (((("fst!",1),2),3),4)))) 02:53:33 "fst!" 02:53:41 better? :) 02:55:35 wurk -> 02:55:36 i see 02:56:55 > snd(snd (1,(2,3))) 02:56:56 itidus20: if f and g are functions, (g . f) is a new function that first applies f, and then applies g to the result. main use of this of course being obfuscation. 02:56:56 3 02:57:14 * oerjan swats oklopol -----### 02:57:20 oklo: im not listening.. :P im not taking the combinatrics approach 02:57:36 i 02:57:36 err 02:57:55 i mean i will if it ever gets there but yeah 02:58:04 you don't get that definition? 02:58:15 oklopol: you don't get that he might not get it? 02:58:25 oerjan: you don't get that i don't get that he might not get it? 02:58:31 wait 02:58:33 you totally got that. 02:58:37 yes i do. 02:58:38 i have no math background.. i encountered a curious ebook though which seems to be good at people like me 02:59:09 but worse than no math background my brain is wired in a strange way 02:59:16 itidus20: is it that Learn You a Haskell book? it's frequently recommended although i learned haskell before that... 02:59:42 Yet Another Haskell Tutorial by some guy Hal Daume 02:59:46 ah. 03:00:09 that's a bit older i think. 03:00:18 I don't think very well. But I do think. 03:00:48 :D 03:00:53 okay i really have to 03:01:32 > prtStrLn "bye" 03:01:33 Not in scope: `prtStrLn' 03:01:39 ok sweet 03:01:58 :-s 03:02:00 itidus20: lambdabot only does expression printing, not output functions 03:02:06 cool 03:02:10 you might try EgoBot instead 03:02:17 !haskell putStrLn "bye" 03:02:19 bye 03:02:38 on the other hand, lambdabot has many more functions imported by default 03:02:40 so i got hugs 03:03:05 itidus20: these days the recommendation is the haskell platform 03:03:23 hugs is sadly completely unmaintained now 03:03:46 although i used it for a long time 03:03:57 if i get anywheer i will keep it in mind 03:04:30 oh.. unrelated.. i have a curious function i would like to define 03:04:46 someone was explaining the game of pennymatching to me yesterday 03:04:53 Using Hugs these days is a bit like using GCC 1 for your C development. 03:05:37 itidus20: oh also when you asked the thing about characters i checked your client version and you seem to be on windows. so (1) there's a character map which you can use to get strange characters (2) if you use hugs you probably want to use winhugs 03:06:44 i have winhugs yeah. haskell book is ok. but once upon a time the k&r book had some troubles leaving out certain chars. ill have to check up one day if it has them 03:07:18 so about pennymatching.. one curious thing is that the rules are identical for each player 03:07:44 so they don't have to be defined for each player, only for a generic player. 03:08:16 (im weird) 03:08:26 sounds like nim-type games 03:08:38 oh.. pennymatching is very very simple. 03:09:07 2 players choose a binary digit (such as heads or tails) in private and then compare. 03:09:27 if they are the same then player 1 wins. if they differ then player 2 wins 03:09:41 someone described it to me yesterday 03:09:51 heh ok that's probabilistic so not really nim-like 03:10:31 looks like a simple mixed strategy game 03:11:16 so, as i started to overanalyze it, i realized that of the four outcomes: 00,01,10,11 that theres no other possible win condition except "one of the players wins by getting 00 or 11" 03:11:43 er what 03:11:56 i though you said player to wins on 01 and 10 03:11:59 *two 03:12:03 well each player supplies a binary digit to the game 03:12:33 and.. of the 2 players.. one of them wins on 00/11 and one of them wins on 01/10 03:12:56 the rule about which player wins on which is arbitrary 03:13:10 itidus20: oh also when you asked the thing about characters i checked your client version and you seem to be on windows. so (1) there's a character map which you can use to get strange characters (2) if you use hugs you probably want to use winhugs 03:13:15 what characters are strange for haskell? 03:13:21 none 03:13:24 as far as i know 03:13:27 i was asking oerjan :P 03:13:33 oh haha ok 03:13:44 elliott: well he was pointing out he couldn't make finnish ä, i think 03:13:56 cut and pastes: 03:14:00 hehe 03:16:41 so when i started to analyze this pennymatching what i found is that in order to have a fair game, whatever player 1 does, player 2 must have a 50% chance of winning 03:17:19 i don't know how to formalize the idea exactly.. but it's fascinating since the idea of fairness is recursive between the 2 players 03:18:30 option A = 50% chance. option B = 50% chance. 03:19:17 i should try drawing it for myself in paint 03:22:47 -!- azaq23 has quit (Ping timeout: 250 seconds). 03:22:56 -!- azaq23 has joined. 03:23:14 itidus20: i think it depends on your definition of fair. you might also make it >= 50% i think 03:23:33 uh like.. if you go heads, you have 50% chance of winning because they also have 50% chance of winning *pulls out hair* 03:23:34 hm wait 03:23:52 hehe 03:24:10 there may not be any way in this game of making it > 50% for any option 03:24:18 its simple enough 03:24:48 > 50 for heads: always win (for fairness: for tails: always lose) 03:24:49 Not in scope: `for'Not in scope: `heads'Not in scope: `always'Not in scope:... 03:24:56 i mean, it wouldn't necessarily by unfair if A had a choice that guaranteed that A loses 03:24:56 a vanilla coinflip 03:24:59 if you say that a player wins on 10/11 and the other player wins on 01/00 03:25:15 oerjan: true.. not if they didn't know the rule 03:25:25 but there wouldn't then be enough options with just heads and tails to make it fair the other way around 03:25:43 i think 03:25:57 but it could work if there were more than two options 03:26:01 i worded it in a very obfuscated way 03:26:26 but what fascinated me most of all is the recursive way of defining a 50% chance of winning between the 2 players 03:27:12 i lack the math skill to see sense in it 03:27:24 its surely something trivial 03:29:44 blah. 03:30:41 itidus20: you probably are calculating what's called a nash equilibrium. see http://en.wikipedia.org/wiki/Strategy_(game_theory)#Mixed_strategy it even has a link to Penny Matching 03:30:54 thanks 03:32:35 -!- BeholdMyGlory has quit (Remote host closed the connection). 03:56:52 -!- copumpkin has changed nick to contrapumpkin. 04:02:33 -!- contrapumpkin has changed nick to yoda. 04:02:46 -!- yoda has changed nick to coyoda. 04:03:00 yoda, opposite category is in, hm? 04:04:58 -!- coyoda has changed nick to YodaLemma. 04:07:17 -!- canaima17242 has joined. 04:07:56 holaa 04:08:33 -!- canaima17242 has quit (Quit: Leaving.). 04:09:14 -!- YodaLemma has changed nick to copumpkin. 04:56:46 -!- Sgeo__ has changed nick to Sgeo|DiesAtBadTi. 05:20:39 -!- zzo38 has joined. 05:23:50 zzo38: hmm, is the Unispace specification stable? 05:25:13 i feel it is still vague about multiple labels and INTERCAL operators 05:25:36 lifthrasiir: Some people (including you) can change it if you want to. Including to make it less vague, or discussion those things on the Talk page, or add other Unicode space characters, etc 05:26:43 okay, but as always i wanted to implement it in esotope and the stability of the language is paramount ;) 05:27:39 i appreciate the choice made by Migomipo who separated Migol 09 and 11, for example 05:31:04 It isn't completely stable yet, it is just some ideas I wrote. Feel free to update whatever is unclear or incomplete on that wiki article for Unispace. 05:41:56 Holy crap. There is a lake of sulfuric acid. 05:42:39 A naturally occuring lake of *sulfuric acid*. 05:43:00 ah yeah 05:43:06 thats not that difficult 05:43:35 Still. Fuck. 05:43:43 happens around volcanos especially 05:43:53 ever watched dantes peak? 05:44:17 No. 05:44:26 But, yeah, it makes sense how it can occur. 05:44:53 Volcanic gas very high in sulfur bubbling into a lake — bam, sulfuric acid lake. 05:45:22 which specific one are you talking about? 05:45:41 Ijen. 05:45:45 pH of 0.5. 05:48:13 ew mining sulfur by hand 05:48:27 nobody needs that job 05:48:51 And even less so sans gas mask. 05:50:13 under no conditions 05:52:56 There's different levels of "fuck no", though. 05:53:32 sure 05:53:35 fine 05:53:57 but all of them are above a threshold of taking action 05:54:47 Of course, there's *much* better ways of getting sulfur, making the whole proposition sickening and pointless. 05:55:44 Though, TBH, most of those really hazardous things that people in undeveloped nations end up doing are either pointless or much better done via machines. 05:56:08 what are we waiting for? 05:56:23 lets go put that sugar refinery out of business! 05:56:38 Well, there's this nasty problem with economic inequities... 05:56:43 those poor guys need to be unemployed 05:57:36 And it's very, very nontrivial to bootstrap an economy. 05:59:06 who needs to bootstrap an economy? we just bring in our own people and equipment, pay fair tax on export and use of the land... 05:59:32 eventually theyll take over the operation themselves cuz thats just how things go 05:59:44 but for now, it cant hurt them really 06:01:27 Or, knowing humanity's propensity for dickishness, we'll just settle in and create an oppressed underclass that eventually rises up and then has no idea how to run shit, causing things to go to shit. 06:03:17 wtf? create? theres already one! otherwise there wouldnt be people carrying sulfur out of a volcano for $13/day 06:04:06 That's not the *underclass* in that society. 06:04:13 You may now be frightened. 06:05:19 so you agree we wouldnt really be hurting them to build some infrastructure there? 06:05:43 Well. No. My only issue is that there's a decent chance the people involved in doing so will be royal dicks. 06:06:39 i was saying we should be those people 06:06:46 pretty sure i'm not a dick :) 06:06:53 Oh, we personally? No argument. :P 06:07:17 Though I'm afraid that at the moment, they're paid higher wages than I. 06:07:23 haha 06:07:41 (fuck you, Bush.) 06:08:51 not long ago i heard a few fuck reagans 06:09:01 Why did you get dead yesterday? 06:09:01 Also fuck Reagan. 06:09:03 He started it. 06:09:08 so it seems we shall have a good oldfashioned consie president orgy soon 06:09:45 And why didn't you write that book tomorrow? 06:11:08 who are you talking to zzo38? 06:12:07 You, in case you are on this channel. 06:13:06 -!- oerjan has quit (Quit: Good night). 06:13:07 oh 06:13:59 well ask again last week and maybe I'll havd an answer for you by the day i am laid to rest 06:14:42 OK, I will try. But maybe I can't. 06:15:15 -!- copumpkin has quit (Read error: Operation timed out). 06:15:49 well, if i never try to find out how your attempt went, then you can both succeed and fail 06:17:06 -!- copumpkin has joined. 06:24:06 I read book once, it says Jesus is laughing and none of the things they described in the Bible actually existed, they are mythology meant to make up ideas and philosophy and parables and those things, and it makes Gnostic Christianity still valid. 06:25:57 (In the past, it was, and still is in the present, my opinion, that the proper meaning of religion, it doesn't matter whether or not the events described in the Bible actually happened or not.) 06:28:29 Do they exist any of the mana symbols and other symbols for Magic: the Gathering, and energy card symbols for Pokemon card, and Fanucci suit symbols, and so on, in METAFONT? 06:28:57 RE: MTG symbols. No, but there should be. 06:30:10 Yes I think it would be good idea. Would you know who knows how to do it with a good job? 06:37:41 There is at least one (probably several) TTF of (some) MTG symbols, it might be possible to do some manual convertatation, or at least use it as a starting point. (Though I have no clue how good it is; I just saw one somewhere.) 06:39:10 Don't know about how one would do those multicolored hybrid symbols in METAFONT; isn't it quite strictly monochromatic? 06:40:38 Yes it is monochromatic (although you can use specials if needed). It doesn't need colored; you can do it in monochrome so that it works on monochrome printers. The background circle is the colored part and it would be a separate circle symbol, inserted whenever needed for color symbols on color printers. 06:41:44 But there are those two-color ones, like http://wiki.mtgsalvation.com/images/4/4b/Manaur.gif -- though I guess you could have the two halves as separate symbols. 06:42:28 Yes you can have the two halves as separate symbols. 06:42:52 -!- CakeProphet has joined. 06:42:53 -!- CakeProphet has quit (Changing host). 06:42:53 -!- CakeProphet has joined. 06:43:04 (You could use ImageMagick colors, PostScript colors, PDF colors, or what I prefer is CMYKX color specials (where X is like K but used for monochrome printers, while CMYK is for color printers)) 06:44:30 I think separate symbols would work. Each half of circle is one symbol which is colored when printing. And the mana symbols can just be the smaller ones than normal and then put in place. 06:47:52 -!- Taneb has joined. 06:48:05 http://www.mezzacotta.net/garfield/?comic=141 I do believe that the text beneath is the best bit about this one. 06:48:24 * pikhq is a-archive-binging sqrt(-$garfield) 06:48:56 Morning! 06:49:26 The other way is to convert the images used in MSE directly to GF format for the specified resolutions. 06:49:39 > sqrt 3.14159 06:49:41 1.7724531023414978 06:50:59 > sqrt -3.14159 06:51:01 Overlapping instances for GHC.Show.Show (a -> a) 06:51:01 arising from a use of `... 06:52:01 orosu 06:52:14 > sqrt (-pi) 06:52:15 NaN 06:52:19 woot 06:52:23 There you have the floating-point version. 06:52:28 thanks 06:52:49 > sqrt -3.14159 06:52:50 need parens 06:52:53 around the negative number 06:52:59 nods 06:53:20 Otherwise it's (-) sqrt 3.14159, which is of course a type error. 06:53:37 ahh 06:53:45 hmm 06:53:51 so you can't have a negative function 06:54:10 Unary minus is a bit of a hack in Haskell. 06:54:32 (TBH, it's a bit of a hack in pretty much every language with both it and binary minus, but that's beside the point) 06:54:35 well.. mathematical theory probably hasn't explored the implication of a negative function 06:55:05 but since a function isn't really a number im just being dumb 06:55:16 Well, I suppose you could do a variant of Church numerals, thereby getting you functions as numbers. 06:55:18 :) 06:55:28 Actually, without "variant of". 06:55:46 You only need to do extra legwork if you want it to do negatives or something. 06:56:32 hummm 06:56:37 don't mind me 06:57:56 > sqrt $ (-pi) :+ 0 06:57:57 0.0 :+ 1.7724538509055159 06:58:02 sometimes i find my own words to be a thicket, because i have seen how calculated peoples words can be after they start reading about manipulative psychology 06:58:27 How was it with lambdabot, how does it have all the modules (all of them) available by default? 06:58:29 almost every sentence can be evil if the intent behind it is evil 06:58:46 What does :+ do? Is it for specifying complex numbers? 06:58:55 It's the complex number constructor, yes. 06:59:11 itidus20: That is difficult to know if it is correct or whatever it is 06:59:46 you mean sqrt (-pi) ? 07:00:01 Does the intent behind a sentence make it evil? I don't know. 07:00:12 or do you mean followers of general semantics 07:00:24 and all such nonsense 07:00:52 -!- CakeProphet has quit (Ping timeout: 255 seconds). 07:00:53 That is the philosophical ideas of evil and such. 07:01:43 it has come to my attention that rather than using words to express feelings, people these days are interested in using communication as a weapon 07:02:21 being entirely two faced thinking noone knows what they are doing 07:02:42 Floating-point vs math™: floating-point wins again: 07:02:43 > (-pi) :+ 0 == mkPolar pi pi 07:02:44 False 07:02:45 i don't mean here i just mean in general 07:02:47 > magnitude $ ((-pi) :+ 0) - (mkPolar pi pi) 07:02:48 Ambiguous occurrence `magnitude' 07:02:49 It could refer to either `Data.Complex.ma... 07:03:21 Hrm, do I need to full-qualify that? 07:03:25 > Data.Complex.magnitude $ ((-pi) :+ 0) - (mkPolar pi pi) 07:03:26 3.8473413874435795e-16 07:04:32 (Wonder what the other sort of magnitude is.) 07:04:59 > mkPolar pi pi 07:05:00 (-3.141592653589793) :+ 3.8473413874435795e-16 07:05:08 Almost, but not quite. 07:05:22 Effing floating point. 07:05:24 marketing, salespeople, advertising, pickup artists, brainwashing, cults, suggestion, covert hypnosis, n.l.p., body language, double-entendres, general semantics, operant conditioning.. all this crap and whatever else comes from it 07:05:47 Yes it is possible not everyone knows exactly what they are thinking, because even your thoughts are all hallucination, too. You can say things for many purposes. One reason, is to ask question, answers, tell something, notify something, etc. 07:05:48 And *now* I realise what "mkPolar" is doing. 07:06:12 Seems so obvious. 07:06:35 Just constructing a complex number from a polar coordinate pair. 07:06:37 Or for word games. 07:06:49 (sorry, just first time I'd seen that function) 07:06:56 > pi * (cis pi) 07:06:57 (-3.141592653589793) :+ 3.8473413874435795e-16 07:07:15 Yeah, that would be the obvious implementation. 07:07:37 zzo: well anyway, the people involved sell themselves out 07:07:40 Effing floating point. :P 07:08:31 But yes it is true, they say things for lying and marketing and so on, too. 07:08:48 Interestingly, 'cis' and 'mkPolar' seem to be independently implemented: "mkPolar r theta = r * cos theta :+ r * sin theta" and "cis theta = cos theta :+ sin theta", from the sources. 07:09:20 How strange. I wonder what difference exists. 07:09:56 Hmm. Actually, might be laziness. 07:10:27 Don't think that'd be *notable*, though. 07:11:26 Might be laziness. On an "intermediate results in higher precision" machine and an old-fashioned language, you might also get better results from doing "r * cos theta" and "r * sin theta" separately, before stuffing them into a "struct complex" or whatnot which would potentially involve truncamation. 07:11:50 Like the good old x87's 80-bit floats, a regular source of surprising inequalities. 07:12:14 Floats already produce some surprising inequalities, though. 07:12:49 I think for measuring angles in a computer, neither radians nor degrees is best. Instead maybe you can have something such as 0xC000 for one full turn (using unsigned 16-bit numbers). 07:13:19 -!- monqy has quit (Quit: hello). 07:13:51 zzo38: It really depends on why you're measuring angles. 07:15:18 "Degrees" where 256 == full turn are quite often used too, since when you put those into a byte-sized variable, the wrap-around is in many cases quite "natural", plus 256 elements is still borderline reasonable for a trig table. 07:15:40 -!- zzo38 has quit (Remote host closed the connection). 07:15:41 -!- azaq23 has quit (Quit: Leaving.). 07:16:41 -!- Scientits has joined. 07:18:40 And the grads (gradians) which have the value of 400 as 2*pi (sorry, tau). I think I had a calculator which could be set to grads, for some inexplicable reason. 07:20:04 -!- ais523 has quit (Remote host closed the connection). 07:20:12 *Aaah*, calculators. 07:20:24 Is there any good reason for them? 07:20:48 You can play (multiplayer, with the link cable) Tetris with them in class? 07:20:57 You can do that with a Gameboy. 07:21:03 Your point? 07:21:06 Yes, but that might be more conspicuous. 07:21:53 Also there's a demo called Anal Party IV for the TI-86, which does sound (well... some) by twiddling the link port registers. 07:22:10 is there any field where humans still actually calculate immediate expressions by hand? 07:22:28 itidus20: Education. 07:22:38 what are immediate expressions? 07:22:39 (It's not an especially impressive demo; the graphics hardware in TI-86 only has a simple bitmapped screen, so you can't do anything really clever with it.) 07:22:40 uh.. by immediate expressions i mean.. as in .. resolving an equation to a value 07:22:56 scientits: im a newbie, a duimbass and i don't know math. forgive my use of these words 07:23:03 heheh 07:23:12 is my name that intimidating? I don't know much maths 07:23:32 I was going to say shopping, in response to your question 07:23:36 oh you call it maths.. you must not be from the us 07:23:41 because that's apparently what we're best at as a society 07:23:48 I am from the internets 07:23:53 sory 07:23:58 Scientits: btw this channel is about programming 07:24:15 i dun really wanan know 07:25:25 where i live its also called maths though 07:29:14 -!- Scientits has left ("Leaving"). 07:30:04 eek what did i do 07:31:47 so what i meant was.. inserting numbers into equations and working out the answers without the aid of a calculator 07:32:00 or..even.. doing it with a calculator 07:32:58 Yes, that's only done in education. 07:33:09 Which *suggests* that it does not belong there. 07:34:07 it's bizzare 07:35:38 itidus20: it was me 07:35:46 everyone thinks this is an esoterica channel. 07:36:40 is it? 07:43:44 no 07:45:21 @die 1d6 07:45:22 1d6 => 3 07:53:08 a certain tradeoff is occuring to me. in general normal people are not entertained by their own work. 07:53:54 for example, a poet probably doesn't contemplate on their own poems. a writer on their own novels, a director on their own films, a musician on their own music, etc 07:54:05 nahhhh 07:54:08 that's just false humbleness 07:54:42 I mean sure there may be some people who don't think their work sucks but has absolutely no interest in it 07:54:47 but I very much doubt they're in the majority 07:55:03 humm 07:55:29 well, in general it is easier to be entertained I think by something someone else made 07:55:33 Also, most programmers hate everyone *elses* code, and only likes their own. 07:55:49 well programming is something difficult to place in this sense 07:55:51 pikhq: [asterisk]like 07:56:04 itidus20: that's certainly true 07:56:20 but that may be just because the act of creating a work involves so much attention to it that it's like playing a song nine hundred times 07:57:05 This always brings to mind field of dreams for me 07:57:23 about building something for someone else 07:58:33 i want to be my own audience because i can tailor something to my exact needs and i can give myself the most direct feedback 07:58:41 but however... perhaps it is like incest 07:58:48 and.. just wrong 08:18:27 theres this feeling i get when looking at code of a kind of boredom or ennui knowing it isn't going to do anything exciting, or knowing it doesn't mean anything 08:19:00 im not sure if its the "you should turn on your intellect now" feeling 08:19:19 maybe i am just too inexperienced to "get it" 08:19:50 it was quite late in life afterall that I started to give a damn about politics or legal or economic matters in newspapers 08:19:53 -!- Taneb has quit (Read error: Connection reset by peer). 08:20:14 maybe i just need to let it come 08:23:09 -!- Sgeo|DiesAtBadTi has changed nick to Sgeo. 08:48:26 http://wellnowwhat.net/transfers/testWaveform.wav 08:49:04 sounds waveformy 08:49:30 it does 08:50:04 we're working on making it better tho 08:50:21 i think part of the problem is the time resolution, giving it a sort of modem-y sound 08:50:49 -!- Taneb has joined. 08:50:59 what is it meant to be 08:51:01 a e i o u? 08:51:22 "a i o" 08:51:35 "a e i o u" isnt a bad guess 08:51:53 given the phonetics of "e" 08:52:13 and the apparent strength of the final [u] in the "o" 09:04:49 -!- ineiros has quit (Read error: Operation timed out). 09:05:08 -!- ineiros has joined. 09:36:12 -!- Zwaarddijk has quit (Ping timeout: 258 seconds). 09:36:15 -!- Zwaarddijk has joined. 10:03:32 -!- copumpkin has quit (Ping timeout: 240 seconds). 10:03:56 -!- copumpkin has joined. 10:31:24 -!- Ycros has left. 10:41:57 -!- Taneb has quit (Ping timeout: 252 seconds). 10:48:38 " a certain tradeoff is occuring to me. in general normal people are not entertained by their own work." <<< i love pretty much all of my own work 10:49:00 i also think all of it sucks ass 10:51:38 " but that may be just because the act of creating a work involves so much attention to it that it's like playing a song nine hundred times" <<< i think the majority of people enjoy hearing the same thing over and over (although with other stuff in between repetitions) 10:54:20 -!- FireFly has joined. 10:59:03 well, at least if that thing is pure greatness 11:02:03 -!- Taneb has joined. 11:12:23 Well, my BF Joust evolutiony thing is approaching being ran 11:16:04 I predict it will enslave humanity in approximately 7 hours. 11:16:07 That's what always happens. 11:16:56 I've taken precautions 11:17:02 It's written in Python 11:17:04 That's also what they always say. 11:17:26 Mine was written in Perl, and it still enslaved a couple of humanities. 11:23:18 Also, the evolution process is controlled by me 11:26:25 Ychat just announces the now.. but 11:26:39 i was going somewhere with it 11:27:21 i feel there is a disconnect with programming languages and the desired result 11:27:42 (yeah its called the art of programming dumbass) 11:30:23 but uh.. I suspect that things can be better 11:32:40 ]]]]]]]]]]]]]]]]]]]]] 11:32:45 oops 11:34:46 -!- sebbu has quit (Ping timeout: 260 seconds). 11:36:02 -!- sebbu has joined. 11:36:28 `addquote The Russian's emblem was the hammer and sickle, not the fist and other fist 11:36:32 521) The Russian's emblem was the hammer and sickle, not the fist and other fist 11:36:40 YES 11:47:16 -!- boily has joined. 11:50:11 Well, now my BF Joust interpreter might be working 12:00:39 Well, I'm running it 256 times 12:00:53 And it had an error 12:01:18 This'd be much easier if Python had until loops 12:01:34 Taneb: Have you tried "while not"... 12:04:12 `addquote Deewiant: So you... reverse the byte order manually, but then call ntohl too? fizzie: The host might be big-endian! 12:04:13 522) Deewiant: So you... reverse the byte order manually, but then call ntohl too? fizzie: The host might be big-endian! 12:04:31 fizzie: Technically that quote is missing a space, since you apparently still put spaces after line-terminating question marks. 12:10:07 Yes, I can't seem to shake that hobbit. 12:18:58 -!- CakeProphet has joined. 12:19:15 I just had to explain to my parents in an argument that you don't actually feel anything with your heart. 12:19:19 they disagreed. 12:20:07 `addquote God, I sure do hate Apple and their header files that only include the functions they're specified to. 12:20:09 523) God, I sure do hate Apple and their header files that only include the functions they're specified to. 12:22:44 It's like they don't _want_ to be at fault here! 12:24:29 CakeProphet: then they're idiots 12:24:59 I feel with my left foot, personally 12:25:00 ...Python just crashed 12:25:45 well there are nerves in the heart right? 12:25:50 as in, not an exception? it segfaulted? 12:26:02 oklopol: yes, but that's not what they feel /with/ 12:26:03 It just dissappeared 12:26:11 I'm on Windows temporarily 12:26:19 ...well, it is sort of, but... fuck, you know what I mean. 12:26:24 well i can feel something with my hand 12:26:29 i'm sure this is all your parents meant 12:26:42 that you can also touch stuff with your heart and feel it 12:26:44 no I think you give them too much credit. 12:27:19 Have a friend who was absolutely certain that the capital of the US is in British Columbia 12:27:20 I started to explain that you feel emotions in your brain, and they said if they felt things with their head then they could turn them off. 12:27:38 so obviously they're just completely ignorant of everything. 12:27:49 maybe they were just fucking with you 12:28:32 then this is quite a prank they're pulling. It's a joke they've been pulling my entire life. 12:28:50 being that dumb, that is. 12:29:31 I can't be outdone by idiots like your parents! 12:29:59 I'm going to have children, then pretend to be an idiot until they are 21! 12:30:34 i'm going to make my children think i'm dead, and show up as a ghost every now and then 12:30:44 "if they felt things with their head then they could turn them off" -- what? 12:30:55 give them like a bit of lsd so they don't know if it was real or not 12:31:06 I often turn things off with my head 12:31:13 For example, light switchs 12:31:15 yeah it's called telekinesis 12:31:18 and it's perfectly normal 12:31:29 fizzie: I kid you not. 12:31:37 Telekinesis? I just call it hitting my head off things 12:31:47 apparently everything in your head is under conscious control. 12:32:16 cake: which includes so called unconcious concious? 12:32:50 that you can also touch stuff with your heart and feel it 12:32:54 i don't think your heart has nerves 12:33:05 I can't be outdone by idiots like your parents! 12:33:05 I'm going to have children, then pretend to be an idiot until they are 21! 12:33:10 Do one better! Pretend to be an idiot until YOU DIE. 12:33:12 this is where it became intolerable. "feeling with your heart" was kind of reasonable, because emotions are experience as bodily sensations to an extent, but.. they didn't think that emotions were a result of their "head" 12:33:15 And leave NO TRACE of you ever not being an idiot. 12:33:18 It will be the ULTIMATE prank. 12:33:21 well prolly not enough that you could actually feel stuff touching it, but i mean if you say bang it with a hammer 12:33:39 it definitely has nerves 12:33:50 " Do one better! Pretend to be an idiot until YOU DIE." <<< nah just wait until your kids die 12:33:58 Does it have touch receptors? 12:34:24 my heart feels meaty. 12:34:29 well why would it 12:34:48 I dunno, the liver has light receptors 12:35:13 haven't heard that one, why the fuck? 12:35:15 to recognize when you've been disemboweled in the daytime? I could see that as being useful information. 12:35:21 Taneb: that's because... ummm... err.... 12:35:25 `addquote Do one better! Pretend to be an idiot until YOU DIE. 12:35:27 524) Do one better! Pretend to be an idiot until YOU DIE. 12:35:27 err.............. 12:35:36 NihilistDandy: My, aren't I quotable today. 12:35:46 Indeed 12:35:51 The liver light receptors were a co-incedence that slowly led to the developement of eyes 12:36:50 god was like lol evolution ur being so dum 12:38:19 unintelligent design. 12:39:01 i think with my liver 12:42:02 i more or less accept that we exist as a kind of mysterious tradeoff 12:42:20 me too 12:42:43 not even that.. i just don't know 12:42:48 i mean i have no idea what that means, but i assume that's your point 12:43:01 well.. self and other 12:43:08 theres no real divide between self and other 12:43:13 the mind just approximates it 12:43:38 just guessing 12:44:25 yep black and white, real and unreal, yin and yang, lemme get my crystal ball 12:44:43 i should sleap 12:44:49 Like, is my left hand part of me? 12:44:52 Is my sock? 12:45:00 Is this sofa I'm sitting on? 12:45:04 Is my brain? 12:45:15 taneb: having spent far too much time thinking about these things... i have only led myself into depressions 12:45:29 left hand yes, sock only if you just jizzed on it, sofa no except if you just jizzed on it 12:45:40 *in 12:45:49 but it helps to remember that not knowing is not knowing 12:45:50 brain yes 12:46:34 taneb: a depressed view of existence isn't necessarily a more accurate one 12:47:31 what if you jizz on everything? Does everything become one? 12:47:47 have you even READ the bible? 12:47:58 I suppose you have to jizz on your jizz 12:48:59 So... God has jizzed on everything? 12:49:12 have you even READ the bible? 12:49:37 Tried to once. 12:49:42 Couldn't get into it. 12:49:43 me too 12:49:48 me neither 12:49:48 `addquote So... God has jizzed on everything? have you even READ the bible? 12:49:50 525) So... God has jizzed on everything? have you even READ the bible? 12:51:20 i shall now sleep until the sun goes down 12:52:21 oklopol: so rude to sun 12:54:58 i agree, that's why i always go to sleep when the sun starts sunning rudely 12:56:24 oklopol: it's four pm there dude 12:57:22 yes i usually sleep all day 12:57:29 got a problem with that? 12:57:40 nope it's just that the sun has been sunning rudely for quite a while 12:57:45 you should try doing it a bit earlier so that you miss all of it 12:57:50 well how would i know 12:57:55 i can't actually see it 12:58:55 Hire someone to see it for you? 12:59:21 Well, my BF Joust interpreter works 13:01:26 Nope, I've broken it 13:08:40 Fixed it 13:09:08 Nälkä, eikä oo ruokaa. 13:12:24 ...Myös. 13:12:59 Olen käsine! Ei, olen kaksi käsineet! 13:18:00 Jsem rukavice! Ne, já jsem dva rukavice! 13:18:21 Ben bir eldiven! Hayır, iki eldiven! 13:18:37 Ich bin ein Handschuh! Nein, ich bin zwei Handschuhe! 13:18:48 Why is German so long? 13:18:53 It's inefficient 13:19:08 I just want to express my identity as a glove 13:19:20 -!- cheater__ has quit (Ping timeout: 255 seconds). 13:19:25 Then correct myself as my glove identity has duplicated 13:20:23 Yeah, in "Ich bin ein", everything but "bin" is redundant, and "Handschuh" is longer than it has to be. 13:21:00 It should be, like, "Bin Glof! Nein, bin zwei Glofe!" 13:21:25 We should make a petition to reform the German language 13:21:45 Nah, we should all just speak Spanish instead. I like that one. 13:22:01 Soy un guante! No, yo soy dos guantes! 13:22:13 ¡Soy guante! 13:22:18 It's not as short as Turkish... 13:22:27 What you say if being a glove is your job. 13:22:41 ¡No, soy dos guantes! 13:24:01 Damn, python.org is down 13:24:28 ...Is there a short way to find the sum of all the numbers in a list in python? 13:24:37 -!- elliott has quit (Read error: Connection reset by peer). 13:24:45 -!- elliott has joined. 13:25:54 Taneb: yes, sum 13:26:02 Ooh, that's handy 13:26:04 builtin function I believe. 13:26:09 Even handier 13:26:29 In the words of the great Stephen Fry: Wo ist mein Handy? 13:26:44 hmmm, my Python knowledge is a little rusty. 13:26:54 haven't used it in quite a while. 13:26:59 Mine is extremely incomplete 13:27:16 but it was my first language, so I spent a lot of time mastering it. 13:27:23 not that it's... difficult to master. 13:27:53 are you familiar with generator comprehensions? 13:27:59 or, whatever they're called... 13:28:15 Not especially 13:28:42 (expr for var in list). if you use square brackets it's a list comprehension which is strictly evaluated, but using () makes a lazy iterator object 13:29:03 Taneb: You should use Haskell it's a great thing and also better than Python. 13:29:06 so for large iterations, generators are preferable. 13:29:09 Opinions hour with Elliott. 13:29:19 CakeProphet: Only true if you're going to iterate over it afterwards 13:29:27 I'm better at Python than I am at Haskell 13:29:44 Actually, I'm awful at Haskell 13:29:52 reversed([x for y in z]) shouldn't be much slower than reversed(x for y in z) 13:29:55 Although the latter is nicer 13:30:10 Taneb: It's called self-improvement. :p 13:30:11 elliott: well... yes. I was talking about iterating, not representing data. 13:31:34 elliott: well reversed can't take an iterator at all. 13:31:41 Well that sucks 13:31:46 It'll be in itertools somewhere 13:31:51 it wouldn't be very efficient anyways. 13:32:01 compared to reversed(list) 13:33:08 also the /length/ of the list is important. Which is why I say that for large iterations, generators are much more space efficient. For small lists/iterations, it's not going to be a noticable difference. 13:33:57 You'll probably rarely be able to tell at all what with how slow Python is 13:34:13 well, yeah. 13:34:55 I've just made it a habit to use generators when I do not need to store the values later because they're generally more efficient for that purpose. 13:35:29 for example: using xrange instead of range (though I believe in Python 3 range produces an iterator) 13:36:20 I've always found worrying about efficiency in languages like Perl and Python to be somewhat ironic. 13:37:29 You can worry about algorithmic efficiency, but microoptimising is basically completely pointless 13:37:32 I suppose being concerned about how performance /scales/ is reasonable, but trying to get the fastest runtimes would be silly. 13:37:35 ...yes, what you said. 13:37:56 Now in Haskell, you can microoptimise without significantly changing the global structure of your code, if you need it... ;D 13:38:05 I can twist literally anything into an argument for why Haskell is the best, try me. 13:38:20 (Says the guy who spends most of his Haskell-coding time groaning about its glaring imperfections.) 13:39:08 Python's C interface is pretty good. The "Great Language Shootout" benchmarks have the lowest Python-to-C ratio at 1.02 13:39:18 obviously these programs cheat and write everything in C.. 13:39:56 but it shows that there's not much overhead to this approach when micro-optimizing computationally intense sections of code. 13:40:47 ... C-to-Python ratio, actually. 13:40:58 er, not, since it's runtime. 13:42:13 my main complaint with Python is that it has poor functional programming support in libraries and syntax. 13:42:48 Bäck. 13:44:01 I believe I suggested improving the functools module on the Python mailing list one time, including things such as id and compose functions. It wasn't taken seriously. 13:44:49 at least it has a partial application constructor thing. 13:45:38 but I think it would be much cleaner to write a function decorator that supported partial application directly in the __call__ method. Because partial(f, a, b, c) is uglier than just f(a,b) 13:45:43 *f(a,b,c) 13:46:50 @curriable \n def func(a,b,c): ... 13:46:50 Unknown command, try @list 13:47:40 ophet(+i)] [4:Freenode/#esoteric(+cn)] [Act: 3,5,6] 13:47:45 ...? 13:47:56 hand must have slipped and did something weird. 13:48:24 Taneb: ^^^ do this stuff 13:48:36 it would be a func and pretty easy little module 13:48:42 lol *fun 13:49:13 What am I tryinh? 13:50:14 basically you would create a class called curriable, that took a function as its constructor argument, and defines a __call__ method that returns a partial application when every mandatory argument to the original function is not given. 13:51:00 you'd have to use the inspect module to grab the functions signature information and stuff, so that you can know when to partially apply and when to return the normal result. 13:51:32 and functools, so that you could borrowed the partial class 13:51:39 *borrow 13:51:52 ..have I lost you? 13:51:59 Slightly 13:52:37 okay if you import functools, you get a class called partial. Partial is constructed with a function and some arguments to that function. 13:53:20 it then returns a callable object that takes the rest of the functions arguments, and then gives you the result. This is called partial application, where you supply some of the functions arguments at one point in execution, and then supply the rest later. 13:53:47 Okay 13:54:12 the problem is that this does not occur automatically, you have to construct the partial object manually: thus, partial(f,a,b) instead of just f(a,b) 13:54:15 HOWEVER 13:54:42 you could create a class called curriable, that wraps over a function, and implements a __call__ method that does the partial application semantics when not enough arguments are supplied. 13:55:31 to determine if this is the case, you could use the inspect module. Which has a function (can't remember the name) that returns information about a functions parameters. 13:55:42 So, if enough arguments are supplied, it calls the function as normal, otherwise it returns the partial? 13:55:46 yep. 13:55:57 -!- elliott has quit (Read error: Connection reset by peer). 13:56:01 -!- elliott_ has joined. 13:56:04 and then, using Pythons decorate syntax, you could define functions that are automatically curriable 13:56:08 @curriable 13:56:08 Unknown command, try @list 13:56:11 def func(a,b,c): ... 13:56:13 like that. 13:56:15 ignore lambdabot 13:57:16 @d; def func(): ... === def temp(): ...; func = d(temp) 13:57:16 Parse error at "..." (column 13) 13:57:42 ; is linebreak since this is Python and Python is stupid. 13:58:49 basically the @whatever is just a sugary way to wrap a function inside another object, so that you can implement special call semantics or whatever you want to do really. 13:59:06 you could have a wrapper that logs function calls, for example. 13:59:14 -!- cheater_ has joined. 13:59:55 or provides some metadata. or allows you to change the definition of the function at runtime (I think I've actually done this before...) 14:04:20 also you write class methods (aka static methods) in Python by putting @classmethod above the method definition. 14:04:57 in Java I like to call static methods "functions" 14:05:15 since this is basically when they are used. 14:06:38 -!- BeholdMyGlory has joined. 14:07:04 er, actually Python has staticmethod and classmethod. classmethod makes the method take the class as its implicit argument, while staticmethod has no implicit argument at all. 14:09:01 I hope I am making sense right now... 14:09:12 I enjoy teaching people things. 14:09:16 Sort of... 14:10:11 anything you're confused about? 14:11:35 does italian have separate singular and multiple "you"? 14:11:36 So, I'm making something that takes a function and some parameters, and returns a function, which is the same function as before but with the parameters hardcoded? 14:11:45 currying 14:12:08 Taneb: well, you could, but that's already been done for you if you import functools and then type functools.partial 14:12:39 And if there are enough parameters, the function is called? 14:12:58 what you would be making is a thing (aka class) that takes a function and produces a function that will either partial apply or completely apply based on the number of arguments. 14:13:31 actually it wouldn't be producing a function directly, because you can define function-like objects by implementing the __call__ method. 14:13:42 which is called whenever your object is called as though it were a function. 14:13:52 So, if I had a kinda boring function called total that took two arguments and returned their sum 14:14:11 whatever(total,3) would return a function that added three to things 14:14:15 yep 14:14:21 > map (+3) [1..] 14:14:22 [4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30... 14:14:22 but whatever(total,3,7) would return 10? 14:14:30 ...no it's more like 14:14:40 whatever(total)(3) would return the function that adds three to things 14:14:40 A function that returns ten? 14:14:51 and whatever(total)(3,7) would return 10 14:15:13 and then you just use @whatever above the def for total 14:15:21 to make it a curriable function. 14:16:10 whatever(total) just augments total so that it automatically partially applies when (get ready for it) applicable. 14:16:56 it could do this by either returning a function, or by being a class that implements a __call__ method 14:17:38 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 14:18:10 this is the semantics Haskell does by default. (3+) is a function that adds three to things. 14:18:25 but Python can do this as well if you define a function wrapper for it. 14:20:10 -!- oklopol has quit (Ping timeout: 250 seconds). 14:20:54 then you could have: import operator, itertools; add = whatever(operator.add); map(add(3), itertools.count(0)) 14:21:14 which is roughly equivalent to the Haskell code map (+3) [0..] 14:21:33 except it's wordier because you have to import some boilerplate to get the desired semantics. 14:23:41 -!- cheater_ has quit (Ping timeout: 255 seconds). 14:24:50 Apparently, built-in functions don't count as functions 14:24:57 how so? 14:25:08 TypeError: is not a Python function 14:25:16 what is the offending code. 14:25:27 inspect.getfullargspec(len) 14:25:32 ah, yes. 14:25:47 inspect can't get the argument information from a built-in function. 14:27:12 -!- oklopol has joined. 14:29:20 in that case you can have a special-case for built-in functions where you catch a TypeError, test if it was a built-in, and then see if the exception message matches func_name + "() takes exactly .*? arguments? (\d+ given)" 14:29:28 or something equally hackish 14:32:18 -!- oklopol has quit (Ping timeout: 250 seconds). 14:36:53 -!- cheater_ has joined. 14:37:26 Taneb: but in the meantime you could just ignore built-ins 14:43:24 -!- copumpkin has joined. 14:44:40 also when returning the partial object you may want to wrap that object within your class as well. 14:44:52 so that the partially applied function can be partially applied further. 14:45:12 thus whatever(total)(2)(4) 14:45:38 well, bad example. whatever(three_argument_function)(a)(b)(c) 14:46:58 So it's... weirdly recursive? 14:47:07 no, not recursive at all. 14:47:16 it just returns instances of the same class when called. 14:47:44 so that the functionally is contagious, so to speak. 14:48:13 @hoogle a -> b -> c 14:48:14 Prelude curry :: ((a, b) -> c) -> a -> b -> c 14:48:14 Data.Tuple curry :: ((a, b) -> c) -> a -> b -> c 14:48:14 Prelude flip :: (a -> b -> c) -> b -> a -> c 14:48:16 @hoogle a -> b -> c -> d 14:48:16 Text.Regex.Base.RegexLike makeRegexOpts :: RegexMaker regex compOpt execOpt source => compOpt -> execOpt -> source -> regex 14:48:17 Network.BufferType buf_append :: BufferOp a -> a -> a -> a 14:48:17 Network.BufferType buf_snoc :: BufferOp a -> a -> Word8 -> a 14:48:55 > let if' a b c = if a then b else c in (if') (True) (2) (3) 14:48:56 2 14:49:05 -!- oklopol has joined. 14:49:34 @let if' a b c = if a then b else c 14:49:36 Defined. 14:49:56 > (((if' False) 3) 4) 14:49:58 4 14:50:19 demonstrating how partial application works in Haskell, called currying in Haskell. You can curry the curried function. 14:50:53 -!- oklofok has joined. 14:53:31 -!- oklopol has quit (Ping timeout: 252 seconds). 14:53:46 currying is useful because it allows you to construct more specific functions from general functions. 14:55:11 -!- oklofok has quit (Ping timeout: 240 seconds). 14:55:47 for example const in Haskell lets you create functions that always return a constant value. 14:55:53 map (const 3) [1,2,3,4] 14:55:55 > map (const 3) [1,2,3,4] 14:55:56 [3,3,3,3] 14:56:44 in Python const would look like: @curriable; def const(a,b): return a 14:59:21 def makeconst(a): return lambda b: a 14:59:32 yes 14:59:50 but thats lame. 15:00:14 because it actually needs to be 15:01:25 def makeconst(a, b=NotImplemented): return ((lambda b: a) if b is NotImplemented else a) 15:02:50 I used NotImplemented instead of None because there might be situations where you want to use None for b 15:03:01 and NotImplemented is pretty unused. 15:04:28 heh, NotImplementedType is a pretty fancy type. 15:04:36 it's got a __repr__ method and nothing else. 15:04:42 NotImplemented exists to be shown. 15:05:19 -!- oklopol has joined. 15:05:26 NoneType only defined __repr__ and __hash__. hmmm, interesting, so NotImplemented cannot be used in a dictionary. 15:06:24 oh wait, yes it can, I think it just inherits __hash__ from object. 15:07:27 Python's object hierarchy propagates a wealthy family history of opioid use. 15:09:35 -!- oklopol has quit (Ping timeout: 255 seconds). 15:09:47 -!- oklopol has joined. 15:10:39 -!- oklofok has joined. 15:14:05 -!- oklopol has quit (Ping timeout: 255 seconds). 15:17:39 -!- oklofok has quit (Ping timeout: 264 seconds). 15:18:30 -!- oklopol has joined. 15:54:38 `addquote Vorpal: Won't be slower than Python ;-) elliott_, yeah but that is like saying a T-Ford going down a hill won't be slower than a bicycle uphill on a bumpy road :P 15:54:39 526) Vorpal: Won't be slower than Python ;-) elliott_, yeah but that is like saying a T-Ford going down a hill won't be slower than a bicycle uphill on a bumpy road :P 15:56:55 (for reference, he was talking about a program written in C...) 16:17:38 import teleporter 16:35:03 -!- Taneb has quit (Ping timeout: 252 seconds). 16:37:49 -!- zzo38 has joined. 16:38:29 -!- Taneb has joined. 16:49:15 -!- pikhq has quit (Ping timeout: 246 seconds). 16:49:20 -!- pikhq has joined. 16:56:00 -!- MigoMipo has joined. 17:06:26 Hello people! 17:07:04 hi 17:07:21 Oh, you don't count, I was just talking to you 17:17:21 Oh God I am crazy 17:17:34 I'm trying to implement Numberwang in C++ 17:17:46 I haven't even touched C++ in years 17:17:49 -!- boily has quit (Quit: WeeChat 0.3.5). 17:20:27 Oh, I won't bother 17:27:26 Good work ethic 17:28:17 Even so far my DVI optimization program does a better job than TeX although I am still improving it. You can also suggest other things with it, including optimizations I may have missed, and so on. 17:28:36 I'll do it in JavaScript instead 17:28:43 I know JavaScript 17:38:58 -!- zzo38 has quit (Remote host closed the connection). 17:47:17 -!- elliott_ has quit (Read error: Connection reset by peer). 17:51:41 -!- azaq23 has joined. 18:01:01 -!- elliott has joined. 18:13:38 -!- monqy has joined. 18:18:28 -!- pikhq_ has joined. 18:19:21 -!- pikhq has quit (Ping timeout: 258 seconds). 18:25:06 Does anyone know how to convert a string like "4.4" to a number in Javascript? 18:27:06 parseInt(n,10) 18:28:32 That loses the .4 18:28:56 parseFloat works, though! 18:32:07 Okay, that's a bit weird/ 18:32:23 In Chrome, at least, NaN is not equal to itself... 18:32:45 But it is not equal to itself 18:33:55 Yes, that's by definition. 18:34:48 Does the definition recommend a way to test for NaN-ness? 18:35:23 there's probably something like an isNaN function 18:35:24 isNan(x)? 18:35:31 Yes, it's isNaN. 18:35:36 (The lowercase 'n' was a typo.) 18:35:44 Thanks 18:37:33 parseFloat works, though! 18:37:34 Oh, right. 18:37:36 Make sure to include the ten. 18:37:41 Or 0 at the start = different parsing. 18:37:54 Really? How interesting 18:38:01 It's because it thinks it's octal 18:38:04 0x makes it hex, etc. 18:38:06 Too smart for its own good 18:38:43 I'm not sure if parseFloat does that 18:39:01 parseFloat("019") returns 10 18:39:03 *19 18:39:06 Hmm, fair enough 18:39:08 Still wouldn't trust it :P 18:39:17 and parseFloat("0x19") returns 0 18:47:14 I've just had an idea for an Esolang 18:47:31 One consisting entirely of error handling 18:48:28 And everything that isn't error handling causes an error 18:48:37 Which is then handled 18:48:40 With vigour 18:50:00 shades of http://esolangs.org/wiki/Reaper 18:51:24 -!- Cheery has joined. 18:51:37 Not quite what I had in mind 18:51:49 hi.. #compilers is rather quiet channel.. so I came to ask this here.. 18:52:42 is it unadvisable somehow to insert spillnodes early and reduce them out later if they appear to become unnecessary? 18:53:04 you're building a spillnode-based esolang? 18:53:42 (What's a spillnode?) 18:54:18 oh. i forgot to provide context. 18:54:47 I attempt to output machine code from intermediate language of some sort. 18:55:11 that is.. compile IR into target machine code :) 18:56:42 once I take much as possible away from it.. it becomes mostly a problem of just selecting instructions and mapping target machine registers for variables. 18:58:12 `addquote This staircase is very good for correcting people's opininons about communism 18:58:13 527) This staircase is very good for correcting people's opininons about communism 18:59:57 Taneb: spillnode is a node that translates into load or store whenever live variable gets spilled into memory. 19:07:02 -!- atehwa has quit (Ping timeout: 250 seconds). 19:24:54 hi 19:25:22 hi 19:31:41 -!- oerjan has joined. 19:33:51 -!- Taneb has quit (Read error: Connection reset by peer). 19:35:46 -!- elliott_ has joined. 19:35:47 -!- elliott has quit (Read error: Connection reset by peer). 19:38:41 -!- cheater_ has quit (Ping timeout: 255 seconds). 19:40:09 well.. mathematical theory probably hasn't explored the implication of a negative function 19:40:30 um it probably has, in several different variants. that's the way it usually goes. 19:40:51 oerjan: I discussed one such way not long after. 19:40:52 but first you have to define what kind of negative function you _mean_ by the word 19:40:56 Well, more "touched on". 19:41:23 also 19:41:36 (one of the obvious ways of doing a "negative function" is, of course, a Church pair of a Church boolean and a Church numeral) 19:41:41 > (sqrt-3.14159) 2 19:41:43 -1.7273764376269047 19:41:47 * oerjan whistles innocently 19:42:15 Smartass. :P 19:42:38 :t (sqrt-3.14159) 19:42:39 forall a. (Floating a) => a -> a 19:43:13 That... Is the thing I least expected. 19:43:22 * oerjan cackles evilly 19:43:30 it is simple really 19:43:37 Do tell. 19:43:51 > (sqrt-3.14159) 3.14159 19:43:52 -1.369136897658502 19:44:06 > (sqrt-3.14159) 4 19:44:07 -1.1415899999999999 19:44:09 > (sqrt-3.14159) x 19:44:10 sqrt x + negate 3.14159 19:44:26 ... 19:44:29 derp 19:44:49 lambdabot has instances Num b => Num (a -> b), Floating b => Floating (a -> b) etc., which simply applies the usual numerical methods to the result 19:44:57 *apply 19:45:05 e.g. 19:45:10 > (2*id) 3 19:45:11 6 19:45:42 this is fairly common mathematical usage e.g. when considering vector spaces of functions 19:46:22 > sqrt 2 19:46:24 1.4142135623730951 19:46:27 > (add 1 * add 2) 1 19:46:28 Not in scope: `add'Not in scope: `add' 19:46:34 oerjan: Okay, that'd do it. 19:46:44 > let add = (+) in (add 1 * add 2) 1 19:46:46 6 19:47:07 Also explain why the type error on "sqrt -3.14159" was a missing Show instance, not a missing Num instance. :) 19:47:14 yeah 19:47:44 or rather, an overlapping instance - there are two conflicting modules defining Show for functions 19:47:53 > putStr 1 19:47:55 No instance for (GHC.Num.Num GHC.Base.String) 19:47:55 arising from the literal `... 19:47:58 argh 19:48:01 > putStr "1" 19:48:02 19:48:14 elliott_: Thought you might like to know that Linux 3.0 is going to be released "soon". 19:48:20 previously the function instance was similar to that 19:49:21 pikhq_: Cool. 19:49:36 elliott_: A clone of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git should be 100% usable; unless someone finds a major bug, that's getting released. 19:49:49 pikhq_: lambdabot in private tells that the instances are from the smallcheck and vector-space packages 19:49:55 oerjan: Ah. 19:51:07 so sometimes the inability to selectively import instances in haskell gets rather annoying 19:51:30 -!- cheater_ has joined. 19:52:20 -!- GuestIceKovu has joined. 19:53:25 -!- augur has quit (Remote host closed the connection). 19:53:32 -!- Slereah has quit (Ping timeout: 240 seconds). 19:53:56 i believe they have done some work to ensure lambdabot no longer has overlapping name definitions (e.g. it no longer imports pure from both Control.Arrow and Control.Applicative), but the instances are impossible to get rid of with import statements 19:54:03 :t pure 19:54:05 forall a (f :: * -> *). (Applicative f) => a -> f a 19:54:19 :t Control.Arrow.pure 19:54:20 Not in scope: `Control.Arrow.pure' 19:54:23 grmbl 19:54:26 @hoogle pure 19:54:27 Control.Applicative pure :: Applicative f => a -> f a 19:54:49 hm it is possible they simply removed pure from Arrow altogether 19:55:02 (it was just a synonym of arr anyhow) 19:55:27 removed pure?!? 19:56:00 oklopol: it got annoying whenever someone wanted to import both Control.Arrow and Control.Applicative 19:56:18 to have two different functions named the same thing 19:57:34 what does pure do 19:58:06 How was it with lambdabot, how does it have all the modules (all of them) available by default? 19:58:39 i believe > runs in the environment of a module named L, which contains a heap of import statements 19:58:48 but certainly not _all_... 20:00:06 -!- Taneb has joined. 20:01:28 > magnitude $ ((-pi) :+ 0) - (mkPolar pi pi) 20:01:46 darn so apparently they didn't get rid of all ambiguity 20:02:44 that vectorspace package strikes again, redefining magnitude 20:02:55 oerjan: didn't arrow become a subclass of Category, with pure replaced by something from Category? 20:03:16 Category has no pure 20:03:58 hmm, indeed not 20:05:46 this is stupid, as i believe it should be easy to get ghc to give error messages if you do that kind of ambiguity 20:05:54 -!- pumpkin has joined. 20:07:00 !haskell module Main(Control.Monad, liftM) where import qualified Control.Monad; liftM = 3.14; main = print liftM 20:07:18 oops 20:07:29 !haskell module Main(Control.Monad, liftM) where import qualified Control.Monad(*); liftM = 3.14; main = print liftM 20:07:31 -!- copumpkin has quit (Ping timeout: 258 seconds). 20:07:35 wait what 20:07:43 zhttp://www.youtube.com/watch?v=k91u6dtwYm8 20:07:48 !haskell module Main(Control.Monad(*), liftM) where import qualified Control.Monad; liftM = 3.14; main = print liftM 20:08:06 huh what _is_ the syntax for that... 20:08:34 re-exporting modules? 20:08:43 yes 20:09:50 module Foo (baz,module Bar) I think 20:09:55 yeah found it 20:10:06 !haskell module Main(module Control.Monad, liftM) where import qualified Control.Monad; liftM = 3.14; main = print liftM 20:10:06 (if Foo also wants to export a local function baz) 20:10:10 3.14 20:10:13 wtf 20:11:05 apparently it doesn't perform the check in that case 20:11:16 maybe it has to be compiled, not just loaded 20:11:35 exporting two different symbols with the same name is apparently not an error :) 20:11:40 maybe Main is special though 20:12:04 could be 20:12:58 the report is pretty clear that this kind of thing should be a clash 20:13:08 oh well 20:22:28 elliott_: I should do something about your aimake concept. 20:22:49 I'm not sure how to do it, but C builds should not be harder than "build foo.c" 20:23:05 :p 20:23:29 :t re 20:23:30 Not in scope: `re' 20:23:52 @hoogle Complex a -> a 20:23:53 Data.Complex imagPart :: RealFloat a => Complex a -> a 20:23:54 Data.Complex magnitude :: RealFloat a => Complex a -> a 20:23:54 Data.Complex phase :: RealFloat a => Complex a -> a 20:24:01 The *obvious* method involves adding annotations to the source, but that feels a bit like a copout (not to mention hard to not fuck up). 20:24:06 > realPart (0 :+ undefined) 20:24:07 *Exception: Prelude.undefined 20:24:26 pikhq_: apparently Complex is strict, so no laziness available 20:26:06 oerjan: So mkPolar is defined the way it is for strictness reasons? "mkPolar r theta = r * cis theta" would be less strict than "mkPolar r theta = r * cos theta :+ r * sin theta", presuming a lazy *. 20:27:16 pikhq_: um no i was implying that since Complex is a strict type, that _shouldn't_ be the case 20:27:22 oerjan: Ah. 20:27:29 So, mkPolar is defined the way it is for no good reason. 20:27:38 perhaps. 20:28:11 well one reason is for stupid compilers which would otherwise create a temporary value 20:29:24 presumably parts of the haskell report predates clever compilers by quite a lot 20:29:49 Uh, Data.Complex isn't in the Report. :) 20:29:57 yes it is. 20:30:01 Oh, sorry. 20:31:08 elliott_: On a scale of 1 to 10, how bad of an idea is adding notations to C source to make things happen somewhat sanely? 20:31:36 11. 20:31:45 * oerjan runs away 20:32:07 pikhq_: 99 20:32:24 -!- pumpkin has changed nick to copumpkin. 20:33:34 Hmm. *Regardless*, it'd probably need to have a full C preprocessor. :/ 20:33:41 Well, more like 3/4ths of one. 20:33:55 -!- augur has joined. 20:37:46 Also, the evolution process is controlled by me 20:37:57 elliott_: You. Insight. :P 20:38:16 clearly someone hasn't read yudkowski, or elliott_'s (?) rants about it 20:38:27 oerjan: yudkowsk_y_ 20:38:38 * elliott_ has not ranted on any AI topic to his knowledge 20:38:45 elliott_: yay i got closer than expected! 20:38:46 maybe argued, but not monologued 20:39:02 pikhq_: but i would agree with him, seeing as this is bf joust and the programs are kilobytes at most. :p 20:39:03 ok ok 20:39:07 Nah, just I haven't got around to automating that yet 20:39:18 elliott_: Relevant insight. 20:40:04 Taneb: no i mean, yudkowsky would say that thinking you control the AI would be no match against a _real_ superhuman AI 20:41:38 also, i was somewhat joking 20:42:14 Okay 20:42:39 I really need to do rather a lot of optimization, maybe a language change. 20:42:59 It takes about 5 minutes to evaluate a generation 20:43:22 I could probably get that down to two fairly easily 20:45:00 Probably the single biggest problem is that there is no *way* to tell from just C source whether something is intended as a library or a program. 20:45:40 Unless it has a comment saying "THIS IS A LIBRARY" 20:45:48 `addquote The Russian's emblem was the hammer and sickle, not the fist and other fist 20:45:56 http://theredhunter.com/Fateh%20logo.gif 20:46:05 Followed closely by how it's utterly impossible in the general case to discover what should be linked into that. 20:46:24 (Al Fatah) 20:46:38 Though it's actually pretty easy if you assume that each header file corresponds to 0 or 1 C files that should be linked. 20:47:38 *With* that assumption, you can just about do it by grepping for #include statements. 20:51:32 oerjan: there's some good quotes later on :D 20:51:47 you don't say. 20:56:26 Why does my brother have to have a friend with almost exactly the same name as him? 20:57:33 maybe he just likes people with similar names to his 20:58:23 Of course, that comment was a) rhetorical, b) completely irrelevant, c) fundamentally useless, d) kinda stupid, and e) 20:58:30 I couldn't think of an e 20:59:15 > e 20:59:16 e 20:59:23 lambdabot could 20:59:31 My word 20:59:43 sadly it's not _the_ e 21:00:00 E, nevah 21:00:14 > exp 1 -- is this the e? 21:00:15 2.718281828459045 21:00:26 That be the e 21:00:40 To an appropriate number of decimal places 21:00:56 > exp 1 :: CReal 21:00:57 2.7182818284590452353602874713526624977572 21:01:05 yes, I think it was a bit few to be truly appropriate 21:01:17 ping 21:01:27 6uod 21:02:22 I've got a friend who makes a quote list similar to HackEgo's... but NOT ON IRC! 21:02:24 does italian have separate singular and multiple "you"? 21:02:30 yes, tu and voi 21:02:42 also a polite one, lei 21:03:03 This is the same friend who thought Washington DC was in British Columbia, managed to set a pan of water on fire, and whom I tried to teach Lambda Calculus 21:03:19 "managed to set a pan of water on fire", wow 21:03:32 Nobody's sure how she did it 21:03:40 Taneb: are you sure he hasn't escaped from a sitcom somewhere? 21:03:55 Pretty sure. 21:03:55 or... are you sure you're not living in one 21:04:08 She's female. In sitcoms it's generally the males who are idiots 21:04:14 ah. 21:05:46 well i recall at least one exception (from cheers, although there were male idiots too) 21:06:03 oh and friends had one 21:06:14 -!- pumpkin has joined. 21:06:16 * oerjan is not entirely up-to-date with modern sitcoms 21:06:21 And if this were a sitcom, she and I would have more unresolved sexual tension 21:06:36 Maybe you're just in a really badly-written sitcom 21:06:45 for a value of not entirely approximately equal to "entirely not" 21:06:49 BUT THERE'S NO LAUGH TRACKS 21:06:57 Taneb: IT'S AN OLD SITCOM 21:07:10 BUT I'VE GOT AN iPOD! 21:07:14 my mom used to boil rags to clean them, and once accidentally left one to boil for a few days. nothing happened. 21:07:18 Taneb: IT'S LIKE THE JETSONS 21:07:26 Mein. Gott. 21:07:43 Mon. Dieu. 21:07:53 -!- copumpkin has quit (Ping timeout: 252 seconds). 21:07:56 Deus. Meus. 21:08:06 * oerjan ponders a civilization which would find ipods hilariously anachronistically futuristic 21:08:40 There was one of them in Doctor Who, I think 21:08:44 (see: Zeerust on tvtropes) 21:08:47 One of the Eccleston episodes 21:08:59 I'm avoiding TVTropes 21:09:06 Because my system is perfect 21:09:11 -!- Cheery has quit (Quit: Lost terminal). 21:09:18 hey i was being nice and not giving a link 21:09:23 oerjan: hilariously anachronistically futuristic? what's that even mean? 21:09:38 olsner: like the jetsons 21:09:41 remove anachronistically and you'll get it 21:10:28 oerjan: so, hmm... like the future looked a long time ago? 21:10:34 My biology teacher: I'll do the teachering. 21:10:36 olsner: as i said, zeerust 21:10:53 yeah maybe not hilariously futuristic, more like futuristic in a hilarious way 21:11:09 Well. I at least have a quick, stupid proof-of-concept. 21:11:21 http://sprunge.us/KXSb 21:12:07 I'm being kicked off to go to bed now 21:12:10 Goodnight 21:12:20 -!- Taneb has quit (Read error: Connection reset by peer). 21:12:32 Given a main.c, it attempts to search for all needed source files. 21:12:41 poor Taneb, he would fit in so well here if he could just get a messed up sleep schedule 21:12:54 oerjan: what was your conclusion? 21:13:19 oklopol: to what? 21:13:22 pondering 21:13:36 oh. i think i just pondered pondering. 21:13:45 cool 21:13:51 i have to do some stuff -> 21:14:07 poor Taneb, he would fit in so well here if he could just get a messed up sleep schedule 21:14:08 see also ph 21:14:38 i have a pretty nice sleepy time distribution 21:14:50 16-22 21:21:54 -!- pumpkin has changed nick to copumpkin. 21:26:53 also regarding tvtropes, http://www.mezzacotta.net/postcard/?comic=926 21:27:12 (yes, there is no picture) 21:35:06 today's darths & droids is particularly hilarious, i think 21:53:56 So, my scan script, though naive, works nicely for things that don't try to break it. 22:17:54 -!- Wamanuz2 has joined. 22:18:24 -!- Wamanuz2 has quit (Remote host closed the connection). 22:20:31 -!- Wamanuz has quit (Ping timeout: 258 seconds). 22:21:33 -!- Wamanuz has joined. 22:26:42 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 22:27:49 -!- elliott_ has quit (Ping timeout: 252 seconds). 22:29:32 -!- Sgeo_ has joined. 22:29:44 I obviously have a good Internet connection 22:30:42 -!- Sgeo has quit (Ping timeout: 250 seconds). 22:34:20 -!- MigoMipo has quit (Read error: Connection reset by peer). 22:34:21 -!- CakeProphet has quit (Ping timeout: 260 seconds). 22:35:45 -!- CakeProphet has joined. 22:35:46 -!- CakeProphet has quit (Changing host). 22:35:46 -!- CakeProphet has joined. 22:36:03 like everyone else 22:39:19 -!- Sgeo_ has changed nick to Sgeo. 22:49:54 -!- copumpkin has joined. 22:51:36 -!- pikhq_ has quit (Read error: Operation timed out). 22:54:25 -!- pikhq has joined. 23:03:07 Well, now I have a simple compiler wrapper. 23:03:16 -!- pumpkin has joined. 23:03:19 http://sprunge.us/AXBj 23:03:46 Perfect, no; better, yes. 23:04:48 -!- augur has quit (Remote host closed the connection). 23:05:19 -!- pumpkin has changed nick to copumpkin_. 23:06:23 -!- copumpkin has quit (Ping timeout: 276 seconds). 23:12:59 -!- copumpkin has joined. 23:15:17 -!- copumpkin_ has quit (Ping timeout: 246 seconds). 23:30:36 http://sprunge.us/CQWO Added some annotations to make up for my laziness... 23:32:33 XD, minor bug. Anyways. 23:47:51 Gregor: eso.codu.org appears not to be loading 23:48:35 or http://www.codu.org/eso/ork/exa/orkipple.ork 23:49:12 oh wait that one is also in the file archive 23:49:28 Gregor: but still, broken wiki links, i hope it's temporary... 23:49:32 -!- augur has joined. 23:51:26 oerjan Uhh, E_WORKSFORME 23:51:44 ic 23:52:56 well _now_ it works 23:53:21 Gregor: there are some doubts about Ork's TC-ness, see Talk: page 23:54:03 oerjan: Oh nooooose 23:56:20 for the brainfuck interpreter, the problem would be that it's not unbounded in either cell number (explicitly) or cell size (because they're doubles, per the spec) 23:56:43 for the kipple interpreter, the problem would be that i cannot make heads or tails of it 2011-07-22: 00:00:34 oh hm you limit kipple stacks to length 32256 iiuc 00:01:07 also it's spelled "instantiate" ;D 00:03:30 Gregor: can ORK do recursive objects, and so e.g. linked lists? 00:03:43 oerjan: I don't recall :) 00:03:56 hm 00:08:51 -!- FireFly has quit (Quit: swatted to death). 00:30:44 http://www.reddit.com/r/DebateReligion/stylesheet.css huh, they're actually interfering with RES 00:32:54 Gah, there's a lot of vitriol in that subreddit 00:35:17 DebateReligion -> "there's a lot of vitriol in that subreddit" -> duh 00:47:58 That's a little creepy 00:48:00 Oh, oops 00:48:03 /** 'Force' users to use the subreddit style **/ 01:07:32 @src reverse 01:07:33 reverse = foldl (flip (:)) [] 01:17:34 lol, told someone I was playing with Minecraft, he thought I meant minesweeper 01:18:05 Oh, or maybe he was joking 01:22:44 _someone_ probably made minesweeper in minecraft 01:22:53 with real explosions 01:24:26 Yes, someone actually did. 01:52:36 -!- copumpkin has quit (Ping timeout: 240 seconds). 01:53:01 -!- copumpkin has joined. 02:00:08 -!- CakeProphet has quit (Ping timeout: 276 seconds). 02:02:05 -!- cheater_ has quit (Ping timeout: 255 seconds). 02:15:07 -!- cheater_ has joined. 02:21:04 -!- pikhq_ has joined. 02:24:17 -!- pikhq has quit (Ping timeout: 258 seconds). 03:21:17 -!- azaq23 has quit (Ping timeout: 255 seconds). 03:38:17 -!- azaq23 has joined. 03:46:08 -!- BeholdMyGlory has quit (Remote host closed the connection). 04:08:28 -!- quintopia has quit (Read error: Operation timed out). 04:08:36 -!- quintopia has joined. 04:08:47 Linux 3.0 is out. 04:09:21 !python sum(['aaa','bbb','ccc']) 04:09:22 Traceback (most recent call last): 04:09:41 Is there any reason why sum doesn't work on any data type that defines '+'? 04:12:51 With the possible condition that it's order is not guaranteed if it's not cumulative, not associative or has side effects? 05:08:54 -!- atehwa has joined. 05:16:35 -!- zzo38 has joined. 05:17:05 I played D&D game today. Can you guess the number of each of our experience points (me and my brother) (including both individual and group XP)? 05:18:51 Yes. Do I have any decent chance of guessing correctly? No. 05:21:09 69? 05:22:17 No. More than 69. Note we have experience level 20 currently 05:22:42 And that it is not enough to go to level 21 05:24:18 zzo38: 19,0000 experience? 05:24:44 That is the starting experience for level 20. (Also the comma doesn't belong there) 05:24:48 Erm. 190,000, and why the hell did I do Japanese/Chinese grouping for that. 05:24:56 Yes. 05:25:01 That's the joke. 05:25:14 I meant the amount gained, not the total amount. 05:25:17 Though I wonder if that's actually doable in a single encounter. 05:25:26 Yes. 05:26:16 We don't use encounter experience anyways; the DM assigns XP based on other things, including encounters and other stuff 05:27:06 (But not the encounter experience table used in the book; instead XP is assigned based on what is achieved, meaning if an encounter is achieved then that counts too but based on achievements rather than encounter levels) 05:27:18 I suppose if you somehow stumbled across a vorpal sword at level one and then killed a deity, you could hit level 20. 05:27:38 pikhq_: No. Because we also use the rule no more than 1 level up per session. 05:27:52 zzo38: Lame. 05:28:05 And like I said we use achievement-based XP, not encounter-based XP. I prefer these differences in rules actually. 05:28:08 that is indeed lame 05:28:13 pikhq_: standard D&D rule is max 1 level per encounter 05:28:19 what if you decide to play twice as long one day 05:28:32 you have to arbitrarily break into smaller sessions? 05:28:35 quintopia: Then a session break is added at one point, when XP is counted 05:28:48 lame 05:28:52 coppro: Lame. 05:29:25 We use max 1 level per session, and I like it this way so do the other players and the DM 05:29:53 *Personally*, I prefer to have the DM arbitrarily do a level bump. 05:29:58 But that's just me. 05:30:28 So, XP is never counted except at the end of a session. You cannot level up during a session, even if there is a magic effect that adds XP to your total, in which case it is done immediately but does not level up until end of session 05:30:31 (I happen to dislike CR and experience costs) 05:30:52 I also happen to dislike CR. 05:31:07 Experience costs though, I don't dislike as much. 05:31:07 You can kill deities in D&D without being one? 05:31:11 Sgeo: Yes. 05:31:23 Sgeo: D&D deities are just extraordinarily strong beings. 05:31:24 Sgeo: Depends on the campaign too. 05:31:43 Presuming a "standard" setting; some settings can very well have omnipotent, immortal deities. 05:31:57 pikhq_: Yes. Depends on the campaign. 05:32:20 nearly every roleplaying game has an omnipotent immortal deity 05:32:31 Of course, in most RPGs everything can be modified by the campaign. 05:32:34 coppro: The DM? 05:32:55 pikhq_: yeah 05:35:57 Well, in Forgotten Realms, there is one metadeity (the book says it is a deity but I don't believe them) 05:36:49 Ao? 05:37:47 Yes, I mean Ao 05:38:54 Do you believe me or do you believe the book (or do you believe both)? 05:39:48 I'm inclined to call Ao the in-setting manifestation of the DM, personally. 05:39:53 Or a metadeity. 05:42:58 O, so you have your own opinion. That is OK, too. 05:44:48 I updated the pre-game copies of the character sheets on my computer since both of our character also speak Thesk language too. 05:46:24 (Since both of us are escaped slaves from the Thesk island, him a arena slave and me a magical assistance slave. We are saved by a dwarf who says we need to do them a favor or be dead by magic, but we don't even know what that favor is!) 05:54:18 -!- zzo38 has quit (Remote host closed the connection). 06:14:05 so i discovered visualboy advance emulator already contains an interframe filter.. i thought i was clever thinking of interframe filters for emulators the other day but clearly some movement has been made in that direction already 06:32:37 -!- oerjan has quit (Quit: Good night). 06:40:34 So. In Java you can mess with boxing with reflection. In Scala, a lot of language features use boxing "backstage" 06:40:50 I wonder what kind of tangled messes you can create with that kind of functionality. 06:44:48 (maybe "functionality" should be in quotes) 06:51:27 -!- Sgeo has quit (Ping timeout: 255 seconds). 06:55:33 -!- azaq23 has quit (Quit: Leaving.). 07:01:50 -!- Sgeo has joined. 07:27:42 -!- rodgort has quit (Quit: ERC Version 5.3 (IRC client for Emacs)). 07:28:05 -!- monqy has quit (Quit: hello). 07:28:09 ping 07:29:23 Ping ping here and a ping ping there and... I'm sure there's a song like that. 07:29:26 -!- rodgort has joined. 07:29:40 Undoubtedly 07:30:06 -!- CakeProphet has joined. 07:30:06 -!- CakeProphet has quit (Changing host). 07:30:06 -!- CakeProphet has joined. 07:50:53 -!- CakeProphet has quit (Ping timeout: 240 seconds). 07:52:51 -!- CakeProphet has joined. 08:22:46 -!- Taneb has joined. 08:38:55 -!- NihilistDandy has quit (Read error: Operation timed out). 08:40:06 -!- NihilistDandy has joined. 08:44:47 -!- Nihilist1andy has joined. 08:47:21 -!- copumpkin has quit (Ping timeout: 250 seconds). 08:47:45 -!- copumpkin has joined. 09:17:47 -!- CakeProphet has quit (Ping timeout: 240 seconds). 09:47:02 -!- copumpkin has quit (Ping timeout: 246 seconds). 09:47:38 -!- copumpkin has joined. 10:29:58 -!- shachaf has quit (Remote host closed the connection). 10:54:43 -!- CakeProphet has joined. 10:54:48 -!- CakeProphet has quit (Changing host). 10:54:48 -!- CakeProphet has joined. 10:58:06 -!- NihilistDandy has quit (Quit: leaving). 10:58:07 -!- Nihilist1andy has quit (Quit: leaving). 10:59:44 > map (\x -> join((+) `ap` (+x)) x) [1..] 10:59:45 Occurs check: cannot construct the infinite type: a = a -> b 11:00:03 > map (\x -> (+) `ap` (+x) x) [1..] 11:00:04 No instance for (GHC.Enum.Enum (a -> a)) 11:00:04 arising from a use of `e_11' at... 11:00:22 :t (+) `ap` (+3) 11:00:23 forall a. (Num a) => a -> a 11:00:43 > map (\x -> (+) `ap` (+x) x x) [1..] 11:00:44 Occurs check: cannot construct the infinite type: t = t -> a -> a 11:01:41 @pl (\x -> (+) `ap` (+x) x x) 11:01:42 ((+) `ap`) . join (join (+)) 11:01:54 :t ( 11:01:55 parse error (possibly incorrect indentation) 11:02:05 :t (\x -> (+) `ap` (+x) x x) 11:02:07 Occurs check: cannot construct the infinite type: t = t -> a -> a 11:02:07 Probable cause: `x' is applied to too few arguments 11:02:07 In the second argument of `(+ x)', namely `x' 11:02:26 uh... 11:02:31 :t (\x -> (+) `ap` (+3) x x) 11:02:32 Occurs check: cannot construct the infinite type: t = t -> a -> a 11:02:32 Probable cause: `x' is applied to too few arguments 11:02:32 In the second argument of `(+ 3)', namely `x' 11:03:04 ?ty ap (+) (+3) 11:03:05 forall a. (Num a) => a -> a 11:03:16 :t (\x -> (+) `ap` (+3) x) 11:03:17 forall a. (Num a) => (a -> a) -> a -> a 11:03:30 > map (\x -> (+) `ap` (+3) x) [0..] 11:03:32 No instance for (GHC.Enum.Enum (a -> a)) 11:03:32 arising from a use of `e_130' a... 11:03:36 and now that. 11:03:47 ?ty ap (+) ((+3) 0) 11:03:48 forall a. (Num a) => a -> a 11:04:43 :t (\x -> (+) `ap` (+x) x) 11:04:45 forall a. (Num a) => (a -> a) -> a -> a 11:04:50 @pl (\x -> (+) `ap` (+x) x) 11:04:50 ((+) `ap`) . join (+) 11:06:43 @pl (\x -> (+) `ap` (x+x)) 11:06:44 ((+) `ap`) . join (+) 11:08:24 huh? 11:08:45 > (+) `ap` 3 11:08:46 Overlapping instances for GHC.Show.Show (a -> a) 11:08:46 arising from a use of `... 11:09:03 :t (+) `ap` 3 11:09:05 forall a. (Num a) => a -> a 11:09:08 :t (+) `ap` 3 4 11:09:10 forall a. (Num a) => a -> a 11:09:34 um okay. 11:09:34 does anyone know whether there has been serious attempts at implementing a rewriter engine for undirected graphs? 11:10:12 not that I know of, it doesn't sound impossible at all though. 11:10:34 Weren't there some attempts at Eodermdrome implementation? 11:10:52 That's where the design of grrr died off, and that's where eodermdrome is lacking. 11:11:23 grrr was supposed to be "graph reduction renderer", to visually explore undirected (but labeled) graph rewriting 11:12:01 visualisation would be even more useful for eodermdrome, though. 11:12:47 From March of this year: 11:12:48 I am also totally disappointed at the lack of interest in my plans for an Eodermdrome implementations. 11:12:48 Phantom__Hoover: The language is cursed: people always just talk about implementing it, but never do. (Did oklopol have an eodermdrome thing or how was it?) 11:12:48 [2008-07-17 19:06:16] < oklopol> i implemented eodermdrome 11:13:29 hmmm 11:14:28 I have a vague feeling that oklopol's implementation was something incredibly slow. 11:14:51 I wouldn't be surprised 11:14:54 http://www.vjn.fi/pb/p565155612.txt 11:15:01 Hmm, no, that was just a running example. 11:15:02 CakeProphet: Caleskell has instance Num (a -> a), which can make some things confusing 11:15:53 Because basically, you can just brute-force the search for rewritable subnets 11:16:03 and that _is_ incredibly slow. 11:16:13 http://www.vjn.fi/pb/p646231414.txt <-- yeah, okay, so it's not quite an implementation of the language yet. 11:16:56 There might be later pastes too. 11:17:09 It's just that oklopol's not very good at sharing what he does with others. 11:18:29 I do recall wondering whether NAUTY would have been of any use in an Eodermdrome impl. 11:18:59 But it might be that it doesn't help in the subgraph isomorphism problem at all. 11:19:54 hmmm 11:19:56 There are of course other libraries too. 11:20:14 the esolang community has a great record of wasting work :) 11:20:45 Googling with the obvious words finds Python bindings for something called "VF" that speaks of subgraphs, isomorphisms, and has functions that start with "match", which is of course a good sign. 11:20:55 Haven't bothered to read any documentation. 11:21:40 it might be almost a comparable effort to find out whether some given program does what I was talking about, as to write the frigging program. 11:25:20 wow, seems I _have_ actually documented grrr partially 11:25:26 Maybe I'll have to add that to the wiki. 11:29:09 I've just made a surprisingly good BF Joust program 11:29:39 I'm all ears. 11:29:40 -!- mycroftiv has quit (Ping timeout: 264 seconds). 11:30:50 -!- mycroftiv has joined. 11:30:57 !bfjoust lowgate >>>>>>>>>([[-[++]]]>)*21 11:31:06 ​Score for Taneb_lowgate: 13.4 11:32:01 Not mad 11:32:12 Quite bad, though 11:32:29 why does it have double [[]] ? 11:32:52 So it doesn't commit suicide if it wins 11:32:56 The [++] loop may get locked if there is an odd cell 11:33:14 That would explain why it loses so often 11:34:19 atehwa: There's that GrGen graph rewriting systemajomatic -- http://www.info.uni-karlsruhe.de/software/grgen/index.php -- I suppose it's more commonly used with directed labeled graphs, but the feature list seems to suggest the edges can be undirected too. I don't know the details of the pattern-matching/rewriting language it uses though. 11:34:40 I'll translate my python system into JavaScript 11:34:50 So it's faster 11:35:02 Then, I'll learn C and translate it into that 11:35:05 fizzie: I just checked out NAUTY, and it is only partially applicable 11:35:17 because IIUC it does not search for subgraphs 11:35:37 Then my genetic program will RUE THE DAY 11:35:38 and brute-forcing subgraphs then checking for graph isomorphism is even worse 11:35:51 atehwa: Right. The VF library seems rather more applicable, but the website for that seems to be a bit down. 11:36:21 maybe the website has a difficult life situation :( 11:36:24 Taneb: That "fizzie_evo_4" on the hill has also been evolvamated. (Well, for some values of, anyway.) 11:39:03 VFlib seems to be a library of _graphs_ :) 11:40:00 I think that's just misleading body text. 11:40:20 yes, seems so. 11:40:56 http://portal.acm.org/citation.cfm?id=840896 describes what they use. 11:41:07 The library itself lives in some .it address that doesn't want to speak to me. 11:41:23 It's Italy, maybe it's on strike. (Who said the art of stereotypisms is dead?) 11:41:47 http://www.cs.sunysb.edu/~algorith/implement/vflib/distrib/ 11:42:40 That would involve untarballing a tarball to see what it has eaten, far too much work. 11:43:14 There is also http://www710.univ-lyon1.fr/~csolnon/LAD.html 11:43:21 well, it has the library and some documentation. But you need not bother, this was my quest originally anyway :) 11:43:59 LAD's based on a later-published algorithm than VF, so it's unambiguously better. 11:44:14 (I mean, they wouldn't have gotten it published if it were worse, right?) 11:44:46 LAD seems good, on the surface, at least :) 11:45:07 They do benchmark against VF. :p 11:45:50 LAD seems to be really minimalistic, too. 11:46:02 so it could be rather easy to extend. 11:46:18 -!- shachaf has joined. 11:50:44 although, it might not make sense to build a graph rewriting implementation on pure static subgraph isomorphism matcher, either 11:51:12 because different rewritings can fire others, and there's much room for optimisation there 11:51:23 but maybe it's a good starting point anyway. 11:53:05 oh. Seems LAD's algorithm might not be applicable to graph patterns where there are constraints that some edges _not_ exist 11:53:16 which is the case of eodermdrome "closed" nodes 12:00:56 This is a lot more interesting that I'd thought :) 12:05:06 Right, Eodermdrome matching is sort of between finding an isomorphic subgraph and an isomorphic induced subgraph. 12:05:22 yep 12:05:34 actually the matching rules for eodermdrome are smart indeed 12:06:13 it's a very nifty way to specify _two_ kinds of constraints on the graph. 12:06:34 namely, the existence of some arcs, and the absence of others 12:06:53 while still being able to leave the existence of some arcs as "don't care" 12:08:05 It's also very "intuitive" how to do the replacement, with the open nodes being the ones that are used to "hang" the new graph in place to the larger state graph. 12:08:47 this is super-perplexing 12:08:52 ? 12:09:04 python is caching something somewhere, and i have no idea where it's happening and how to turn it off 12:09:35 fizzie: true, although the rules make it impossible to disconnect arbitrary subgraphs 12:10:05 because in order to leave a node open, you have to mention it on both sides 12:10:27 and in order to mention two nodes on RHS, you have to connect them directly or indirectly 12:11:36 so anytime you want to disconnect a node from some other node, you have to close it - and that means it cannot have a subgraph behind it 12:12:31 but effectively, the rules of eodermdrome just enforce that the rewrite rules never even produce disjoint graphs. 12:13:04 cheater_: reload(module)? 12:20:26 yeah, except uwsgi doesn't reload the module on every refresh :p 12:20:32 i've fixed it tho 12:29:32 :/ 12:36:33 I keep typing undefined as underfined 12:36:49 Got an error message: underfined is not defined 12:37:02 Thought it was ironic until I realised my typo 12:37:25 @pl scanl f a = map (foldl f a) . inits 12:37:26 scanl = flip flip inits . (((.) . map) .) . foldl 12:45:35 I've translated my BFJoust interpreter to JavaScript 12:47:04 why would you do such a th--oh, cool. 12:49:55 I think Perl was the earliest language in the C family to have map and filter operators. 12:50:09 depending on when they were added. 13:09:07 @pl map f (x:xs) = f x : map f xs 13:09:08 map = fix (flip flip tail . (ap .) . flip flip head . ((.) .) . liftM2 flip (((.) . (:)) .)) 13:09:55 @pl map f ls = case ls of [] -> []; (x:xs) -> f x : map f xs 13:09:56 (line 1, column 26): 13:09:56 unexpected ">" or "-" 13:09:56 expecting variable, "(", operator or end of input 13:20:51 does anyone out there actually use F#? 13:20:58 have you guys ever used F#? 13:22:40 I don't know any F# users, no. 13:32:37 -!- copumpkin has changed nick to nmcblanket. 13:32:53 -!- nmcblanket has changed nick to copumpkin. 13:33:30 according to wikipedia it is a variant of ML 13:35:22 -!- BeholdMyGlory has joined. 13:37:46 The other sort of algebraic data type mentioned, "discriminated unions" (type-safe versions of C unions), can be defined to hold a value of any of a pre-defined type. 13:37:59 why does Microsoft have to rename everything terribly. 13:38:32 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 13:38:35 I actually heard someone use the term "managed language" in a conversation recently. 13:39:33 which I'm pretty sure just means that it runs on a virtual machine and is bytecode compiled. 13:39:53 but for some reason Microsoft has to define these new names for things and use those instead, as though it is different somehow. 13:43:09 The managed/unmanaged distinction is theirs, yes. 13:45:29 this person said they do not like managed languages. I ask them what they thought that meant 13:45:44 they said it means that it has "hidden code" such as garbage collectors. 13:45:45 As far as I understand it, managed code is anything represented in the CIL bytecode, though the runtime does not actually run that, it native-code compiles it. I guess it counts as a form of JIT. 13:45:49 I was like... are you serious? 13:46:42 This was spoken in the context of not liking managed languages. So in essence he was saying he doesn't like garbage collection or virtual machines. 13:47:04 infuriating, but oh well. 13:47:13 Well, I guess that's his prerogative? 13:47:17 indeed. 13:47:26 even if it is based on stupidity... 13:47:57 I asked him if he had any problem with using libraries, since this is "hidden code that could potentially cause bugs not in your own code" 13:48:01 he was ambivalent. 13:48:15 I'm sure there are still happy assembly coders who don't like any safety features either. 13:48:50 it's just the idea that using a garbage collector will somehow result in all of these bugs that you have no control over 13:48:58 it is a silly one. 13:49:10 Oh, I thought it was about the performance issue. 13:49:18 nope. hidden code. 13:49:27 causes bugs. 13:49:48 but if you "aren't new to programming" then manual memory management is practically bugfree.... 13:49:49 Just saying "hidden code" might equally well mean performance overhead. But I guess you were there. 13:49:57 Well, that is silly. 13:50:21 yeah, I was saying that manual memory management will result in /more/ bugs than using a well-tested garbage collector., 13:51:24 and his rebuttal was that experienced programmers don't have to worry about that. 13:51:27 or something. 13:51:38 I don't know. I am infuriated. :P I should stop remembering this conversation. 13:52:51 I can't wait to interact with these people in a work environment. 13:53:14 they will hate me because I will be all snobby about everything. :P 13:53:25 JUST WAIT. 13:53:33 a few years from now. 13:53:37 when I have graduated. 13:54:49 I wonder what language I will be programming in when I get a job. My money is on Java or C# if it's a software company. Or Javascript, PHP, Python if it's web programming. 13:55:26 People do serious web-things in quite a plethora of languages nowadays. 13:55:29 but there's a lot of possibilities, these are just common languages for those things. 13:55:32 yes. 13:55:47 Ruby or even Perl is a possibility for web programming. 13:56:09 ActionScript for sure 13:57:11 I once found a programming gig for SBCL (Lisp) 13:57:33 but I didn't have any qualifications for it, unfortunately. 13:57:53 I was looking forward to mind-numbing layers of parentheses. 13:58:17 SSH Communications famously (well, not quite) mentioned they use Scheme a lot in one of their job ads. 13:58:25 in possibly the oldest language that is still in common use. 13:58:55 in the form of dialects, granted. 14:01:24 -!- copumpkin has joined. 14:01:39 I once got a summer job at Nokia (well, their research side) for knowing Perl. Or maybe Befunge. 14:02:05 Perl is what they wanted done, but esolangs were discussed quite a lot at the interview. 14:02:05 lol, nice. 14:02:15 I should list my esolangs then. :) 14:02:44 I might list Lisp even though I don't really know it, lol. 14:03:01 meaning I don't comfortably know a common dialects idioms. 14:04:16 but I read SICP, so that counts for something. :P 14:05:01 fizzie: did they care about having any kind of work experience with Perl, or was just knowing Perl enough? 14:06:03 Well, they wanted someone who knew Perl, not just knew about Perl. But certainly no Microsoft Certified Perl Expert qualifications. 14:06:35 right, I'm just wondering how they verified such things. 14:07:16 By asking me, basically. 14:07:31 ah, cool. 14:07:40 this is promising. 14:07:45 There was no Perl quiz or anything, I mean. They just asked me how well I knew it. 14:07:54 because it means I can use knowledge of multiple languages in a job interview as an advantage. 14:07:54 Then I had to formulate some sort of an answer. 14:08:11 https://gist.github.com/1023982 oh god I'm gonna barf. 14:08:13 apparently fizzie has had too many fried beans today 14:09:29 http://www.rte.ie/news/2011/0722/oslo.html 14:09:30 Elizacat: what's wrong with that? 14:09:36 that looks perfectly reasonable to me. 14:09:42 There's been an explostion in Oslo. 14:09:58 a class with lambdas 14:10:02 that one really just made me puke 14:10:05 whoever does that needs to be killed 14:10:14 it's not that lambdas are bad 14:10:20 don't use them like THAT 14:10:21 it's just that Python's lambdas are bad. 14:10:36 I don't find lambdas very useful outside of functional programming languages 14:10:36 :P 14:10:54 well, when you can add multiple statements to it 14:10:55 it is. 14:10:59 python's lambdas aren't bad, they're just useless 14:11:09 I think this is a subset of "bad" 14:11:19 useless is bad. 14:11:19 cheater_, yet everyone whines when they are proposed for removal... :p 14:11:32 i would much rather like anonymous functions 14:11:40 nobody uses lambdas 14:12:04 yes, anonymous functions are lambdas technically. this is what I'm referring to. 14:12:31 but Python has a terrible way of delimiting blocks and so anonymous functions are syntactically difficult. 14:14:28 !perl print map {s/a/b/g;s/c/d/g;} "abcdefg" 14:14:29 Modification of a read-only value attempted at /tmp/input.11021 line 1. 14:15:12 lame 14:15:25 !perl print map {s/a/b/gr . s/c/d/gr;} "abcdefg" 14:15:25 Bareword found where operator expected at /tmp/input.11157 line 1, near "s/a/b/gr" 14:16:12 turns out I apparently don't know Perl 14:16:18 even though that's what I've been programming in for the past few months. 14:18:28 but anyways, point to be made is: Perl has anonymous subroutines. people use them. 14:18:50 the whole "lambdas are bad style" thing in Python is probably a result of lambdas looking ugly and being highly constrained in Python. 14:20:05 but hey, the lambda-only class definition actually doesn't look too bad. It's kind of fun to see how you could write a class functionally in Python. 14:21:17 -!- lambdabot has quit (Ping timeout: 240 seconds). 14:22:01 CakeProphet, not in python 14:22:21 CakeProphet, a lambda is an expression, in python a function can be multiple expressions, unlike in many languages that have lambdas 14:22:34 ...yes, I know how it works in Python. 14:22:39 it's because python is descriptive rather than declarative 14:22:51 or rather prescriptive 14:22:58 ...imperitive? 14:23:38 I don't think you describe computations in Python by how they "should" work 14:23:40 well, i think "imperative" does not focus on the important aspect of the difference between so called "imperative" languages and so called "functional" langauges 14:23:44 well, maybe you do that in all languages. I don't know. 14:23:59 i mean you can perfectly well say that python is an imperative, functional language 14:24:13 except it's not really all that functional. 14:24:25 functional means a function is a first class object 14:24:31 which it is, because you can manipulate functions 14:24:33 it has first-class functions. that's pretty much the extent of it. 14:24:48 i rather like to use "declarative" for what people call "functional" because you can say that the nature of those languages is that they say what things are, rather than how to build them 14:24:53 but it's not really a functional paradigm. but sure, it's functional. 14:25:01 that's the problem 14:25:07 that's why i say "declarative" instead 14:25:08 I suppose. 14:25:15 that makes sense. 14:25:35 and that's why i call "imperative" prescriptive, because it prescribes how to get something 14:25:35 but I think "has first class functions" is a very flimsy definition of a functional language. 14:25:55 i'd word your concern differently 14:25:56 not really what I connotate from the word functional. 14:26:07 "functional" is a very flimsy description of haskell, erlang, ocaml and lisp 14:26:47 C has first-class function pointers. is it functional? :P 14:27:01 i don't know C well enough to answer that question 14:27:15 I could write a map in C, it would just need an extra length parameter. 14:27:47 yeah but it wouldn't be declarative 14:28:28 I could write it recursively if that's what you mean. 14:28:46 you wouldn't declare the map function as its first argument applied to the head of the second, plus map applied to the first argument and tail of the second 14:29:15 yeah, but that's unnatural for the language, and wrong, because it would probably give you a stack overflow 14:29:33 without adding several more parameters it would also be in-place. 14:30:07 stack overflow depends on the length of the array and the size of the call stack of course. 14:30:13 yes 14:30:24 alternatively, if your recursion would just mean you pass the recursed function the pointer+1, then you're again iterating 14:30:38 which is not really declarative 14:30:43 but by your very weak definition of functional, C is functional. 14:30:51 i don't know 14:30:55 but i wouldn't be surprised? 14:30:58 if not declarative (aka what I consider functional to mean) 14:31:03 i mean in C you can have SMC 14:31:16 and you can create, modify, append, concatenate, and remove functions 14:31:26 you can copy and overwrite them 14:31:43 so to that extent, C is very much functional 14:32:00 it has even features no other languages have such as concatenation of function bodies 14:32:29 also, I don't really see the distinction between incrementing a pointer recursively as "iterating" and getting the head and tail of a linked list as being "declarative" 14:33:11 well let's think of it as an index, rather than a pointer, that starts at 0, then it's 1, 2, and so on 14:33:34 this index gives you, at any point, information about the global structure 14:34:00 it tells the body of the function "at this point, you are at the 60th element" 14:34:03 that is iteration 14:34:05 not really. 14:34:14 I can't go back to the 0th element from a recursive call. 14:34:26 with head/tail you can't 14:34:44 because you don't know where you are - your context always assumes that what you're passed is the whole thing 14:34:46 yes, also with recursive pointer increments and a length parameter, you cannot deduce where the start of the list is. 14:34:56 excuse me, array. 14:34:59 why can't you? 14:35:17 because it's not just an index, you can't just set it back to 0 14:35:26 and you have no other information to get you back to the original index. 14:35:40 the length parameter won't help you. 14:35:56 but that's what i was talking about 14:35:57 an index 14:36:01 my function is something like f(i, list, func) { list[i] = func(list[i]); f(i++, list, func); } 14:36:20 it's a reference to a location in memory, that I am shifting forward one location each recursive iteration. 14:36:36 similar to how a linked list works, but contiguous in memory. 14:36:56 of course, if you're given a pointer, then it would be f(start, size, list, func) { list[start] = func(list[start]); f(start+size, size, list, func); } 14:37:03 ok, i know what you mean 14:37:37 it's the same thing basically, that if the expressions have no side effects, then what you do in the recursion does not matter. The distinction between iteration and recursion is meaningless because they are equivalent. 14:37:44 but in what i just wrote you're still describing HOW to do something, instead of what you are getting 14:38:01 you're describing the action of going form list to map(list, func) 14:38:40 in haskell, you are describing the structure of map list func and you are describing it with the nouns "map", "list" and "func" 14:39:40 so maybe it's that in a prescriptive language basically you have nouns and verbs, in a declarative language you have no verbs 14:40:09 you don't "do to " 14:40:35 I use verbs all the time in Haskell. 14:40:38 instead you say " is an " 14:40:46 can you give me an example? 14:40:49 map... 14:40:56 map f over list 14:41:00 it's a command. 14:41:04 fold as well 14:41:05 well, that's just a way to read it 14:41:12 yes, as is your definition of nouns and verbs... 14:41:56 i would say, map paintRed fence = "a fence which is red" 14:42:09 you would say map paintRed fence = "a fence which has been painted red" 14:42:30 I suppose. I'm just saying a function is very much like a verb. 14:42:46 well, i wouldn't say so 14:42:54 i would say a function is just a parametrized value 14:43:14 when you define the function, you *declare* what it is 14:43:20 but when you use it, you are using it like a verb. 14:43:33 not really - when you use the function, you declare what the output is 14:43:40 y = f x 14:43:58 i declare y to be an x-ish f 14:44:12 "y is an f of subtype x" 14:44:18 this is just completely arbitrary. 14:44:26 to perspective. 14:44:32 > map (+1) [1..] 14:44:44 "hey computer, map this function over this list" 14:44:51 "a list of 1, 2, .. incremented by one" 14:45:13 where "incremented by" is an adverb 14:45:22 lol 14:45:38 so map isn't a verb, it's "a list of" :P 14:45:40 which is a nount 14:45:41 got it. 14:45:59 well, that's just what i think when i see map (+1) [1..] 14:46:12 the reason I say functions are like verbs is because they take arguments 14:46:18 similar to how language verbs have subjects and objects. 14:46:36 nouns are more like the constants. 14:47:05 this discussion resonates quite a lot with what i thought when i first started studying mathematics at the university and first started hearing how people actually talk about mathematical objects at work 14:47:14 adjectives and adverbs are also like functions in that they augment or modify existing things (aka their argument) 14:47:31 it was always a case of "function f is ...", never a case of "to get the value of function f, you do ..." 14:47:46 right, but functions /do/ things. 14:47:49 they compute 14:47:56 i differ 14:47:56 you declare them, by stating what they are, yes. 14:48:21 a function in mathematics is a constant value, with an argument, which is applied via the substitution principle 14:48:42 let's say you have your value q = 1+2 14:49:28 then you can have your value q(x) = 1+x, where what you do is you first take say q(100), then you expand it to 1+x, and then you substitute x := 100 14:49:29 but a function is also an abstraction of a computation. It maps one set of values to another set. 14:49:47 yes, but a map is a static object 14:49:52 it doesn't change, move, or run 14:49:55 it just is there 14:49:58 ...sure. 14:50:14 every function exists already in Functions 14:50:23 Functions is the set of all functions. :p 14:50:35 I'm not saying you describe functions by saying what they do. I'm saying that functions themselves describe an action. 14:50:52 there's a very important notion in mathematics that mathematical objects do not get created, they get discovered 14:50:59 they've been there all the time, behind your back 14:51:28 so in this way, the \Gamma function wasn't discovered, it was described 14:51:30 that's a philosphical point I don't think I necessarily agree with. At least not for every mathematical object. 14:51:43 er 14:51:51 *it wasn't created, it was described 14:51:55 to me it's just a system. it's arbitrary in its man-made rules. 14:52:02 can you name a mathematical object which was *created*? 14:52:13 no, you don't create concepts. 14:52:32 but you said you don't agree and that some objects were created 14:52:42 unless you were referring to something else? 14:53:21 I just don't believe they are discovered. As if they had existed this whole time. I believe they are constructed at which point they become defined. I don't think nature cares about our abstractions. 14:53:42 we just describe what already existed in nature with concepts we create over time. 14:53:48 so... I suppose I am saying they are created. 14:54:52 ah, instead i see it this way.. imagine you're in a huge town where you've never been, everyone speaks a language you don't know 14:55:07 you start out at some point and there are trees and you can punch them 14:55:24 you can go to places, and see new things 14:55:31 but they do not have to correspond to anything that actually exists. I could devise a completely arbitrary set of rules. would I have simply discovered that mathematical system or did I create it artificially? 14:55:34 if you remember the path to those things, that's your definition 14:55:44 however, those things were there before you have defined them 14:55:46 and if I discovered it, where was it hiding all of this time? :P 14:55:58 well why are you on that island first of all? 14:56:11 i mean what is your business there sir? 14:56:22 er, I wasn't referring to your metaphor, actually. 14:57:07 well, your set of rules is the pathway in your mental considerations of mathematics 14:57:24 which lets you arrive at the concept of that mathematical system 14:57:35 it was there, you just haven't ever taken this path before 14:58:17 it just seems somewhat arrogant to say that mathematics, which is inherently a human conception, somehow /is/ the innate properties of the universe, and not merely an artificial description. 14:58:42 ah, but mathematics has nothing to do with the universe 14:58:49 it's completely disconnected 14:59:05 trying to assign cosmical properties to mathematical objects is called physics 14:59:19 and then they only say that the mathematics in question are a model, not that they're the real thing 14:59:22 but I kind of associate existence with being a part of the universe.. 14:59:44 so basically what you are saying to me is that you can discover mathematical objects, but they don't really exist. 14:59:46 no physicist will tell you that the string theory is the nature of the universe 15:00:11 er, no 15:00:17 I don't know, existence is a tricky thing. 15:00:36 i'm saying that mathematical objects exist, and that they always have, and that they are not assigned to any physical objects. 15:00:42 right. 15:00:56 physical in the meaning of "tangible" 15:01:26 ideas exist, certainly. But how do you discover ideas? 15:01:39 they must be made by an intelligence being at some point. 15:01:50 *intelligent 15:02:22 (don't give me that platonic ideal crap :P ) 15:02:23 i would say that definitions can be made 15:02:30 there might have been no definition of the idea 15:02:39 which means the idea was outside of your holographic bubble 15:02:59 you can create a definition, by which you arrive at the concept 15:03:17 but the creation of the definition is a secondary concern, it's a means to an end: the concept 15:03:31 I don't know, I just find it strange to thing that the idea of freedom of speech existed before any intelligent life thought it up. 15:03:31 the concept, in itself, is what interests us, not the definition of it 15:03:45 s/thing/think 15:04:08 notice how even in english you can "have" an idea, but not "create" an idea 15:04:15 you have it, meaning you grasp it 15:04:22 it's in your hand 15:04:45 before, it was not available 15:04:56 sort of like a fruit high up on a tree 15:05:13 yes I can understand all of that. I just don't believe there's much distinction then, really. 15:05:23 well there is 15:05:31 what we are talking about is practically the same. because an idea might as well not exist until it is available to us. 15:05:42 because look at it: the definition of an idea is secondary to the idea itself, would you agree? 15:05:45 so... whether ot not it existed before someone thought of it is somewhat irrelevant. 15:05:52 the definition being our action of discovering the idea 15:06:43 I guess. This is just all too human-centered (or intelligence-centered, if you prefer) to really convince me that these things existed since the dawn of time. 15:07:04 ah, but look at it this way 15:07:15 the time interval known as a second has existed before humanity 15:07:29 it would be very egoistic to think that seconds have not existed before humans described them 15:07:49 the interval of time existed sure, but seconds as an idea didn't. 15:07:52 there were intervals of time of length one second before humanity! 15:07:57 well, anyways 15:08:27 what i'm trying to say is that the difference between the idea and definition is similar to the difference between declarative and prescriptive definitions 15:08:45 I... guess? 15:08:49 idea :: definition == declarative definition :: prescriptive definition 15:09:00 a prescriptive definition is that one step further from the idea 15:09:24 I will write a language that goes one step closer than declarative! 15:09:38 that would be neat 15:09:41 i wonder what that would be 15:09:42 where the ideas just exist without definition or something. 15:09:52 magic. 15:10:04 or impossible probably. 15:10:25 Impossible magic 15:10:26 hmmm, can I be an agnostic on the matter? 15:10:35 well you can see that a prescriptive definition could be improved 15:10:43 i wonder what the next step would be 15:11:14 i mean in prescriptive definitions, imo, we have verbs, nouns, and adjectives from which we make those definitions 15:11:16 we can't know if the idea existed before the point of grasping because it was not known to us before that point. 15:11:27 in declarative definitions we seem to have nouns and adjectives 15:11:33 can we do with just adjectives? 15:11:59 I don't think natural language makes a very good metaphor for programming languages. 15:12:01 can i say "x is five-element, rising, starting-with-one"? 15:12:15 would that be a definition for [1, ... 5]? 15:12:21 some of the worst ideas in Perl are based on natural language metaphor 15:12:41 I mean, they're comparable. 15:12:52 but sentences cannot have as deep of a structure as a program expression. 15:13:07 could you call this a "descriptive language"? 15:13:09 do the distinction between verbs and adjectives and adverbs as separate modifiers becomes more irrelevant. 15:13:26 descriptive, imperitive, or interrogative 15:13:48 no i mean this "adjectives only" language 15:13:52 oh. 15:13:53 can it be called "descriptive"? 15:14:01 uh, well, I would call any language descriptive. 15:14:08 because that is what language is for. 15:14:21 but really, if you define things with adjectives, you define everything by describing it, right? 15:14:43 yes. I can't really imagine how you would not describe something in a language. 15:14:50 how do I write an algorithm in C without describing it in some way? 15:15:37 well you construct things 15:15:39 By not using any comments? 15:15:48 in C you basically construct things 15:15:50 And obfuscating it loads? 15:15:57 yes, but I describe those constructions. 15:16:07 with elements of a language. 15:16:12 yeah but that's on meta-level to the language 15:16:16 don't mix those up 15:16:49 in C you say "take some flour, some eggs, some water, and baking powder, mix them together, and you have dough" 15:17:02 in haskell you say "dough is a micture of flour, eggs, water, and baking powder" 15:17:10 yes, you describe the steps. functions are descriptions of algorithms. 15:17:19 you don't describe the steps on haskell 15:17:27 indeed, you describe what it is. 15:18:11 basically what I am saying is that all languages are descriptive. You cannot have a language that does not describe something. 15:18:13 maybe not with dough, but with e.g. a milk shake it's not important if you first put the strawberries, the milk, or the sugar in the mixer 15:18:38 Unless you have a chocolate milkshake 15:19:07 which means that you don't need to be told the consequence of actions of putthing those things in the shaker 15:19:10 Taneb, heh 15:19:17 CakeProphet, yes, on a meta-level you're right, but you're again talking in terms of the meta-language, not the language itself 15:19:24 sure, C describes actions.. 15:19:33 but the language itself is actions. 15:19:47 or rather 15:19:53 a PROGRAM in C is actions 15:19:57 the language is a...... description of actions. 15:19:58 C is the description of those actions 15:20:02 yeah ok 15:20:09 that's good, we have converged there nicely 15:20:22 a haskell program is a declaration of objects 15:20:31 or items 15:20:38 The declarations are describtions 15:20:55 well, i wouldn't say so. 15:21:07 is a cookie dough recipe a description of a ready cookie? 15:21:14 the thing with declarative programming languages is that they still semantically perform computations 15:21:15 not so much 15:21:17 is it? 15:21:20 and I often prefer to think in this way when I am writing in them. 15:21:23 It is a description of how to make a cookie 15:21:30 yeah 15:21:36 but it's the cookie that interests us 15:21:37 Still a description 15:22:04 in C, you define cookie as "take dough igredients, put in dish one by one, stir, put on pan, bake in 180 degrees for 1 hour" 15:22:12 that's probably a very wrong recipe 15:22:30 It doesn't have any chocolate chips 15:22:47 but sometimes my approach is flawed. For example, using the approach of asking "how do I get the fibonacci sequence in Haskell", I would never think of the this definition 15:22:52 in haskell, you define cookie as "a heat-treated mixture of dough ingredients" 15:22:59 fibs = 0 : 1 : zipWith (+) fibs (tails fibs) 15:23:07 With chocolate chips 15:23:08 er *tail 15:23:33 CakeProphet, i'm not even debating the practicality of those families of languages 15:23:36 anyways, think about this 15:23:44 yeah I wasn't even debating with those statements. :P 15:23:52 in prescriptive and declarative languages, you *start out with something* 15:24:16 meaning that you have to have items, and from these items new items are generated 15:24:17 sure, can't make something from nothing. :P 15:24:24 or rather: new items are defined in relation from old items 15:24:26 well you sure can 15:24:57 it's sort of similar to a definition of a geometric complex 15:25:02 is that the right word? 15:25:11 let me quickly google 15:25:13 like a... building? 15:25:17 or do you mean like geometric series? 15:25:25 I think he means like a pentagon 15:25:38 to me "geometric complex" means a building. lol 15:25:51 geometric structure? geometric object? geometric construction? 15:26:00 The last one sounds right 15:26:04 those are all pretty synonymy 15:26:10 with complex. except object. 15:26:16 or better yet 15:26:20 let's talk about just sets 15:26:27 mathematics loves sets. 15:26:30 a convex set is simple to describe 15:26:30 sounds fun. 15:26:48 a convex set is the intersection of convex sets 15:27:04 a convex geometrical complex is even simpler to describe 15:27:12 it's an intersection of half-spaces 15:27:38 a half-space is a set where on one side of a surface it's full, and on the other side it's empty 15:27:38 don't you need to define certain sets as convex sets in order to actuall have any convex sets? 15:27:56 so you make a convex geometrical complex by taking a block of wood, and lopping off bits in straight cuts 15:28:09 nope, you don't need to 15:28:13 it was just an example 15:28:46 but the definition is recursive. I don't see how it could apply to anything if there's nothing that is innately convex. 15:28:58 exactly 15:29:01 " a convex set is the intersection of convex sets" <<< what :D 15:29:02 but it's declarative 15:29:22 right, but... it declares nothing. 15:29:39 that is true for any family of sets 15:30:02 NOT FOR CONCAVE SETS, SUCKER 15:30:09 is {1,2,3} a convex set? What are the convex sets it is an intersection of, and how are those sets convex? 15:30:28 CakeProphet, yeah, that was not a definition, it was just a picture i used 15:30:36 a visualization 15:30:44 look at the convex geometrical complex 15:30:50 oh so it's just a property of convex sets and not the definition. 15:30:53 it's defined as an intersection of half-spaces 15:31:25 i have defined half-spaces declaratively, and i have defined convex geometrical complexes declaratively 15:31:36 what was the point again? :P 15:31:40 well here's the thing 15:32:19 you can also define convex sets like this. it's a bit more complicated, but you define some starting sets, and then you can create all convex sets from them. 15:32:27 BUT 15:32:32 you can also define convex sets like this: 15:32:51 a convex set is a set which is convex 15:32:56 meaning, it has the property of convexity 15:33:02 lol 15:33:04 a test for the property of convexity looks like this: 15:33:10 a true statement is a statement that is true. 15:33:32 for any two points of the set, create a line segment between those two points. if the line segment is a subset of the set in question, then that set is convex. 15:33:48 this has to hold for all pairs of points. 15:33:57 the wording there isn't perfect :) 15:34:16 i understand that it looks banal right now 15:34:29 but once you start adding more and more adjectives you can e.g. define a torus, a sphere, and so on 15:34:44 my perfectionistic brain is formulating all kinds of nasty inconsistencies in your terribly non-rigorous definition. 15:34:50 (not really) 15:35:50 a ball is a set which is open and which has the property of neighbourhood, meaning that all points are within a neighbourhood to a special point called the center 15:36:18 " NOT FOR CONCAVE SETS, SUCKER" <<< a concave set is the intersection of concave sets, but i guess you meant convex sets are closed under intersection? so are the finite sets. 15:36:31 ice cream is delicious 15:36:39 however i am still starting with the definition of "set" 15:36:41 BUT! 15:36:56 in mathematics, you can lead everything back to the definition of a set 15:37:23 meaning that if you start out with any definition, it turns out it's just a bunch of sets glued together in special ways. 15:37:33 the "set" is the Ur-Element 15:37:45 it's what the whole world is made out of, in mathematics 15:38:11 in computer languages you have many non-equal Ur-Elements 15:38:11 yep, turns out stuff is just groups of stuff. 15:38:26 you have functions, integers, floats, etc 15:39:16 anyways, what i think i'm saying is that in a declarative language you define things with other things 15:39:16 typeglobs, don't forget those. 15:39:31 whereas in a descriptive language, you would define things without other things 15:39:48 i wonder if that's a good idea at all 15:39:55 the fiboncci sequence is...... 15:40:04 uh, what do I say now? 15:40:09 yeah, good question 15:40:33 let's look at it differently 15:40:48 let's talk about.. cars 15:42:24 in C you'd say to get a maserati GT you'd take a ferrari 430, you'd then change the body work, and then you'd furnish it with a nice interior 15:43:13 in haskell, you'd say a maserati gt is a ferrari 430 - bodywork - interior + new body work + new interior 15:43:27 actually in C a masterati GT is just a bunch of pointers. 15:43:38 and bytes. 15:44:00 in a descriptive language, you'd say a maserati gt is a car which is this and this long, it's this and this high, its dimensions are this and that, and its parts are made out of the following materials 15:44:25 basically, you have just defined a maserati GT without ever knowing that there's something called a ferrari 430 15:44:52 so to program descriptively is to program declaratively in a roundabout way. 15:44:53 of course, if your description is detailed enough, you will have defined a car which requires what we know as the ferrari 430 engine 15:44:59 well not really 15:45:12 because you can describe things imprecisely or more precisely 15:45:33 you could say "a ball is a set with the property of neighborhood" 15:45:48 and for most things, this will fit well enough 15:46:05 of course, for a real ball, d(B) = {} 15:46:14 whereas for our imprecise ball, d(B) = S 15:46:42 however, that's not really important if you're just using balls to, say, define what a 3-dimensional object is 15:47:09 i guess that's an improvement over declarative languages 15:47:56 a different example 15:48:06 persons 15:48:13 people :) 15:48:56 -!- FireyFly has joined. 15:49:07 you can say in C "to construct Joe, you take Chandler's sperm, and Monica's egg, you fertilize it, you grow the fetus in a womb, and then you let it mature for 30 years and you have Joe" 15:49:22 in Haskell you can say "Joe is the son of Chandler and Monica" 15:50:02 in a descriptive language you would say "Joe has medium-short dark hair, black eyes, of italian descent, is 30 years old, slightly overweight, and likes sandwiches" 15:51:49 > (`replicateM` "+-[]<>.,") >>= [0..] 15:52:23 in brainfuck, you'd say one of the strings that this Haskell program produces 15:52:31 I wasn't really sure how to work that in English so I did that instead. 15:52:41 +is Joe 15:53:57 i'm not sure how that is related. 15:54:06 i'm not saying it's unrelated, i just can't parse this. 15:57:47 -!- MDude has joined. 16:00:46 did i explain well what "descriptive" is? 16:02:17 Would it be wrong to improve other's BF Joust programs and submit them to EgoJoust as my own? 16:02:39 no it would be cool 16:02:49 -!- FireyFly has changed nick to FireFly. 16:03:02 Even if it was only an extremely minor improvement? 16:03:13 EVEN MORE SO. 16:03:14 lol 16:03:20 Oh, I'm feeling to guilty. 16:03:37 FireFly? I improved your BF Joust program "meh" 16:03:53 Heh 16:04:03 Do you want it? 16:04:13 Sure, why not 16:04:26 "->(+>->)*4([-]>)*21" 16:04:41 Your original stopped just short of the finish on the longest tape length 16:04:48 ah 16:11:11 You going to submit that, or can I? 16:12:09 well SOMEONE submit it already :\ 16:12:19 think about the children 16:12:46 !bfjoust fireflys_meh_improved ->(+>->)*4([-]>)*21 16:12:48 ​Score for Taneb_fireflys_meh_improved: 20.6 16:27:27 You could just.. you know, borrow it 16:27:29 I don't mind 16:27:50 and also rename it :P 16:36:29 How do I rename it? 16:36:36 And what should I rename it to? 16:42:37 -!- MigoMipo has joined. 16:42:39 -!- copumpkin has quit (Ping timeout: 276 seconds). 16:44:51 Hang on, switching computers 16:45:00 -!- copumpkin has joined. 16:45:34 -!- Taneb has quit (Remote host closed the connection). 16:50:56 -!- Taneb has joined. 17:03:20 I've adjusted my random BF program generator to only make ones with matching brackets 17:09:28 Well, apparently Python has a maximum recursion depth 17:09:30 Damn 17:10:17 Makes a ridiculously long error message 17:13:50 -!- calamari has joined. 17:19:19 While loops work almost as well 17:29:35 -!- augur has quit (Ping timeout: 240 seconds). 17:34:27 -!- calamari has quit (Quit: Leaving). 17:34:36 yeah python only does fail recursion 17:34:39 -!- augur has joined. 17:45:45 -!- Taneb has quit (Ping timeout: 252 seconds). 17:54:31 -!- zzo38 has joined. 17:59:03 -!- Taneb has joined. 18:00:23 -!- quintopia has quit (Ping timeout: 240 seconds). 18:03:30 -!- ais523 has joined. 18:04:49 -!- monqy has joined. 18:09:28 wow, that was an unexpected security update 18:09:34 arbitrary code execution in logrotate, of all things 18:09:36 Which one? 18:09:44 drivers/net/loopback.c is so strange... 217 lines... And absolutely no code related to handling packets at all. Just some statistics stuff and driver registering/deregistering code 18:09:45 wtf 18:09:53 zzo38: the Debian/Ubuntu package 18:09:54 ais523, what...? 18:09:57 ais523, how? 18:10:00 also vlc, but that's more plausible 18:10:15 Vorpal: giving it a malformed config filename on the command line 18:10:25 presumably it calculates its length wrong and does a buffer overflow, or something 18:10:37 ais523, so it requires root then basically on normal setups? 18:11:00 I'm not too worried then. No obvious way to use this for privilege escalation. 18:11:39 Vorpal: indeed, it seems not to be suid 18:11:40 so it's probably OK 18:11:45 There was a privilege escalation bug in logrotate earlier. 18:11:50 Though not in the default configuration. 18:12:02 fizzie: I assume it has some SUID configuration? 18:12:25 "A shell command injection flaw was found in the way logrotate handled the shred directive. A specially-crafted log file could cause logrotate to execute arbitrary commands with the privileges of the user running logrotate (root, by default). Note: The shred directive is not enabled by default. (CVE-2011-1154)" 18:12:31 -!- Taneb has quit (Ping timeout: 252 seconds). 18:12:34 Though you'd still need to be able to craft that logfile. 18:12:46 I don't know how specially it would need to be crafted. 18:12:59 I.e. would it be enough to just write a user-agent field in an apache log or something. 18:13:04 they never do say, for good reason 18:14:08 The summary may also be a bit misleading; from the CVE overview it looks like you'd need to put shell metacharacters in the log file name itself. 18:14:28 So just being able to insert stuff in a logfile wouldn't be enough. 18:14:37 is logrotate written in shellscript? or just uses the shell to do some of its commands? 18:15:07 "The shred_file function in logrotate.c in logrotate 3.7.9 and earlier might allow --" 18:15:14 So the latter. 18:16:09 my mind immediately went "bash has functions, and a .c extension doesn't necessarily mean anything" 18:16:12 but I admit you're probably right 18:16:35 The "shred" configuration directive causes it to use an external command for supposedly-secure log file deletion. 18:16:46 I guess it was passing the log file name to that without worrying about metacharacters. 18:17:15 And did it in a systemy fashion and not an execy one. 18:17:18 -!- BeholdMyGlory has quit (Remote host closed the connection). 18:17:33 Depends whether it goes through the shell parsing and whether the filename starts with - 18:17:56 ais523, hm.... echo -n '#!/bin/bash\n...' > foo.hs 18:18:09 err 18:18:11 echo -e 18:18:13 not -n 18:18:15 duh 18:19:10 -!- BeholdMyGlory has joined. 18:20:23 One thing you can do on shebang lines is to type -- after the name of the program, at least, is my idea. But modern kernel don't do suid with #! scripts anyways... but I still type -- when a shell script meant to be run on root account anyways 18:34:36 Vorpal: don't you need both? 18:34:43 echo has to quote its command line literally if the first arg isn't -n 18:34:54 so in POSIX mode, you have to do -n -e in order to get escaping with GNU echo 18:35:17 ais523, heh 18:35:22 ais523, I didn't know that 18:35:26 ais523, what about -ne? 18:35:33 I think they have to be separate 18:35:48 (POSIX leaves -n's behaviour impl-defined; GNU echo defines it as "suppress final newline and also accept the -e option") 18:36:05 ais523, implementation defined? Seriously? 18:36:14 Vorpal: there's a lot of impl-defined stuff in POSIX 18:36:17 ais523, so... what do other echos do with -n 18:36:28 Vorpal: some echo it literally 18:36:41 heh 18:36:57 Vorpal: That's the traditional UNIX behavior. 18:37:07 I've been discovering all sorts of interesting things about POSIX recently 18:37:13 such as mount(2) being nonstandard 18:37:23 it's Linux-specific; I certainly didn't expect that 18:37:23 pikhq_, so why did POSIX say that -n was implementation defined at all? Why not just don't have it? 18:37:35 Vorpal: because some echos do suppress final newline on -n 18:37:40 ais523, afaik mount(1) is non-standard too 18:37:51 Vorpal: Echo cannot accept arguments. 18:37:59 pikhq_, yes it can... -n :P 18:38:04 Vorpal: mount(1) isn't a syscall, so I didn't look at it 18:38:07 Vorpal: No. 18:38:18 Vorpal: POSIX forbids echo from accepting arguments. 18:38:20 pikhq_, according to ais523 and POSIX? 18:38:34 Vorpal: It also leaves "-n" implementation-defined. 18:38:38 right 18:38:47 Vorpal: But it's not an argument. 18:38:48 pikhq_, which leaves a way open for it to accept options :P 18:38:52 oh, so it doesn't take -n as an argument, it takes it as a string that might cause it to act differently 18:38:57 hehe 18:39:01 ais523: Precisely. 18:39:09 ais523, though at least freebsd has mount(1) I know. Probably a few other *nix too 18:39:26 Vorpal: mount(1) is available in pretty much every UNIX. 18:39:29 I imagine most *nix do, because the FHS is written in a way that expects mount(1) exists 18:39:34 so I'm pretty surprise it isn't standard 18:39:51 and I'd expect mount(2) to exist in a range of Unices too, just because mount(1) has to do the mounting somehow 18:40:05 pikhq_, hm. what is the difference between POSIX and Unix exactly? The SuS I guess? But I haven't seen that for ages 18:40:21 Vorpal: POSIX is a "portable operating system" specification. 18:40:36 pikhq_, where is Unix defined then, the extra bits like mount(1) and so on 18:40:37 Vorpal: UNIX is a class of operating systems which generally meet the above spec. 18:40:44 Loosely defined. 18:40:52 for instance, I think Cygwin aims to be POSIXy, not UNIXy 18:40:57 pikhq_, Single Unix Specification, remember seeing that somewhere... 18:41:04 but that was like years ago 18:41:06 btw, I went and wrote my own statically-linked version of true(1) 18:41:08 and straced it 18:41:11 2004 edition or something 18:41:14 The SUS is a strict superset of POSIX. 18:41:17 ais523, and? 18:41:21 any guesses as to which syscalls it uses? (it uses three of them) 18:41:30 pikhq_, I haven't seen any SUS for POSIX.1-2008 yet 18:41:38 err, four, I think there's a call to brk in there too 18:41:39 ais523, well exit is one 18:41:44 Vorpal: It exists. 18:41:46 yep, that's the obvious one 18:41:51 SUSv4. 18:42:01 it also uses mmap (presumably startup code getting memory) 18:42:03 pikhq_, isn't that for the 2001 version? 18:42:06 and uname, which is the WTFy one 18:42:08 ais523, hm. 18:42:15 yeah wtf 18:42:17 You could make "true" and "false" programs shell builtins or write them as programs using machine code, it would not be too difficult to do on each machine; you can also have a C version of the program in case using on computers that it hasn't been ported yet. 18:42:32 Vorpal: No, that's v3. 18:42:33 zzo38: true generally doesn't need to be massively optimised 18:42:39 although I'm a little unsure as to what it's doing calling uname 18:42:40 Also, mount is not SUS. 18:42:41 zzo38, it is a shell built-in in bash 18:42:50 $ type true 18:42:50 true is a shell builtin 18:42:51 and this is a version of true I wrote myself, it called no functions 18:42:55 same for false 18:42:58 -!- Taneb has joined. 18:42:58 Vorpal: $ type `which true` 18:43:06 ais523, yes, it is that as well 18:43:11 I know 18:43:14 Of course it doesn't *need* to be massively optimized, although it can be done so easily since you don't need all the C stuff and so on. 18:43:22 zzo38: You need to be able to exec true and false in POSIX. 18:43:23 $ type `which true` 18:43:23 /bin/true is /bin/true 18:43:24 Hello 18:43:27 happily, ls isn't segfaulting any more 18:43:27 (silly output) 18:43:44 I think I may actually have found a kernel bug; my statically-linked version of cat ended up with two stacks at one point, which overlapped 18:43:59 Vorpal: Also fun: there is precisely one file guaranteed to exist in POSIX. 18:44:02 but it's hard to tell, because what I was doing was insane 18:44:03 ais523, how? 18:44:04 Vorpal: /dev/null. 18:44:04 -!- copumpkin has quit (Ping timeout: 264 seconds). 18:44:07 I'll see if I can reproduce it standalone 18:44:07 hm 18:44:13 pikhq_, :D 18:44:23 Vorpal: it turns out that Linux doesn't like you mmaping to the stack guard page 18:44:30 ais523, I can imagine that 18:44:31 pikhq_: Yes you can just make a machine code file. Such optimization is not particularly important although it can be done very easily. 18:44:34 -!- copumpkin has joined. 18:44:35 ais523, why the fuck would you even do that 18:44:35 (the page before the stack that's unallocated so stack overflows can cause segfaults) 18:44:45 Vorpal: well, nothing was using it... 18:44:57 but it reacts to it by allowing the map and shrinking the stack one page 18:45:00 (You might even be able to store the program in the ELF header, and this can be done for some other programs too) 18:45:02 Damn 18:45:02 pikhq_, where is /dev/zero defined btw? I kind of relied on that in some shell scripts I think. Nothing to serious if the file is not there 18:45:10 Just wrote =+ 1 instead of += 1 18:45:13 the bug seems to happen if you do it repeatedly, after doing it twice I ended up with two stacks of different lengths, according to /proc/self/maps 18:45:28 Vorpal: well, nothing was using it... <-- were you out of other available pages to mmap? 18:45:33 Vorpal: no 18:45:38 Plus side is, I have ice cream 18:45:44 ais523, did you even *need* to specify a specific address to mmap it at? 18:45:45 but I'd written "mmap the last available page before the stack", without thinking of implications 18:45:48 and yes, I did 18:45:54 Vorpal: Traditional behavior. 18:46:01 ais523, why on earth? Hardware related? 18:46:03 although the exact value didn't matter, I needed to specify something 18:46:06 and no, not because of that 18:46:10 ais523, then what 18:46:18 pikhq_, ouch 18:46:20 this program is insane, I thought you'd realised that by now 18:46:32 I mean, how else can you make ls segfault? 18:46:34 ais523, how soon until you can tell us what on earth it does 18:46:42 Vorpal: when I've finished it) 18:46:42 It's also LSB. 18:46:51 s/\)// 18:46:54 Along with /dev/tty, and *nothing else*. 18:46:56 The reason they purchased ice cream is because ice cream is good to eat and anyways they don't sell cane. O no, their mother will get mad at them when they get home. 18:47:00 ais523, any idea when that is? next week? next month? next year? in 10 years? 18:47:14 about a week of actually working on it 18:47:19 and I probably won't work on it continuously 18:47:22 ais523, You are making interest sky rocket when you keep mentioning it like this :P 18:47:27 Vorpal: I know 18:47:40 btw, what API does X use to actually draw on screen? framebuffer? 18:47:46 ais523, I will be feel very let down if it isn't something spectacular! 18:47:55 ais523, I presume it depends on the driver. 18:48:01 hmm, that makes sense 18:48:07 annoying, but makes sense 18:48:11 I don't want to have to reimplement X too 18:48:13 ais523, for most drivers, part is done in kernel 18:48:25 ais523, not only for binary drivers 18:48:34 reimplementing init was easy, reimplementing mmap only took a day or so (because I hadn't realised that ASLR was turned on, and then it took me a while to figure out how to turn it off for just one process) 18:49:28 ais523, my guess for something like nvidia binary driver would be that it mmaps a range of shared pages with the kernel module... And what the kernel does is hard to know, some DMA thing probably 18:49:40 ais523: The fuck are you *doing*? 18:49:52 pikhq_: it's a secret for now 18:50:01 ais523, I would presume a similar setup for most other drivers 18:50:09 at the moment specifically, I'm making a list of all the syscalls in Linux and sorting them into categories 18:50:10 ais523, at least all that have hardware acceleration 18:50:34 ais523, somehow I can't imagine controlling a screen by PIO using syscalls for each written byte :P 18:50:35 Anyways, *most* Linux X drivers are actually going through the DRM layer. 18:50:36 Linux actually has undocumented syscalls, but from a grep of the kernel, they all appear to do nothing 18:50:42 Which is not even *slightly* X-specific. 18:51:00 ais523, undocumented ones such as? 18:51:03 what I'm trying to do with that is to confuse X into thinking it's talking to the kernel, when in fact it's talking to a usermode process 18:51:08 and to grab its output/input 18:51:14 Vorpal: let me check 18:51:29 ais523: Um, good luck in the general case. 18:51:37 Vorpal: _newselect 18:51:40 pikhq_: indeed 18:51:47 ais523, that uh... How would you grab it's output? That doesn't even make sense. Use a X server that targets vnc or such instead. Much saner 18:51:55 ais523: It's effectively a kernel-mode process for some drivers. 18:51:56 I seen some of those 18:51:57 I'm trying to work out whether it's easier or harder than reimplementing X 18:52:21 ais523, just reuse an X server that uses vnc as backend 18:52:23 that exists 18:52:30 There is also Wayland, although in my opinion neither X nor Wayland is designed perfectly. 18:52:35 hmm, that might be worth considering 18:52:39 Namely, anything where it needs to have the GPU's framebuffer mmaped. 18:52:59 ais523, I assume you don't care about hardware acceleration anyway... Because that will be impossible in your setup. 18:53:03 what about SDL? it appears to use framebuffer as a fallback (I actually ran Wesnoth on the control-alt-F1 console, although I had to be root), but I can't figure out what it's using as its first choice 18:53:10 Vorpal: I do care, I want to make sure it isn't being used 18:53:18 ais523: Depends on environment variables. 18:53:26 ais523, then the vnc variant should work :P 18:53:28 hmm, good to know 18:54:02 ais523, I believe there is an x11-framebuffer server too 18:54:12 forgot what it was called 18:54:21 the one thing I've pretty much admitted defeat on is UIDs, I don't think you can namespace those in Linux 18:54:44 Vorpal: well, if everything went through framebuffer, then it'd make life easier, as framebuffer is just the one character special device 18:54:47 to implement 18:54:48 pikhq_, do you know where the code for the loopback interface is in the kernel? It isn't drivers/net/loopback.c, at least not for the actual packet handling... 18:55:24 ais523, that is just one X11 backend though. You are not going to pull this off for the general case. 18:56:20 it doesn't need to be the general case wrt X backends 18:56:22 just wrt programs 18:56:25 Meh, a conforming C environment is permitted to make X just summon nasal demons, anyways. 18:56:37 most programs don't care about the backend, just the frontend 18:57:14 What I would think can be good is to have a SDL-like interface, where you have different windows and the window manager owns the root window and can intercept things from the child windows and do some other stuff. And can also have clipboard buffers such as PRIMARY, SECONDARY, CLIPBOARD. The "screen size" is actually the size of the window 18:57:22 ais523, well as long as you don't plan to get nvidia-settings, catalyst-control-center or other similar softwares running :P 18:57:34 Vorpal: heh, I think I'll give a miss on nvidia-settings 18:57:39 Vorpal: Nasal demons. 18:57:41 I don't think I'd expect that to work 18:57:43 Vorpal: :) 18:57:47 even ping(1) I'm putting off for later 18:57:57 pikhq_, right 18:58:17 ais523, hm shouldn't be TOO hard in 3.0 what with the new SOCK_ICMP thingy 18:58:48 yep, it's doable, it's just not a priority 18:58:55 ais523, http://kernelnewbies.org/LinuxChanges#line-69 18:58:58 the problem is simulating the other end of the connection 18:59:08 to get it to send the pong 18:59:09 ais523, what the... 18:59:38 ais523, you know what might be easier? Running two linux in qemu and set up a virtual network between them 18:59:45 linux instances* 18:59:48 It should do so that you can run Linux properly with various devices but not needing any proprietary drivers running on the CPU. 19:00:09 (And not even included in the system) 19:00:37 Vorpal: well, yes, that seems like the simplest method 19:00:46 ais523, I'm pretty certain you are doing some sort of layer-above-kernel to virtualise or emulate user space programs, making them not know what their environment is 19:00:58 I don't know why you are doing it this insane way you are doing though 19:01:08 so probably I have missed some important thing here 19:01:13 Vorpal: yes, that's a decent description for what I'm doing, although it doesn't explain why 19:01:19 as you've noted 19:01:51 Is there USB Plan 9 Protocol drivers for Windows and Linux? (and also FreeBSD and Mac OS X) 19:02:12 ais523, oh there are plenty of reasons, I just don't know which one. Could be as a security measure for example. Or for running older software. Or for a controlled testbed environment (the "simulating the other end of the connection" bit seems to point at this) 19:02:19 and there are plenty of other options 19:02:50 ais523, that "always pid 2" points towards a controlled reproducible testbed environment too 19:03:01 Are there any USB devices that use Plan 9 Protocol? 19:03:08 zzo38: I doubt it 19:03:13 .... what 19:03:15 Plan 9 isn't all that popular among hardware manufacturers 19:03:24 wouldn't USB devices use the USB protocol? 19:03:38 I mean, how the fuck would it even work otherwise 19:04:18 Vorpal: No, I mean using the Plan 9 Protocol on top of the USB protocol. 19:04:36 -!- Phantom_Hoover has joined. 19:04:39 zzo38, on top of which USB device type protocol? 19:04:50 I mean it defines things like mass storage, HID, and so on iirc 19:05:09 hm I guess there is some type reserved for "vendor specific" 19:05:12 I don't know, maybe it is necessary to add a new device type (or maybe not) 19:05:51 Or as an alternate data on top of an existing protocol depending on the device (if this is possible) 19:06:19 no idea 19:06:49 Because I think they should be designed any new kind of USB device, instead of using proprietary protocols you can use Plan 9 Protocol instead. 19:08:01 Does Plan 9 even have a driver for using Plan 9 Protocol on USB? 19:08:18 what /is/ the plan 9 protocol exactly? 19:08:56 Vorpal: It's Plan 9's remote filesystem protocol. 19:09:05 And, being Plan 9, therefore Plan 9's remote everything protocol. 19:09:15 pikhq_, so not suitable for general purpose USB really? 19:09:20 Sure it is! 19:09:25 pikhq_, what about interrupts? 19:09:29 Remember, everything is a file. 19:09:40 For reals. 19:10:00 pikhq_, yes I know. But what about interrupts, suspending the usb bus, and so on 19:10:29 Dunno. 19:14:20 * Phantom_Hoover notes that Dresden Codak remains on the tenth strip of an arc that began over a year ago. 19:14:30 Hmm. 19:14:39 I want to try OS/2 Warp now 19:16:40 * pikhq_ notes that Dresden Codak has the worst update schedule. 19:16:52 pikhq_, ah, I see your mistake. 19:17:01 You are assuming that there *is* an update schedule. 19:17:10 Phantom_Hoover: That is the worst update schedule. 19:17:38 pikhq_, can it be called an update schedule if there are no updates? 19:17:42 pikhq_, what about that webcomic that elliott talk about. That hardly ever updates? 19:17:52 I forgot what it was called? 19:17:52 Perry Bible? 19:17:57 s/?// 19:18:02 Phantom_Hoover, I think it had Torvalds in it 19:18:19 and RMS and so on 19:18:22 Oh, Everybody Loves Eric Raymond. 19:18:36 Phantom_Hoover, that hardly ever updates either 19:18:39 The one which, when it updates, will be the harbinger of the apocalypse. 19:18:49 right 19:19:11 my point was, that must be a worse update schedule 19:20:39 You are making the same mistake. 19:20:56 For there to be an update schedule, updates must, at some point, come out. 19:21:06 Phantom_Hoover, it is an update-schedule: int days_to_next_updates = random() 19:21:16 can't they be scheduled to come out once every ten years, or whatever? 19:21:18 You could just as well ask the update schedule of a banana. 19:21:21 Vorpal: what's RAND_MAX on your system? 2^32-1? 19:21:31 ais523, well random returns a long int on my system 19:21:35 hm 19:21:42 ais523, rand() != random() though 19:21:47 oh, right 19:21:49 different types on return value 19:21:55 ais523, indeed, but to infer this two updates ten years apart would have to have come and less than ten years would have had to have passed since the last. 19:22:36 Phantom_Hoover: what if it was stated rather than inferred? 19:23:05 ais523, then it would only be worth considering if it was not completely at odds with the evidence. 19:23:26 random() in POSIX is said to return in the [0, 2^31-1] range. 19:23:33 hm 19:23:51 Admittedly, as it stands, ELER is scheduled to update on 21st December 2012. 19:23:52 While rand() returns from 0 to RAND_MAX, and RAND_MAX >= 32767. 19:23:54 ooh, thanks for linking me that page about changes in 3.0 19:24:14 setns() looks... useful for what I'm doing 19:24:22 although the workaround with clone() flags is working well for me so far 19:24:25 ais523, lol 19:25:00 ais523, I presume you are using ptrace for this? To be able to catch system calls happening 19:25:07 indeed 19:25:19 I tried single-step but it was too slow 19:25:28 ais523, that still doesn't deal with stuff like me opening /dev/console and doing ioctls on it 19:25:36 I have a program that does that even 19:25:39 I'm going to have to, umm, reimplement all of /dev 19:25:50 except /dev/null and /dev/zero, those were easy 19:25:58 ais523, fun. ALSA is going to be very very latency sensitive :P 19:25:59 as the existing devices work for those 19:26:07 ais523: Add /dev/tty and you will have reimplemented everything a LSB application can use. 19:26:10 :) 19:26:15 pikhq_: LSB? 19:26:20 pikhq_, what, really!? 19:26:21 Linux Standard Base. 19:26:24 -!- oerjan has joined. 19:26:29 oerjan, hi 19:26:36 Vorpal: Yes, really. 19:26:38 I'm probably going to make a pty and connect stdout/in/err to it 19:26:43 I may as well place it at /dev/tty too 19:26:51 you can copy ptys just by copying device numbers, right? 19:26:52 what *is* /dev/null btw? 19:26:55 hi Vorpal 19:26:58 Vorpal: EOF 19:27:04 pikhq_, and that isn't in LSB? 19:27:04 Vorpal: it's a character special file, reads always return EOF, writes always succeed but do nothing 19:27:15 Vorpal: /dev/null, /dev/zero, and /dev/tty are in LSB. 19:27:17 ais523: Don't forget /dev/full. 19:27:18 and why on earth is /dev/full useful? 19:27:23 Vorpal: for testing programs 19:27:26 aha 19:27:32 /dev/bull 19:27:34 Vorpal: That is the entire contents of the LSB /dev hierarchy. 19:27:34 you can redirect stdout to /dev/full, and see if they behave gracefully or stupidly 19:27:54 $ cp /etc/passwd /dev/full 19:27:56 cp: writing `/dev/full': No space left on device 19:28:18 it's a great way of checking to see if people are checking the return value of fclose() 19:28:19 ais523, hm... there are some devices in my /dev that would be very hard to do in user space 19:28:35 Vorpal: well, it depends on if people are actually using them 19:28:39 pikhq_, what about /dev/urandom? 19:28:46 I'm starting off with an empty /dev, and implementing things in it as necessary 19:28:50 ais523, /dev/random and /dev/urandom will be easy too 19:28:55 oh no they won't :) 19:29:06 ais523, ... definitely testbed :P 19:29:32 I thought of putting /dev/zero at each of them, but I'm worried some programs will go into infinite loops if their randomness sources do that 19:29:36 ais523, /dev/snapshot, /dev/vga_arbiter /dev/rtc0, /dev/sda 19:29:48 Make /dev/random return this: 19:29:52 ais523, of course if you don't want to implement fake "running as root" it will be way easier 19:29:53 /dev/sda is easy, it's readable only by root 19:30:00 and I'm not faking running as root 19:30:03 > map (%256) [0..] 19:30:10 partly because root can trivially escape a chroot 19:30:12 Vorpal: Nope. 19:30:20 (mkdir x; chroot x; cd ..; chroot .) 19:30:26 ais523, then you make a lot of system calls return EACCESS or similar 19:30:28 lambdabottttt 19:30:31 ;a; 19:30:31 lambdabot is missing? :( 19:30:34 I think that mechanism of escaping chroots is in there deliberate 19:30:38 *deliberately 19:30:43 Vorpal: I'm not emulating every system call 19:30:46 just tinkering with their params a bit 19:30:49 and return values 19:30:58 ais523: Stallman didn't design the chroot syscall. 19:31:00 ais523, I see... 19:31:19 Lymee: you can use EgoBot, although it is a bit different, and has trouble with infinite list output (so use take to shorten it) 19:31:22 ais523, also /proc/self will be fun 19:31:42 ais523, especially the very weird symlinks found in there... 19:31:43 Vorpal: that's one of the few things I have workign correctly already 19:31:54 You know, NOMW could be made Turing-complete (or whatever the probabilistic equivalent is) using a crossover square, I think. 19:31:55 Lymee: oh also % won't be imported by default 19:31:56 in fact, I'm catting things in /proc/self in order to test my program 19:31:58 ais523, what? symlinks to removed files in /dev/fd wortk? 19:32:00 work* 19:32:11 Say that if a square is +, then a bobule can enter it, but it cannot leave by a 90-degree angle from the way it entered. 19:32:15 did you know that Linux allows you to mount multiple proc filesystems /that give different results/? 19:32:19 !haskell take 80 $ map (Ratio.%256) [0..] 19:32:24 ​[0%1,1%256,1%128,3%256,1%64,5%256,3%128,7%256,1%32,9%256,5%128,11%256,3%64,13%256,7%128,15%256,1%16,17%256,9%128,19%256,5%64,21%256,11%128,23%256,3%32,25%256,13%128,27%256,7%64,29%256,15%128,31%256,1%8,33%256,17%128,35%256,9%64,37%256,19%128,39%256,5%32,41%256,21%128,43%256,11%64,45%256,23%128,47%256,3%16,49%256,25%128,51%256,13%64,53%256,27%128,55%256,7%32,57%256,29%128,59%256,15%64,61%256,31%128,63%256,1%4,65%256,33%128,67%256,17%64,69%256,35%128,71%256,9%32 19:32:29 ais523, yes, all that fancy namespace crap 19:32:32 um 19:32:33 that's what I'm doing 19:32:34 ais523, my kernel is compiled without it 19:32:41 because to me, it is useless 19:32:44 well, you won't be able to run my program then 19:32:46 it's pretty useful to me 19:32:49 !haskell take 80 $ map ((flip mod) 256) [0..] 19:32:52 Boom, transistors. 19:32:52 ​[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79] 19:33:00 ais523, well if you tell me what your program is I might recompile the kernel :P 19:33:05 heh 19:33:07 Lymee: you can use (`mod` 256) 19:33:15 those options are on by default, right? 19:33:17 -!- elliott_ has joined. 19:33:19 ais523, btw, have you check if plash does what you want? 19:33:23 othewrise everyone will have to recompile their kernel 19:33:31 ais523: oh, have you revealed what it is? 19:33:36 no 19:33:39 ais523, uh no idea. I incrementally updated my .config over the years 19:33:45 Vorpal's been guessing, and come to similar conclusions to you 19:34:04 elliott_, no but he leaked enough and I'm pretty certain he is doing something like virtualisation or emulation of user space programs 19:34:15 that's the obvious part 19:34:23 "for what purpose" is the part I guessed at 19:34:24 elliott_, *probably* for some sort of controlled reproducible test bed system. 19:34:50 that is a good description, although I don't mind you figuring out that part, because it's reasonably obvious and not the whole thing 19:35:02 elliott_, since it seems he wants to emulate remote network (wrt ping) and /dev/urandom "wouldn't be easy" 19:35:07 no, I don't 19:35:10 Don't you hate it when you try to do something awesome, then realize it's completely mathematically impossible? 19:35:11 I turned off networking so I wouldn't have to do that 19:35:16 ais523, right 19:35:37 Sgeo: it doesn't happen too much 19:35:41 -!- sebbu2 has joined. 19:35:41 -!- sebbu2 has quit (Changing host). 19:35:41 -!- sebbu2 has joined. 19:36:10 Lymee: every ordinary identifier can be turned into an operator by putting `` around it, and every operator identifier can be turned into an ordinary one by putting () around it. (although you cannot iterate this) 19:36:33 -!- sebbu has quit (Ping timeout: 258 seconds). 19:37:17 although you need a ghc option to do it for types 19:38:28 oerjan, it is sad that you can't iterate it. That would allow stuff like `(* 2 +)` or such 19:38:32 (well not exactly that) 19:38:54 Vorpal: that's not quite iterating, although yes that might be useful 19:39:01 oerjan, indeed 19:39:09 That could be an extension, right? 19:39:13 yeah 19:39:21 oerjan, but iterating it is only really useful if you can build up expressions between the iterations 19:39:24 but afaik it hasn't been implemented 19:39:38 oerjan, I mean `(`(+)`)` is utterly useless 19:39:44 yeah 19:39:57 Agda seems to use _+_ rather than (+); is there any reason for the change? 19:40:09 _+_ looking more mathematical, perhaps? 19:40:17 (its syntax is otherwise mostly identical to Haskell's with a few extensions) 19:42:36 ais523: isn't that sort of part of its mixfix syntax, you can have as many _'s as you want 19:42:49 aha, that may be what it's about 19:42:51 I didn't know it did that 19:42:53 Can a Haskell code be prettyprinted? 19:42:57 and that's quite a nifty feature 19:43:00 * oerjan doesn't actually know agda 19:43:00 zzo38: I don't see why not 19:43:05 oerjan: neither do I 19:43:12 And what is _+_ and (+) means? 19:43:13 but it turns out I have an Agda fanatic as a coworker 19:43:19 and want to be able to at least vaguely understand what he's doing 19:43:39 zzo38: those are agda's and haskell's way of referring to the + operator as a value, respectively 19:43:59 (of function type) 19:44:07 oerjan: actually, in Agda there's no + operator by default, you have to implement it by hand 19:44:13 ah 19:44:18 http://www.impredicative.com/ur/tutorial/intro.html not that far down, but so far, I think I can wrap my brain around it 19:44:45 I spoke too soon, this syntax I need to slow down for 19:45:32 Awesome, compose is more understandable than id :/ 19:45:47 zzo38: there is a program called hs2tex or something like that which prettyprints haskell, i believe people sometimes use it for math papers. it replaces -> and stuff with proper math symbols. 19:45:51 Yes I do think being able to refer to operators as function value can be useful in some cases. 19:45:57 (Well, compose has more... elaboration in its syntax, which makes it more uunderstandable by context) 19:46:04 fun id [a] (x : a) : a = x 19:46:09 fun id [a] (x : a) : a = x 19:46:10 oops 19:46:15 fun compose [a] [b] [c] (f : b -> c) (g : a -> b) (x : a) : c = f (g x) 19:46:40 zzo38: also ghc has an option for allowing unicode for many things 19:46:41 oerjan: Does it just put every line without > at the start directly as TeX codes? 19:47:01 oerjan: actually, in Agda there's no + operator by default, you have to implement it by hand <-- not in the standard library!? 19:47:08 And lines with > prettyprinted Haskell codes converted to TeX? 19:47:11 Vorpal: you even have to implement integers by hand 19:47:16 zzo38: hm i would guess it uses the \begin{code} convention 19:47:22 ais523, what does the standard library have then 19:47:25 my coworker's master's project was about automatically detecting people trying to implement integers and optimising them into native integers 19:47:31 heh 19:47:43 ais523, why not make a standard library with these in? 19:48:14 possibly there is one; I'm not too clear on the details 19:48:50 Yes I do think being able to refer to operators as function value can be useful in some cases. <-- it is quite frequently used 19:48:51 Well I suppose it can be modified to use > if you prefer that way 19:49:20 !haskell zipWith (+) [1..10] [100, 200.. 1000] 19:49:23 ​[101,202,303,404,505,606,707,808,909,1010] 19:49:35 oerjan: Well, in Haskell perhaps it is very useful although in other programming language with function values it can be useful in a few cases to be able to make such thing. 19:51:35 fun id [a] (x : a) : a = x <-- i guess agda's type system requires that for flexible use. the a would be an implicit type parameter, i think? 19:51:49 Agda? 19:52:00 That's Ur that I pasted 19:52:03 oh. 19:52:04 For proper Knuth-style literate programming, you would also have index, table of contents, named chunks, and possibly a macro preprocessor if it is useful. (As well as commands that affect how the different kind of operators and so on are treated when making the printout) 19:52:37 Sgeo: i thought you were still talking about agda. although my guess for what the ur means still stands. 19:52:58 I was never talking about Agda. Other people were talking about Agda. 19:53:12 And... I _think_ that guess is correct 19:53:21 Are there symbols or combinations of symbols not used in Haskell? I read the documentation. Is `` (with nothing in between) invalid, for example? Others? 19:53:25 Sgeo: which is why i was confused, you gave a link and i frequently don't bother to visit links 19:53:31 "Then there's parametric polymorphism. Unlike in ML and Haskell, polymorphic functions in Ur/Web often require full type annotations. That is because more advanced features (which we'll get to in the next chapter) make Ur type inference undecidable." 19:53:36 so i assumed you were linking to an agda tutorial 19:54:12 Sgeo: oh it's that dependent web language that was posted on reddit? 19:54:43 with a for hire ad, iirc 19:54:44 I didn't know it was posted on Reddit, but "dependent web language" sounds right. Well, for Ur/Web. Ur itself is not necessarily web related 19:54:58 *hiring 19:55:16 oh so there's a plain ur too... 19:55:28 * oerjan may not have bothered to visit that link either ;D 19:55:29 But what else I want to have is Literate LLVM, maybe I will invent that some day (I can call it LWEB maybe) 19:55:40 (with file extension .llw) 19:55:57 I dislike LLVM, it makes all sorts of assumptions that are true in practice but I don't like 19:56:30 is C-- dead? 19:56:31 There are a few things I also dislike about LLVM, although I have made suggestions to correct these things. 19:56:45 02:59:42: Yet Another Haskell Tutorial by some guy Hal Daume 19:56:45 oh dear 19:56:57 monqy: it's only ever been alive in GHC, I think 19:56:58 One thing I like to have would be constraint analysis. 19:57:10 about what is that itidus20 quote 19:57:18 monqy: what he's reading 19:57:19 (I even have ideas about how constraint analysis would work.) 19:57:22 oh wait this is an ancient log 19:57:23 well 19:57:25 ancient =a day 19:57:36 zzo38: well if you use latex you can use its table of contents feature, i assume 19:57:49 zzo38: i believe `` is a syntax error, yes. 19:58:04 zzo38: well if you use latex you can use its table of contents feature, i assume 19:58:09 oerjan: don't talk to zzo about latex :O 19:58:18 O KAY 19:58:27 Oracle have bought ksplice? 19:58:30 I didn't see that one coming 19:58:36 although in retrospect, it's not a ridiculous thing for them to do 19:58:36 but that's what most people using hs2tex would be doing 19:59:12 That is, you can use things that would be syntax error in Haskell to get out of Haskell code mode, if making a Knuth-style literate programming system for Haskell... 19:59:17 Hmm 19:59:38 I don't know if I understand enough ML to grasp this module system stuff :/ 19:59:52 zzo38: i believe (almost?) every printable ascii character is either alphanumeric, a legal operator character, or used in the syntax. 19:59:55 My understanding of everything prior was fueled by my understanding of Haskell 19:59:57 (in haskell) 19:59:58 Oracle have bought ksplice? 19:59:59 ouch 20:00:01 just ouch 20:00:45 oerjan: Yes, but some combinations can be syntax errors, which is why you can use those combinations for such things. 20:01:05 Is `` the only one such or is other combinations possible that can do that? 20:01:07 zzo38: and mostly everything which does not combine into an operator or an identifier (which might be a keyword in either case) will split 20:01:22 most characters are legal inside strings 20:01:30 I suppose """ may be a combination that isn't legal in any context at all but comments 20:01:38 how do Haskell comments work again? 20:01:57 (or can you write a "string1""string2" in Haskell?) 20:02:03 > (++) "a""b" 20:02:08 zzo38: '' is also illegal at the start of a token i think, since ' needs to be escaped inside character classes. and also anything with ' ...more than one character representation... ' 20:02:15 @eval (++) "a""b" 20:02:19 *character literals 20:02:48 inside strings, you can get errors due to nonexisting escapes 20:02:56 !haskell "\fnord" 20:02:58 ​"\fnord" 20:03:01 oops 20:03:02 oerjan, could do that as an extension. Overloaded Character literals or something 20:03:09 oh wait \f _is_ an escape 20:03:20 !haskell "\possibly not fnord" 20:03:33 oerjan, it probably drops errors 20:03:34 that gave an error 20:03:39 it does for me anyway 20:03:42 Vorpal: no, it sends them in DCC 20:03:49 oerjan, ah.. DCC is broken for me 20:03:55 Ok, so if I understand this correctly, kinds are ... bigger in Ur than in Haskell, in that they encompass more than just types 20:04:05 Kinds are the "types" of more than types 20:05:15 Oh, derp, I misunderstood what it meant by "type families", so now that bit's clearer. What I said just before is still true though 20:05:27 Sgeo: i don't know. 20:06:30 zzo38: mind you '' is still legal inside other identifiers, because of haskell's decision to support the common mathematical x', x'' naming 20:06:55 Ok, I think I'm getting this 20:07:28 I read the document it seems the "\&" is good, some C document says only 2 hex digits after \x but I have had it allow any number of "\x000000000000000" is still a single character, for example. So, if it had "\&" like Haskell then you can avoid that. Maybe I can make a next version of Enhanced CWEB to support such things and convert it to work with a C compiler. 20:08:08 zzo38: ,+ is another sequence which i don't think is legal, because most operators cannot begin an unparenthesized expression 20:08:37 (, being a delimiter and so not part of an operator) 20:09:12 oerjan, it would be legal in a haskell comment 20:09:46 Yes, and in strings, but there would be a parser to check for these things which needs to do so anyways for prettyprinting and indexing. 20:10:35 I dislike LLVM, it makes all sorts of assumptions that are true in practice but I don't like <-- well if you're big enough you can probably get a patch in to add options, like the ghc people did 20:10:48 oerjan: it's more its fundamental design 20:10:54 ais523, what sort of things does it assume? 20:11:07 Maybe some things can be done using LLVM metadata? 20:11:20 12:49:55: I think Perl was the earliest language in the C family to have map and filter operators. 20:11:20 FSVO C family 20:11:24 Vorpal: that all its commands can be implemented via native-code commands that have the same semantics as one of its operators 20:11:33 Perl is C family? 20:11:35 That is, have a metadata to tell it what thing not to assume, maybe 20:11:37 according to CakeProphet 20:11:39 Perl's Awk family. 20:11:49 If it can be said to have a family at all. 20:12:12 ais523, uh they probably can. Using something like libgcc in worst case 20:12:20 oh dear <-- you think YAHT is too obsolete? i already advised him that he should get the haskell platform instead of hugs if he was serious (he said, hypocritically >:) ) 20:12:25 Vorpal: it's a false assumption for BF 20:12:47 ais523, Ah, what in specific can you not implement by emulation? 20:12:52 oerjan: Yeah, I told him about LYAH later I think 20:13:01 gcc tries not to make that assumption; it doesn't actually /work/, but that's due to bugs not design issues 20:13:03 oerjan: and I saw that at the time, that's what made me realise it was an old conversation 20:13:05 I mean... Haskell's more C family than Perl. 20:13:12 Because Haskell allows for direct memory access. 20:13:14 pikhq_: Well, er, no. 20:13:17 Well. 20:13:20 Vorpal: well, BF requires a temporary to do the equivalent of MOV from x86 20:13:27 Technically, C doesn't. Just common implementations do. 20:13:33 gcc has actually taken that possibility into account; LLVM hasn't 20:13:47 elliott_: I realise that Haskell isn't very C-like. Neither is Perl. 20:14:04 -!- CakeProphet has quit (Ping timeout: 264 seconds). 20:14:08 bye 20:14:08 Perl also allows for direct memory access, I think, somehow 20:14:13 ais523, okay, but surely that could be done in the code gen by having every other cell be a temporary? 20:14:13 probably a really obscure method involving libraries 20:14:23 Oh, right, it *is* Perl. 20:14:26 It has everything. 20:14:28 Vorpal: gcc-bf reserves a temporary for that 20:14:48 oh no 20:14:48 ais523, right 20:14:54 but it's ugly having to do most of the code generation in ld 20:14:55 ais523, so it can be done then in bf 20:15:02 (or can you write a "string1""string2" in Haskell?) <-- yes 20:15:04 I'd rather have the compiler do it 20:15:04 I mean it isn't fundamentally impossible 20:15:23 gcc-bf I mostly gave up on when it came to implementing rightshifts and multiplication 20:15:26 > "a""b" 20:15:28 too much effort 20:15:30 ais523, ah 20:15:40 elliott_: I've been getting no reply from lambdabot trying that 20:15:48 looking at the users lists, I suspect it's because lambdabot isn't here 20:15:51 :D 20:15:53 rather than because it barfs on it, though 20:16:06 heh 20:16:07 !haskell "a""b" 20:16:07 not on Freenode, in fact 20:16:12 Vorpal: won't work 20:16:19 !haskell print "oh""no" 20:16:22 hm 20:16:23 !haskell putStr ((++) "a""b") 20:16:25 ab 20:16:31 I win, I think 20:16:34 yes 20:16:34 rest in peace lambdabot???? 20:16:41 monqy: it'll probably be back later 20:16:48 nap in peace 20:16:50 rest in pace;sdgfh 20:16:57 `addquote rest in peace lambdabot???? monqy: it'll probably be back later nap in peace 20:17:00 ais523, hm I wonder why pthread_cancel is defined as a weak symbol in my libgcc 20:17:01 528) rest in peace lambdabot???? monqy: it'll probably be back later nap in peace 20:17:14 along with a few more pthread functions 20:17:23 Vorpal: I'm not sure, I don't think I'm going to get pthreads workign 20:17:24 *working 20:17:32 14:22:39: it's because python is descriptive rather than declarative 20:17:32 14:22:51: or rather prescriptive 20:17:32 14:23:40: well, i think "imperative" does not focus on the important aspect of the difference between so called "imperative" languages and so called "functional" langauges 20:17:32 this log is unbearably bad 20:17:36 at least, not if the threads use futexes, which they probably will 20:17:45 as they do too much in userspace 20:17:50 elliott_: *wince* 20:17:52 ais523, maybe some other libgcc function depends on pthread calls iff pthread is loaded? 20:17:55 elliott_: wait what? 20:18:02 I can't figure out if that's wrong or meaningless 20:18:04 ais523, and just stubs it out if it doesn't need to care about threads? 20:18:09 or correct but pointless, like a tautology 20:18:13 Vorpal: perhaps 20:18:15 maybe errno 20:18:20 ais523: that applies to most things cheater_ says 20:18:30 14:23:59: i mean you can perfectly well say that python is an imperative, functional language 20:18:36 cool story, tell me more 20:18:44 14:24:25: functional means a function is a first class object 20:18:44 i see 20:19:02 dying 20:19:05 14:26:07: "functional" is a very flimsy description of haskell, erlang, ocaml and lisp 20:19:05 common lisp is not a functional language. nor is scheme. 20:19:11 the others are. well, maybe not erlang. 20:19:13 ais523, possibly some functions like __register_frame_info_table_bases or __emutls_register_common that are in there 20:19:23 __enable_execute_stack? What? Come on 20:19:35 some unwind functions there too 20:19:37 I have a lot of ideas of how constraint analysis could work in LLVM. There can be forward constraints, and in some cases (such as reaching "unreachable") backward constraints, and then constranits based on trap values (such as "add nuw"), etc 20:19:45 so, any idea what _newselect(2) is for? 20:19:51 it isn't documented, and it isn't implemented either AFAICT 20:20:06 not even as a redirect to _ni_syscall like the other unimplemented syscalls 20:20:16 I suppose I could try calling it to see what error I got, but that feels messy 20:20:19 ais523, where is it even mentioned it? 20:20:24 -!- KingOfKarlsruhe has joined. 20:20:32 Vorpal: in the kernel headers that specify syscall numbers 20:20:33 s/it\?/it/ 20:20:37 heh 20:20:48 and the number doesn't seem to clash with any others 20:20:50 ais523, is it a low or high number? 20:20:54 mediumish 20:20:56 hm 20:21:04 could be some abandoned thing 20:21:11 the leading underscore confuses me too 20:21:13 What else I would like in LLVM is if you can tell it to store constant values in code space if possible (in the alignment padding, or in case it exactly matches an instruction), and store variables in the immediate operands to instructions if possible, etc 20:21:15 syscall names normally don't start with one of those 20:21:20 abandoned thing is my guess too 20:22:14 ais523, greping kernel sources reveals #define __NR__newselect in lots of arch/*/include/asm/unistd.h plus this line: 20:22:17 ./scripts/checksyscalls.sh:#define __IGNORE__newselect 20:22:32 Vorpal: indeed, I did that too 20:22:33 ./arch/blackfin/include/asm/unistd.h:/* 142 __NR__newselect obsolete */ 20:22:33 hm 20:22:37 well 20:22:45 asm/unistd.h is the file responsible for syscall numbers (in the various arches) 20:22:47 -!- nooga has joined. 20:22:55 ais523, I find this quite amusing: ./arch/mips/include/asm/unistd.h:#define __NR__newselect(__NR_Linux + 142) 20:22:58 and checksyscalls.sh checks to see that every syscall is implemented on every arch, minus the ones defined as ignored 20:22:59 __NR_Linux? 20:23:14 Vorpal: maybe it's trying to avoid a number clash with some other OS 20:23:24 #define __NR_Linux 4000 20:23:31 * Linux o32 style syscalls are in the range from 4000 to 4999. 20:23:50 heh 20:23:55 there is a huge #ifdef here 20:24:00 * Linux 64-bit syscalls are in the range from 5000 to 5999. 20:24:00 */ 20:24:00 #define __NR_Linux 5000 20:24:02 further down 20:24:11 and then the entire define list AGAIN 20:24:22 why the hell do they repeat the lines like: 20:24:24 #define __NR_read (__NR_Linux + 0) 20:24:33 oh god 20:24:37 it is different for different modes 20:24:39 #define __NR_syscall (__NR_Linux + 0) 20:24:41 for another one 20:24:53 x86 and x64 have different syscall numbers 20:25:03 and one syscall (mmap2) actually takes different parameters on the two architectures 20:25:07 Do you know anything about constraint analysis? 20:25:07 ais523, why on earth? 20:25:13 * Linux N32 syscalls are in the range from 6000 to 6999. 20:25:13 */ 20:25:13 #define __NR_Linux 6000 20:25:21 Vorpal: well, mmap2 is designed for 32-bit systems to open files larger than 32 bits 20:25:26 heh 20:25:32 and ditto for 64 bits, but they changed the scaling factor 20:25:32 ais523, so it isn't needed on 64-bit then 20:25:39 ais523, err what 20:25:49 mmap2 is like mmap but you specify the offset in units of 4K 20:25:54 (4KiB, that is) 20:26:01 ais523, you mean larger than 64 bits on x86-64? 20:26:09 except on 64-bit, you specify the offsets in units of the page size 20:26:10 Vorpal: I think so 20:26:15 which might not be 4KiB exactly 20:26:29 ais523, err x86/x86-64 page size *is* 4KiB 20:26:44 Vorpal: that makes the man page look a bit weird 20:26:58 ais523, unless you mean huge-pages, but they are the exception, not the nrom 20:26:58 perhaps they're allowing for a potential future change in page size, but think it'll only happen on 64-bit platforms not 32-bit platforms 20:26:59 norm* 20:27:12 like, allows you to create specially crafted 1 MB or larger pages 20:27:21 it's probably about that, then 20:27:21 common lisp is not a functional language. nor is scheme. <-- i think that's a rather big shift from the historical use of the phrase. like refusing to call neanderthals humans. 20:27:40 ais523, no it can't be... because that is decided on by a per-page basis 20:27:50 ais523, so that doesn't make any sense here 20:28:18 oerjan: OK, Scheme probably counts 20:28:23 oerjan: But Common Lisp is unquestionably non-functional 20:28:25 Ask any Lisper 20:28:30 it's hard to define functional languages well 20:28:46 oerjan: Higher-order functions are rare in Common Lisp outside of things like map 20:28:55 And those are usually done with LOOP or ITERATE, even 20:29:01 my working definition of non-imperative is languages in which assignment to mutable variables is nonidiomatic 20:29:15 in common Lisp, setq is fairly common, isn't it? 20:29:17 $ getconf PAGESIZE 20:29:21 4096 20:29:27 Vorpal: it's 4096 on my system too 20:29:36 ais523: setf is common, steq isn't 20:29:38 setq 20:29:41 ais523, any x86 system will give that. Same for x86-64 20:29:46 what does setf do? 20:29:53 14:41:56: i would say, map paintRed fence = "a fence which is red" 20:29:53 14:42:09: you would say map paintRed fence = "a fence which has been painted red" 20:29:59 this is the stupidest thing ever omg shut up you idiot 20:30:17 ais523: (let ((x (cons 9 0))) (setf (car x) 0) x) ==> (0 . 0) 20:30:19 wow what 20:30:21 i 20:30:23 elliott_: I'd interpret "map paintRed fence" as "what results when every component of a fence is painted red" 20:30:24 basically it's setq that can set forms with defined setters, too 20:30:39 ah, OK, a generalised version 20:30:40 so it doubles as a raw variable setter and a structure mutator 20:30:49 yep, it's generally referred to as generalised setq 20:30:52 the f is for Form 20:30:54 setq is set quote 20:30:58 because it used to be (set 'var x) 20:31:05 back when lisps were dynamically scoped and also crap 20:31:13 like in C++, setq corresponds to memcpy(&a, &b, sizeof b) and setf corresponds to a=b? 20:31:53 ais523: Sure, although it's more like a=b where a must be a variable name 20:31:58 That memcpy can also write to structure members 20:32:30 $ getconf -a | grep PAGE 20:32:30 PAGESIZE 4096 20:32:30 PAGE_SIZE 4096 20:32:31 what? 20:33:11 PAGES_I_ZE 20:33:29 oerjan, alas, they forgot that one 20:34:22 actually, isn't it possible to overload & in C++? 20:34:25 oesrijgreoijg 20:34:43 elliott_: memcpy(&a + offsetof(foo, b), &b + offsetof(foo, b), sizeof(b.foo)); ? 20:34:46 ais523: Yes. 20:34:49 ais523: Also *. 20:34:54 what about sizeof? 20:34:55 ais523: And cast to void*. 20:34:59 overloading unary * makes more sense 20:35:03 ais523, not -> though afaik 20:35:06 or maybe 20:35:07 hm 20:35:25 -> is overloadable, IIRC. 20:35:27 isn't it either -> or . you can't overload? 20:35:33 "[...] demos that intentionally use incorrect style because it's easier to present in a short demo [...] 20:35:33 That one" 20:35:33 But the "." is not, and neither is the ternary operator. 20:35:35 Or sizeof. 20:35:40 http://www.reddit.com/r/programming/comments/hidsa/opa_one_language_for_all_the_stack_forget/ 20:35:57 operator-> is overloadable. 20:35:58 And the :: namespace thing, and the ".*" pointer-to-member mess. 20:36:04 Also ->* 20:36:10 what does .* actually do? 20:36:38 Sgeo: OPA is similar to Ur/Web 20:36:45 Oh, it's possible to overload *every cast* in C++. 20:36:47 but with more marketing, and unfortunately less typing 20:36:48 ais523: It's used when invoking a pointer-to-member-function. 20:36:52 "also, not to be an ass, but generally speaking and talking about UR (that you mentioned), i don't really trust a web framework with such a raw site." lol 20:36:59 i wish webtards would stop finding Ur 20:37:20 is ur any good should i learn it 20:37:32 elliott_, is that a Opa person who said that or a random person? 20:37:46 is opa any good should i learn it 20:37:58 Sgeo: a random person 20:38:03 monqy: ur is good 20:38:10 oh lol, Ur's site has now been updated 20:38:11 pikhq_, you can't overload casts *between* built in types though 20:38:14 not even with friend 20:38:18 i'll learn ur 20:38:39 ais523: "Foo foo; void (Foo::*)(int) bar = &Foo::baz; foo.*bar(42);" is basically "Foo foo; foo.baz(42);" except messier. 20:39:03 C++ sucks so badly 20:39:04 ah, I see 20:39:16 nooga: Shhh, C++ is good because of C++ sudoku 20:39:22 what 20:39:57 nooga: it's where you try to accomplish some usually-functional-programming-related task in C++0x 20:40:07 It's great, it's the best game, I play it regularly 20:40:20 for instance: maybe in C++ seems easy, but you _cannot_ do it with just a pointer to T 20:40:25 because that forbids T from being a reference type 20:40:37 you have to end up taking advantage of everything being convertible to a bunch of chars and back 20:42:09 ingenious 20:44:33 14:59:05: trying to assign cosmical properties to mathematical objects is called physics 20:44:38 stop 20:44:39 talking 20:44:39 in the past 20:45:48 isnt that backwards wow is cheater_ serious in the past 20:45:49 elliott_, only if you promise never to get born 20:45:59 cheater_ are you serious in the past 20:46:05 monqy, totally srs 20:46:12 :o 20:46:16 cheater_: fuck off 20:46:33 elliott_, are you trying to annoy me or arouse me? 20:46:46 I'm wondering whether to logread to see if elliott_'s cheater quotes are real or fake quotes designed to make him look stupid 20:47:03 cheater_: are you trying to be a boring, egotistic shitheadeaded idiot or does it come without effort 20:47:05 ais523, no they're real quotes that are designed to make me look stupid 20:47:06 ais523: real 20:47:19 "shitheadeaded" im good with words 20:47:34 elliott_, it comes naturally 20:47:35 you're missing a d at the end 20:47:48 shitheadeadedison 20:48:06 jesus christ how long does this log go on for 20:48:20 YOUR 20:48:21 15:42:24: in C you'd say to get a maserati GT you'd take a ferrari 430, you'd then change the body work, and then you'd furnish it with a nice interior 20:48:21 15:43:13: in haskell, you'd say a maserati gt is a ferrari 430 - bodywork - interior + new body work + new interior 20:48:21 this is literally the worst car analogy i've ever read 20:48:21 WHOLE 20:48:22 LIFE. 20:48:32 that's how long this log goes on for. 20:48:42 elliott_: that isn't quite as stupid as some of the tohers 20:48:46 *others 20:48:50 ais523: the others aren't car analogies 20:48:51 although admittedly that isn't difficult 20:49:10 elliott_, i'm glad, i really like car analogies, it's great to reach something outstanding 20:49:11 I don't consider car analogies inherently stupid, incidentally 20:49:39 ais523, monads are like cars 20:49:44 what isnt stupid about car analogies 20:49:57 most car analogies don't compare things to cars in general 20:50:03 but specific parts of cars or models of car 20:50:07 monqy, elliott_ is smart about everything.. so i'd say elliott 20:50:25 elliott_ is like a car analogy? 20:50:40 monqy, i think he's like a bad car analogy 20:51:17 monqy, i'd say elliott :: humans == maserati gt analogy :: car analogies 20:52:53 monqy: is he really trying to deconvert a cultist of zepto 20:53:43 elliott_: oh, disaster: sg(1) is an actual command, so we can't call scapegoat that 20:53:55 it's the group equivalent of sg(1) 20:54:00 *of su(1) 20:54:06 how have I never tried to run sg before? 20:54:19 ais523: we could lobby for sg to be renamed :-P 20:54:22 because it isn't very useful except on a very large system 20:54:23 i take it car anaology analogies are unzepto 20:54:26 Or just assume the truth, that nobody uses it 20:54:31 ais523: no but I mean, when talking about scapegoat 20:54:38 and is redundant to newgrp anyway 20:54:42 elliott_: ah, I see 20:54:57 wait, why do sg and newgrp both exist? 20:55:07 Huh. 20:55:11 ais523: see, we can totally call it sg, it'll be our campaign against redundancy 20:55:25 ais523: oh, sg lets you execute a command, but newgrp doesn't 20:55:26 I know that, mathematically, something can't work, but I can't figure out what's wrong with my idea of how to do it 20:55:27 so sg is redundant 20:55:31 sg appears to have a better name and slightly more options 20:55:31 because the shell does that job with newgrp 20:55:37 I can't see the flaw that I know must be there 20:55:39 ais523: yes but we deserve that name more >:| 20:55:42 well, back to reading about 12DL8 20:55:44 Sgeo: sigh what is it 20:55:55 who do I complain to about design flaws in UNIX? 20:56:05 elliott_, actually, I'm currently rethinking it in terms of something simpler 20:56:22 ais523: I wish I knew 20:56:29 wow, sg has an amateurish manpage 20:56:33 ais523: I'd have a nice cup of tea and a sit down with them 20:56:34 it's like it's trying to justify its existence 20:56:36 And talk for about three days 20:56:48 User Commands 02/14/2011 SG(1) 20:56:49 I wonder which is specified by POSIX? 20:57:00 also contains typos, like "doesnt" 20:58:12 Derp, that was obvious 20:59:50 (I thought maybe you could enumerate through all uncountably infinite states of an infinite 2d binary grid by starting at one point, on and off, then expanding it, etc. I finally realized that those are counting through finite pieces of the grid, not the actual infinite grid 20:59:57 * Sgeo can be slow sometimes 21:00:13 X_X 21:00:52 And yes, I had to rephrase that in terms of 1d before I got it :( 21:01:31 what were you trying to count? the polyset of R**2? 21:01:34 *powerset 21:01:39 I don't know if polyset is even a real word 21:02:09 In fairness, the motivating thoughtss were in terms of Game of Life, where even on an infinite grid, any particular finite subgrid, at any particular finite time, could only have been influenced by a finite area around it 21:03:22 ais523: you can't do struct foo = ((struct foo){...}) in C99, right? 21:03:26 it has to be struct foo = {...} 21:03:28 there are a countable number of black/white colored 2D grids that have only finitely many black squares, I think 21:03:35 elliott_: I think you can, actually 21:03:42 as you can put any expression you like as an initializer 21:03:57 it's the difference between putting a struct initializer there and a struct constant there, but I think they're both legal 21:04:12 ais523: ISTR it not working, but -- oh, I rememberw hat was wrong 21:04:15 struct foo = {} is almost certainly more efficient, though 21:04:17 you can do 21:04:18 or equal 21:04:22 struct foo = {a,b,{c,d}} 21:04:24 but you can't do 21:04:28 struct foo = {a,b,(struct bar){c,d}) 21:04:30 struct foo = {a,b,(struct bar){c,d}} 21:04:31 -!- quintopia has joined. 21:04:32 -!- quintopia has quit (Changing host). 21:04:32 -!- quintopia has joined. 21:04:32 for whatever reason 21:04:39 because semantically, ((struct foo){...}) should make a new struct then copy 21:04:47 and yes, the reason there is that it doesn't know what type the outside struct should be 21:05:20 err, howso? 21:05:37 because C isn't like Perl, context comes from the inside not the outside 21:05:47 so it sees type var = expression, not type var = initializer 21:05:51 and then doesn't know what type the expression is 21:05:56 from the expression itself 21:07:48 Anyways, it should be perfectly possible to make a viewer that lets you view finite pieces of a infinite GoL soup (given unbounded disk space) 21:07:51 18:40:05: pikhq_, hm. what is the difference between POSIX and Unix exactly? The SuS I guess? But I haven't seen that for ages 21:07:54 SuS requires XSI 21:07:56 POSIX doesn't 21:08:00 I think 21:08:09 elliott_, that's all!? 21:08:10 Maybe not efficiently, but that's not the same as impossible 21:08:18 what's XSI? 21:08:20 elliott_, XSI isn't really that big 21:08:22 a binary standard? 21:08:39 ais523: No, just a handful of extra things. 21:08:40 ais523, last I checked strdup was XSI but not POSIX 21:08:43 for example 21:08:44 ah, aha 21:08:53 pretty much everything does strdup even if it isn't standard, though 21:08:57 I've been known to actually use it 21:09:11 I'm pretty sure even Win32 C environments have it. 21:09:12 `addquote pretty much everything does strdup even if it isn't standard, though I've been known to actually use it 21:09:13 -!- FireFly has quit (Quit: swatted to death). 21:09:13 529) pretty much everything does strdup even if it isn't standard, though I've been known to actually use it 21:09:25 I can't remember if I've ever used alloca 21:09:57 Vorpal: follow the standard 21:09:59 Oh, in recent POSIX it's actually base, not XSI. 21:10:04 also, how was that funny 21:10:06 strdup is still useful function, but they don't have memdup. 21:10:08 ah 21:10:39 zzo38: have you ever written a program in which memdup would be useful? 21:10:54 I find even memcpy, memset, etc, I don't use very often (although I use them occasionally) 21:10:54 Suppose you want to look at a 5x5 piece at generation 20 21:10:56 ais523: Actually, memdup could be useful with a somewhat smart libc. 21:11:05 ais523: I do not remember. 21:11:05 ais523: Namely, one that manages to get the kernel to COW it. 21:11:07 pikhq_: what for? 21:11:10 ah, I see 21:11:23 Then, just randomly generate that pieces, as well as 20 cells surrounding it at all sides, and evolve it 21:11:25 that would only really work for entire pages 21:11:33 (Store what you use somewhere) 21:11:50 I have never used alloca in C, although if I write a program in LLVM, I might use it sometimes (LLVM optimizers can change alloca to SSA in some cases) 21:11:52 The 5x5 piece is correct, even if the 20 cells surrounding it aren't 21:12:02 18:45:02: Damn 21:12:02 18:45:10: Just wrote =+ 1 instead of += 1 21:12:04 Ritchie? Is that you? 21:12:28 No reason you couldn't check to see if the memory block in question is wholy contained on pages. 21:12:32 alloca does have genuine use-cases, I sort-of wish it was standard 21:12:35 18:46:42: It's also LSB. 21:12:35 18:46:54: Along with /dev/tty, and *nothing else*. 21:12:37 /dev/null isn't LSB? 21:12:38 *were 21:12:49 elliott_: /dev/null is as well. 21:12:49 elliott_, it is. /dev/null is even POSIX 21:12:53 elliott_: We went over this. 21:13:01 Whoever decided to make =+ to add instead of += made a stupid mistake on the day that they did so. 21:13:02 pikhq_: OK :P 21:13:06 ais523: just use recursion to do alloca 21:13:23 ais523: It's less useful with variable arrays, though. 21:13:23 elliott_: heh, that could get a bit messy 21:13:24 elliott_, that has a lot of overhead 21:13:33 (Even smart people make a stupid mistake sometimes... but that is how you can learn from it, too.) 21:13:33 elliott_, and might insert things in the middle 21:13:34 Which, incidentally, are no longer guaranteed in C. 21:13:42 elliott_, it would work for linked lists I guess 21:13:48 Am I just being boring? 21:14:19 always 21:14:38 18:54:02: ais523, I believe there is an x11-framebuffer server too 21:14:45 Xfbdev from XDrive, now standard Xorg 21:14:45 pikhq_: which version did they remove them in? 21:14:49 elliott_: thanks 21:14:56 variable arrays? 21:15:01 ah 21:15:13 at least Wesnoth was a little buggy running in framebuffer, though; it was leaving cursor droppings 21:15:16 elliott_: presumably VLAs 21:15:43 at least Wesnoth was a little buggy running in framebuffer, though; it was leaving cursor droppings <-- that was not Xfbdev I think 21:15:47 ais523: why is qemu not suitable for your purpose, btw? 21:15:52 Vorpal: it wasn't, it was SDL 21:15:54 ais523, rather it was probably SDL's fbcon backend 21:15:54 that could give you a controlled environment 21:15:55 or such 21:15:59 ais523: C1X has variable length arrays as an optional feature, not mandatory. 21:16:00 What is most levels of indirection you have used? 21:16:05 in C pointers? 21:16:06 elliott_: that would give too much away 21:16:10 let's just say I tried 21:16:24 ais523: I hate you so much 21:16:31 ais523: This because some implementors really struggled with it, and even refused to actually implement it. 21:16:34 ais523, how are we supposed to guess before you tell us unless you give us more hints? 21:16:40 `addquote ais523, how are we supposed to guess before you tell us unless you give us more hints? 21:16:41 530) ais523, how are we supposed to guess before you tell us unless you give us more hints? 21:16:45 Most obviously, Microsoft. 21:16:48 Vorpal: you aren't 21:16:49 `delquote 529 21:16:50 ​*poof* 21:16:53 ais523, damn 21:16:55 swap an unfunny quote for a funny one 21:16:57 which one was 529? 21:16:59 -!- KingOfKarlsruhe has quit (Quit: ChatZilla 0.9.87 [Firefox 5.0/20110615151330]). 21:17:03 ais523: you saying you used strdup 21:17:05 There's actually a decent chance that Microsoft will implement C1X, though. 21:17:05 ah 21:17:09 you're right, that isn't too funny 21:17:18 elliott_, why was that one unfunny. 21:17:26 What with the *mandatory* features being not that much on top of what they'll need for C++0x. 21:17:27 Microsoft not implementing C99 will marginalise them in the communities that care about C99 21:17:28 It seems some of the features of C1X that are made optional are some features of C99 that I don't like. Is that partially it? 21:17:30 it was still somewhat funny 21:17:30 Vorpal: because it didn't have any comedic elements 21:17:36 which is, umm, people looking for a FORTRAN replacement, mostly 21:17:43 elliott_: it had one, which wasn't very good 21:17:52 What features of C1X are not optional features? 21:18:00 which was implying that I only used library functions which had passed some sort of Ais523 Approval Test^TM 21:18:04 zzo38: presumably quite a lot 21:18:08 zzo38: I imagine things like addition 21:18:11 elliott_, it did. It would be like ais523 torrenting something almost 21:18:13 zzo38: functions, perhaps? 21:18:27 Vorpal: what, using strdup? 21:18:31 ais523, heh 21:18:31 Yes, addition, functions, etc. I mean any C99 features and new features 21:18:43 19:08:18: what /is/ the plan 9 protocol exactly? 21:18:43 9P 21:18:44 99% OF USES OF STRDUP ARE ILLEGAL! 21:18:44 ais523, how would you torrent using strdup 21:18:50 elliott_, *aha* 21:18:50 Not things such as addition and function 21:18:51 zzo38: Unicode, anonymous structs and unions, alignment specification, type-generic expressions. 21:19:00 Vorpal: you misparsed my sentence 21:19:04 `addquote 99% OF USES OF STRDUP ARE ILLEGAL! 21:19:05 530) 99% OF USES OF STRDUP ARE ILLEGAL! 21:19:07 ais523, oh.... right 21:19:14 elliott_, now that one wasn't very funny :P 21:19:14 I was trying to guess at what "it" in your sentence referred to 21:19:25 zzo38: So, in large part features most compilers already *have*. 21:19:31 Anonymous structs and unions are useful I have used it a lot. 21:19:32 ais523, the quote 21:19:42 Vorpal: it was ais acting very out of character, when taken out of context 21:19:44 and it's also absurd 21:19:48 elliott_, yes 21:19:51 Hmm, the flag of Hawaii still has a Union Jack on it for some reason. 21:19:53 it is, therefore, quotable 21:19:55 but for reasons other than humour 21:19:57 elliott_: it's only funny out of context 21:19:57 Oh, yeah, and static assertions. 21:20:02 but agreed 21:20:07 elliott_, yeah mine was quotable too 21:20:07 And gone is gets. 21:20:12 Vorpal: oh, shut up 21:20:16 and the allcaps are a giveaway that it was meant to be in a context 21:20:17 http://pastebin.com/MthxxLrd 21:20:18 you never win quote wars, stop trying 21:20:20 elliott_, for stylistic reasons 21:20:27 you're like asiekierka trying to set the topic to something idiotic 21:20:30 this hack is quite nice 21:20:32 cto 21:20:33 elliott_, no I don't do that 21:20:33 Vorpal, would you just shut up OK. 21:20:34 you know it's not going to work 21:20:42 What are 99% uses of strdup which are illegal? 21:20:51 Never have you added a disputed quote that was even vaguely amusing. 21:20:53 zzo38: strdup can be used to transfer illegal material across the internet 21:20:58 elliott_: who does "you" refer to there? 21:21:05 ais523: {asiekierka,Vorpal} 21:21:10 thanks 21:21:50 a sufficiently advanced operating system probably could do network access with strdup 21:21:56 I don't think 99% uses of strdup necessarily has anything to do with internet at all 21:22:12 zzo38: you've pretty much completely missed the context 21:22:16 but it would take too long to explain 21:22:22 OK 21:22:43 -!- confab has joined. 21:22:52 confabulations 21:22:57 wow that's a word??? 21:23:09 http://pastebin.com/MthxxLrd http://pastebin.com/MthxxLrd http://pastebin.com/MthxxLrd 21:23:10 omg it is. 21:23:11 it successfully confabulated you 21:23:24 with zzo 21:25:06 how many people here know of the sendfile(2) system call? 21:25:09 it looks really interesting 21:25:18 and I wonder if cp is implemented in terms of it 21:25:27 Not GNU cp, at least. 21:25:38 It implements a complex buffering scheme on top of stdio. 21:25:41 pity it's nonportable (it's in the category of "widely implemented but not with the same semantics on every platform", like ptrace) 21:25:48 how many people here know of the sendfile(2) system call? 21:25:49 everyone 21:25:54 it's used in every web server ever 21:26:11 that makes sense 21:26:37 ais523: and 21:26:38 Presently (Linux 2.6.9): in_fd, must correspond to a file which supports 21:26:38 mmap(2)-like operations (i.e., it cannot be a socket); and out_fd must refer 21:26:38 to a socket. 21:26:42 ais523: so you can't do cp or anything with it 21:26:47 that's a really stupid restriction, though 21:26:48 oh, that's ridiculous 21:27:14 I missed that bit 21:27:43 let's all rage at stupid restrictions on sendfile for a bit 21:28:33 ais523: it probably exploits some property of sockets 21:28:38 and obviously uses memory mapping to read from the FD 21:28:50 yep, thus the "must be mmapable" restriction 21:29:05 ais523: but it would avoid buffer copying and syscall overhead, I suppose, even without those restrictions 21:29:19 yep, I bet the kernel would be faster at copying one fd to another than userspace would 21:29:22 ais523: have I raved yet today about how syscalls are the cost of a CALL instruction in @? 21:29:32 elliott_: not while I've been in here 21:29:49 ais523: woo rave rave rave 21:29:53 what's the benefit of using CALL over using INT? 21:30:00 ais523: much faster 21:30:04 syscalls are really expensive 21:30:06 function calls arent 21:30:07 't 21:30:20 well, technically @ has no syscalls, you just get passed functions that happen to access hardware in a privileged manner 21:30:24 but the point is that it has no syscall overhead 21:30:27 elliott_: are they expensive because they use INT? or for some other reason? 21:30:34 ais523: It's a context switch. 21:30:37 ais523: because interrupts are slow, I think, and because you have to copy data 21:30:39 and what pikhq_ said 21:30:43 what you probably mean is, "system calls don't need context switches" 21:30:49 right 21:30:50 which is a better thing to rave about 21:30:54 ais523: To do a context switch, you have to flush the pipeline and the page table. 21:30:57 i'm no OS guy, unfortunately; not yet 21:31:10 And, hence, the cache. 21:31:15 ais523: incidentally, a _lot_ of Synthesis' speed improvements came from optimising the kernel<->user space transition 21:31:19 BUT NOT AS MUCH AS @ DOES 21:31:27 /* The whole purpose of this file is for GDB and GDB only. Don't read too much into it. Don't use it for anything other than GDB unless you know what you are doing. */ 21:31:40 do those warnings ever stop anyone? 21:31:47 No. 21:31:59 I've all but given up on access restrictions of any kind in programming, because nobody ever cares about them 21:32:00 elliott_: they didn't stop me, although they did vaguely make me want to look at GDB source as that's the only place I was going to get decent documentation 21:32:12 in the end, I looked at various other sources, including the kernel's 21:32:14 although some are necessary for security (<-- @ view of things showing through) 21:32:39 what it really means is "we don't think anything important but gdb is going to use this code, so we aren't going to bother to document it" 21:32:45 for instance, you don't want any old code getting the "cast a bunch of bytes into an arbitrary type" function 21:32:53 and it was a pain to work out what it did, as a result 21:32:57 because you could construct a safe pointer-accessor object pointing to some privileged code 21:32:59 it's a really really system-specific file, anyway 21:33:03 and cast it to a pointer-accessor 21:33:12 and use it to get a hold of e.g. the send byte to port function 21:33:23 elliott_: that sounds a bit like Java's security model 21:33:34 ais523: Java doesn't use capability security, AFAIK 21:33:42 @ is practically based around it 21:33:55 especially because its native means of execution is basically arbitrary remote code execution 21:34:02 elliott_: it theoretically uses SecurityManager, which is designed around capabilities, it just makes a hash of it 21:34:08 (you just reference an object that happens to not be on your computer, and it fetches it from the @ternet) 21:34:24 (it could be a game of Asteroids, say) 21:34:27 struct user_regs_struct { long int ebx; long int ecx; long int edx; long int esi; long int edi; long int ebp; long int eax; long int xds; long int xes; long int xfs; long int xgs; long int orig_eax; long int eip; long int xcs; long int eflags; long int esp; long int xss; }; 21:34:28 (and it'd run and display as native code) 21:34:32 most system-specific struct ever? 21:34:35 (note: this means that I basically have Flash but better) 21:34:46 (you can embed games into a page, and they're exactly identical to native-code games) 21:34:47 elliott_: or ActiveX but less broken? 21:34:50 ais523: well, indeed 21:35:01 I am using that struct 21:35:05 it's also kind of like the original web browser in that there's no local/remote distinction 21:35:06 ais523: ouch 21:35:10 to get at the arguments to syscalls, which are in registers at the time 21:35:30 Linux only allows six arguments to a syscall, because then it runs out of registers 21:35:43 elliott_: I take it that @ isn't based around arbitrary *machine code* execution, though. 21:35:50 ais523: why not just use __asm__? 21:35:57 pikhq_: well, no 21:36:01 elliott_: for what? 21:36:07 I'm trying to get at the args to a syscall in a different process 21:36:09 ais523: to get at registers 21:36:12 a 21:36:13 h 21:36:27 so I'm looking for the context-switched-out copy of the registers, not the current process registers 21:36:39 the whole file is about grabbing the context that's been switched out of a process 21:37:18 it's different for x86 and x64 for that reason (I'm aiming at x86 for the time being) 21:37:33 "x64" 21:37:34 please don't 21:37:40 elliott_: sorry 21:37:47 hmm, I hope there's an Intel chip actually ending in that 21:37:53 the platform needs some name 21:37:54 so I can talk about it and confuse people 21:38:06 they should call their 64-b 21:38:07 struct user_regs_struct 21:38:09 { 21:38:10 long int ebx; 21:38:12 long int ecx; 21:38:13 long int edx; 21:38:14 ais523: I usually say x86-64, because it's official enough, generic, and underscores are ugly 21:38:15 long int esi; 21:38:16 long int edi; 21:38:18 long int ebp; 21:38:19 long int eax; 21:38:21 long int xds; 21:38:22 long int xes; 21:38:24 long int xfs; 21:38:25 long int xgs; 21:38:27 long int orig_eax; 21:38:28 long int eip; 21:38:30 long int xcs; 21:38:31 long int eflags; 21:38:33 long int esp; 21:38:34 long int xss; 21:38:36 }; 21:38:37 gah, what just happened? 21:38:39 did I accidentally paste a 20-line struct? 21:38:39 ais523: I'm annoyed at you for being ais523, because Vorpal would have whined at anyone else by now 21:38:40 if so, sorry 21:38:43 yes, but I don't mind 21:38:56 * ais523 puts a single letter on the clipboard 21:39:01 just in case it happens again 21:43:32 -!- elliott_ has quit (Remote host closed the connection). 21:43:46 (Actually my D&D character also speaks Thesk language (due to being slavery there (do you like to nest parentheses this much? (I don't know)))) 21:43:49 -!- azaq23 has joined. 21:44:07 -!- elliott has joined. 21:44:52 zzo38: I nested parentheses like that in the C-INTERCAL manual once 21:44:58 but as a joke, not because it was useful 21:45:38 ais523: In what part of the manual? 21:45:47 > let x = "Maybe. " ++ show [var x] in x 21:45:49 oops 21:45:54 zzo38: I can't remember 21:45:59 I think it mentioned recursion, but I'm not sure why 21:46:03 LAMBDABOOOOOT 21:46:10 you could search the manual for ))), it would probably find the relevant section quite quickly 21:46:34 who gave you the boot 21:48:40 > let x = "Maybe. " ++ show [var x] in x 21:48:42 what is this meant to be? 21:48:45 Maybe. [Maybe. [...? 21:48:56 -!- quintopi1 has joined. 21:49:32 -!- quintopi2 has joined. 21:51:07 ais523: I'm annoyed at you for being ais523, because Vorpal would have whined at anyone else by now <-- what? 21:51:18 -!- oklopol has quit (Ping timeout: 252 seconds). 21:52:52 -!- quintopi1 has quit (Client Quit). 21:53:16 -!- quintopi2 has quit (Client Quit). 21:54:08 elliott: yes. 21:54:37 hm probably the var should be at the outside. 21:54:56 > var (show "x") 21:55:05 ho hum 21:55:28 oh right 21:57:33 -!- oklopol has joined. 22:00:46 "JavaScript must be enabled in your browser to display the table of contents." 22:00:54 (On an Opa book) 22:01:10 That's.. not encouraging to any beliefs that you gracefully degrade 22:03:17 opa sucks 22:04:00 wtf is opa? yet another active worlds? 22:04:26 lol 22:04:36 elliott, because it's more specialized than Ur, which allows for more than just web stuff, or for other reasons too? 22:04:55 because it's like Ur without the only thing that makes Ur interesting, i.e. the type and module system 22:05:51 Maybe I'm interested in the web stuff 22:06:21 maybe im allowed to say opa sucks regardless 22:15:38 -!- CakeProphet has joined. 22:15:39 -!- CakeProphet has quit (Changing host). 22:15:39 -!- CakeProphet has joined. 22:22:02 -!- NihilistDandy has joined. 22:24:20 -!- Taneb has quit (Quit: Page closed). 22:24:50 -!- Taneb has joined. 22:31:12 I have read of the Gnostica game using tarot cards and Icehouse pyramids. Can a similar (but different) game be made using Fanucci cards? And maybe instead of Icehouse you can use some different kind of board, too. 22:33:34 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 22:57:34 `addquote Non sequitur is my forte On-topic discussion is my piano Bowls of sugary breakfast cereal is my mezzoforte Full fat milk is my pianissimo 22:57:36 531) Non sequitur is my forte On-topic discussion is my piano Bowls of sugary breakfast cereal is my mezzoforte Full fat milk is my pianissimo 22:58:11 those weren't non-sequiturs! 22:58:21 neither was this banana 22:58:33 `delquote 531 22:58:34 ​*poof* 22:58:39 `addquote Non sequitur is my forte On-topic discussion is my piano Bowls of sugary breakfast cereal is my mezzoforte Full fat milk is my pianissimo On which note, I'm hungry 22:58:40 531) Non sequitur is my forte On-topic discussion is my piano Bowls of sugary breakfast cereal is my mezzoforte Full fat milk is my pianissimo On which note, I'm hungry 22:58:45 ( Ha. Note) 22:58:52 lol 22:59:05 That's the second accidental pun I've made in the past five minutes 22:59:42 well please drop that pun before you hurt any more people 22:59:56 im hurt 23:00:07 "Shoe size is a UK 11" "11+25=36" "36/12=3" "That means my feet are about a foot long" "...Handy" 23:00:08 * oerjan gives monqy the banana 23:00:27 joy 23:00:36 I think your feet is supposed to be about a foot long, that is why they made up a foot measurement, isn't it? 23:00:49 -!- copumpkin has joined. 23:00:57 zzo38: The foot measurement is arbitrary and silly. Something about some king or other 23:01:07 I thought that was the Yard? 23:01:27 The Yard is busy with a scandal. Let's leave them out of this 23:01:33 NihilistDandy: Yes, I think it might be the king's foot size, they measured, and that is approximately one foot. 23:01:33 monqy: is it cold there its cold here 23:01:37 Topical humoUr 23:02:06 elliott: It's 100˚F here 23:02:19 Heat wave _-_ 23:02:29 lol texans 23:02:47 New Hampshire, actually 23:02:58 oh wait 23:03:01 New Hampshire? 23:03:03 that was your freenode sevrer location 23:03:08 That's in New Hampshire! 23:03:14 I know, right? 23:03:16 isn't new hampshire the one with all the stupid libertarians trying to make a ~free state~ 23:03:24 I think Bill Bryson lives there 23:03:26 No, there are like 5 of those 23:03:28 Or lived there or something 23:03:36 I think that's Quebec 23:03:38 And Bill Bryson lives in Massachusetts, now. He used to live here, though 23:03:42 NihilistDandy: but it's _one_ of them 23:03:52 LIVE FREE OR DIE 23:03:53 http://freestateproject.org/ 23:03:54 yep 23:03:55 new hampshire 23:04:02 elliott: its suny here 23:04:11 It's night-y here 23:04:12 Oh, those people 23:04:24 so what are your social services like what with your lack of decent taxation and all :P 23:04:25 elliott: foggy mornigsn though not cold nice though i like foggy i like cold i wish it were colder 23:04:37 monqy: what tepermature was ite; 23:04:43 elliott: Better than most of the country, actually 23:04:47 i would like cold but it makes my body parts cold and that makes walking hard 23:04:56 NihilistDandy: good job usa 23:05:05 elliott: ihave no theremometre 23:05:15 monqy: tr;y using google 23:05:22 ; is the best key to typo with imo 23:05:31 its good 23:05:31 http://www.google.com/search?hl=en&source=hp&biw=723&bih=658&q=temperature+where+monqy+is&oq=temperature+where+monqy+is&aq=f&aqi=&aql=&gs_sm=e&gs_upl=5183l10342l0l10493l34l23l2l8l8l0l247l1768l1.9.2l12 23:05:34 permature theremin 23:05:39 I have completed my thereminometer, which measures the number of theremins in a 50 foot radius. Current reading: 1 23:05:41 theremometre? 23:06:04 NihilistDandy: theremin buddies o/ 23:06:09 19 degres it lokes like??? not too bad????? 23:06:11 It'd be nigh-impossible to make Massachusetts a "libertarian paradise". 23:06:13 do you never play yours too 23:06:16 Taneb: we are clearly asymptotically approaching a spelling singularity 23:06:21 What with the People's Republic of Cambridge and all. 23:06:23 elliott: I actually do, sometimes 23:06:29 monqy: it is like eleven degrees in here or something 23:07:03 now that it has reached #esoteric, there cannot be much time left 23:07:29 oerjan: no its just me and monqy we don't lieke keybwords they do what we dont want them to be oding a lot 23:07:41 *alot 23:07:45 NihilistDandy: thanks you 23:08:09 elliott: that's what you _think_, but it is spreading 23:08:22 Where's Staffordshire again? 23:08:31 Like, how far South? 23:08:35 in about a year and a half, it reaches critical mass 23:08:47 Taneb: birmingham 23:08:49 aisland 23:08:49 Taneb: It's in the middle 23:08:55 Okay 23:08:59 west midlands 23:09:04 http://en.wikipedia.org/wiki/Staffordshire 23:09:31 NihilistDandy: why drag the poor alot into this 23:09:47 oerjan: The alots know what they did to deserve it 23:09:58 rip alots 23:10:22 rip alots? that's just horribly cruel 23:10:35 Sir Rip-Alot 23:10:53 How could you be so mean to alots? 23:11:10 Damn blood pressure... 23:11:13 It's too low 23:11:27 I react badly to changes in altitude 23:11:39 As in, headaches 23:11:40 Taneb is irc from everest 23:11:49 I've been smoking for four years, and my blood pressure is in the good range. I presume that this makes me better than science 23:11:50 changes in altitude make my ears anoying 23:11:52 is it cold there Taneb too am i the only cold person in hexham 23:11:54 Taneb: hq_> How could you be so mean to alots? 23:11:58 01:11 Tanewat 23:12:01 smokeing is bad for you... 23:12:09 monqy: Apparently not *that* bad 23:12:11 that was not a good cut and paste 23:12:12 long cancer 23:12:19 I'm not that cold, but I have a warm house 23:12:28 maybe i should try pushing ^C 23:12:38 Taneb: your mother was a hamster and your father smelt of elderberries 23:12:41 But yeah, it's pretty cold outside 23:12:53 why do people smoke it has like the most boring effect of any drug 23:13:09 "it makes me feel a bit better i GUESS" WRONG you're just a lameo who picked the wrong addiction 23:13:10 elliott: Because it's cool, of course 23:13:12 Eggar's saying the wind's coming from the West, so it may get warmer 23:13:16 -!- confab has left. 23:13:18 And I'm not an addict 23:13:21 It's a luxury item 23:13:22 they should put different warnings on the packets 23:13:23 WARNING: LAMEST DRUG 23:13:27 noboyd would buy it 23:13:27 ^^ 23:13:33 DOESN'T EVEN DO THAT MUCH 23:13:43 KNOWN BY THE STATE OF WHEREVER TO BE A WASTE OF MONEY PRETTY MUCH 23:13:57 GET WEED INSTEAD? 23:13:59 precisely 23:14:02 IT'S NOT TAXED 23:14:31 Unless you take the unofficial danger tax as a tax 23:14:49 -!- Taos has joined. 23:14:49 in the title of the page it says "Well-Typed - The Haskell Consultants" but i want to know who are the haskell conraisins? 23:14:52 -!- ghoulmaster has joined. 23:15:16 ghoulmaster: hello 23:15:23 hey elliott 23:15:44 * oerjan finds the new nicks suspicious 23:15:48 They try to sell you overpriced dried grapes, claiming that they're functional 23:15:50 Taos has been here before 23:15:54 oh 23:15:57 ghoulmaster: hello we are about programming 23:15:58 haskell conraisinjs? 23:15:59 elliott: have I now? 23:16:00 `addquote in the title of the page it says "Well-Typed - The Haskell Consultants" but i want to know who are the haskell conraisins? 23:16:01 532) in the title of the page it says "Well-Typed - The Haskell Consultants" but i want to know who are the haskell conraisins? 23:16:07 monqy: get it, sultanas 23:16:16 elliott: i know 23:16:16 sultans 23:16:25 of swing? 23:16:34 ghoulmaster: ok, lots of people don't :P 23:16:47 Wait, this is about programming?~ 23:16:53 elliott: lol i could see that with the name... 23:16:58 I thought this was a comparative literature channel 23:17:04 ghoulmaster: precisely 23:17:11 Really? I thought this was to do with elephants 23:17:20 I don't remember coming here before 23:17:23 NihilistDandy: Comparative algorithmically-generated literature channel. 23:17:33 Neat, isn't it? 23:17:36 pikhq_: Ah, of course. The veil lifts 23:17:45 brainfuck derivative party channel 23:18:02 -!- Somelauw has joined. 23:18:08 ok _who_ mentioned us and where 23:18:13 #haskell again? 23:18:21 the conraisins are about raisin money 23:18:22 nope 23:18:23 -!- Vorpal has quit (Quit: ZNC - http://znc.sourceforge.net). 23:18:30 elliott: I mentioned us in #nethack once, I think 23:18:30 Brainfuck has disappointing few brains and barely any fucks 23:18:36 i read it as "raisin monqy" and got real confused 23:18:51 Taneb: Barely any == 0? 23:18:58 Taneb: s/disappointing/disappointingly/ 23:19:01 so i can addquote it without lying 23:19:03 plz 23:19:03 thx 23:19:04 If I ever get laid because of brainfuck, that will be the real brainfuck 23:19:22 NihilistDandy: its worked for me 23:19:27 8)))) 23:19:31 MY MIND 23:19:34 NihilistDandy: I can spell your name in + and > and < and - 23:19:35 Especially if it's with a human heart 23:19:37 now shag me? 23:19:42 There is a book about esolangs 23:19:43 Taneb: surely you mean brain 23:19:46 http://www.barnesandnoble.com/w/esoteric-programming-languages-books-llc/1022380853?ean=9781155349770&itm=1&usri=brainfuck 23:19:53 Sgeo: omg no that was my calling 23:19:56 by Books LLC? 23:19:58 i am suspicious of this 23:20:03 but i'm going to buy it anyway 23:20:14 nice overview too 23:20:15 i bet it's wikipedia 23:20:21 Purchase includes free access to book updates online and a free trial membership in the publisher's book club where you can select from more than a million books without charge. 23:20:25 elliott: I mean what I say 23:20:30 the description is from wikipedia 23:20:45 also esolangs... wtf 23:20:48 who copied who 23:20:58 Take a wild guess 23:21:07 NihilistDandy: no, it is _quite possible_ wp copied us, which is legal 23:21:10 the other way around is not 23:21:27 Oh, I meant the book 23:21:29 if the contents are an exact match with the Wikipedia category, I think that's it 23:21:44 I mean the articles 23:22:06 the excerpt is an exact match with Wikipedia 23:22:09 oh 23:22:13 so I suspect it is indeed a Wikipedia excerpt book 23:22:13 that text is not actually in the eoslangs article 23:22:14 lol 23:22:16 its just in the google summary 23:22:17 ais523: right 23:22:25 ais523: I kind of still want to own it :) 23:22:29 just for that cover 23:22:47 it's probably an autogenerated cover 23:22:47 is it worth 12 pounds????? we report, you decide 23:22:51 ais523: precisely 23:22:58 I'll bet it's printed on toilet paper and recycled newsprint 23:23:00 note that it lists Esoteric Programming Language as a language 23:23:02 how do you go from ISBN → Amazon link? 23:23:08 ais523: YES I WANT IT BECAUSE IT IS BAD OK 23:23:46 I just cooked my own brainfuck interpreter 23:23:47 http://www.amazon.com/s?search-alias=stripbooks&field-isbn=1155349776 23:23:52 ais523: hmm, I see no GFDL on that Barns an dNoble page 23:24:01 thank you, Special:Booksources 23:24:04 rip :( 23:24:14 i guess i have to buy it from barnes and noble then 23:24:16 it's a no-results-found on Amazon, though 23:24:26 http://www.amazon.com/Esoterics-Websters-Quotations-Facts-Phrases/dp/0546763294/ref=sr_1_1?s=books&ie=UTF8&qid=1311376994&sr=1-1 what the fuck 23:24:27 http://www.amazon.com/Esoteric-Programming-Languages-Kvikkalkul-Instruction/dp/images/1155349776 --Google 23:24:30 We're sorry. The Web address you entered is not a functioning page on our site --Amazon 23:24:35 WHO IS RIGHT???? 23:24:38 alternatively: http://books.google.com/books?id=kHOLSQAACAAJ&dq=isbn:1155349776&hl=en&ei=ngYqTtqMLdTE8QPPsvH-Cw&sa=X&oi=book_result&ct=result&resnum=1&ved=0CCgQ6AEwAA 23:24:42 Sgeo: ? 23:24:52 " This is not an encyclopedic book, but rather a collage of statements made using the word "esoterics," or related words (e.g. inflections, synonyms or antonyms)." 23:24:55 -!- Taos has left. 23:24:59 the "related books" there is suspicious 23:25:05 Sgeo: heh, lol 23:25:06 So, just... random sentences that have the word "esoteric" 23:25:08 looks like another generated thing 23:25:17 "the editorial decision to include or exclude terms is purely a computer-generated linguistic process." 23:25:25 Sgeo: no, "esoterics" 23:25:30 How very esoteric 23:25:32 oh, esoteric too 23:25:34 * Phantom_Hoover → sleep 23:25:37 um 23:25:40 I want to buy this too.... 23:25:41 it's forty pages 23:25:42 -!- Phantom_Hoover has quit (Quit: Leaving). 23:25:53 you could also buy a copy of "Non-English-Based Programming Languages: Brainfuck, Plankalkül, Befunge, Rapira, Malbolge, Non-English-Based Programming Languages, False" 23:25:55 Price:£27.50 & this item Delivered FREE in the UK with Super Saver Delivery. See details and conditions 23:25:55 o;h 23:26:03 ais523: god dammit why are there so many books i want??????? 23:26:08 wait omg Plankalkül?? 23:26:13 awesome 23:26:18 elliott: why would you buy books that were that autogenerated? 23:26:22 does it include that one with "GRUNNUR"; 23:26:22 Well, goodnight folks 23:26:25 i should make a program to write novels for me..........make$$$$$$$$ 23:26:25 is that a wiki book? 23:26:29 fjolnir 23:26:32 -!- Taneb has quit (Quit: Page closed). 23:26:39 sorry Fjölnir 23:26:42 omg it's in the category 23:26:43 i bet it does 23:26:45 omg omg omg i want it 23:26:50 I WANT ALL THE SHITTY BOOKS 23:26:59 elliott: calm down 23:27:10 ais523: i can;t im onverhwlemed 23:27:15 * elliott cries 23:27:19 -!- Taos has joined. 23:27:26 ____ _ _ 23:27:27 / ___| ___ ___ __| | |__ _ _ ___ 23:27:27 | | _ / _ \ / _ \ / _` | '_ \| | | |/ _ \ 23:27:27 | |_| | (_) | (_) | (_| | |_) | |_| | __/ 23:27:27 \____|\___/ \___/ \__,_|_.__/ \__, |\___| 23:27:29 |___/ 23:27:36 wat 23:27:45 hi 23:27:56 I suppose your not in a terminal 23:27:56 Taos: you too 23:28:10 what about my not in a terminal 23:28:12 I use a variable-width font for IRC 23:28:16 means me pumping figlet into the shell does nothing for you 23:28:19 It says Goodbye, btw 23:28:19 which technically has nothing to do with whether I'm in a terminal or not 23:28:24 Taos: it doesn't pump into /our/ shell 23:28:28 although my terminal's fixed-width as it would otherwise be hard to play NetHack 23:28:29 it pumps into yours 23:28:31 but why does it say goodbye........................... 23:28:43 because I got bored and wanted to say that 23:28:46 oh 23:28:46 monqy, he's surrounded #esoteric with TNT 23:28:47 ok 23:28:53 double ok 23:29:01 Sgeo: its demo time 23:29:16 is figlet some sort of alternative version of banner(1)? 23:29:20 that uses a less overblown font? 23:29:23 o_O 23:29:27 there are people who don't know what figlet is? 23:29:31 ha 23:29:34 figlet is basically super-general banner 23:29:37 it has font files, etc. 23:30:00 http://www.figlet.org/ 23:30:09 its the first thing I install 23:30:15 Taos: not cowsay? :( 23:30:29 wow, I made a major discovery today: pressing / in the Gnome file chooser dialog box makes it actually add a textbox you can type the filename in 23:30:33 -!- Somelauw has quit (Quit: leaving). 23:30:33 elliott: thats second 23:30:43 that really makes that dialog box about 50% less stupid 23:30:49 elliott@katia:~/Code/mcmap$ figlet im cow | cowsay 23:30:49 _________________________________________ 23:30:49 | \ / __/ _ \ \ /\ / / | | | | | | | | | 23:30:49 | (_| (_) \ V V / |_|_| |_| |_| \___\___/ | 23:30:50 \ \_/\_/ / 23:30:52 ----------------------------------------- 23:30:53 _ _ 23:30:53 __| | ___ __ _ ___ ___ ___ ___ ___ ___ ___ __ _ ___ __| | 23:30:53 / _` |/ _ \ / _` |/ _ \/ _ \/ __|/ _ \ / __|/ _ \/ _ \ / _` |/ _ \ / _` | 23:30:53 | (_| | (_) | | (_| | __/ __/\__ \ __/ \__ \ __/ __/ | (_| | (_) | (_| | 23:30:53 \__,_|\___/ \__, |\___|\___||___/\___| |___/\___|\___| \__, |\___/ \__,_| 23:30:54 \ ^__^ 23:30:56 |___/ |___/ 23:30:56 \ (oo)\_______ 23:30:58 (__)\ )\/\ 23:31:00 ||----w | 23:31:01 im literally dead 23:31:02 || || 23:31:02 irl 23:31:04 good 23:31:08 yay now everyone is piping into irc 23:31:10 Only works if your window is wide enough 23:31:12 my job here is done 23:31:27 I'm disappointed that the first thing you install isn't sdate 23:31:34 sdate? 23:31:38 Today is Prickle-Prickle, the 58th day of Confusion in the YOLD 3177 23:31:46 totally gotta install taht! 23:31:47 * elliott tries sdate ddate 23:31:54 doesn't work :( 23:31:57 ok i can see it now 23:32:13 sdate is pretty good at breaking programs randomly 23:32:15 the first one however makes little to no sense 23:32:25 sdate ddate: Today is Prickle-Prickle, the 58th day of Confusion in the YOLD 3159 23:32:37 The Glorious Glasgow Haskell Compilation System, version 7.0.4 23:32:51 because the vast majority of programs assume that September is only 30 days long, and that the library function will never return anything outside that range 23:32:54 GHCi, version 7.0.4: http://www.haskell.org/ghc/ :? for help 23:32:54 Loading package ghc-prim ... linking ... done. 23:32:54 Loading package integer-gmp ... linking ... done. 23:32:54 Loading package base ... linking ... done. 23:32:54 Loading package ffi-1.0 ... linking ... done. 23:32:55 Prelude> Leaving GHCi. 23:32:58 ais523: heh 23:33:00 ais523: why does it break programs randomly 23:33:02 Today is Pungenday,the 57th day of Confusion in the YOLD 3177 23:33:09 Taos: because it uses eternal september dates 23:33:11 Different time zone 23:33:11 which aren't, technically, valid 23:33:16 Right? 23:33:17 Taos: because the vast majority of programs assume that September is only 30 days long, and that the library function will never return anything outside that range 23:33:27 thats odd 23:33:30 im tired 23:33:38 hmm, only about two years until the thousandth of september 23:33:40 erm 23:33:40 sdate's a prefix to other commands that modifies dates to just be expressed in terms of september 1993 23:33:42 hmm, only about two years until the seven thousandth of september 23:33:48 gah -- now i forget what font I was using 23:33:59 /bin/sh: -c: line 0: unexpected EOF while looking for matching `"' 23:34:00 /bin/sh: -c: line 1: syntax error: unexpected end of file 23:34:06 _ 23:34:07 | |__ _ _ ___ 23:34:07 | '_ \| | | |/ _ \ 23:34:07 | |_) | |_| | __/ 23:34:07 |_.__/ \__, |\___| 23:34:08 -!- Taos has quit (Quit: leaving). 23:34:13 lmao 23:34:14 bue 23:34:20 elliott: ? 23:34:25 ais523: at his /bin/sh failure 23:34:29 ah, OK 23:34:29 with his /exec line 23:34:31 and his quitting too early 23:34:38 s/his/gender neutral pronoun/ 23:34:42 _ _ _ 23:34:42 | |__ _ _ ___ | |__ _ _ ___ | |__ _ _ ___ 23:34:42 | '_ \| | | |/ _ \ | '_ \| | | |/ _ \ | '_ \| | | |/ _ \ 23:34:42 | |_) | |_| | __/ | |_) | |_| | __/ | |_) | |_| | __/ 23:34:42 |_.__/ \__,_|\___| |_.__/ \__,_|\___| |_.__/ \__,_|\___| 23:34:42 -- 23:34:44 23:34:59 `addquote bue 23:35:01 533) bue 23:35:07 hey ais523, how much would you hate me if I violated XDG standards 23:35:09 immprtalized 23:35:11 NihilistDandy: he didnt say bue >:| 23:35:14 WHat's YOLD? 23:35:16 `delquote 533 23:35:17 ​*poof* 23:35:24 `addquote _ | |__ _ _ ___ | '_ \| | | |/ _ \ | |_) | |_| | __/ |_.__/ \__, |\___| 23:35:26 533) _ | |__ _ _ ___ | '_ \| | | |/ _ \ | |_) | |_| | __/ |_.__/ \__, |\___| 23:35:28 NihilistDandy: fixed that for you 23:35:31 Sgeo: YOLD is the year indication for the Discordian calendar. 23:35:37 FINE~ 23:35:42 elliott: I'm not sure what XDG standards are 23:35:44 so I'm not sure yet 23:35:59 ais523: well the one in particular is why you have a ~/.config/ directory 23:36:06 ah, aha 23:36:07 and also ~/.cache, and I think ~/.local too 23:36:14 I noticed Wesnoth being changed to comply with those 23:36:17 What command is ais523 using to get that? 23:36:22 ais523: it's an environment variable so you can move ~/.config, it's horribly broken though 23:36:25 so are there any books published about esoteric programming languages? 23:36:25 there's no way to get regular dotfiles with it 23:36:30 so you have to reserve a directory for it 23:36:36 I mostly just ignore those standards 23:36:36 i'm adding configuration to mcmap 23:36:37 other than auto-generated 23:36:39 and i just want to use ~/.mcmap 23:36:40 and don't mind whether people follow it or not 23:36:50 ais523: ok, thanks, although it's fizzie's opinion that actually matters :P 23:36:53 itidus20: Why would someone publish such a book? 23:36:59 Oh, ddate, derp 23:37:00 although, programs I've worked on have used ~/.acehackrc and ~/.taeb 23:37:01 cant hide from esoteric 23:37:05 itidus20: I have seen some magazine articles in some magazines about Linux. I have also seen there is a Japanese book that describes a few esolangs including one of my own. 23:37:10 Sgeo: it wasn't me using ddate 23:37:11 Also, I think INTERCAL might have a book out there some where 23:37:13 so are there any books published about esoteric programming languages? 23:37:13 dude 23:37:16 Oh 23:37:17 we just linked to one 23:37:19 and talked about it 23:37:28 it isn't really a book about esolangs 23:37:29 zzo38: which book 23:37:35 ais523: sure it is >:| 23:37:35 other than auto-generated 23:37:35 so much as a book containing Wikipedia articles about esolangs 23:37:42 xD 23:37:48 -!- MigoMipo has quit (Read error: Connection reset by peer). 23:37:51 ais523: is a book that has a bunch of articles written by its author about esolangs not a book about esolangs? 23:37:59 wikipedia's just happen to have really long author lists, that's all 23:38:02 itidus20: it's not a physical book yet AFAIK, but the C-INTERCAL Revamped Reference Manual is an esolang-related book 23:38:13 elliott: the author's written as "Books, LLC" 23:38:24 elliott: I forget its title although I know there is a book that parts of it describe a few esolangs including one of my own. And it is Japanese book. 23:38:24 not as the actual authors of the book 23:38:34 ais523: pseudonym 23:38:43 doing that's actually illegal under the GFDL, if you make a compilation out of GFDL stuff you have to list at least five actual authors on the title page 23:38:46 unless there are less than five 23:38:46 ais523: and changing an author name hardly affects what a book is about 23:38:52 it would be a bit of a pointless exercize i know 23:38:57 but presumably the CC-by-sa license is more lenient 23:39:46 it would be a piece of trash text no doubt 23:39:49 It is why, when I write a book usually I do not use the GFDL. I don't care whether or not they list the author, or how the book is organized, or whatever. They would have to change it for various purposes including different paper sizes, and so on. 23:40:01 zzo38, famous pubished author 23:40:27 elliott: What about famous pubished author? 23:40:31 its you 23:40:37 Is it? I don't think so. 23:40:44 I have never published a book (yet). 23:40:57 Are you sure? 23:41:52 looking on the wikipedia wiki, there were printed INTERCAL manuals 23:42:08 Like I said :D 23:42:13 itidus20: yes, the original manuals were printed, and the electronic version of the manuals based on them 23:42:25 and proofread against the paper manuals by someone else 23:42:45 also, I'm not sure if "wikipedia wiki" = Wikipedia or Wikimedia Meta-Wiki 23:42:46 notice how i phrased it so that wikipedia is just a specialization of a wiki 23:42:57 yeah you're not sure.. 23:43:07 all the better for me to do such things 23:43:14 as, e.g. "nethack wiki" = "wiki about NetHack" = "nethackwiki.com", I'd assume "wikipedia wiki" = "wiki about Wikipedia" = "meta.wikimedia.org" 23:43:16 If in some day, I publish some book, that might include some of the programs I have written too, but also some other books, possibly. However I never yet publish any book. 23:43:34 `addquote If in some day, I publish some book, that might include some of the programs I have written too, but also some other books, possibly. However I never yet publish any book. 23:43:36 534) If in some day, I publish some book, that might include some of the programs I have written too, but also some other books, possibly. However I never yet publish any book. 23:43:37 ais, the "about" is a misnomer 23:43:41 NihilistDandy: that was just regular zzo 23:43:43 :P 23:43:46 I liked it 23:43:46 :D 23:44:06 i see what has happened here though 23:44:08 itidus20: well, would you interpret "nethack wiki" as implying that NetHack is a wiki? 23:44:08 yeah, but if we addquoted everything zzo38 said... :D 23:44:18 ais: ok i see now... hahahha 23:44:23 so it's the nethack wiki wiki 23:44:45 im dead 23:44:48 NihilistDandy: I am OK whether you put my quotations or not, it doesn't matter to me either way, but also either way I can collect them by looking at the list of the quotations that are available. 23:44:56 nethack which is a wiki.....is a wiki 23:44:58 :D 23:45:09 zzo is a warrior-poet 23:45:25 the name is formally "nethack wiki" and "nethack wiki" is a wiki, hence: nethack wiki wiki 23:45:37 itidus20: this is really bad terminology 23:45:50 is nethack wiki wiki a wiki 23:45:51 wiki wiki wiki wack 23:45:59 west jim west 23:46:07 wiki wild wild west 23:46:08 :D 23:46:16 <3 itidus20 23:46:35 ok i suppose i have created a tautology 23:46:37 ais523: so scapegoat................................. 23:46:40 needs to exist....... 23:46:48 elliott, as does Feather 23:46:52 * Sgeo runs 23:47:01 as does zepto 23:47:02 elliott: agreed 23:47:12 you win 23:47:17 wikipedia it is 23:47:19 scapegoat needs to be written in zepto-feather 23:47:25 un-zepto 23:47:44 Yay, 0 infections found 23:47:46 Feather would be a really really bad language to write a VCS in, I imagine 23:48:05 Sgeo: does that mean that your virus protection is good or your virus scanner is bad? 23:48:14 all i know about feather is what i read on the wiki page 23:48:17 ais523: I was about to ask who said he was talking about computer viruses 23:48:22 but then I realise that you didn't imply that, either 23:48:30 so thus wikipedia could be "most prolific encyclopedia wiki" vs "nethack wiki" 23:48:35 haha 23:48:44 can wikis be prolific 23:48:50 elliott: only with a nonstandard (but correct) definition of "or" 23:48:52 i guess not.. 23:48:59 ais523, well, the scanner is by ESET, which has a good reputation 23:49:01 itidus20: That sounds like a poor translation of an ancient Chinese manuscript 23:49:06 Sgeo: oh right, they do 23:49:09 that would be a fallacy of some kind 23:49:11 Sorry to burst the not-a-computer-virus buble 23:49:13 bubble 23:49:15 ais523: Why? 23:49:17 ancient chinese manuscript wiki wiki 23:49:29 ais523: I suppose you jumped to "virus" 23:49:30 From infection 23:49:38 There's certainly infection protection and infection scanners in the real world 23:49:44 ITT statements end in wiki wiki 23:50:01 sgeo was inspecting his wiki wiki 23:50:01 Now there is also wiki related to TeXnicard project (on Redmine), but it is currently empty (except for the file that says it is currently empty) 23:50:11 iykwim wiki wiki 23:50:15 well there are many encyclopedia wikis.. but wikipedia is the biggest 23:50:16 zzo38, the file is a lie! 23:50:29 Sgeo: I know..... but, it is mostly empty. 23:50:35 Empty wiki 23:50:52 Empty wiki wiki, a wiki cataloging empty wikis 23:51:06 And also an empty wiki about wikis 23:51:24 i was wrong about wiki wiki 23:51:26 Just realized that one wiki can be both 23:51:27 it is a tautology 23:51:43 im fish 23:51:49 swim 23:51:52 hi 23:51:52 ok 23:52:01 I'm a leaf on the wind 23:52:05 im monqy 23:52:06 hi 23:52:10 dunno if anyone's noticed, but me and monqy are pretty much the biggest contributors to this channel 23:52:16 what would you do without us??? 23:52:20 elliott: how do you do a paragraph break in Markdown? 23:52:36 the front page of the patch-tag wiki about AceHack accidentally got Slashdotted 23:52:39 elliott: Probably have a life 23:52:42 Is it a blank line? I don't know. 23:52:46 oh, right, there is a para break there 23:52:50 i'm sort of a parasite on a channel, but i am great at generating randomness 23:52:51 just that the styling's so bad I can't see it 23:53:10 itidus20: you're like sgeo but more so. bizarro sgeo. 23:53:11 ais523: two lines 23:53:12 I know a blank line is a paragraph break on MediaWiki, and in TeX, too, by default. 23:53:12 clearly what we need here is the wiki monads and comonads 23:53:20 elliott: yep, I thought it wasn't working 23:53:26 ais523: patch-tag is a really ugly website :( 23:53:29 in a bad usability way 23:53:32 yes 23:53:35 agreed 23:53:45 also acehack has like fifty problems, did you know, i remember telling you about them and them being dismissed :D 23:53:46 I'm just using it for hosting, really, it's not a "proper" website 23:53:51 elliott: I know 23:53:55 monqy: last night in my dreams I saw a false photo album of my childhood... looking ghostly 23:54:01 `addquote monqy: last night in my dreams I saw a false photo album of my childhood... looking ghostly 23:54:02 535) monqy: last night in my dreams I saw a false photo album of my childhood... looking ghostly 23:54:11 Last night in my dreams I was a banana... looking ghostly 23:54:15 elliott, so I can say random gibberish and get quoted for it? 23:54:18 itidus20: i saw a dancing cgi skeleton named malaria. i danced and played with him. 23:54:22 Sgeo: that was funny gibberish 23:54:28 `addquote itidus20: i saw a dancing cgi skeleton named malaria. i danced and played with him. 23:54:30 536) itidus20: i saw a dancing cgi skeleton named malaria. i danced and played with him. 23:54:35 elliott: My lenses are made of bananas 23:54:37 with join :: Wiki (Wiki a) -> Wiki a and cojoin :: Wiki a -> Wiki (Wiki a) 23:54:43 NihilistDandy: nope, quotes are closed i'm afraid 23:54:54 I wasn't looking for a quote :P 23:55:01 NihilistDandy, I'm a banana. Your lenses are made out of me. 23:55:06 AGH 23:55:12 wow, how long has that slashdot article been without comments, ais523? 23:55:14 I mean, with only two 23:55:21 elliott: probably about five minutes 23:55:24 it only just went up 23:55:25 oh 23:55:25 Sgeouiggol 23:55:27 and #junethack are panicking 23:55:29 what timezone does /. use, anyway? 23:55:47 elliott: to my view, it uses my timezone 23:55:49 What /. article? 23:55:51 but that's possibly because I'm logged in 23:55:53 ais523: feel free to explain that one to them 23:55:56 http://games.slashdot.org/story/11/07/22/2338215/First-NetHack-Cross-Variant-Summer-Tournament 23:55:59 you could start with "He's an idiot" 23:56:03 heh, I just esolanged Slashdot 23:56:08 I wonder if it can take the load? 23:56:14 *esotericed 23:56:20 esolanging it would be putting it on the wiki 23:56:20 It's ok guys. I am doing what I can to keep my psyche and ego surviving. All the while the threat of ww3 looms, the mortality of family and friends(loved ones?) and sooner or llater my own mortality. 23:56:34 `addquote It's ok guys. I am doing what I can to keep my psyche and ego surviving. All the while the threat of ww3 looms, the mortality of family and friends(loved ones?) and sooner or llater my own mortality. 23:56:36 537) It's ok guys. I am doing what I can to keep my psyche and ego surviving. All the while the threat of ww3 looms, the mortality of family and friends(loved ones?) and sooner or llater my own mortality. 23:56:40 ais523: how did junethack react to my brilliance.............. 23:56:47 It didn't. 23:56:50 itidus20: god bless you 23:56:55 elliott: I don't get it 23:57:04 ais523: itidus20 is the best, any questions? 23:57:07 oh, you mean in channel? 23:57:09 they ignored you 23:57:14 oh 23:57:16 :( 23:57:20 i sohuld say hi to them so they dont ignore me 23:57:23 ais523, I just tried to tell elliott that 23:57:34 i accepted it 23:57:35 I think he just did to me what #junethack did to elliott 23:57:37 but then, time passed 23:57:47 why would anyone ignore elliott 23:57:55 monqy: self-loathing? 23:57:56 note that I'm an op on #junethack, so don't try anything too trollish 23:58:06 ais523: its ok ur my pal i know you wouldn't ban me or anything 23:58:40 * oerjan cackles evilly for no specific reason 23:58:43 elliott: you're acting out of character now 23:58:58 ais523: i'm acting perfectly in character, you just don't understand the levels i operate on 23:59:22 ok i'm done, i hope they accept my apology 23:59:26 PROFUNDITY RISING 23:59:27 but i'm too embarrassed to stay there to accept it 23:59:30 who wants thack in june, anyway 2011-07-23: 00:00:17 Capitalism is a cancer. But I'm a smoker, anyway, so... 00:00:33 double cancer 00:00:33 `addquote Capitalism is a cancer. But I'm a smoker, anyway, so... 00:00:34 538) Capitalism is a cancer. But I'm a smoker, anyway, so... 00:01:07 what is socialism then? Lupus? 00:01:52 It's not lupus 00:02:02 oh. ok then. 00:03:29 "Everyone else seems to be able to cope with the people they spend most of their time with." That's what I tell myself at first. But then you hear about the divorces and custardy battles. The domestic violence. Cruel managers. Tyrannical dictators. "What would I do or how would I feel if I was one of them?" 00:03:42 no need to add every quote during my bizzaro rant though. 00:04:13 now see.. if they hadn't gotten to me i could just read my sentences normally 00:04:37 custardy battles are really gruesome things 00:04:43 but i also learned about this concept of embedded suggestions, hence: "add every quote during my bizzaro rant" and "read my sentences" 00:04:52 oerjan: Beat me to it 00:05:07 not intentionally though.. it occurs in normal grammar. 00:05:41 Wait, if you were the one on the receiving end, or the one on the giving end? 00:06:01 You'd probably feel pretty awesome in the latter case 00:06:30 #junethack is a boring channel 00:06:35 Hardly any puns at all 00:06:49 thack _is_ boring. also it's july already. 00:06:58 julythack 00:06:59 you should rename. 00:07:30 I got all my thacking done in May 00:08:18 so this crowd.. and believe me there is such a crowd, is saying that people filter out logic and just see imperatives 00:08:30 at least thats what they seem to be saying 00:08:48 itidus20: Those are what we call "voters" 00:11:08 there is an xkcd comic which reminds me of what im describing 00:11:40 http://xkcd.com/842/ 00:12:16 lol 00:14:59 Ju is not a month 00:15:33 >_> 00:15:34 in the street fighter back story there is a team of evil women named after months 00:15:36 portmantaeus don't exist 00:15:39 it was originally meant to be in June, but people decided July was better for them 00:15:55 ............................................______ __ 00:15:55 ....................................,.-‘”...................``~., 00:15:55 .............................,.-”...................................“-., 00:15:55 .........................,/...............................................”:, 00:15:58 .....................,?........................... ..........................., 00:16:01 .................../.................................................. .........,} 00:16:04 ................./.................................................. ....,:`^`..} 00:16:07 .............../.................................................. .,:”........./ 00:16:10 ..............?.....__............................ .............:`.........../ 00:16:13 ............./__.(.....“~-,_..............................,:`........../ 00:16:16 .........../(_....”~,_........“~,_....................,:`..... ..._/ 00:16:18 ..........{.._$;_......”=,_.......“-,_.......,.-~-,},.~”;/....} 00:16:21 ...........((.....*~_.......”=-._......“;,,./`..../”............../ 00:16:23 ...,,,___.`~,......“~.,....................`..... }............../ 00:16:26 ............(....`=-,,.......`........................(......;_,,-” 00:16:28 ............/.`~,......`-...................................../ 00:16:30 .............`~.*-,.....................................|,./.....,__ 00:16:33 ,,_..........}.>-._...................................|........... ...`=~-, 00:16:36 .....`=~-,__......`,................................. 00:16:38 ...................`=~-,,.,............................... 00:16:41 ................................`:,,.............. .............`..............__ 00:16:44 .....................................`=-,...................,%`>--==`` 00:16:46 ........................................_........ …_,-%…….` 00:16:49 Is my response 00:16:59 not a whale 00:17:06 Is that picture of something? Of what? 00:17:06 uhhh 00:17:06 very like a whale 00:17:07 NihilistDandy: that's not quite the same thing as accidentally pasting a 20-line struct into the channel 00:17:31 zzo38: /facepalm 00:17:38 NihilistDandy: yeah, don't do that. 00:17:49 Never again. I just realized a script I had did that 00:17:51 as an ardent pro-pasting activist, that's way too long 00:17:54 Is it facepalm? 00:18:05 Is it picture of facepalm? 00:18:06 elliott: would you abuse ops in #esoteric if you had them? 00:18:07 its not a whale 00:18:08 Yes 00:18:10 thats all i know 00:18:14 (not that I can grant them to you, I'm just curious as to the answer) 00:18:15 OK. 00:18:31 Juni and Juli are members of a special unit within Shadaloo called the "Dolls", also known as Bison Elite Guard, which is composed of twelve young women brainwashed to serve as Bison's personal assassins. The twelve members of the Dolls are named after the months of the Gregorian calendar in various languages, with Juni and Juli being German for June and July. 00:18:44 zzo38: thank you, i couldn't see it before you said it 00:18:46 Are there even any ops in #esoteric? 00:18:47 ais523: No. 00:18:49 NihilistDandy: Yes. 00:18:49 junithack, julithack 00:18:58 ais523: Well, I mean, maybe for a joke, but not beyond that 00:19:04 it can be hard to attract an op here sometimes 00:19:08 but not always 00:19:31 Op powers are only for trolling, as far as I can tell 00:19:39 As they should be 00:20:01 im bad with power i never know what to do with it 00:20:45 ais523: i was _this_ far from banning NihilistDandy 00:20:53 T_T 00:20:54 I have power in some places. Then left those places to rot 00:21:09 NihilistDandy: temporarily mind you 00:21:14 i am become Sgeo destroyer of virtual worlds 00:21:26 god that was a good one 00:21:26 elliott, since when are wikis virtual worlds? 00:21:30 stfu 00:21:40 hey oerjan gimme ops i need to find out for sure whether i'd abuse them or not 00:21:51 Sgeo: NetHackWiki? 00:21:57 funny guy 00:22:02 ais523: i figure i'll inevitably get ops if i just stick around here long enough 00:22:07 As compensation: http://www.smbc-comics.com/#comic 00:22:08 im going to be the only person here in thirty years 00:22:15 ais523, yes, and Creatures Wik, although I was a bit more involved there. And Superosity wiki 00:22:46 elliott: I tend to randomly pick up ops in all sorts of places when I don't expect it 00:23:08 elliott: You'll be dead in 30 years. HackEgo will become self-aware and destroy all meatbags in its quote file 00:23:14 hasn't happened here, yet, even though this is one of the channels people might most expect me to be an op in (given that I'm one of the two active wiki admins, and Keymaker rarely comes here) 00:24:02 -!- Nisstyre has quit (Remote host closed the connection). 00:24:34 ais523: you'll get ops when oerjan becomes a wiki admin 00:24:43 so you already have them, enjoy! 00:25:28 heh 00:26:08 -!- ChanServ has set channel mode: +q *!*@gateway/web/freenode/ip.76.99.21.147. 00:26:26 -!- ChanServ has set channel mode: -q *!*@gateway/web/freenode/ip.76.99.21.147. 00:27:28 If I do publish any of my computer program in books, I should also included the DVD of the program in the back of the book, too. (This is one idea about literate programming, although there are others, too.) 00:28:10 that, btw, is apparently the cloak of user "test" :P 00:28:20 oerjan: I was wondering 00:29:02 oerjan: who's test 00:29:09 oh 00:29:10 an person 00:29:16 * elliott says hi to them 00:29:19 elliott: the poor innocent victim of my chanserv testing 00:29:31 not victim, now friend!!! 00:30:05 Victim != friend? 00:30:09 I have been misinformed 00:30:12 now wtf would it segfault /there/ 00:30:12 you /msg'ed em? 00:30:13 I have some calls to make 00:30:27 oerjan: yes :D 00:30:32 how do you ascend a scope in gdb? ais523? 00:30:40 frame number 00:30:42 as in, frame 4 00:30:48 you can use bt to see a list of frame numbers 00:31:06 NihilistDandy: "Routine helps calm you down. Maybe you will talk to another friend. You talk to him every day for some reason. Though it's not exactly right to call him a friend, since you despise him. Your relationship with the fellow is difficult to describe. It should be noted that in troll language, the word for friend is exactly the same as the word for enemy." 00:31:13 Aww, it's "enemy", not "victim". 00:31:17 My tiny memory strikes again. 00:31:21 (Note: My memory is not quite tiny.) 00:31:22 ais523: thanks 00:31:26 ais523: isn't there "frame up" or something? 00:31:35 sigh, nope 00:31:37 Oh, well. The sentiment is on point, at least 00:32:02 In that case you use the word of troll language in case you need a new word since the normal English word not exactly right, maybe. 00:32:19 (gdb) print block_info[block] 00:32:19 $2 = {name = 0x0, type = AIR, trait = NO_TRAIT} 00:32:21 wat 00:32:21 oh 00:32:28 elliott: wat 00:33:01 olsner: it's a block that doesn't exist 00:33:11 elliott, derp. I was about to complain that routing calming the guy down makes no sense, but I was mistaken as to who that applied 00:33:17 elliott: Right. 00:33:37 Sgeo: good sgeo memory two thousand and eleven 00:33:44 01:32:44 [DIED] Failed to open file '/home/elliott/.mcmap/colors': No such file or directory 00:33:50 oh right, i probably shouldn't require it to exist 00:34:04 * olsner gets some burger-n-ds9 00:35:14 (the first part is watching unrar for 21 seconds, really boring) 00:35:38 G_FILE_ERROR_EXIST 00:35:38 Operation not permitted; only the owner of the file (or other resource) or processes with special privileges can perform the operation. 00:35:38 G_FILE_ERROR_NOENT 00:35:38 No such file or directory. This is a "file doesn't exist" error for ordinary files that are referenced in contexts where they are expected to already exist. 00:35:43 EEXIST is a good name for that 00:35:47 (it's EEXIST, right?) 00:36:05 olsner: then the second part is DS9 and it's even more boring :DDDDDDDdddddd oh snap 00:36:10 [asterisk]OH SNAP 00:36:18 G_FILE_ERROR_EXIST 00:36:18 Operation not permitted; only the owner of the file (or other resource) or processes with special privileges can perform the operation. 00:36:25 it's funny because DS9 has a plot, an attribute not shared with the entire rest of star trek 00:36:27 Why... call it G_FILE_ERROR_EXIST? 00:36:33 Sgeo: thus my lol 00:36:41 i think its from unix wow what the fuck happened to the map 00:36:44 elliott: both your statements are tainted by truth 00:36:50 01:36:36 MODE: surface긒澖缀è긒澖缀`跈Ā 00:36:52 what did i do 00:36:57 am i asian 00:37:02 i broke mcmap help 00:37:16 but yeah, I'm really looking forward for this "plot" you speak of 00:37:28 olsner: how many episodes in are you??? DS9 is great 00:37:36 elliott: 10 or something 00:37:41 i'm assuming you meant you haven't seen plot yet 00:37:43 season 1 ish 00:37:45 I liked TNG and Voyager, and DS9 is quite acceptable 00:37:49 I'd comment, but my opinions tend to be random relative to consensus 00:37:50 NihilistDandy: ...wow 00:37:54 NihilistDandy: You're the worst person 00:37:57 lol 00:37:57 I'm removing you from the whitelist now 00:38:01 NUUU 00:38:02 You think I'm joking 00:38:11 TNG really had no plot at all, and for the most part that was a good thing 00:38:13 * NihilistDandy cries and drinks 00:38:19 olsner: Exactly 00:38:38 NihilistDandy: I'm offended by your liking of Voyager, not your ambivalence to DS9 00:38:41 I didn't really watch Star Trek enough to be able to tell one series from another 00:38:42 elliott: You'll never get ops now. Your abusive nature is revealed 00:38:43 elliott very quickly abuses power 00:38:52 elliott: I only watched six episodes of Voyager 00:38:54 enterprise is currently my reference to startrek-with-plot 00:38:59 Maybe they were just six decent ones 00:39:02 NihilistDandy: OK yeah, stop saying that Voyager is an acceptable thing. 00:39:03 You have no idea. 00:39:16 Oh, all right, then 00:39:22 elliott, can we at least agree that the Voyager theme is good? 00:39:29 elliott: when I watched it I was too young to know good from bad, at least wrt Star Trek 00:39:31 Sgeo: lol 00:39:32 Sgeo: It's a bit boooooooooooooring. 00:39:33 so I have only your word to go on 00:39:41 So is DS9's, but it's the nicer of the two boring Star Trek themes 00:39:47 ais523: Literally everyone hates Voyager :P 00:39:48 olsner: I think Enterprise hurt me a little. I couldn't watch past the third episode 00:39:49 Apart from Sgeo. 00:39:59 NihilistDandy: Through a Mirror, Darkly is the only good Enterprise 00:40:07 ALSO ITS INTRO HAVE WE RAVED ABOUT ITS INTRO ENOUGH IN THIS CHANNEL YET 00:40:08 I'll have to look it up 00:40:43 NihilistDandy: http://www.youtube.com/watch?v=Dl5zw6fGjdA is the cool intro to In a Mirror, Darkly 00:41:02 They took all the exploration scenes from the normal intro and turned them into the far superior Earth-blowing-shit-up scenes 00:41:04 Neat 00:42:32 That was pretty cool. The music's kinda bland, though 00:42:35 Blandly epic 00:42:38 NEAT 00:42:55 OK, what the hell happened to this... 00:43:04 (mode == MAP_MODE_CROSS && map_flags & MAP_FLAG_FOLLOW_Y ? " (follow)" : ""), 00:43:04 (mode == MAP_MODE_SURFACE && map_flags & MAP_FLAG_CHOP ? " (chop)" : ""), 00:43:04 (map_flags & MAP_FLAG_LIGHTS ? " (lights)" : ""), 00:43:04 ((map_flags & MAP_FLAG_LIGHTS) && (map_flags & MAP_FLAG_NIGHT) ? " (night)" : "")); 00:43:09 How can any of that be 긒澖缀è긒澖缀`跈Ā? 00:43:20 NihilistDandy: Have you seen the normal Enterprise music. 00:43:22 Anything is better than it. 00:43:24 Literally anything. 00:43:30 Jesus. 00:43:34 I'll take your word for it 00:43:47 NihilistDandy: http://www.youtube.com/watch?v=ZPn-lTytfGo Enjoy terrible pop song 00:43:59 AHHHHHHHHHHHHH 00:44:05 Is this the actual intro? 00:44:07 elliott: have you tried encoding the garbage string as UTF-16, then decoding it as UTF-8? 00:44:18 WHAT THE FUCK 00:44:21 NihilistDandy: Yep. 00:44:25 I DON'T EVEN 00:44:28 I love how it looks like a bad redub by someone on YouTube 00:44:33 ais523: nope, I'm mostly trying to figure how I broke a piece of code I didn't even otuch 00:44:34 touch 00:44:51 Top comment on that video: Hey Im kinda new to the Star Trek franchise just bought the original series on dvd watching it tonight. Now which series has Wil Wheaton in it. 00:44:54 Rolfchoppa007 1 day ago 00:45:00 Trolololol 00:45:00 -!- Nisstyre has joined. 00:45:18 Maybe it has messy format strings? 00:45:25 I like how Wil Wheaton has about the same number of likers as Wesley Crusher has haters 00:45:35 Or, buffer overflows? 00:45:45 zzo38: but i didnt tucho that biteof code 00:46:14 Then maybe buffer overflows. 00:46:16 elliott: Wil Wheaton is a pretty nice guy, and Wesley Crusher is a terrible character. Simple. :) 00:46:45 Yup 00:47:29 I support the Wesley Crushers. 00:47:43 I'm watching Troll 2 00:47:54 (USER WAS BANNED FOR THIS MESSAGE) 00:48:17 I don't really get that though, wesley crusher was a likable geniusishy character, but all I've seen of wil wheaton is the big bang theory making him seem like a dick 00:48:28 ais523: how does use valgrind 00:48:33 olsner: wesley crusher was not likeable??? 00:48:33 elliott: for what? 00:48:35 olsner: Shh, you'll get us all killed 00:48:46 for checking for memory access errors, just write valgrind before the command name 00:48:48 elliott: I am saying he was 00:48:54 he was the accidental archetype of "smart but REALLY ANNOYING DICK" 00:49:06 and his smartness was just annoying because it made no sense at all 00:49:11 ais523: find memory corrupt 00:49:13 okays 00:49:16 yep, valgrind command 00:49:19 dunno if i'm smart enough for this but HERE WE GO 00:49:20 finding corruption is its default setting 00:49:26 also dunno if it'll like SDL 00:49:27 olsner: People get annoyed at Mary Sue wunderkind. 00:49:45 He has become Sheldon's nemesis. But we sympathize with Sheldon. 00:50:14 pikhq_: I think the actor who played Wesley Crusher is on record as saying that he hated Wesley Crusher too 00:50:18 i've never watched big bang theory but isn't sheldon meant to be a total jerk too 00:50:24 ais523: Yes, Wil Wheaton is on record saying that. 00:50:26 characters are not likeable just because they're intelligent 00:50:28 elliott: Yes. 00:50:37 YOU MEAN I'M DRUNK? 00:50:39 elliott: He's autistic taken up to 11. 00:50:47 wow what, bad packet id 00:50:49 I FEEL STRANGE, BUT ALSO GOOD! 00:50:51 minecraft why do you hate me 00:51:06 i wonder what i broke 00:51:08 NihilistDandy: No. You mean *I'm* drunk? I don't think I am drunk either. 00:51:11 You can't have your characters announce how they're feeling. THAT MAKES ME FEEL ANGRY! 00:51:51 elliott@katia:~/Code/mcmap$ valgrind hello let's be friends 00:51:51 > 00:51:54 ais523: help what do i tell valgrind 00:51:58 it wants to know something 00:52:01 it is > prompt... 00:52:11 elliott: valgrind doesn't take input 00:52:14 and just outputs to stderr 00:52:15 stupid elliott doesn't identify with intelligent unlikable characters on tv 00:52:18 so obviously hello is asking for inputs 00:52:19 then why is it asking me :((((((((((((( 00:52:19 *input 00:52:29 ais523: oh, should i say hello to hello??? 00:52:37 oh, it's the shell 00:52:40 you have an unmatched ' 00:52:41 > ==3150== Thread 3: 00:52:41 ==3150== Conditional jump or move depends on uninitialised value(s) 00:52:41 ==3150== at 0x57BBE40: inflateReset2 (in /lib/libz.so.1.2.3.4) 00:52:41 ==3150== by 0x57BBF2F: inflateInit2_ (in /lib/libz.so.1.2.3.4) 00:52:41 ==3150== by 0x40A47B: world_thread (in /home/elliott/Code/mcmap/build/mcmap) 00:52:42 wow, I don't even want to know 00:52:48 ais523: I know :P 00:53:10 bleh, I don't have hello installed 00:53:56 what the fuck? it looks like the only memory badness is in the lines i didn't touch 00:54:00 and that don't access any values i touched 00:54:41 (minecraft may be off-topic here, but mcmap isn't!) 00:58:42 THIS STRAW HAS NO BENDY-END 00:58:45 Remember when the Motorola Razr was a nice phone? 00:59:07 no 00:59:13 bendy is the best part of straws :( 00:59:24 what, the NY Times is running a story about /Dwarf Fortress/? 00:59:30 olsner: :( 00:59:31 is this for real 00:59:35 monqy: http://www.nytimes.com/2011/07/24/magazine/the-brilliance-of-dwarf-fortress.html?_r=1&pagewanted=all 00:59:36 monqy: well, this straw DOES NOT HAVE IT 00:59:37 elliott: Link? 00:59:39 Oh 00:59:51 Madness 00:59:56 did i die and end up in heaven 01:00:05 elliott: surely not 01:00:21 true, you're still here 01:00:25 the lack of bendiness is located to the straw 01:00:53 olsner: monqy: stop it. we don't want straw arguments here. 01:00:57 :D 01:01:01 :D 01:01:05 you're such a straw man, oerjan 01:01:17 oerjan: if my straw had bendies I could build a strawman 01:01:24 IF ONLY 01:01:55 ... 01:02:01 Where do.... Dwarf eat-- 01:02:02 In NyTimes!? 01:02:30 Lymee: your questions are irrelevant in this crisis 01:02:41 Now read the "level20" D&D recording file. 01:02:46 -!- ralc has joined. 01:02:48 the straw that broke olsner 01:02:52 "The only furniture in the small dining room is Scamps’s litter box." 01:02:55 Lymee: the straw, the bendy, it lacks it 01:03:01 good reporting 01:03:08 Lymee: hi, can you fix mcmap, 01:03:08 There may be some things I have missed and I will ask my brother and the DM. But other errors such as grammatical or whatever, you can tell me now. 01:03:15 elliott, NO! 01:03:17 "If much of Tarn’s apartment suggests a tenant who never fully moved in, his bedroom suggests a tenant who never sets a sock outdoors." 01:03:26 "Tarn wakes up around 3 p.m. every day, codes through the night and goes to bed around 6 a.m." 01:03:31 omg i am the tarn, its me 01:03:43 Tarn Hird 01:03:57 i think tarn's a republican though so :( 01:04:04 Hird Derp 01:04:10 also i would never make a game as boring as dwarf fortress 01:04:31 "Tarn consumed “maybe one glass” of water in the last three months, hydrating with soft drinks instead. “Water’s not doing it for me these days,” he said. “I know it’s bad, but the sugar goes right into programming the game. If I don’t drink soda now, I get a headache and can’t do any work.”" 01:04:36 i think they made this article just to laugh at him 01:04:37 Then don't make Dwarf Fortress, please. 01:05:22 elliott, nonsense! 01:05:29 That is the standard all programmers must aspire to. 01:05:45 -!- elliott has set topic: Tarn was pleased. “The hippos like the sewers!” he said. He took a celebratory swig of Dr. Pepper and rocked back and forth. | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 01:06:05 There is some property of soda which makes it less painful on sensitive gums. 01:06:35 it's probably all that acid 01:06:38 Is it the fizziness, or the acidity? :P 01:06:42 i know its ironic 01:06:43 Gregor: hifive 01:06:48 elliott: wooo 01:07:06 but water tends to irritate my gums 01:07:10 elliott: you know, this Tarn character sounds like someone from that story about the search for the Point 01:07:14 because i have some serious gum problems 01:07:22 olsner: search for the what now? 01:07:29 elliott: exactly 01:07:34 could be the salt 01:07:36 hahah 01:07:47 "The issue wasn’t aptitude so much as passion. He wanted to do math but also to make video games, a juggling act he managed as an undergraduate. This had become impossible. “They wanted 60 hours a week from you, giving you problems that would take 20 hours to solve,” he said. He grew depressed and, in his only encounter with drugs, snorted meth." 01:07:53 this is the silliest article 01:07:57 elliott: well, was it a search? I just recall something with "the Point" 01:08:05 you know... all the fizz and acids makes it possible for them to add salt to the soda 01:08:07 elliott: Agreed 01:08:18 Meth is so passé 01:08:33 all the real bedroom programmers snort pure liquified scheme 01:08:34 23mg of sodium per 250ml in my current soda 01:09:10 question is, how much sodium in water. and would i taste 23mg of sodium in 250ml of water 01:09:37 itidus20: never leave us ok 01:10:05 I played Dwarf Fortress for 20 minutes before becoming a mix of bored and disillusioned 01:10:11 I think I'm too tall for it 01:10:26 dwarf fortress is great, it's just not a game 01:10:41 more like a scientific measuring and probing tool for a universe that doesn't exist 01:10:41 people don't necessarily want games. 01:10:55 is super mario bros a game? 01:11:10 No, it is a video game. 01:11:12 itidus20: at least one yes 01:11:16 I spend most of my time modelling and probing things that don't exist. I don't need that in a game 01:11:30 is making an avatar jump onto a floating brick a game? 01:11:31 super mario brothers is a game, yes :P 01:11:33 i wish i could get into dwarf fortress 01:11:41 it sounds like the kind of game i would like 01:11:43 -!- cheater_ has quit (Ping timeout: 255 seconds). 01:11:43 monqy: get into elliottcraft instead 01:11:45 itidus20: No, that is just an idea. 01:11:47 the kind of more than a game i would like 01:11:49 elliottcraft???? 01:12:03 well.. in super mario bros, you do that just within the context of a game 01:12:04 monqy: yes i play minecraft, but it is a bad game, so i am making a totally different game and calling it a better minecraft 01:12:06 like.. uhh 01:12:07 It's minecraft, except that you're elliott 01:12:09 hahaha hahaha hahaa 01:12:13 It's a niche community 01:12:18 monqy: dwarf fortress-level detail and depth, but minecraft-style graphics and infinite world 01:12:27 plus you control a player rather than dwarves (although there are AIs in the world) 01:12:27 sounds neato 01:12:29 super mario bros is about jumping on blocks with a time limit 01:12:34 i'm not sure what the goal is yet :< 01:12:44 but hey, infinite in all directions unlike minecraft!! 01:12:48 (minecraft has a height limit) 01:12:50 itidus20: And running to the right 01:12:55 well yeah 01:12:55 itidus20: Well, it is about reaching the end of each level, I think 01:13:04 It is the goal, at least. 01:13:04 i study these things. 01:13:09 elliott: Lazily generated, one hopes 01:13:14 by study i mean i look at websites 01:13:15 Und jetzt: schalafen werden würden werden sein... Ja? 01:13:25 NihilistDandy: yes :P 01:13:40 originally shigeru said.. each level should take about 60 seconds 01:13:44 monqy: also competently coded multiplayer??? unlike minecraft's which is so bad you have no idea 01:13:49 elliott: Well, I mean if you have a real UTM you could do it strictly :D 01:13:59 NihilistDandy: utms can't do infinite computation in finite time, sorry no 01:14:03 the people said.. oh no. thats a lot of screens that have to be created per level if it is scrolling for a whole minute 01:14:03 :P 01:14:13 one time i played minecraft 01:14:15 i uh 01:14:17 then shigeru said.. but there will be things on the way to slow them down 01:14:18 it was a long time ago 01:14:24 elliott: http://www.youtube.com/watch?v=pJsPoI2w6-A 01:14:28 monqy: back when it was a java applet? 01:14:31 and you had infinite of all blocks 01:14:34 yeah 01:14:45 is it not a java applet anymore? 01:14:52 monqy: well it's java, but nobody plays it in the applet form any more 01:14:59 and it costs money, but not much 01:15:05 money :( 01:15:07 monqy: the beta is actually a fun game. the coding is so bad you have no idea, but it is actually fun. 01:15:12 Even *I* bought it, and I steal everything 01:15:23 monqy: 21 dollars, it seems 01:15:29 it was half that when i bought it during alpha :P 01:15:31 * olsner had an MRI scan the other week, btw: there should be nothing to worry about - because if there were I hope they would've told me by now 01:15:41 (and will double again when it hits final) 01:15:48 olsner: worry? I was just getting excited :( 01:15:50 (not true) 01:15:56 yeah.. super mario game is all about reaching the end of the level within a time limit 01:16:01 42 dollars minecraft? 01:16:04 elliott: MRI scans are more noisy than exciting 01:16:05 ouche 01:16:11 monqy: well, it's a lot bigger game now :P 01:16:15 humm 01:16:23 monqy: aren't new games like sixty dollars anyway 01:16:26 I better not have to buy it again 01:16:29 NihilistDandy: no 01:16:35 Good 01:16:37 elliott: i dont buy games i have no idea 01:17:01 elliott: otoh, why would you ever worry about my "insignificant" existence 01:17:13 monqy: minecraft is good to buy because it gives you two good things to do: 01:17:16 monqy: - complain about minecraft 01:17:16 olsner: We are all insignificant 01:17:18 monqy: - play it and enjoy it 01:17:33 NihilistDandy: the nihilist doubly so 01:17:41 Game theory is not a perfect tool for analyzing video games. 01:17:42 Ouch 01:17:45 monqy: also you get to play with us :{ 01:17:48 :( 01:17:51 Nash failed to create a "video game theory" 01:17:54 that was a happy :{ 01:17:58 oh 01:18:01 `addquote Nash failed to create a "video game theory" 01:18:01 whats a sad :{ 01:18:02 539) Nash failed to create a "video game theory" 01:18:02 or he didn't try :P 01:18:04 monqy: :{ 01:18:13 `delquote 539 01:18:14 ​*poof* 01:18:17 `addquote Game theory is not a perfect tool for analyzing video games. Nash failed to create a "video game theory" 01:18:18 539) Game theory is not a perfect tool for analyzing video games. Nash failed to create a "video game theory" 01:19:10 How does M. Bison roll? 01:20:21 “I don’t mind the idea of never having kids,” he said. “I want to stay focused on the game, and if I had kids, I’d wind up paying attention to them instead.” 01:20:38 itidus20: I don't think Bison has a roll attack 01:20:53 elliott: This article has to be a troll 01:21:03 -!- CakeProphet has quit (Ping timeout: 252 seconds). 01:21:12 why its awesome (its obviously trying to paint him as a "weird" person but who cares) 01:21:32 Vega and Blanka, OTOH... 01:21:49 LIKE A BAWWWSS! 01:21:53 what i 01:22:05 whats a bawwwss 01:22:07 i cut and pasted someone elses spelling 01:22:22 was it mine 01:22:47 because i uh 01:22:49 bawwss 01:22:51 i 01:22:53 what is it 01:22:57 I was gonna say Bowser from mario... but couldn't think of a name which would click instantly 01:23:08 Since some call him King Koopa 01:23:26 wow he makes a lot from donations 01:23:29 well not that much 01:23:31 but for donations... 01:23:32 a lot 01:24:07 "Tarn, 33, lives" 01:24:08 like a bowser from mario 01:24:11 In bold, for no reason 01:24:17 -!- cheater_ has joined. 01:24:21 Still, in the only moment I heard him speak with anything like bitterness, Tarn called Minecraft a “depressing distillation of our own stuff.” 01:24:33 NihilistDandy: it's a section break 01:24:46 elliott: It's not a very convincing one 01:25:29 -!- Nisstyre has quit (Quit: Leaving). 01:25:29 I think the only reason I want Minecraft is the polish. Gameplay polish and also the abundance of NPCs 01:25:58 Coincidentally, those are the two major lacking features of Minecraft! 01:26:02 And -- since my brain can think up such things... I dare say 01:26:03 'As Tarn got into the zone, his muttered profanities and grumbles about “x distances”' 01:26:12 As if that's some absurd nerdspeak 01:26:15 Terraria is Lemmings with NPCs. 01:26:25 you dont control a character in Terraria 01:26:35 Oh.. I haven't played it. 01:26:49 you don't really control a character in Lemmings either 01:26:53 erm 01:26:56 you control a character in Terraria 01:26:58 sorry 01:27:01 you dont control a character in Lemmings 01:27:10 You're just a demigod in Lemmings. 01:27:14 I just uh.. hit on a cool idea didn't i? 01:27:17 NPCs in lemmings 01:27:27 terraria is basically minecraft + rpg 01:27:28 lemmings vs zombies 01:27:28 is that really a cool idea? 01:27:40 pikhq_: you're more of a tactical advisor who tells them when to turn into walls and when to explode 01:27:44 i wonder if it has been done 01:27:50 ais523: I'm going with demigod. 01:28:19 on bing: Thats an urban legend. However, in the very excellent video game Lemmings, they do. Now thats a great idea for a video game: Lemmings vs Zombies. 01:28:32 dying 01:28:32 "Demi" because you're not *that* powerful, "god" because thou art greatly seeing and greatly knowing. 01:29:00 "Can I be one of the play testers for Zombies vs. Lemmings? And will there be a sequel game with zombie lemmings?" 01:29:03 ais523: lemmings with npcs actually sounds interesting 01:29:05 although very hard 01:29:14 http://www.obamaconspiracy.org/2011/04/this-isnt-going-away/ 01:29:24 pikhq_: I always thought a demigod was just someone in charge of the espresso machine 01:29:25 it depends on what the NPCs do, and interact with the game 01:29:30 "obamaconspiracy.org" 01:29:37 i know.. im serious though 01:29:42 oh, it's against obama conspiracies 01:29:47 elliott: I'm not at all surprised that the website exists 01:30:09 ais523: I was worried it would be a collection of conspiracies about Obama in /favour/ of them 01:30:27 * elliott becomes the Tarn, tries to figure out what's up with this code 01:30:43 hmm... 01:31:53 -!- Slereah has joined. 01:31:53 -!- Slereah has quit (Client Quit). 01:31:56 "There are those who tell us that any choice from among theoretically-equivalent alternatives is merely a question of taste. These are the people who bring up the Strong Church Turing Thesis in discussions of programming languages meant for use by humans. They are malicious idiots. The only punishment which could stand a chance at reforming these miscreants into decent people would be a year or two at hard labor. And not just any kind of 01:31:57 hard labor: specifically, carrying out long division using Roman numerals. A merciful tyrant would give these wretches the option of a firing squad. Those among these criminals against mathematics who prove unrepentant in their final hours would be asked to prove the Turing-equivalence of a spoon to a shovel as they dig their graves." 01:32:30 source 01:32:31 ? 01:32:57 http://www.loper-os.org/?p=448 01:33:18 "Why do birthers believe what they do? It turns out that one factor in whether someone mistakenly considers random patterns to be something significant has to do with dopamine levels in their brains — the more dopamine, the more belief. Dopamine is part of the brain’s reward system. I was just reading about this today in Michael Shermer’s book, The Believing Brain." 01:33:23 this blog sure is fishing for posts 01:33:36 Sgeo: oh, another loper post 01:34:17 Sgeo: re turing-equivalence: right point, annoying delivery, as always with loper-os 01:34:24 apart from the times it's wrong point, annoying delivery 01:34:40 elliott, I think it's hilarious delivery *shrug* 01:34:54 elliott, link to wrong point? 01:34:59 ur joking right 01:35:07 I think rage is funny 01:35:09 "you say this huge blog is wrong sometimes?? PROVE IT WITH A LINK" 01:35:19 Oh. 01:35:23 also, yeah, now try reading every loper post and not getting sick of him and wanting him to shut the fuck up 01:35:28 Sgeo: but here's a wrong point: http://www.loper-os.org/?p=428 01:35:44 here's a stupid point: http://www.loper-os.org/?p=405 01:35:59 here's a stupid point: http://www.loper-os.org/?p=374 01:36:00 Sgeo: Well, the Turing thesis really *does* imply that the choice of language is "merely" one of taste. 01:36:17 But, then, the same is true whenever you have a selection of tools theoretically capable of a given task. 01:36:29 its not the turing thesis ffs 01:36:34 church-turing thesis is a different thing 01:36:41 Even if your choice is between a spoon and a bulldozer. 01:37:02 Sgeo: lol -- see that project cosa stanislav linked to? 01:37:07 from the guy behind that thing's blog: 01:37:16 i dont think a bulldozer will help me eat this soupe 01:37:17 The Surprising Source of My Knowledge about the Brain 01:37:17 Abstract 01:37:17 In my recent article on the flaws in Numenta's memory model, I made several claims about how the brain processes sensory signals. I now reveal the source of my knowledge as promised. Those of you who have followed my work over the years will not be surprised by what I am about to say. As always, it is up to you to take it or leave it. 01:37:17 [...] 01:37:18 My Source 01:37:20 The source of my knowledge is a couple of occult symbolic texts found in the Bible. 01:37:21 I saw the link, didn't click it 01:37:22 -- http://rebelscience.blogspot.com/2011/06/surprising-source-of-my-knowledge-about.html 01:37:24 good 01:37:27 good thinker 01:37:36 The problem is, of course, that we have people convinced that a teaspoon is a good tool for digging a tunnel. 01:37:57 does anyone think bulldozeres are good for soupes 01:38:04 yes me 01:38:08 i have very big soups 01:38:13 monqy: Well, the XML crowd seems to think that. 01:38:20 mmh 01:38:24 Except instead of a bulldozer it's more a Death Star. 01:38:51 "Neither Newton's gravity equation nor the equations of General Relativity explain why things fall. But what better way is there to hide one's cluelessness while presenting a façade of erudition than to use obscure equations to erect an impregnable mountain of obfuscation? Voodoo science is guru science." 01:38:53 oh this guy 01:39:04 "Examples of voodoo science masquerading as legitimate science are all around us: time travel, wormholes, black holes, dimensions curled up into little balls so tiny as to be undetectable, parallel universes, continuum physics, quantum computing, symbolic intelligence, machine consciousness, etc... It is all worthless crackpottery." 01:39:16 (Spacetime is a fictitious math construct, famous physicists are clueless about time, time dilation is a misnomer and time travel is crackpottery) 01:39:17 (Aristotle was right about the causality of motion and, as a result, we are immersed in an immense lattice of energetic particles) 01:39:26 (Gravity is an energy conservation phenomenon. It is both instantaneous and nonlocal) 01:39:26 (Intelligence is mostly about the temporal correlations between discrete sensory signals) 01:39:30 i wanna hug this guy 01:39:43 Artificial Intelligence From the Bible! 01:39:44 June 21, 2011 01:39:44 Due to recent dramatic progress in my research, this article has been deleted. My old interpretation of the scriptural metaphors was partially in error. I am working on a new series of articles on the subject. In the meantime, I encourage my readers to read Rebel Science News for the latest. 01:39:58 dead 01:40:01 rotting 01:40:01 Oh, so we can 01:40:07 can't see when he makes mistakes 01:40:14 (Erm, as in, in his predictons) 01:40:17 predictions 01:40:35 Although I'm sure he'll call any falsifications "voodoo science" 01:40:52 Partially in error 01:40:55 im torn between wanting to read the cosa paper and not wanting to because this guy man 01:41:58 cosa? 01:42:21 monqy: this guy's dataflow software/os/language proposal which seems to be much saner than his other stuff 01:42:25 that stanislav linked to 01:42:55 OHHH i know whats wrong 01:46:00 indeed, you should never use ketchup with filet mignon 01:47:06 what do you advise 01:47:08 for use with 01:47:11 filet mignon 01:48:09 i like béarnaise sauce 01:48:35 Leave it alone 01:48:50 oh or pepper sauce 01:48:50 Just eat it, and enjoy 01:50:04 I think I've had bearnaise sauce one time it was good pepper sauce is good too i forget if i've ever had filet mignon 01:50:08 hm wait that doesn't mean the same thing as "peppersaus" 01:50:30 no thats a completely different thing obviously 01:50:31 I actually kind of like this: http://www.loper-os.org/?p=428 01:51:16 it's a stupid point 01:51:24 with the context of http://www.loper-os.org/?p=288 01:51:33 Ah 01:51:59 also his response to http://www.loper-os.org/?p=288&cpage=1#comment-1283 01:52:04 it's amusing but wrong and stupid 01:52:54 lol, crazy people 01:53:25 loper is full of good ideas written by an annoying person with a too-big ego 01:53:37 HAVE I MENTIONED THAT TUNES IS GREAT 01:53:39 BUT @ IS BETTER 01:54:00 elliott: the english word implies chili pepper, the norwegian word implies black pepper (or similar) 01:54:27 elliott, the thing common between them is that neither are currently usable 01:54:37 I think "pepper sauce" refers to black pepper in British English too 01:54:39 * Sgeo ducks 01:54:42 ah. 01:54:46 oh -- 01:54:48 "TUNES started in 1992-95 as an operating system project, but was never clearly defined, and it succumbed to design-by-committee syndrome and gradually failed." 01:54:50 "Pepper sauce" just sounds bizarre in American English. 01:54:52 TUNES is now officially over 01:55:01 as of April, it seems 01:55:03 so why is clog still here? 01:55:06 RIP TUNES 01:55:08 monqy: say it 01:55:12 i uh 01:55:20 reading now 01:55:21 ais523: the website isn't down, it's just officially abandoned; and besides, clog is a bespin service, not a tunes one 01:55:26 ah, fair enough 01:55:27 we just use the wrong url because everyone does and it's prettier 01:55:30 monqy: wait you don't know of tunes? 01:55:39 A sauce from chili peppers would be "hot sauce", and you can make a black pepper sauce? 01:55:41 I only do because of clog 01:55:48 pikhq_: you can make a source from black pepper 01:55:54 Unununium is also dead 01:55:55 and other ingredients too 01:55:59 not /just/ black pepper, obviously 01:56:04 ais523: Well, obviously. 01:56:05 ais523: every programmer should know about TUNES, I think 01:56:24 elliott: in your opinion, lots of people should know about all sorts of things I don't know about 01:56:27 But, seriously, that seems like a strange sauce basis. 01:56:29 I'd give an example except I can't 01:56:29 so that they don't keep assuming Unix and Windows are the only ways to do computers, or anywhere near the best way 01:56:36 or even an acceptable way 01:56:44 I don't assume UNIX/Windows are the only way to do things at all, though 01:56:51 I'm at the end of the game Like a bauss 01:57:00 ais523: let's put it this way: @ doesn't sound like much new to anyone who knows about TUNES 01:57:04 whats a bauss is it like a bawwwss ;___________________; 01:57:05 UNIX is like the BF of operating systems; people who try to design operating systems normally end up designing crappy versions of it, but that doesn't mean it's the only way to do an OS 01:57:08 I would hazard a guess that @ sounded new to you 01:57:26 and @ is unlike OSes I know about, but the concepts aren't new to me 01:57:27 whats windows 01:57:33 whats @ 01:57:42 monqy: @ is the operating system you'll use in a few decades... maybe. 01:57:44 pikhq_: hm i went by wikipedia, where "pepper sauce" redirects to "hot sauce", which has both terms and chili sauce bolded 01:57:55 interesting 01:57:56 oerjan: "Pepper sauce" still sounds bizarre. 01:58:02 elliott: googleing for @ doesnt work he;lp[ 01:58:02 http://www.youtube.com/watch?v=NisCkxU544c 01:58:06 ais523: I like to think @ will be interesting enough to surprise you when it actually exists 01:58:06 "chili sauce" would be the usual name in the UK 01:58:12 monqy: @ is my ultimate NIH project 01:58:15 monqy: Modern Windows is, IMO, in the same OS family as UNIX. 01:58:22 err, "chilli" I think in British English 01:58:33 elliott: zepto 01:58:33 pikhq_: I agree too, although it's a very bad example of it 01:58:33 monqy: I decided that software was fundamentally broken 01:58:34 "It's 2008 now. If a few dedidated hackers can find the time and money to put some sustained effort into it, we could have a working prototype by 2010, with widespread use by 2015 or 2020. 01:58:34 " 01:58:38 ais523: No argument. 01:58:59 monqy: so i tossed everything out, and started designing a new software environment ("operating system is inaccurate"; @ has no distinction between the OS and everything running "on top" of it) 01:59:07 What makes something in the same OS family as UNIX? 01:59:09 including language, from scratch 01:59:14 Files in a heirarchy? 01:59:23 Sgeo: that would make DOS a UNIX 01:59:33 not DOS 1 01:59:39 it didn't have directories 01:59:46 it spent the rest of its life gradually stealing UNIX concepts 01:59:55 monqy: you may peruse http://catseye.tc/ehird/files-suck.html but only in the knowledge that it's old and whiny, and only summarises one aspect of @ (and fairly vaguely at that) 02:00:07 how did that end up on catseye? 02:00:15 I'm not surprised you wrote that, but I am surprised at where it's hosted 02:00:17 ais523: I had no hosting at the time and asked cpressey on IRC, and he said sure 02:00:25 this was last year 02:00:31 well, fifteen months ago 02:00:50 gah that's formatted badly, far too narrow 02:01:06 nah, it's only about 3 ems too narrow 02:01:11 exactly, in fact 02:01:13 -!- cheater_ has quit (Ping timeout: 255 seconds). 02:01:27 Sgeo: The primary feature is having the prime data structure being a hierarchy of blobs of bytes, with a little bit of metadata. Combine with a C ABI and system calls as the basic ABI, and multitasking, and you have a vaguely UNIX-like OS. 02:01:31 (ten words per line/sixty-six characters per line is the widely-agreed-upon ideal that presumably has some research backing it up, and that's 33 ems) 02:01:32 congratulations, you're the first person who actually made me open up Firebug and edit the CSS 02:01:35 to make it three times the width 02:01:49 even then, I'd prefer it to go margin to margin 02:02:09 there we go 02:02:11 ais523: now wouldn't it be nice if browsers didn't make lousy document viewers, and you could have done that without resorting to such things? 02:02:13 You know, like @. 02:02:17 Also, yes, the memory/disk dichotomy is big. 02:02:22 (I also think your eyes are broken, but oh well) 02:03:32 elliott: I can think of some counterpoints to things in that files article 02:03:57 ais523: go on, although I'll probably disagree with them 02:03:58 in particular, it's often useful to be able to change the representation of something on disk, and if you abstract away from that, there's no way to do so 02:04:06 ais523: yes there is 02:04:10 what is it/ 02:04:11 I even address that in the article 02:04:34 Would you fuckers stop talking so fast? I'm still reading the scrollback for context :D 02:04:47 and no you don't, unless I missed where you addressed it 02:05:00 -!- pikhq has joined. 02:05:04 ais523: tl;dr current @ design is that any "entity" (/object/whatever) can override its own saving and storing, but most of the time you'll want to just use a pre-written transformer like a compressor, since you must ensure to always save and restore _all_ of the state 02:05:08 ais523: "You don’t have to give up the compactness of formats like PNG, either: you can store that as a byte array in memory, and have it as the pluggable “backing storage” of some abstract image type. That way, all images are accessed in the same way (although possibly with different operations depending on the characteristics of the backing storage) regardless of the underlying compressed stora 02:05:08 ge. 02:05:08 " 02:05:24 that's a little vague and not the exact current design that I stated, but it still addresses it 02:05:30 "You could have overridable serialisation, so that e.g. a PNG-backed image is serialised as the compressed PNG, without any auxiliary data that can be generated when it is used." 02:05:35 ah, I suppose my question is as to how you're meant to change the backing storage 02:05:54 ais523: depends how you tell the operating system anything about an object 02:06:04 Every object could be responsible for its own serialisation/deserialisation, for instance 02:06:13 Also, elliott, last I was aware 100 characters/line was the new sort-of standardy ideal 02:06:17 also, how does @ do naming objects? e.g. atm I can access /home/ais523/esoteric/intercal/git/intercal to get the latest C-INTERCAL source 02:06:17 and you could pull in GzipSerialiser 02:06:24 NihilistDandy: nah, the sources for that seem rubbish 02:06:26 and obviously that doesn't have to be done with a hierarchical filename 02:06:31 but I'm wondering what specifically replaces it 02:06:43 ais523: That's metadata. 02:06:47 pikhq: hey 02:06:53 I get to answer questions about @ :p 02:06:57 ais523: how do you name the x coordinate of the first coordinate in a list of coordinates (say array) in C? 02:07:10 elliott: in C, it depends on their internal representation 02:07:18 ais523: filesystem names are internal representations 02:07:22 yep 02:07:24 ok, C was a bad choice 02:07:29 but the point is, array[0].x is a name too 02:07:39 at the moment, the filesystem representation, while internal, is the one that humans use to specify files 02:07:43 -!- pikhq_ has quit (Ping timeout: 276 seconds). 02:07:47 ais523: but in @ the primary means of naming documents isn't by internal name 02:07:51 I'm asking what @'s equivalent is, not because I don't think it exists, but because I'm curious as to what it is 02:08:02 so it's not so much an accusation as a question 02:08:07 ais523: I'm not sure exactly how you /do/, because I don't know what @'s UI looks like yet, other than it being very, very different from anything else 02:08:13 heh 02:08:19 a hipster UI? 02:08:33 ("I don't care what it is as long as it's different"?) 02:08:34 ais523: but e.g. you might say "find|document|@ best os" and it would find you a document titled "Why @ is the Best OS" 02:08:40 (prioritising title over text, etc.) 02:08:52 what if I don't want to do any sort of search? 02:08:58 or "find|documents|older than april" 02:09:08 ais523: Don't think of it as searching 02:09:11 e.g. if I'm using @ to work on some more traditional software 02:09:14 ais523: just think of it as naming an object 02:09:24 elliott: I want exactly the same result every time, no matter what's happened in terms of creation of other objects meanwhile 02:09:28 ais523: If you want a precise name, you could take its object ID -- basically, like a pointer, but it's literally global 02:09:31 (it's just a long hash) 02:09:34 or deletion or changes of any objects other than the one I want 02:09:37 ais523: Then see above 02:09:39 and I can't remember hashes 02:09:42 Can you use the ID numbers for the documents and whatever you want to find? 02:09:48 ais523: zooko's triangle 02:09:54 oh, right# 02:10:02 heh 02:10:11 you're ignoring the side of the triangle I most care about 02:10:15 ais523: Unix cheats by not having the decentralised or secure properties 02:10:15 and I'd much prefer you discarded one of the other two 02:10:16 and which side is that? 02:10:22 Human-meaningful? 02:10:31 I solve that by having alternate ways to name objects, like I said 02:10:37 hmm, decentralised is the one I care least about 02:10:43 I'm fine if I can only access stuff on my own computer 02:10:49 It's integral to @'s design 02:10:51 better, in fact, as I'm typically not connected to a network 02:10:53 It's integral to @'s design 02:11:06 well, in that case I probably won't use @, it's fundamentally incompatible with the way I work 02:11:09 @ makes no innate distinction between RAM and disk; it also makes no innate distinction between local and global 02:11:10 ais523: It isn't 02:11:16 ais523: You could define a filesystem view of all your documents 02:11:21 Mangle the name and some other data to form its name 02:11:37 hierarchical filesystems are far from perfect, but at least they're usable 02:11:39 You can do anything you can do in Unix with @; it just wouldn't be /idiomatic/ 02:11:44 well, fair enough 02:11:47 ais523: I just told you how to get a filesystem; you could make it hierarchical too 02:11:57 ais523: You could manage it manually by constructing a filesystem object yourself; basically just an associative map 02:12:07 what's @'s equivalent to UNIX "find" (i.e. get everything below a certain point in the hierarchy)? 02:12:07 But I find dismissing these things before actually using them to be unwise 02:12:13 O, so filesystems are not the fundamental things, but you can still make it up yourself to do like a filesystem? 02:12:27 the concepts don't translate at all well, which is why I asked 02:12:29 ais523: There is no hierarchy. If you mean on a constructed filesystem, that's up to the API of the associative map 02:12:54 ais523: Anyway, the distinction between local and global doesn't make local use more difficult 02:12:58 Well, I certainly wouldn't know until I can see some parts of it that it can be done. 02:13:01 [asterisk]lack of distinction 02:13:03 say, I'm working on a program, and I want to find all instances of a certain identifier in all the source that makes up that program 02:13:09 ais523: Note that distinctoins are made at the user-level 02:13:10 (I'm trying not to assume that the source is text-file-like here) 02:13:28 ais523: Well, "program" is also an artificial distinction :) 02:13:30 presumably I have to group all those files some way so I can equivalent-of-grep over just those 02:13:43 elliott: well, let's try "package", which is also an artifical distinction but one that's made deliberately for a reason 02:13:43 ais523: But say you have a collection of that count as the structure of your program 02:13:57 ais523: OK, fair enough 02:13:57 or "portion of all software that I'm responsible for maintaining" 02:14:01 which is not arbitrary 02:14:01 ais523: How would you do that on an arbitrary data structure? 02:14:11 pikhq: please, don't try and argue @ for me, it makes @ look bad :) 02:14:18 -!- cheater_ has joined. 02:14:19 elliott: Okay, then. 02:14:20 pikhq: for a completely arbitrary data structure, with no knowledge about its contents, I couldn't 02:14:38 but that's not the case even in @ 02:14:47 ais523: Well, I don't know how you'll actually phrase queries... because I don't know what @'s UI is yet (this also implies I don't know what its language is yet, because they're two sides of the same coin) 02:14:49 ais523: But 02:15:19 ais523: Things like functions will have a way to get at their underlying AST 02:15:29 Presumably 02:15:33 Maybe only in some context like a package 02:15:33 oh no 02:15:37 To avoid breaking all sorts of parametricity 02:15:40 I've just realised that Feather is the only sensible language to write this in 02:15:44 ais523: haha, it isn't 02:15:47 ais523: But seriously -- 02:15:53 you just said "Things like functions will have a way to get at their underlying AST" 02:15:57 Then contradicted it 02:16:04 ah, OK 02:16:06 That breaks all sorts of properties, it's gross 02:16:14 But you might be able to get a function's source from its module, say 02:16:15 -!- BeholdMyGlory has quit (Remote host closed the connection). 02:16:18 I'm not sure 02:16:27 I'd assume functions would be decompiled to get their source 02:16:33 ais523: But anyway, tl;dr AST objects (if there is a concept like an AST??) will have a way to search for an identifier 02:16:34 and things like comments would be part of the compiled version 02:16:38 so that it would roundtrip 02:16:38 So it's basically just a map over the project 02:16:53 I know this is hopelessly vague, but your questions are all user-level, which is the least certain part of @ so far 02:17:09 yes, that's because the system-level stuff, at least at the highest level, makes a lot of sense 02:17:09 So I do ask you don't dismiss it before it exists based on _these_ answers :) 02:18:05 incidentally, I can think of a moderate solution to the zooko's triangle problem; allow individual users (with whatever way you identify who they are, which you have to do for security reasons) to have their own private names for arbitrary objects 02:18:25 that way you have both a secure/decentralised name and a secure/humanreadable name, with the human who reads it doing the centralisation 02:18:26 ais523, I think there are systems that do that 02:18:35 -!- elliott has quit (Read error: Connection reset by peer). 02:18:38 -!- elliott_ has joined. 02:18:42 incidentally, I can think of a moderate solution to the zooko's triangle problem; allow individual users (with whatever way you identify who they are, which you have to do for security reasons) to have their own private names for arbitrary objects 02:18:46 Missed everything after this 02:18:50 ais523: And yes, that's a Petname system 02:18:57 [03:18] that way you have both a secure/decentralised name and a secure/humanreadable name, with the human who reads it doing the centralisation 02:18:58 [03:18] ais523, I think there are systems that do that 02:19:00 ais523: And that will be possible, yes 02:19:00 I think I'd be fine with that 02:19:08 ais523: It'll be the same mechanism as what replaces a browser's bookmark system, too 02:19:21 ais523: And of course you won't be restricted to naming things with a-constrained-path.txt, or even just a string 02:19:25 indeed 02:19:26 No reason a name can't be an object 02:19:29 So I have to think up names for all my bookmarks? 02:19:35 elliott_: except that objects can't be compared, in general? 02:19:41 Sgeo: Your bookmarks already *have* names. 02:19:41 a name has to be something comparable 02:19:41 Sgeo: what happens when you press the bookmark icon on your browser? 02:19:45 apart from that, it can be general 02:19:47 ais523: well, yes, definitely 02:19:58 ais523: although you could have a name that isn't comparable, and it'd just appear in a list of all your names 02:20:00 that'd be fairly pointless, though 02:20:02 elliott_, A name is filled in, but possibly non-unique 02:20:03 Sgeo: your bookmarks are almost certainly given the title of the website they refer to, at the time it was bookmarked, as names 02:20:13 Sgeo: Non-unique names are OK, too 02:20:13 "Index of /" etc. 02:20:18 Looking it up will just say "oops, which do you mean" 02:20:24 Ok 02:20:30 in fact, the default lookup operation might as well just do a fuzzy-ish text search 02:20:37 Also, I tend to bookmark everything and then never look at them agian 02:20:38 again 02:20:40 that's a lot more convenient, too, since you can type only part of it and select which one you want 02:21:30 elliott_: I think Firefox's address bar thing has quite a few properties in similar with the way @'s names would typically work (although a lot of differences too) 02:21:42 yes; Firefox's address bar is a good idea, implemented badly 02:21:54 what do you dislike about the implementation, incidentally? 02:22:07 It's hard to articulate; it just doesn't do what I want 02:22:14 Chrome's is better, but it tends to not find things in my history, which is really annoying 02:22:37 when I'm typing in the address bar, either I'm copying an URL, or I'm searching in history 02:22:50 so Firefox does pretty much exactly what I want there 02:22:56 ais523: Anyway, hopefully @'s "final" (just the beginning) version will be the OS you want to use; all my efforts right now are classed as pre-pre-pre-pre-alphas of a given /stratum/ of a project leading up to @ 02:22:58 I definitely don't want it to return arbitrary websites, that's what the search box is for 02:23:03 elliott_: heh 02:23:07 So there's plenty of time for you to test and comment on it :P 02:23:21 ais523: I'm not even joking, I've even tried to name distinct phases 02:23:41 I can't call anything @ until it's 1.0 quality, and that means being about a million lightyears ahead of any existing OS 02:23:47 security sounds like a hard problem in @, in that a single security bug could allow someone to instantly bring down every computer in existence 02:23:50 Oh, and @ isn't its actual name, of course 02:23:55 ofc, it's just a placeholder 02:23:59 it's not bad for an actual name, though 02:24:03 perhaps its actual name will be an object 02:24:09 Bad for Googleability, but who will use Google once @ is around? 02:24:10 rather than a text string 02:24:39 Using @ will, ironically but perhaps appropriately, not be as nice as using @ would be in an ideal world; nobody else is going to use it, so you'll still be stuck with the web, and IRC, and all sorts of other mediums that reimplement everything and don't allow you to send objects 02:24:41 security sounds like a hard problem in @, in that a single security bug could allow someone to instantly bring down every computer in existence 02:24:42 elliott_: probably Google will have the best servers at resolving who has a copy of a given @ object 02:24:48 Really? I'm planning on using capability security. 02:24:58 That seems relatively immune to such things because the security isn't "a thing" or a layer 02:25:01 elliott_: I mean, if the security implementation is broken 02:25:04 It's just an inherent property of who gives you what. 02:25:11 ais523: See above; capability security doesn't get implementations. 02:25:17 "a capability" isn't something you can hardware into an actual processor 02:25:18 It's literally just not having a standard environment beyond what's passed around. 02:25:27 ais523: A capability is just an object! 02:25:31 Every object is a capability! 02:25:33 It is a 0 lines of code thing. 02:25:39 There are no flags or anything. 02:25:45 It is just recognising that a pointer to X means you are allowed to use X. 02:25:55 elliott_: yes, so what if I try to use X without a pointer to it? 02:26:02 ais523: How? You can't name it. 02:26:04 that's meant to be impossible, but has to be implemented somehow 02:26:04 "Slartibartfast: Can I be one of the play testers for Zombies vs. Lemmings? And will there be a sequel game with zombie lemmings?" 02:26:07 Try and name X for me. 02:26:09 ais523: No, it doesn't 02:26:14 "Count me in too! Dr C you really should patent that ideaI think that game or app would rake in a fortune! ;)" 02:26:20 elliott_: well, say X happens to be on my physical hard drive 02:26:32 elliott_, there has to be a level of abstraction though 02:26:32 I can name it by its location on the drive 02:26:38 ais523: You can't access the bits on your hard drive; nobody passed you that object. 02:26:47 Of course they didn't, that's insanely high-privilege. 02:26:48 that's the kind of crap patents are.. its really just how quickly you can traverse the inventions tree and find an empty node 02:26:59 elliott_: so what if an exploit does let me access the bits on my own hard drive? 02:27:03 ais523: How? 02:27:10 say, removing the hard drive and putting it into an older laptop that doesn't run @ 02:27:17 Yes, security bugs are possible, but capability security makes it just so less likely. 02:27:28 or corrupting its processor somehow such that it runs arbitrary I/O instructions? 02:27:35 that's what I mean by implementing security 02:27:36 ais523: And then modifying the bits so that the piece of code you're running has a pointer to X? 02:27:39 I clearly demonstrated that I was able to independantly discover the idea. 02:27:47 If your hard-drive is not encrypted and you have access to it you can do anything locally. 02:27:57 @ can't stop you. 02:28:02 elliott_: yes, or that modifies something it has in order to put the content there 02:28:13 And @ won't even try; a user can ask it to fiddle with bits on its hard drive and it will happily comply, perhaps after panicking a bit and asking if you're sure. 02:28:19 (A user, not a piece of code.) 02:28:23 ais523: Well, so what? 02:28:23 that's what I'm getting at; it's that the universe doesn't support @'s model of capabilities 02:28:28 You've successfully compromised your own system. 02:28:32 ais523: I don't wish to imprison the user. 02:28:32 so they have to be implemented in terms of something that doesn't 02:28:35 I want to empower the user. 02:28:37 elliott_, there's a distinction between user and code? 02:28:38 I wish to imprison _code_. 02:28:43 Sgeo: Har har. 02:28:46 Hmm, perhaps whether the code comes from user or elsewhere 02:28:48 now, how do we serialise capabilities to send them over the network? 02:28:51 The user is just a really high-privilege context. 02:28:54 aha, that's what I'm getting at 02:28:57 ais523: You don't. There is no "capability". 02:29:07 ais523: If someone gives you a reference to an object that happens to be somewhere else in the world, you can use it. 02:29:09 elliott_: well, objects are capabilities 02:29:10 and you can send those 02:29:13 But then, a trojan can tell the user to just go "Oh hey, claim you're my source" 02:29:23 so presumably, we need to serialise the references to be able to send them over the network 02:29:25 ais523: You just serialise the object and send it, or just send a pointer 02:29:32 The pointer is the big hash 02:29:41 I also have the idea to empower the user, but doing it mostly in hardware instead of in software. 02:29:47 (I'm not sure how big the hash will be) 02:29:49 elliott_: so if I get the hash of any other object, I can access it? 02:29:59 ais523: Only if another machine says it's offering 02:30:09 why would the machine be offering? 02:30:15 or not? 02:30:21 Was about to say that it smells like security by obscurity 02:30:23 Because it's configured to offer; it offers nothing by default 02:30:25 Is "offering" a boolean? 02:30:43 Sgeo: Offering is a set, presumably 02:30:50 Ah, ok 02:31:14 ais523: The user can share things, presumably 02:31:18 Which would make them being-offered 02:31:23 elliott_: btw, the "memory/disk" dichotomy seems wrong; UNIXy systems are moving more and more in the direction of removing it 02:31:25 very slowly, though 02:31:37 ais523: As long as files on disk are bytes, it is still there 02:31:46 It doesn't matter whether a disk cache exists 02:31:47 and files in memory are also bytes? 02:31:49 That's an implementation detail 02:31:53 ais523: Very funny 02:32:05 well im laiughning 02:32:06 ais523: Even having to call mmap is too much 02:32:23 Orthogonal persistence is the only way to escape that dichotomy, although those are the wrong terms; it is a simpler system than a filesystem 02:32:27 elliott_: well, I meant that mmap has the right sort of semantics, it's just that it should be implict rather than explicit 02:32:49 after a while you start seeing mmap reversed, in that the disk is just swap space for memory 02:32:50 Right. 02:32:52 and gets paged in and out 02:33:04 ais523: That's orthogonal persistence: RAM is just disk cache, 02:33:07 [asterisk]. 02:33:09 That's literally it. 02:33:15 That's the entire idea. 02:33:15 yep, I know what it is 02:33:37 ais523: Of course, the ideal would be if a non-volatile RAM interface was plugged into the CPU 02:33:41 Or otherwise into the computer 02:33:42 hibernation is more along the same lines; it just swaps data out of the sort of implementation-detail storage that doesn't exist while the system is off 02:33:45 But as it stands, software has to handle it 02:33:52 do you know how Linux loads executables, nowadays? 02:33:56 ais523: right; hibernation in @ is just a flush and a power cut 02:34:06 And I forget, but it involves an mmap-alike of some sort 02:34:10 it just mmaps them, and lets page faults do the actual loading 02:34:15 Yep 02:34:16 -!- NihilistDandy has quit (Quit: Blah). 02:34:21 mmap is my favourite system call 02:34:27 It's that little glimmer of light in Unix. 02:34:27 elliott_, is there any sort of restart that isn't hibernate and restore? 02:34:37 Sgeo: Uh... you could wipe your disk and reinstall @. 02:34:44 Dunno why you would, though. 02:34:50 Sgeo: presumably it would be the equivalent of kill -15 0 02:35:02 ais523: Also how any sane ld.so does things. 02:35:04 ais523: ouch; that would delete all your files 02:35:07 probably lazily, as the GC runs 02:35:07 I don't know what kill -15 0 02:35:09 does 02:35:13 but it'd also crash your system forever 02:35:17 elliott_: err, really? 02:35:28 ais523: well, I forget what -15 is :) 02:35:32 Why, what's signal 15? 02:35:34 Sgeo: "tell every process I have permissions to tell to exit to exit" 02:35:37 elliott_: it's SIGTERM 02:35:41 Ah 02:35:45 like -9 except that the programs get a chance to do cleanup 02:35:50 I know TERM :P 02:36:12 ais523: basically, if you kill all running code, then not only is there no code for the computer to run (???), but there's also no references to any objects 02:36:21 and objects without references get garbage collected 02:36:35 but 0 doesn't mean "all running code", it means "all processes I have permissions to signal" 02:36:39 which is presumably quite different 02:36:40 so that's a really, really slow disk wipe, basically, assuming that GCs still run with no code for the computer to run 02:36:56 ais523: Well, OK. It would just remove all _your_ files, unless someone else has a reference to them. 02:37:22 ais523: I'm not sure there's any distinction between "kill this code" and "destroy this object", anyway 02:37:26 Think thunks 02:37:40 I'm not deleting the code, just telling it to stop running 02:37:47 so in @, presumably it'd go into some sort of paused state 02:37:48 You're deleting the thunk that represents that running code 02:38:06 ais523: Oh, you just want to tell the scheduler to stop switching to all objects you can access, then 02:38:07 in UNIX, you have two separate concepts; the editor, and the file that it edits 02:38:14 That'd just lock up your session, including post-reboot 02:38:37 (The problems that restarts are usually used to solve -- e.g. "clear my workspace" -- are solved in different ways in @) 02:38:40 elliott_: presumably @ notionally has a global scheduler that schedules for everyone in the universe, although it's actually implemented in a decentralised way 02:38:45 Oh, and user responsiveness is the top priority, more or less 02:38:51 Code will never cause your keyboard and mouse to stop working 02:38:56 (because it's lagging your system) 02:39:03 So you'll always be able to kill miscreant processes 02:39:24 assuming no scheduler bugs 02:39:29 Well, yes. 02:39:40 But @ is basically designed so that every component is too simple to fail. 02:39:50 so what's responsible for scheduling the scheduler? or is it somehow more "special" than all the other functions? 02:39:53 e.g. capability security in itself cannot fail, because it's more an observation than code at all 02:40:04 ais523: Well, objects could be responsible for their own scheduling, although that has a whole bag of issues; I'm not sure what my scheduler model looks like because I'm not sure what my concurrency model looks like because I'm not sure what my language looks like. 02:40:06 (See a pattern yet?) 02:40:12 indeed 02:40:19 @ may seem underdesigned, but it's really just that there's so _much_ to think about 02:40:24 although I'd think the language would be caused by the concurrency model, not cause it 02:40:31 ais523: interdependency 02:40:33 Just like the UI 02:40:45 ais523: there's this big knot at the core of @, but if you look closely, it's actually a point 02:41:00 It looks like a bunch of concepts tangled up that you have to work out at the same time, but they're actually all the same concept 02:41:01 I still dislike the statement that capability security is an observation 02:41:14 ais523: it is; the only time an actual bit started existing was at the network boundary 02:41:36 well, what prevents you just guessing at references to objects? 02:41:51 or is the /internal/ storage for them kilobyte-long hashes? 02:42:05 The internal storage for them is a pointer. But you don't have the ability to cast a random integer to a pointer. 02:42:12 elliott_: aha 02:42:14 Giving you that capability would be insane; it's insanely privileged. 02:42:23 ais523: Note that @ does not rely on the hardware's really coarse, bad mechanisms for security. 02:42:28 but if a bug does give me the ability to cast a random integer to a pointer, it completely blows open the security 02:42:31 ais523: This is why it can run in ring 0, and do things like syscall inlining. 02:42:41 ais523: Well, it blows open the local security. 02:42:43 I think that's what I was getting at 02:42:46 ais523: That's like a root escalation exploit in Linux. 02:42:51 yep 02:42:53 It still doesn't give you the power to demand objects from other computers. 02:43:02 and presumably, a similar bug would be a remote arbitrary code execution bug 02:43:10 which could also occur 02:43:18 Right; but you don't see that much in high-level languages at all. 02:43:21 it's just that there's only the one layer of security 02:43:25 Without eval, or whatever. 02:43:33 ais523: Nah; there's as many layers as there are objects 02:43:35 elliott_: we discovered one in Rodney (#nethack's bot) recently 02:43:39 Language? 02:43:41 Perl 02:43:45 Any eval calls? 02:43:47 but it was using eval, without taint checks 02:43:50 See. :) 02:43:59 ais523: BTW, in @, eval would be insanely rare, because who stores code as a string? 02:44:05 it was trying to regex the eval, but there was a misplaced ^ 02:44:07 OK, you can have eval : AST → a 02:44:09 but it's still insane 02:44:14 ais523: ouch 02:44:19 ais523: all I see is typing bugs 02:44:30 (taint checks are basically a really rudimentary type system) 02:44:34 indeed 02:44:42 ais523: BTW, casting integer-to-object-leaking bugs seem really contrived, because that's another low-level-ism 02:44:44 actually, Perl's taint checking is identical to the Identity monad 02:44:57 Perl taint checking == phantom types 02:44:59 data OK 02:45:00 data NotOK 02:45:04 data Data okornot = ... 02:45:09 unsafe :: Data OK -> ... 02:45:16 thisiscool :: Data NotOK -> Data OK 02:45:17 etc. 02:45:17 elliott_: here's a fun fact: Linux has a system call that puts a process into a "secure" mode where it only accepts 4 system calls 02:45:20 ais523: there's this big knot at the core of @, but if you look closely, it's actually a point <-- so, basically, just the same as feather? >:) 02:45:24 ais523: haha 02:45:30 ais523: Which 4 calls? 02:45:35 ais523: I take it you know this because you're using it? 02:45:36 which are just enough to get data in and send it out, doing anything else gets you kill -9ed 02:45:39 no, I'm not 02:45:40 heh 02:45:43 I think you've told me about this before 02:45:48 there's no way to get out of the mode, because the syscall that would take you out of it is not one of those 02:45:54 Ah, so. Read, write, exit, and...? 02:46:07 I can't remember precisely what they are 02:46:11 oerjan: :) My current plan to tackle it is to try a bunch of "mini-@s" that don't try to do nearly as much, and have a specific, inadequate instantiation of the inner point. 02:46:11 I doubt arbitrary read/write are allowed 02:46:12 Actually, probably mmap. 02:46:15 That should give me more insight on what the point has to be. 02:46:22 the funny thing is, that there's also a getter to see whether you're in this mode or not, but no way to run it 02:46:22 "what the point has to be" -- heh. 02:46:26 ais523: You could only read/write to things where you already have the file descriptor. 02:46:31 well, if you aren't in the mode, it returns 0, and if you are in the mode, it crashes 02:46:32 And also help me figure out a lot of details, especially relating to its implementation on existing hardware. 02:46:40 (Yes, @ stops at the hardware layer!) 02:46:43 so the getter always returns 0 even though the value is settable 02:46:47 (I know, it surprises me too! Let's hope I don't forget that!) 02:47:03 ais523: haha 02:47:12 ais523: you could set up a signal handler before you get put in the box 02:47:15 and catch your crash 02:47:16 oh 02:47:19 you can't catch kill -9 02:47:21 It's read, write, _exit, and sigreturn. 02:47:25 pikhq: aha 02:47:36 also, sigreturn's allowed? that means that signal handlers are 02:47:40 haha 02:47:40 ais523: I've always really wanted an exploit in kill -9; it replaces your code with a suicider, and sets your priority really high 02:47:42 but I assume they can't actually /do/ much but read/write/exit 02:47:48 ais523: So if you could somehow override that code before the kernel jumps to you... 02:47:50 elliott_: heh, is that how it works? 02:47:54 Try to kill me?? I WILL COME BACK STRONGER THAN EVER 02:47:56 ais523: yep 02:48:00 ais523: or is that OOM kill? 02:48:02 I forget, but anyway 02:48:05 I assumed it just marked the process as zombie, or something like that 02:48:19 Maybe sigreturn is in case you set signals before entering restricted mode 02:48:29 in fact, it should just do the same code as _exit, which already has the right semantics 02:48:38 ais523: it's probably OOM kill I'm thinking of 02:48:41 since it would need to free up its memory 02:48:45 pikhq: what's the syscall to get into that mode? I thought it might be prctl, but I was probably wrong 02:48:48 It probably just turns it into an _exit call 02:48:51 The suicide code, I mean 02:48:51 well, I was wrong 02:48:54 prctl. 02:49:06 ah yes, found it 02:49:07 With PR_SET_SECCOMP 02:49:13 I was reading the man page for prctl, but missed it 02:49:16 ais523: anyway, I hope you have a bit more insight to @ now 02:49:20 elliott_: yes 02:49:27 And hopefully like it a bit more, or at least it hopefully surprises you a little 02:49:39 I sort-of had the fundamentals down (they're pretty similar to something I was thinking of myself), but the details are interesting 02:49:55 I note that @ sort of changes a bit whenever I talk about it to respond to criticism; does Feather do that too? :p 02:50:00 Well, criticism or questions 02:50:05 elliott_: no, Feather changes whenever I try to implement it 02:50:09 haha 02:50:33 the main problem with Feather is not so much design flaws, as inability to start without going into an infinite loop 02:50:45 an implementation is badly needed to prove that that doesn't happen 02:51:09 I've already had to add a boolean to every object that simply queries if it's # or not 02:51:13 in order to get off the ground 02:51:16 * elliott_ wonders how long until someone stops an @ program from accessing more than a certain few types of object to stop it leaking memory (e.g. including no arrays), but gives it integers 02:51:21 which is a really specific thing to have, and I'm not sure what to name it 02:51:32 and then I'll run a program that leaves them a nice message and gets to work on constructing Graham's number 02:51:35 (note: I won't) 02:52:02 ais523: oh, wait, you didn't know that gnome's file opener let you type in a location? 02:52:23 elliott_: no 02:52:25 ais523: that's the top-left icon in the dialogue; click it and it'll focus by default 02:52:26 you're welcome 02:52:32 thanks, that's blown my mind to 02:52:33 you can also type directories in there, and their names complete 02:52:34 *too 02:52:39 and will change to that directory 02:52:45 I know it does that, it used to do that before I couldn't find the location bar at all 02:52:56 I was fine with that dialog, other than its insane slowness at loading /usr/bin 02:53:05 but pressing / makes the location bar magically appear 02:53:09 (other characters often don't) 02:53:19 (although I suspect ~ probably does) 02:53:30 another pet hate of mine: alt-f2 doesn't expand ~ but interprets it literally 02:53:48 if I write ~/esoteric/intercal, it interprets it as /home/ais523/~/esoteric/intercal 02:53:51 which is obviously not what I wanted 02:53:53 yeah, that sucks 02:54:05 I really wish I knew what @'s point looked like :( 02:54:31 when I try to envision what a screenshot of @ would look like, I honestly just see a black screen 02:55:23 wear a special hat and think about what you want user interface 02:55:31 I don't think it would look too dissimilar from a modern OS 02:55:46 because the UI and internal representation are not necessarily linked at all, nor should they be 02:55:46 ais523: your conception of that being a bunch of terminal windows and Emacs? 02:55:59 elliott_: that's not actually what my desktop normally looks like 02:56:02 ais523: The UI is just how you look at the internal representation 02:56:12 atm, it has IRC, email, two browsers, terminal 02:56:14 I mean, yes, things can have a nice veneer over that 02:56:21 But you can always look at an object directlry 02:56:22 directly 02:56:23 inspection-style 02:56:30 @'s interface also doubles as the best programming interface ever 02:56:35 and inspector/debugger, too 02:56:37 now, in @, I'd have things available for doing the same activities 02:56:48 and I imagine their UI would be similar 02:56:59 ais523: yep, but it won't have a traditional window manager 02:57:03 I'm not sure what it /will/ have 02:57:03 e.g. whatever I was using to look at a document full of hyperlinks probably wouldn't be Firefox, or even a Web browser 02:57:07 but it would control in a similar way 02:57:12 I used to think it'd look like Emacs, but with objects instead of text 02:57:14 now I have no idea 02:57:15 and look similar, as that's what people want hyperlinked documents to look like 02:57:22 Oberon has a good interface, I can take inspiration from that 02:57:27 but it's too text-oriented 02:57:46 one big advantage of being text-oriented is that you can edit everything with the same operations 02:57:56 You can do that with objects too, the operations are just more mind-bending 02:58:04 I've converted images into whatever that text-based X format is before, and edited them with Emacs 02:58:15 xbm, I think 02:58:16 I'm not sure what the equivalent for objects would be 02:58:29 ais523: an ASCII-ish version of the serialised object? 02:58:31 I've been meaning to try Oberon 02:58:35 elliott_: fair enough 02:58:36 But really, "text" is a bad word. 02:58:45 I tried to try it, but I remember having problems 02:58:47 Programmers think: text, string, and they think of... well, strings. 02:58:52 editing the serialised version of something directly is a hack 02:58:59 ais523: so is editing xbm in Emacs 02:59:00 It's arbitrary to say that text is a bunch of Unicode codepoints 02:59:05 Why those, and not bolding? 02:59:06 elliott_: no, that's what I mean 02:59:11 what I was doing was a hack, in a way 02:59:13 ais523: right 02:59:24 ais523: Well, the more idiomatic version would be looking at it in an object inspector 02:59:26 also, bold is ESC [ 1 m 02:59:29 And poking around changing things 02:59:32 ais523: Very funny 02:59:35 That's hardly semantic :) 02:59:55 Basically I think strings as we see them in modern systems don't appear naturally in @ much at all 03:00:04 because "document segment" works just as well 03:00:05 hmm... I suppose the problem is that objects never really have the interfaces you want them to have 03:00:10 Why can't you name a bookmark with a bolded wrod in it? 03:00:11 word 03:00:13 With a link? 03:00:27 With a video? (ok, not lookupable -- this isn't SpectateSwamp Desktop Search -- but the point remains) 03:00:27 because the name would be a pain to type 03:00:34 elliott_: gah you mentioned SSDS 03:00:36 ais523: you don't have to type names in full 03:00:40 in an appropriate context 03:00:45 :D 03:00:54 But basically, the point is that strings are only common because our I/O interfaces do strings. 03:01:17 Most of the time, you just want to print/show something, or to read something, and in @ you don't need to coerce things into Unicode codepoints to do that 03:01:18 how do you access things in SSDS, anyway? I know that everything is named with videos, but it seems a little unwieldy 03:01:25 ais523: you just give them tags, I think 03:01:27 And it searches those tags 03:01:29 (originally filmed with camcorder pointed at screen) 03:01:33 in a text file 03:01:37 elliott_: that seems altogether too sane 03:01:52 ais523: SSDS = grep with automatic video playing, I think 03:01:57 ah, right 03:02:07 "SS claims SSDS is a "desktop search" application. However, SSDS qualifies as "desktop search" only in SS's own definition and when using SS's own computer usage patterns; it does not qualify as a "desktop search" application in any other definition of the term. In most definitions, a "desktop search" system indexes the user's personal files, extracts metadata from the files, and allows the user to perform searches on this metadata; for example, "songs 03:02:07 by a composer called John" or "instant messaging conversations that mention pizza" or "email about Project X". SSDS, on the other hand, requires the user to convert all data to plain text format, thus losing all formatting and metadata, and merge everything in one file. For certain operations, the user is required to maintain such index themselves. Further, ordinary desktop search systems allow the user to see all metadata, such as "this matching song 03:02:07 is 4:33 long" or "the last pizza conversation took place yesterday" or "the boss mailed to you about Project X using Microsoft LookOut, the bastard"; SSDS only allows you to see matching likes in SSDS index file. For example, if you search for "Project X", it is difficult to see when, by who, and (for example) with what program the e-mail was sent with." 03:02:12 -- http://www.thestupidestmanonearth.com/DesktopSearch.aspx 03:02:14 long paste, but oh well 03:02:16 "At best, SSDS is a simplistic linear search application that attempts to match search terms against a text file - and with extra features that allows the user to show images and videos, also in random order." 03:02:23 heh, so it doesn't even play the videos you mention 03:02:28 it's {grep, random mplayer} 03:02:34 ah 03:02:39 also, /me /clears 03:02:44 because that much SSDS is too much for me 03:02:50 Well, yes, the UNIX stuff with pipes and grep and so on works much better. But, of course, that is UNIX. SSDS is a similar (but not as well designed) things for Windows. 03:03:05 And anyways you can do that stuff on Windows by using Cygwin or whatever, too. 03:03:11 pipes are a good idea 03:03:17 unfortunately, they're less effective on bytes 03:03:27 elliott_: have you seen PowerShell? 03:03:38 ais523: yes; good ideas, but it's not usable 03:03:39 There shouldn't be just stdin and stdout if you're putting in pipes 03:03:45 ais523, I haven't 03:03:48 You can have one command that shuffles the lines of stdin and that way, you can play videos in random order. 03:03:56 I have the feeling that someone at Microsoft thought of @, realised they'd never be able to implement it, and wrote PowerShell instead 03:04:05 * elliott_ notes http://okmij.org/ftp/Computation/monadic-shell.html 03:04:06 which is unusable for most operations because it doesn't really mesh with things well 03:04:11 | is (>>=) 03:04:18 zzo38: it's called shuf(1) 03:04:36 ais523: I have a feeling @ is the kind of thing many people start thinking about, but then realise what they're doing and quickly stop 03:04:39 ais523: Yes, then use that. 03:04:39 elliott_: PowerShell is apparently very useful for Windows administration merely because it can access things like the registry easily that other tools can't 03:04:59 Unfortunately, I wasn't clever enough to stop, and now I have to implement it 03:05:09 With barely no knowledge of standard PC hardware and OS design to start with 03:05:31 Incidentally, oklopol's probably-long-abandoned OS that he talked about ages ago has similarities to @ 03:05:40 elliott_: anyway, I think I've figured out what a capability is, at the hardware level; it's simply a bit pattern stored /in a memory location that lets it be used as a pointer to an object/ 03:06:09 gah, I'm tired, my eyes read there as being an unmatched opening paren in my last line, and there aren't any parens at all 03:06:16 I just keep seeing one for some reason 03:06:16 heh 03:06:18 and I can't even work out where 03:06:24 mediaplayer `ls *.ogv | shuf` 03:06:30 ais523: A capability is a pointer, pretty much; which ends up as bits in memory that are interpreted in a certain way 03:06:34 yep 03:06:39 zzo38: s/ls/echo/ 03:06:50 and it's distinguished by an integer with the same value by the type system 03:06:52 elliott_: Yes, or echo will do too 03:07:01 ais523: Well, integers have tag bits in @. 03:07:03 (Maybe.) 03:07:03 as this is standard hardware, the type system is being checked at "compile time" (actually "convert to x86 machine instrucitons time") 03:07:06 Small integers, that is. 03:07:23 whether that's upon editing, or much later 03:07:48 No... echo won't do 03:07:50 it'll be agonising when/if @ is "done"-ish, but has insufficient compatibility layers to actually use day-to-day 03:08:01 zzo38: oh right; you need them separated by \n 03:08:01 Because echo put everyone on one line 03:08:15 (fun fact: TUNES wanted a DOS emulator to start with) 03:08:28 did you know that Linux has two syscalls that only exist for dosemu? 03:08:55 they both put an x86 system into virtual 8086 mode (with different parameters), and fail with ENOSYS on any other sort of system 03:09:00 yep 03:09:09 * elliott_ has configured a kernel before, shockingly enough 03:09:19 heh, I didn't realise they were involved in kernel config 03:09:39 I think it mentions vm86 or something 03:09:41 elliott_: Most of the traditional knowledge on OS design you've already thrown out the window. 03:09:50 pikhq: Well, Genera exists. 03:09:53 So does Smalltalk. 03:09:59 I did say "traditional". 03:10:01 The low-level details are what matter to me, anyway. :p 03:10:07 And orthogonal persistence does have quite the bit of literature on it. 03:10:11 it's similar to Smalltalk 03:10:17 So does Smalltalk. 03:10:18 more so than typical OSes 03:10:27 elliott_: I know, I was agreeing with you 03:10:28 Yes, you're ignoring the low-level details that are really painful to deal with. 03:10:32 ais523: incidentally, one of my main worries about @ is that non-programmers won't be able to learn it, but... 03:10:34 What would be the algorithm to find the best way to use registers in a DVI file? 03:10:39 Most obviously, dealing with hardware's task switching. 03:10:40 I still like programs to be serialisable as text, incidentally 03:10:52 Still will need to handle paging, though. 03:10:54 ais523: I think @ just has a learning curve, maybe a larger one than most common OSes, but it'll confuse you less once you learn it and you'll be able to accomplish so much more 03:11:02 ais523: Also, OK, but why? 03:11:10 Sharing over IRC? Yes, desirable, but this is a limitation of IRC. 03:11:14 elliott_: fun fact: GNU Hurd was originally aimed at 32-bit processors, because 16-bit was common then and they wanted to future-proof 03:11:17 (@-chat would just share objects) 03:11:21 (usually text documents) 03:11:24 ais523: heh 03:11:28 isn't it possible to make a non-porgrammers friendly shell over @ 03:11:37 ais523: The same is true of the rest of GNU. 03:11:37 or am i loon 03:11:45 monqy: Sure, but that wouldn't be @... what's the difference between programmer and user? 03:11:58 ais523: Their idea was "by the time this is usable, 16-bit will be an old piece of shit, so why care now?" 03:12:03 elliott_: I think it's because it makes them easier to store on a wide range of devices (including things that aren't computer-related at all), and a wide range of implementations 03:12:05 monqy: If you want I can paste you an explanation of @ I wrote semi-recently into /msg (it's long) 03:12:07 pikhq: yes 03:12:13 pity they didn't start with 64 bits instead 03:12:19 ais523: What non-computer-related devices is it easier for? 03:12:24 And you mean codepoints, not text. 03:12:25 It's a bit of an easier jump, though. 03:12:27 elliott_: writing down on paper 03:12:35 Especially if you consider x86. 03:12:41 ais523: Um, you've used paper before, right? 03:12:43 and I mean what exists on my keyboard 03:12:44 You can draw boxes and things there. 03:12:48 Segmentation to a flat memory model was one *hell* of a jump. 03:12:49 elliott_: not reliably 03:13:04 ais523: Well, that's different; keyboard-inputs are one ... view of @ code. 03:13:04 you can be off by a millimetre or too really easily 03:13:17 the set of characters in printable ASCII has better error correction 03:13:20 Basically it would be reifying the intentions. (elliott buzzword!) 03:13:34 elliott_: sure. as-is i only have a really vague idea of @ that i can't really describe 03:13:34 ais523: basically you want to be able to get the actions that are required to recreate some code 03:13:39 monqy: me too 03:13:41 elliott_: yes, I think so 03:13:49 ais523: Right 03:13:51 including in an implementation that nobody currently envisages 03:13:54 ais523: Well, that's not necessarily text, but. 03:13:58 ais523: oh, well that's a lot harder 03:14:12 ais523: what you want is, I think, something that's not actually possible, but not something that /should/ necessarily be possible 03:14:16 in particular, I don't want it to be just a serialised form of the internals of something 03:14:19 But you can achieve what you want in _specific_ situations 03:14:21 Oh, well right 03:14:27 But it'd depend on /interfaces/ 03:14:29 You can't avoid that 03:15:10 well, you can, in that I think that even, say, 100 years into the future, no matter what formats and interfaces people are actually using, they'll have some way to represent sequences of octets 03:15:13 ♪ 03:15:15 to store old files "unchanged" 03:15:33 and you'll probably be able to get C89 compilers, even if they're seen as something antiquated and only of academic interest 03:15:43 does anyone know how to convert BBCode or HTML to Markdown that uses footer links? 03:15:45 I want to paste this to monqy :P 03:15:48 and it has a bunch of links 03:15:49 even @ could plausibly have a C89 compiler, although there wouldn't be much reason to use it 03:16:07 ais523: I plan some kind of "weakly-integrated" POSIX layer out of necessity] 03:16:14 ais523: Maybe in case you want to run C programs 03:16:35 why would anyone ever want to do that 03:16:39 zzo38: I would say you'd missed the point, but then I'd have to describe what the point is, and I'm not sure I can 03:18:15 this elusive point, so hard to describe 03:18:54 -!- ralc has quit (Quit: Leaving). 03:18:59 speaking of crazy possible future things, does anyone know what logs have stuff relating to feather? I'm suddenly really curious 03:19:08 monqy: hmm, I'm really tempted to just put this up as HTML somewhere 03:19:08 -!- azaq23 has quit (Read error: Operation timed out). 03:19:12 also, grep -r Feather . 03:19:38 monqy: did you find that files-suck.html too narrow as well as ais 03:19:40 -!- azaq23 has joined. 03:21:18 I'm not really sure what it's getting at as a solution 03:21:52 monqy: i was talking about the view 03:21:55 oh 03:21:56 as in visually 03:22:34 oh 03:22:43 I can see it just fine 03:22:47 also, saying that existing abstractions are bad is OK even if you don't have something better to suggest 03:24:03 right but i also didn't understand how saying something is bad could possibly be "too narrow" so I pulled some miserable conclusion jumpery 03:27:39 does anyone have a unicode return arrow 03:27:40 like 03:27:44 ↵ 03:27:44 caret 03:27:46 - 03:27:46 --- 03:27:47 monqy: ah thanks 03:30:13 and on greping for feather in logs, is this with the expectation that i have every log file :( 03:31:49 yes 03:31:54 exclamation mark logs to get them all 03:32:00 ok does anyone have a place for me to put this html file 03:32:08 monqy: also, install Bitstream Chartered it is good font 03:33:08 !logs 03:33:13 like that 03:33:34 yes 03:33:37 see your notice 03:33:38 use rsync 03:33:40 yep 03:38:04 monqy: also do you have bitstream charter this is totes important 03:38:26 i searched fro it but then it wanted me to buy it for $99 i think i did something wrong 03:38:33 !logs 03:38:33 -!- MDude has changed nick to MSleep. 03:38:55 monqy: its in your package manager 03:38:57 I should put the Cygwin installer on my desktop or something 03:39:26 monqy: xfonts-scalable or something 03:39:32 or hmm 03:39:40 monqy: oh, texlive-fonts-recommended should get you it 03:39:51 that give syou postscript fonts 03:39:53 which is better 03:40:58 help i dont use debia n o rhwat ever that is help 03:41:15 maybe i secretly already have it but never knew 03:41:23 monqy: what os do you use 03:41:29 is it a, bad os 03:41:31 arhclinux is that bad 03:41:36 am i ab ad person 03:41:40 :'( 03:41:43 yes :) 03:41:45 :'( 03:42:07 lemme find charter for arch 03:42:15 monqy: pacman -S xorg-fonts-type1 03:42:19 pacman -S arch-sucks 03:42:43 :'( 03:43:14 at least i dont use (worse distributuieon here) 03:43:44 does dcc work for you 03:43:50 i think so maybe 03:43:58 do you see that 03:44:18 that's literally just my forum post reformatted and with one bit crossed out 03:44:19 woo it failed 03:45:01 monqy: meh, do you have a gpg key 03:45:10 i forget if i ever bothered 03:45:15 probably not 03:45:15 psht 03:45:19 I'll just sprunge it 03:45:31 are there any good distributions i am honestly completely dumb at knowing things about them 03:45:41 Opa's do statement seems a bit magical :( 03:45:42 only @ 03:45:48 I use Debian because it works unlike Arch 03:45:53 -!- lambdabot has joined. 03:45:59 yaaaaaaaaaaaay 03:46:02 me hug lambdabot 03:46:09 * Lymee hugs elliott_ <3 03:46:12 -!- ghoulmaster has quit (Remote host closed the connection). 03:46:22 i glanced at opa then decided it is not for me 03:46:41 oh shit wait monqy 03:46:44 learning ur and a bunch of other unrelated languages first at the very least 03:46:46 don't download that i havent stled the hr yet 03:46:48 :(999 03:46:54 its UNEBARBEL 03:46:56 > fix$var.("yay! "++).show.(:[]) 03:46:57 yay! [yay! [yay! [yay! [yay! [yay! [yay! [yay! [yay! [yay! [yay! [yay! [yay... 03:47:00 too late but i havent started viewing it yet 03:47:03 i will remove it 03:47:08 rmeoved 03:47:10 > "\^AACTION hugs elliott_\^A" 03:47:10 "\SOHACTION hugs elliott_\SOH" 03:47:13 :( 03:47:57 monqy: ok see /msg 03:48:03 my mistake will, never be known, 03:48:13 downeloded 03:48:54 > text "\^AACTION hugs elliott_\^A" 03:48:54 ACTION hugs elliott_ 03:49:43 I think the control characters are stripped 03:50:33 ^ul (ACTION may or may not still work.)S 03:50:33 * fungot may or may not still work. 03:50:51 heh 03:50:53 !hug 03:50:56 This one works. 03:51:12 !python print "test" 03:51:14 test 03:51:30 !show python 03:51:30 sh python 03:51:37 monqy: btw this is from March, so of course @ has changed almost entirely since then :) 03:51:41 (not really) 03:51:42 EgoBot definitely doesn't work with ACTION any more. 03:51:44 :( :) 03:51:49 :( 03:51:51 monqy: also that is from my editing of it right now 03:51:52 the strikeout 03:51:57 !python print "ACTION test" 03:51:57 ​.ACTION test. 03:52:01 oop 03:52:09 rip 03:52:21 elliott_, this is WTFy on Homestuck 03:52:23 oop was even a bad way to describe what i was thinking about in the time 03:52:28 Sgeo: oh thanks for the reminder 03:52:32 There's no way to access current update from previous update 03:52:37 monqy: sorry i cannot answer your questions for about ten minutes I must READ HOMESTUCK 03:53:07 OH GOD HE;S JDGING ME 03:53:21 oh my god the top-left panel Sgeo click it 03:53:33 good thing i hate homestuck 03:54:02 monqy: when did your opinion develop from nonplussedness to hatred 03:54:06 is nonplusedness a word 03:54:19 elliott_: when i tried reading it after expressing nonplusedness 03:54:30 how far did you get 03:54:34 `addquot its UNEBARBEL 03:54:36 No output. 03:54:39 `addquote its UNEBARBEL 03:54:40 540) its UNEBARBEL 03:54:40 * elliott_ prepares for answer he's already guessed 03:54:55 i think i started roughly where i left off i.e. somewhere in the middle maybe 03:55:01 monqy: lol which act 03:55:05 i cant recall 03:55:12 monqy: which page number 03:55:14 which anything 03:55:17 no recolaection 03:55:25 what was happening 03:55:27 then i skipped around a bit because i am an awful person 03:55:35 (plenty of people think they're about half-way through but are actually in the first act) 03:55:41 it wasn'ta ct 1 03:56:24 you should start it again and go until at least the game that starts act four. it starts out boring but it really does develop. and skipping around is just going to confuse you. 03:56:44 is nonplusedness a word <-- no, it needs another s, but then it's a doubleplusgood word. 03:57:21 i dont hate things for being confused by them 03:57:51 i never said that's why you hated it but obviously it is completely inconceivable that someone could actually hate homestuck 03:58:06 03:58:09 (ok probably not. i doubt there's many people who actually hate homestuck while liking sbahj, though.) 03:58:09 What does that do? 03:58:13 Lymee: thx for the CTCP "" 03:59:10 i cant fully remember why i hate it but i remember finding the troll gimmicks insufferable and having to pay attention and care to understand things didn't help and it always felt really awkward to me like it's trying too hard or something idk 04:00:04 it is only a mild hatered 04:00:39 the gimmicks are meant to be insufferable, there's a bookmarklet thing that normalifies it though... but really, 99 percent of things that would class as "trying too hard" I'd say are jokes that only make sense with the context, assuming that was during skipping around 04:00:43 oh well I'll just conclude you're subhuman 04:00:52 totaly 04:01:13 !@#$ broken update 04:01:15 there's a lot of trying-too-hard near the start too but that's mostly intentional to set the scene 04:01:33 !@#$ crashed MSPA site 04:01:59 one thing i classify as trying too hard that is maybe not in the typical normal nonsubhuman definition: i mean when it tries to take itself too seriously 04:02:12 n/m 04:02:36 Chrome: Stop having troubles connecting 04:02:37 in addition to the other stuff at the beginning yeah 04:02:37 monqy: considering that almost all the major plot developments are sandwiched by jokes, I dunno if that's true 04:02:46 but really you should start again and just go through it all in order, it really picks up in act three, act four, and act five act two (in that order) 04:02:53 MAYBE YOU DON'T HAVE A SPARE WEEK THOUGH 04:02:55 that just makes you subhuman 04:03:20 clases ends next week 04:03:38 subhumans like me learn school during the sumer 04:04:26 CHROME: STOP HAVING TROUBLE WITH MSPA 04:04:26 -!- elliott_ has quit (Read error: Connection reset by peer). 04:04:29 -!- elliott has joined. 04:04:53 but really, homestuck has issues, and they're mostly pacing issues. and the first three acts are kind of a drag, although pretty funny. 04:04:53 elliott, how many working panels were there? Just one (Jade)? 04:05:07 monqy: but personally i'd be surprised if you didn't like it if you gave it a chance from the very start to the end 04:05:09 Sgeo: yes 04:07:12 Sgeo: ok im waiting for the site to stabilise before reading 04:07:23 * Sgeo is too impatient for that 04:07:32 monqy: ANYWAY THAT @ EXPLANATION HUH 04:07:37 * Sgeo may be part of the problem 04:07:46 sorry i was too busy trying to rationalize my subhuman hatred of homestuck 04:07:59 anyway i';ll finsih reading it after brushing my teeth i have to do that now 04:08:13 monqy: you should start from the beginning >:| 04:08:14 ....finish reading it? In less than 6 hours? 04:08:16 (i realise you weren't serious) 04:08:26 re-start, i mean 04:08:43 elliott, what's a reasonable amount of time to read all of Homestuck? 04:08:50 I think I did it in less than a week 04:09:07 Sgeo: um well it's about twenty hours of consecutive effort 04:09:19 maybe more 04:09:32 let's say twenty four hours of consecutive effort 04:09:36 so if you put in five hours a day you can read it in five dyas 04:09:37 days 04:11:09 http://i.imgur.com/oh8Fl.png <-- meanwhile, reddit discovers the least tasteful way to do a remembrance comic ever 04:11:12 I know this instability is Hussie trolling us 04:11:37 ha, looks like a fake 04:12:35 1) i meant finish reading at.html (2) haha just kidding about doing it after brushing my teeth i have other stuff to do also woops 04:12:53 elliott, link to thread? 04:13:05 monqy: but it's...short... 04:13:08 Sgeo: top of main page 04:17:42 how do you mix an rgb with an rgba using the alpha im dumb 04:19:07 -!- bsmntbombdood has joined. 04:19:18 at.html? 04:19:47 Sgeo: yes 04:20:00 "old.r * (1-alpha) + new.r * alpha" (plus same for g/b) is very traditional. 04:20:09 fizzie: thx 04:20:17 fizzie: (I've pushed configurable colours and blockinfo to mcmap) 04:20:18 elliott, I expect you to be psychic and realize that I want a link 04:20:22 Sgeo: no link 04:20:33 fizzie: Now I'm working on respecting the alpha values in a dumb way by only looking one down 04:20:38 But it's a start. 04:20:49 It's a fart. 04:21:10 fizzie: Also: new is the one with the alpha, right? 04:21:13 i.e. the RGBA. 04:21:25 Well, it's the one "on top". 04:21:33 Right. 04:21:42 And that was assuming the 1 == full opacity scheme, sometimes it's flipped. 04:22:01 fizzie: Oh, erm, it's two-five-five = full opacity. 04:22:19 Well, scale as necessary. 04:22:37 (old.r * (255-alpha) + new.r * alpha)/255 or some-such. 04:22:51 Right. 04:25:03 fizzie: Next thing I work on will be the status bar, to make that blockinfo actually useful beyond the configuration. 04:25:12 Which I decided to just put at ~/.mcmap/colors because XDG seriously sucks. 04:25:16 Hope that's okay. 04:25:25 But my ~/.config! (Yeah, that's okay.) 04:25:31 Ugh, I still have that horrible bug that shouldn't even be happening. 04:25:33 I broke code I didn't even touch. 04:25:42 tell("MODE: %s%s%s%s%s", 04:25:42 modenames[map_mode], 04:25:42 (mode == MAP_MODE_CROSS && map_flags & MAP_FLAG_FOLLOW_Y ? " (follow)" : ""), 04:25:42 (mode == MAP_MODE_SURFACE && map_flags & MAP_FLAG_CHOP ? " (chop)" : ""), 04:25:42 (map_flags & MAP_FLAG_LIGHTS ? " (lights)" : ""), 04:25:42 ((map_flags & MAP_FLAG_LIGHTS) && (map_flags & MAP_FLAG_NIGHT) ? " (night)" : "")); 04:25:44 How could this send things like 04:25:51 05:25:11 MODE: surface[GARBLED KANJI] 04:25:56 java.io.IOException: Received string length longer than maximum allowed (23040 > 16) 04:26:12 I do not even understand it. 04:26:53 That is a bit weird. 04:27:07 Okay, gone for ~12 hours or so. -> 04:27:19 fizzie: BUT YOU NEED TO FIX MY BBUGEEE 04:28:51 Friend post on a tech help forum 04:28:55 Gives a model number 04:29:02 Helper asks which model 04:29:18 05:29:05 §bMODE: surface 04:29:19 05:29:05 MODE: surface끾 04:29:20 OK, that's insane. 04:29:30 The string is correct, but inject_to_client is fucking it up. 04:29:33 Somehow. 04:30:02 fizzie: Ah. 04:30:05 fizzie: I think you broke it, man. 04:30:09 jshort_write(lenb, conv_len); 04:30:10 With this, somehow. 04:30:18 Or at least, it just changed and it's the FIELD_STRING code. 04:30:30 How do you nicely tell someone who's trying to help you that they asked a really stupid question? 04:30:41 Could be; I didn't test it too much. 04:31:02 Sgeo: Ignore them. 04:31:07 Sgeo: Or answer it. 04:31:27 fizzie: OK BUT ALSO what's the formula for how many iterations something with alpha N can mix with things below it before it will have no effect. 04:31:34 (With byte-sized colour and alpha components.) 04:31:39 I want to ~optomize~ alpha blending. 04:33:23 Depends on the original color, I suppose. 04:33:34 "Until the target color equals the new color" is the easy test, but due to rounding-down that's probably a bit too conservative. 04:33:50 fizzie: Meh, good enough. 04:35:16 Oh yes, I did in fact break it. 04:35:16 Well, my friend answered it 04:35:28 It needs to be conv_len/2. 04:35:40 "Really... I give you a model number and I'm asked which one is it?" 04:35:54 Then he answered it... again 04:36:13 fizzie: Committing a fix or I? 04:36:17 Why am I teling you this 04:36:27 You do it, I'm about to miss my bus. 04:36:37 Feel free to put in a disparaging commit message. 04:36:57 Something about everyone else always having to clean up after me or something. 04:37:30 fizzie: I'll just include your address and tell everyone to send the bombs that-away. 04:40:23 I think I realized what is wrong with my optimization algorithm, although I do not know how to make a proper algorithm. I can explain by example. 04:41:02 Say that there is a command - which does the next letter, = which does the next letter and sets a register to its value, and . which does the value of the register. 04:41:13 -a-a-a-a-a-b-b-b-b-b-b-b-a-a-a-a-a-a-a-a-a-a-a-a 04:41:27 To optimize using my current algorithm might do like: 04:42:01 =a....-b-b-b-b-b-b-b............ 04:42:09 Due to the way it computes the scoring. But better would be: 04:42:21 =a....=b......=a........... 04:43:12 That is a simple circumstance, and actually there are other complications such as stack and multiple registers, and a lot more ways of interleaving. So, how to make up the proper algorithm? 04:44:27 hmm 04:44:44 zzo38: I think you just have to do reordering 04:45:06 elliott: What do you mean? Can you give examples? 04:45:07 hmm 04:45:13 ah wait hmm 04:45:16 well looking at -a-a-a. vs. =a..=b it seems like you should always do = if you have a run of 3 or more? 04:45:19 zzo38: You just have to iterate it, don't you? 04:45:54 There are other complications. Although I will try oerjan's suggestion. 04:46:12 -a-a. =a.=b seems to indicate it's harmless to do so with 2 as well 04:46:15 It would make sense. However the other complications might cause it to fail; I don't know for sure. 04:46:23 ah. 04:46:30 But I can try. 04:47:27 if you have something like -a-a-b-c-a-d-a-a it might get trickier... 04:47:34 im returned from not being here. at.html time?? 04:47:37 you probably want to save only a there 04:47:45 monqy: possibly!!! 04:48:12 For example, let's say there might be two or three or four letters for some commands. And that, you might have two registers. And a stack that saves the values of the registers but has other effects too. And, yes, also your other example -a-a-b-c-a-d-a-a 04:48:40 (Or even remove the first -a and the problem still holds) 04:48:53 elliott: write it in zepto... 04:49:23 monqy: no :P 04:49:30 yocto 04:49:43 It is alarming that my computer keeps running low on memory 04:49:57 zzo38: well if you have _enough_ complications you probably end up with something NP-complete. 04:50:39 Chrome, Y U EAT SO MUCH RAM? 04:51:00 Sgeo: no 04:52:00 Sgeo, Y U NO PUT NO IN Y U? 04:52:41 PORQUE NO TE CALLAS? 04:54:33 elliott: finsihed. unrelated to design, but are any languages even suited to implementing it? 04:54:50 monqy: Existing languages? No. 04:55:11 Although this is an analogy, it is close enough to the problem I am having. Now let's extend this system. Each name can be from one to four letters long, and these values are stored in the register. Say there are two registers, where "=" sets the "." register and "+" sets the "," register. Now add "[" and "]" which push the values of the registers onto the stack and pop. However, "[" and "]" have other side effects and you *cannot* change or mo 04:55:23 monqy: There are two bootstrap options: Write a minimal interpreter for @lang in assembly (C is not an option at any stage), write a @lang compiler with that, switch to it; 04:55:41 monqy: Or implement @lang somehow in existing OSes (is this even possible? Maybe just a facade of @lang), implement a @lang compiler in that, port it over. 04:55:42 assembly? 04:55:53 monqy: That's what the lower layer is being written in, yes. 04:56:00 Which won't be much, once @lang is up and running. 04:56:04 which flavour 04:56:12 (This is equivalent to the problem as long as you assume that there can possibly be up to 256 "letters" of the "alphabet") 04:56:21 monqy: Probably nasm, but it'll be replaced by an assembler written for and in @ when all is said and done. 04:56:30 * Sgeo wants to learn more about @lang 04:56:35 Sgeo: Me too. 04:56:48 Sgeo: If you find out, let me know. 04:56:48 Hmm 04:57:02 making a compiler for a high-level language in assembly sounds like a pain 04:57:07 monqy: Interpreter 04:57:13 -!- pikhq_ has joined. 04:57:13 even so 04:57:13 This makes me wonder if one could make a language that requires solving an unsolved problem just to see the complete specs 04:57:17 monqy: Well, yeah. 04:57:26 -!- pikhq has quit (Ping timeout: 258 seconds). 04:57:32 monqy: But the other bootstrapping route sounds like a pain, too :) 04:57:41 monqy: This is why I'm picking a simpler language than @lang for one of the initial prototypes. 04:57:46 A Lisp, say; not that hard to do in assembly. 04:57:53 Wildly inadequate, but I have to start somewhere. 04:59:18 hard? maybe not. painful? I'd imagine so. maybe assembly just isn't my thing. I'd rather make myself a simple compiler than write it directly. 04:59:31 monqy: Sure, if it's Lisp I can go tha troute. 05:00:33 this reminds me, I really have to remember my ideas for the serious prgoramming langauge i hope to make sometime to solve all of my problems forever. 05:00:34 Would you know any ideas about the proper algorithm to solve my problem now? It is more complicated now that I added that stuff. 05:00:40 monqy: just use @ 05:01:24 zzo38: i doubt i know, but you also got cut off after "and you *cannot* change or mo" 05:02:04 ... you *cannot* change or move them! 05:02:53 zzo38: ok. that means the only the only thing you could adjust with [ and ] are which values are pushed and popped 05:04:15 oerjan: Yes. You cannot move, add, or remove, any [ and ] commands yourself. 05:04:51 hm the value of the registers after the [ will be precisely the same as after the matching ] 05:04:55 But changing other commands can change what values are saved with the [ and restored with ] 05:05:10 oerjan: Yes that is correct. 05:05:17 so you can think of it as a kind of three branching instead of stack manipulation 05:05:23 *tree 05:06:20 OK. 05:07:02 A [ B ] C becomes a tree with commands A at the root and two branches with B and C respectively 05:07:44 Yes, that would work, I think. 05:07:44 where B and C might contain further branching 05:08:27 well also A, in which case [B] C belongs to A's last branch 05:09:07 Yes. 05:12:18 hm if names have different lengths that also is a complication - it may be cheaper to save (and so reuse) a longer name 05:12:41 Yes I have realized that, too, already. 05:13:06 (I didn't realize the tree stuff at first but now that you explain it makes sense and I agree) 05:14:33 i still have a suspicion this _might_ be NP-complete 05:16:25 everything is NP-complete 05:16:29 everything interesting, at least 05:16:45 perhaps 05:17:17 monqy: btw will you use @ i need committed users for funding 05:18:55 i will use @ 05:20:08 at least i'll play around with it and maybe implement stuff if not use it regularly (it would be hard to use it regularly without stuff implemented) 05:20:23 same with @lang 05:23:47 monqy: stuff implemented but but it'll have a web browser, an irc client, and a posix layer WHAT MORE DO YOU NEED WHAT DO YOU WANT FROM MEEEEEEE 05:25:32 oerjan: You might be correct about NP-complete. 05:26:04 elliott: it depends on if it's usable for me (if not i'd like it to be usable for me) 05:26:09 intentionally vague 05:26:11 However it probably can still halt. 05:26:17 because i do not know exactly what makes things usable for me 05:26:27 it's going to be so homestuck you have no idea 05:26:29 :( 05:27:19 Would you know if there are other channels that they can also help with these kind of algorithms? 05:27:50 zzo38: well yes. one obviously could use the algorithm of iterating through all possibilities of =, + and - at each spot where the name isn't already in the register, and that would halt but probably be exponential. 05:29:13 i only read the first 2 or 3 days of feather chat but i think i know enough now to say it's insane 05:29:22 monqy: it's beautiful 05:29:26 That is why I would want to figure out if there is better things 05:29:27 and amazing and perfect 05:29:28 that too 05:29:35 monqy: keep reading btw, you'll see ais gradually go completely insane 05:29:40 in the everyday sense 05:30:19 zzo38: i'm not frequenting any optimization channels, alas. 05:30:33 i like the part where the guy skeptics all over feather and then likes php 05:30:50 this is because i am a horrible person 05:31:17 monqy: you like to see movies where people fall into sewers and die, i take. 05:31:27 the best 05:31:32 elliott: btw whats the everyday sense of insane 05:31:49 () 05:32:30 monqy: the sense that isn't used in the idiotic sense of "LOL WE'RE ALL CRAZY HERE BECAUSE WE AM LIKE ESOLANGS" 05:32:38 * elliott STARES AT OERJAN FOR NO REASON 05:32:46 -!- Nisstyre has joined. 05:33:21 i like the part where the guy skeptics all over feather and then likes php 05:33:23 elliott: so the good sense 05:33:23 oh god which day 05:33:29 uhh 05:34:59 * oerjan hits elliott with the saucepan ===\__/ 05:35:11 the one where ais explains how feather has no primitives or syntax and RodgerTheGreat claims it impossible and ehird accuses him of hating most non-Java non-BASIC languages 05:36:04 no syntax either? oh dear. 05:37:05 monqy: rodgerthegreat is a bad person 05:37:12 true facts :{ 05:37:27 ./combined:20:49:49: * tusho watches RodgerTheGreat come and say "THAT'S IMPOSSIBLE! JUST LIKE FEATHER!" 05:37:32 not helpful grep... 05:37:43 17:24:06: ehird: utterly untrue. I like BF, ///, LOGO, PHP, Postscript, LUA and some of my own languages, in addition to Java and BASIC 05:37:46 grep for that 05:37:59 00:14:41: I love JS too :D 05:38:00 WHY DID I SAY THIS i must have been joking 05:38:07 monqy: im ehird btw 05:38:10 i know 05:38:11 i guess you knew that 05:38:15 SORRY IF YOU THINK LESS OF ME 05:38:45 what year was this i think i was an idiot back then 05:39:18 monqy: two thousand and eight 05:39:36 yeah i was probably most certainly an idiot. i don't want to think about it. 05:39:40 hmm, something is reminding me to play nethack again. prolly ais talking about acehack 05:39:55 monqy: DO YOU PLAY ANY ROGUELIKES i bet your taste in roguelikes is as bad as your taste in webcomics >:( 05:40:20 i think you talked about roguelikes once 05:40:20 sort of 05:40:22 or was that cpressey 05:40:23 dunno 05:40:24 i did? 05:40:32 anyway i don't know of any roguelikes i like 05:40:50 which did you plau 05:40:51 y 05:41:05 its complicated 05:41:12 youre avoiding answering because you have bad taste 05:41:16 yes 05:41:35 google "monqy nethack" -> oh god results for crawl 05:41:38 i dont really play crawl anymore but i hang around in ##crawl 05:41:41 FROM THIS YEAR 05:41:42 NOOOOOOOOOOOOOOOOOOOOOOOO 05:41:47 i cant talk to you any mor 05:41:47 e 05:41:49 and ##crawl-dev 05:41:52 die forever :{ 05:41:55 8) 05:42:03 i actualyl dislike crawl 05:42:07 does that make you feel better 05:42:16 one of the results from that google highlighted this part of crawl learndb 05:42:16 bhaak 05:42:16 Still believes that Nethack is the most popular roguelike. 05:42:16 Also believes that the earth is flat. 05:42:16 Happens to maintain a Nethack fork, UnNethack. If you're curious how a Nethack with some thoughts spent on balance could look like, give it a try: http://sourceforge.net/apps/trac/unnethack/ 05:42:17 Is on the record as stating that he is not a shark. 05:42:19 Likes ke$ha 05:42:21 good isnults A+ 05:42:24 monqy: maybe a bit........... 05:42:41 i know ais has been like kicked from crawl-dev several times for "trolling" so i have to MILDLY DISLIKE YOU... 05:43:09 I think I've been kicked once and muted once. does that help. 05:43:13 17:24:06: ehird: utterly untrue. I like BF, ///, LOGO, PHP, Postscript, LUA and some of my own languages, in addition to Java and BASIC 05:43:16 this must be from the day before 05:43:19 erm, after 05:43:30 oh wait no 05:43:31 i just grepped wrong 05:43:46 monqy: yes ok. 05:43:46 are there any good roguleikkes 05:43:49 monqy: how anal are those guys even 05:43:54 monqy: yes. vagrant 05:44:05 it's so beautiful you have no idea. 05:44:08 will check it out 05:44:22 monqy: good luck with that 05:44:27 monqy: its mine its in python but it's GOLFED PYTHON 05:44:29 it's like 05:44:31 a kilobyte big 05:44:34 and so amazing 05:44:38 i should work on that sometime 05:44:47 maybe make it use perlin noise instead of just... random() to generate the map 05:44:49 as for those guys do you mean the players or the developers 05:44:59 whoever ops crawl-dev 05:45:03 oh 05:45:44 varies between okay and insufferable?? i dunno 05:46:40 where is vagrant i am bad at finding it 05:47:20 monqy: it is not online :( 05:47:21 i addded ehird but google thought i meant third i will put quotes around it 05:47:23 oh :( 05:47:28 well it is 05:47:30 but mostly not. 05:47:40 i think i coerced cheater into pasting the latest version a while back after i lost it by pretending i liked him. 05:47:41 felt dirty. 05:52:02 17:22:28: If the first thing a language does is define it's own syntax, the syntax for defining syntax IS THE SYNTAX. 05:52:08 monqy: you should be so happy you weren't around when this guy was 05:52:13 im hapy 05:52:53 -!- Lymee has quit (Ping timeout: 260 seconds). 05:53:29 I actually still talk to him fairly regularly. 05:53:38 how bad of a person 05:53:47 Usually, not *too* bad, actually. 05:53:52 usually :D 05:53:55 He's developed a strong fondness for Forth. 05:54:29 isn't he like only four years older than me or something, i seem to recall him ranting at me for ages for being immature and blaming it all on my age once 05:54:54 He's a bit older than that. 05:54:57 But not much. 05:55:08 Wanna say, uh, 22? 05:55:40 Also, I'm pretty sure that https://secure.wikimedia.org/wikipedia/en/wiki/Fushigi_no_Dungeon is the most popular roguelike... 06:00:12 the difficult question is at what point does it become opcodes 06:00:32 hi 06:00:35 Argh, fizzie is gone for twelve hours. 06:01:09 the non-esoteric languages are usually used for bootstrapping right? 06:01:33 itidus20: Very few languages actually bootstrap, TBH. 06:01:41 Well, language implementations. 06:01:44 like unix was used to bootstrap gnu if i understand correctly 06:02:40 i don't "really" understand bootstrapping though 06:02:43 Clearly. 06:03:04 isn't it a physical impossibility to bootstrap something? 06:03:15 rather a systemic impossibility 06:03:17 Not really. 06:03:25 there was this thing i read somewheer 06:03:35 To bootstrap something is to build something with itself. 06:03:42 about how 06:03:45 There is no requirement that your initial build was bootstrapped. 06:04:06 nevermind ^^; 06:04:14 hmm 06:04:24 For instance, you could bootstrap a C compiler written in C, using a C compiler not written in C. (I don't know if such a thing exists. :P) 06:04:28 Argh, fizzie, you am done confound me. 06:04:34 Or, you could compile it *by hand*. 06:04:39 pikhq_: zeta c was written in lisp, I think 06:05:02 so one meaning of bootstrap is to have a compiler for a language written in itself then right? 06:05:06 The WEB program is itself written in WEB, although if you have the file TANGLE.PAS then you can start from there and then you can modify TANGLE.WEB and compile (with or without modification) WEAVE.WEB too. 06:05:07 itidus20: Yes. 06:05:19 Are there C compilers written in assembly languages? 06:05:26 zzo38: probably 06:05:32 zzo38: None notable, at least. 06:06:06 interpreter is probably a better word 06:06:25 Oh, yeah, you could also have the bootstrapping compiler run on an interpreter. 06:06:44 C interpreter written in assembly language would also work since the C compiler could then compile itself 06:06:53 I think that's how GHC started off. 06:07:29 itidus20: basically every compiler written in its own language must have been bootstrapped at one point. 06:08:11 -!- Taneb has joined. 06:08:18 hi Taneb 06:08:21 Hello 06:08:27 Frankly, bootstrapping compilers annoy me. I dislike circular dependencies. 06:08:30 although there are several options for how that could happen: a compiler written in another language, an interpreter written in another language, or (probably the very first languages) by hand. 06:08:34 pikhq_: but but @ 06:08:45 anyway it's not circular if it's portable 06:08:47 oro. 06:08:51 i am very much confused 06:08:53 elliott: For Linux package management. 06:09:04 hahahahhaha 06:09:05 Isn't GHC circular? 06:09:07 elliott: Namely, I dislike GCC having a build dependency on GCC. 06:09:11 Taneb: Yes. 06:09:18 pikhq_: a package manager that can't handle circular dependencies is broken 06:09:23 itidus20: for example erlang was originally interpreted in prolog (and still has a very similar syntax) 06:09:28 elliott: Build dependencies. 06:09:34 pikhq_: yep 06:09:48 is the bootstrapped section just the minimum necessary to build the rest? 06:10:27 oh i see now.. 06:10:35 the thing is when you update a language 06:10:45 and the updates to the language are coded in the language 06:10:48 itidus20: you can't use a feature you just implemented in the compiler without bootstrapping 06:10:56 obviously 06:11:17 so you begin in say, C/asm, for example.. 06:11:26 elliott: The only way to solve circular build dependencies is manual intervention so that the package depending on itself actually exists before you build it. Which is *really annoying*. 06:11:40 oh i guess it doesn't matter what you begin in 06:11:44 pikhq_: or it could install a binary first 06:11:47 same shit really 06:12:15 elliott: Yesss, that's manual intervention so that the package depending on itself actually exists before you build it. 06:12:20 Which is really annoying. 06:12:37 pikhq_: no, that's doing it in the package manager 06:12:47 It's still *really annoying*. 06:13:33 So the fundamental idea though is about initially writing a minimal compiler/interpreter in say: C, C++, Lisp, Haskell, what-have-you.. and using that to compile/interpret a new version of your language 06:13:52 and using that to build your language 06:14:06 yeah 06:14:57 I guess that it very much depends on many things. 06:15:23 Like, you wouldn't want to rely on an interpreter running underneath your language 06:15:47 indeed interpreters written in the language itself aren't useful for bootstrapping :P 06:16:11 although there are still uses for those 06:16:36 I can see that you could tell lisp to output asm code for an interpreter. 06:17:05 uhh... or something 06:17:06 lisp may have both an interpreter and a compiler for itself, where the interpreter is used for quick running and the compiler is used for optimizing 06:17:46 inside the same implementation 06:17:50 oh i mean.. suppose you wanted to implement a brainfuck interpreter. you wouldn't want to have the interpreter running on top of an interpreter. 06:17:52 Actually, Lisp almost always has a self-interpreter. That's the "eval" part of REPL. :P 06:18:36 sometimes you might 06:18:38 pikhq_: well it _might_ but it could also compile on the fly immediately, like ghc does 06:18:51 oerjan: Yeah, true... 06:18:51 *ghci 06:19:10 although that's still a slightly simpler compilation to bytecode 06:20:28 in any case, i figure you only really want 1 layer of interpreters running most of the time 06:20:46 itidus20: it's ok to use an interpreter to run your initial compiler, though, since that's a one time thing 06:20:47 and 2 for cases wheer it doesn't matter 06:21:22 oerjan: sbcl compiles to native code always, fwiw 06:21:30 ah 06:21:43 including in the repl 06:21:56 but you wouldn't really want to load haskell, and then load brainfuck on top of it, and then supply a brainfuck interpreter's source to that 06:22:50 or maybe you would 06:22:51 :) 06:23:02 im just not really moving things forward 06:23:18 itidus20: well for esolangs you might want to just because it can be done 06:23:28 yeah, its not such a bad idea 06:23:28 (see: my unlambda interpreter in unlambda) 06:23:49 im just in the habit of attaching a value judgement to everything i say 06:27:00 otherwise if you value efficiency you'd want to get a compiler pretty soon, or at least an interpreter that is itself compiled 06:28:15 heavy.. 07:12:11 You know what's odd? 07:12:28 What my brother calls an awkward turtle is different to what I do 07:12:40 what's an awkward turtle 07:12:52 a personality type i think 07:12:59 a clumsy tortoise 07:12:59 a turtle goes into their shell 07:13:01 A hand signal made during awkward silences 07:13:06 oh. lol 07:13:23 The point of it is to change the subject to the awkward turtle 07:13:58 those things feel artificial to me. subject changes to how artificial they feel. nobodys happy. 07:14:02 I prefer to make things more awkward and then sink deper into depression 07:14:14 classic itidus20 07:15:05 -!- monqy has quit (Quit: hello). 07:15:21 To quote David Morgan Mar, "If you find yourself in an awkward silence... Fill it! Say something! Anything! You will never have a better chance to make an awkward situation even more awkward!" 07:15:22 Everything seems to go wrong 07:16:23 does he ever come here? 07:16:51 not to my knowledge 07:16:56 No, I don't think he does 07:17:01 has he ever? :P 07:17:17 same answers? 07:17:20 I'm not even sure he's seen the wiki 07:17:22 thats fascinating 07:17:24 hahahahahahaha 07:18:03 wow, the bloglike section on Mezzacotta hasn't been updated for over a year 07:18:32 of course he has scary time planning powers, so he probably wouldn't fit in something that useless 07:18:36 it's like.. which friggen esolang club does he hang with then? 07:18:48 whereas Square Root of Minus Garfield has an update yesterday, so presumably that's still going 07:18:52 i thought this was the only one 07:18:59 as does Lightning Made of Owls 07:19:10 itidus20: well afaik all his esolangs are old... 07:19:21 ah ok 07:19:39 All the webcomics, bar Awkward Fumbles, are active 07:19:49 And Infinity on 30 Credits a Day 07:20:04 ais523: actually LMoO is skipping many updates nowadays 07:20:17 its funny how that works out 07:20:18 it is 07:20:26 something like that, it would astonish me if it came out daily 07:20:34 but it's still being updated when there are submisisons 07:20:35 *submissions 07:22:27 and SRoMG shows no signs of abating 07:24:42 btw the mezzacotta comic is rather dead if you look at the hall of fame section, not enough votes. although just this week some started trickling through. 07:25:08 Well, sqrt(-garfield) is brilliant. 07:26:03 hm... 07:26:22 i actually read some of it before coming here 07:26:52 it really tore apart the comic medium in fun ways 07:26:54 -!- Vorpal has joined. 07:27:14 itidus20: Also, it's producing something intelligent out of Garfield. 07:27:33 Which is quite a feat. 07:28:52 I am not sure if I approve of Scott McCloud though. HE should try his hand at esolang though 07:29:08 Given that Garfield is a comic written for one purpose: making money... 07:29:25 Scott McCloud is the most likely person to publish a book about esolangs :D 07:29:33 He has the mindset 07:29:41 He just doesn't know it yet. 07:31:20 I mean Mr. McCloud will never be Jack Kirby or Akira Toriyama. 07:31:47 ok, as far as can see there is no evidence that DMM has ever edited our wiki. 07:31:51 *i can 07:32:03 oerjan: im sobbing loudly 07:32:12 is he somewhat a celeb in esolang terms? 07:32:28 itidus20: it's separate, he's an esolang designer /and/ a celebrity 07:32:31 he's a celeb in every term. well, apart from the one normal people use. 07:32:32 but not famous for esolang design 07:32:33 ahhh 07:32:40 he writes this webcomic :P 07:32:49 he writes a somewhat popular webcomic 07:32:57 "Irregular Webcomic!" 07:33:03 and has a heavy hand in several others 07:33:04 ais523: Vorpal isn't appreciating this feature I coded into mcmap, probably because he's away; please tell me about how great it is 07:33:13 i actually discovered DMM when I started asking someone a question "theres not really any popular australian websites like google, yahoo etc" 07:33:17 elliott: I, umm, don't know what it does and why it's useful 07:33:22 but you managed to do something nontrivial in Java 07:33:26 that's worth an accolade of itself 07:33:29 itidus20: im lol 07:33:32 ais523: who said it was java??? 07:33:37 oh, good point 07:33:39 ais523: mcmap is a proxy, it's pure retrostyle c99 07:33:40 I assumed it was a Minecraft plugin 07:33:44 ais523: nah, it's fizzie's project 07:33:46 also, "retrostyle c99"? 07:33:48 that I also write some stuff for 07:33:48 and i went on wiki and found DMM 07:33:57 ais523: yes, fizzie thinks this is the nineties, and does things like use bitshifts instead of division 07:34:03 ais523: and mark functions "inline" 07:34:04 it's adorable 07:34:05 oh, right 07:34:12 I use bitshifts instead of division when it's clearer 07:34:33 say, if I'm dividing by a large power of 2, it's clearer to write x >> 20 than x / (1 << 20) 07:34:39 or worse, x / 1048576 07:35:04 x >> 1 vs. x / 2, though, they're pretty much equal in terms of legibility 07:35:55 http://en.wikipedia.org/wiki/Category:Australian_websites "Irregular Webcomic!" 07:36:00 ais523: Yes, but you're using bitshift when, logically, you are shifting bits. 07:36:05 i found him by that means 07:36:09 ais523: Which is only proper. 07:36:21 What if the shift is zero-extend? 07:36:34 ais523: oh, and he tries to make things thread-safe by marking them volatile 07:36:46 elliott: *wince* 07:36:50 pikhq_: dont wnice its amazing 07:37:01 DMM is the most famous esoteric programming language inventor with a PhD in Astrophysics 07:37:09 That's the "make the compiler stupid" button. 07:37:09 i can respect a man who uses macros because he doesn't trust the compiler enough to optimise an inline function 07:37:22 pikhq_: well it _is_ a mutex 07:37:35 australia kicks ass 07:37:44 elliott: that, umm, can actualy work sometimes 07:37:50 I lived in Australia for 11 months 07:37:50 (making things volatile to make them thread-safe) 07:37:52 itidus20: hmm, the most popular australian website may be Whirlpool (it's the only one I can think of off the top of my head) 07:38:00 which I'm not sure /why/ it's famous, because it's all about Australian ISPs 07:38:00 we have kangaroos and DMM and isn't afraid of anything 07:38:02 but I know it anyway 07:38:09 ais523: And in some cases, it just makes the compiler stupid. 07:38:12 but expecting it to happen without knowing why is probably going to end in failure 07:38:14 `addquote australia kicks ass we have kangaroos and DMM and isn't afraid of anything 07:38:17 541) australia kicks ass we have kangaroos and DMM and isn't afraid of anything 07:38:23 elliott: I suspect the most popular Australian website is google.au 07:38:26 but am not certain 07:38:29 It depends quite heavily on what you're doing. 07:38:30 ais523: that's not really an _Australian_ website 07:38:32 And I meant most famous 07:38:56 * elliott wonders how many Australians are proud of kangaroos despite having never seen one 07:39:07 * ais523 resists urge to say "Google's pretty famous" 07:39:24 Interestingly, there are some feral wallabees in Scotland 07:39:26 elliott: they're fairly common in the Australian countryside, aren't they? and even citybound Australians probably see them in zoos 07:39:34 even I've seen a kangaroo, in a zoo 07:39:56 I've seen a kangaroo in a zoo... in AUSTRALIA 07:40:01 you don't have to travel far to see one.. you just have to leave the cities 07:40:13 ais523: that was a nice rhyme 07:40:18 they're everywhere once you actually get away from suburbia 07:40:26 elliott: coincidental, and it doesn't scan properly 07:40:28 kangaroo / in a zoo / there's pretty much no way this rhyme isn't going to end up talking about kangaroo poo, so I'm stopping it here 07:40:40 which means it's a good rhyme in a bad context to put a rhyme in 07:40:46 everytime you go camping in melbourne you're bound to see one 07:41:17 hrm 07:41:22 they're everywhere 07:41:30 its just they're not in suburbia 07:41:30 * coppro sees a reasonable path to getting an Erdos-Bacon number of 65 07:41:31 *6 07:41:59 i don't get out much.. but i have seen them in the wild several times 07:42:16 coppro: Do tell. 07:42:29 Also, s/Erdos/Erdős/ 07:42:34 every encounter with a kangaroo tends to be memorable too 07:43:03 i guess they would get boring quickly enough 07:43:48 coppro: 65??? WOOOOOOOOOOW 07:44:13 i suspect 65 might actually be _harder_ than 6 07:44:49 pikhq_: My father has a Bacon number of 3; there are multiple profs at UW with Erd(I don't know how to compose the accent with my keyboard layout)s numbers of 1 07:45:11 Here, it's Compose = o 07:45:27 pikhq_: Although my father's Bacon number of 3 doesn't apply if you only count credited actors 07:45:32 as he was an extra 07:45:38 pikhq_: like in SML iirc 07:45:42 (and I haven't run the cast list of the film to see if he actually has a 2) 07:45:48 Crediting doesn't typically matter for Erdős-Bacon. 07:46:00 is it Erdős * Bacon that you're using to do the calculation? or appending digits? 07:46:07 Erdős + Bacon 07:46:12 aha 07:46:17 so 65 is really quite difficult? 07:46:28 Unless you have a time machine. 07:46:41 Bye, everyone 07:46:47 -!- Taneb has quit (Quit: Page closed). 07:46:49 Then, you can be enough generations removed to pull it off. 07:47:03 I still don't know what my Erdős number is 07:47:20 although I'm pretty sure I have one, given that I've coauthored papers with people who have coauthored lots of papers 07:47:21 * pikhq_ really would like for Bacon to appear in a film using stock footage of Erdős. 07:47:33 pikhq_: to give the lowest possible value of 1? 07:47:41 Yes. 07:47:42 it'd be funnier if they coauthored a paper 07:47:50 ais523: grep https://files.oakland.edu/users/grossman/enp/Erdos2.html 07:47:53 ais523: well i assume you'd have to get a long chain of people to cooperate with each other to get it that high 07:48:05 oerjan: Or time. 07:48:10 -!- cheater_ has quit (Ping timeout: 255 seconds). 07:48:15 * pikhq_ really would like for Bacon to appear in a film using stock footage of Erdős. 07:48:19 i think something like that actually happened 07:48:41 I thought it was just someone with a Bacon number doing that, though. 07:48:41 ais523: Vorpal isn't appreciating this feature I coded into mcmap, probably because he's away; please tell me about how great it is <-- what feature? 07:48:47 hmm, or not 07:48:52 Vorpal: see -minecraft 07:49:01 just after you joined 07:49:02 Yup. 07:49:06 it's currently broken btw :P 07:49:10 oh wait i didn't commit the broken 07:49:11 Erdős has an Erdős-Bacon number of 3. 07:49:11 it's not broken 07:49:40 ais523: oh wait you filter URLs 07:49:51 no he doesn't 07:49:55 not any more 07:50:01 I delink them 07:50:07 but can still see what they say 07:50:09 Which is the lowest known Erdős-Bacon number, though a few people have that. 07:50:10 What counts as a "paper" for Erdos number? 07:50:23 an academic paper 07:50:27 I did a simple proof with ais523. Does this mean I might have a .. blah 07:50:31 Sgeo: The *stock* definition is an academic, published paper. 07:50:51 well, my Erdős number is at least 4, it seems 07:50:55 Sgeo: no. 07:51:19 ais523: clearly we should collaborate and I should get a research term with one of the two profs at UW I know of with 1 07:51:24 that will give you a firm 3 07:51:28 Now I will sleep soon. Tell me now or later, if you have more ideas about my optimization problem or any other IRC channels you know that they could discuss these things. 07:51:41 -!- zzo38 has quit (Quit: >). 07:51:57 ais523, clearly, we should write a paper >.> 07:52:03 (I actually have an eye on one in particular since he both works in an area I'm interested in and taught me last term) 07:52:03 Oh, sorry, it's any research collaboration resulting in a published work. 07:52:11 07:52:20 A collaborative, unique proof would probably count. 07:52:23 bleh, does that mean that elliott has an Erdős number because I mentioned what I was doing to him? 07:52:26 ais523: :D 07:52:28 and he replied? 07:52:34 ais523: everyone you have EVER LOOKED AT has an erdos number now 07:52:41 ais523, is our GoE proof unique? 07:52:58 Sgeo: I don't know what you're referring to 07:53:04 well, I mean, my coding style is slightly influenced by elliott 07:53:10 from being exposed to his programs 07:53:18 and I did a lot of programming towards one of the papers 07:53:35 (I'm still trying to figure out why I switched from Allman-style braces to K&R-style, though) 07:53:39 ais523, that thing about any sufficiently small pattern in a bounded Game of Life universe being a result of some Garden of Eden 07:53:46 (for when I'm not trolling with EOL braces) 07:53:54 Sgeo: it probably isn't new 07:54:00 Oh, darn 07:54:01 someone else has probably wondered that at some point 07:54:11 well, I mean, my coding style is slightly influenced by elliott 07:54:12 really? 07:54:15 or is this just in a butterfly effect sense 07:54:32 Sgeo: what is the result, precisely? 07:54:39 elliott: well, I've had style arguments with you, and they help to sharpen my opinions of my own position 07:54:49 and I've started using K&R/OTBS style for no obvious reason at all 07:55:02 mcmap puts { on the line after branch constructs and it makes me unhappy 07:55:08 *OTB style 07:55:19 elliott: I used to do that, because the books I learned C from did 07:55:41 I really dislike {-on-its-own-line 07:55:42 coppro, every sufficiently small (5 width and height smaller than the universe) pattern in a bounded Game of Life universe has at least one Garden of Eden that results in it. 07:55:47 iirc 07:55:53 coppro: do you really dislike }-on-its-own-line? 07:56:00 OTBS is like Perl, it's inconsistent in the name of looking nice 07:56:01 ais523: I do 07:56:06 (not) 07:56:23 Sgeo: interesting. What's the proof? 07:56:29 also bounded -> toroidal? 07:56:52 hmm, another plausible indentation style is { lined up with if(x), on the same line as the line after, and } at the end of the line, next to the margin (i.e. column 78) 07:57:01 I wonder why nobody uses it? 07:57:10 ais523: ewwww 07:57:17 coppro, yes, although it works with other topologies. And probably also with always-off beyond a point, but not sure, and ais523 wasn't paying attention. 07:57:30 coppro, let's see if I can remember it offhand. It's somewhere in logs 07:57:33 Sgeo: "yes" is not a proof :P 07:57:52 Yes was to bounded -> toroidal 07:58:04 ah ok 07:58:16 coppro: now I'm trying to think of something that's proved by infinitely many copies of the letter 'y' 07:58:18 hey ais523, here's a screenshot you won't understand: http://i.imgur.com/Oygim.png 07:58:18 but I can't 07:58:28 * itidus20 notes that there is no coding-style applicator editor that i have heard of 07:58:28 it could make a decent counterexample to various banal and pointless statemetns 07:58:39 coppro: now I'm trying to think of something that's proved by infinitely many copies of the letter 'y' 07:58:45 "there exists an infinite stream of 'y's" 07:58:51 (constructive-style proof) 07:58:53 elliott: something vaguely interesting 07:58:58 itidus20: you mean a reformatting editor? 07:59:07 ais523: The only thing I dislike more than putting opening braces on their own line is putting them on their own line AND indenting them halfway 07:59:09 ais523: that there exists infinite anything would be considered interesting to some people 07:59:11 (see ultrafinitists :P) 07:59:11 itidus20: several programs, like Emacs and Kate, will shuffle lines left and right to comply with a coding style you give them 07:59:20 NetBeans, at least, will completely re-pretty-print your program if you tell it to 07:59:27 and vim 07:59:45 elliott: perhaps you should give ultrafinitists a copy of yes 07:59:49 and watch their minds explode 07:59:49 ais: I can independantly discover any feature given enough time 07:59:58 coppro, in a bounded universe, every pattern is either a oscillator or a precursor to one. 08:00:18 (counting things like empty universe as an oscillator) 08:00:33 -!- cheater_ has joined. 08:00:34 elliott: I assume it's Minecraft-related; the first thing that came into mind when I saw it was that it was a Dwarf Fortress map dump 08:00:42 and Minecraft map dumps are likely to look similar 08:00:45 There are no infinite growth patterns. Eventually, you're going to start repeating. 08:00:47 as people do similar things to the map in those games 08:00:55 Sgeo: Right. I know that result 08:01:14 y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y 08:01:16 y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y 08:01:17 y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y 08:01:38 elliott: I assume it's Minecraft-related; the first thing that came into mind when I saw it was that it was a Dwarf Fortress map dump 08:01:44 It's not really a dump, more a live view 08:02:14 elliott: perhaps you should give ultrafinitists a copy of yes 08:02:14 and watch their minds explode 08:02:25 ais523: they'd, unfortunately correctly, probably argue that it was still bound by C's restrictions 08:02:28 at least, if they were IN THE KNOW 08:02:33 because they know the OS is written in C 08:02:35 yes doesn't count its iterations, does it? 08:02:40 If you take a pattern that's just a precursor, and work "backwards" (for all possibilities of backwards), you can't end up with the same pattern again, otherwise, it wouldn't be a precursor 08:02:53 ais523: No, but the OS has to print it out 08:02:57 and depending on what you're outputting, the OS doesn't have to either 08:03:02 *outputting to 08:03:06 say you're outputting to a parallel printer 08:03:06 ais523: OK, but the hardware will still degrade :P 08:03:12 it's going to run out of paper eventually, I suppose 08:03:18 but the ys will still be there conceptually 08:03:19 ais523: You could print to screen and wipe anything that trails off 08:03:21 You can't go "backwards" infinitely, it has to stop sometime before 2^area 08:03:56 ais523: How come Junethack has muted goals in AceHack? Isn't AceHack basically vanilla for the purposes of gameplay? 08:04:09 So every precursor has a Garden of Eden that results in it. 08:04:15 coppro: it's because I didn't want to break save compatibility to add a patch that was implemented really badly 08:04:21 Sgeo: right 08:04:23 so I restricted myself to stuff that the game tracked already 08:04:28 apparently (according to the source of translations of the tipitaka) buddha said that the first being in a realm(not sure if i have this right) assumes himself to be god 08:04:30 ais523: ah 08:04:40 planning to play in junethack, btw? 08:04:49 what are muted goals? 08:04:55 (I'm still astounded that Slashdot accepted the story) 08:05:00 Now, for every pattern of a certain size or smaller, you can trivially make a precursor by putting a single live cell outside of causal contact with the pattern. Therefore, the pattern has a precursor, and therefore, there's a Garden of Eden that results in it. 08:05:02 elliott: they're not really muted, just slightly different than the other variants 08:05:18 elliott: muted meaning less difficult 08:05:30 ooh, the submitter of the slashdot submission is the one with that insulting crawl infodb entry 08:05:37 ais523, did I forget anything/make any mistakes? 08:05:38 well insulting-ish :P 08:05:40 I thought of that in particular because "beat sokoban" is replaced with "consult the oracle" 08:05:47 the others are close to isomorphic 08:05:51 (long story involving monqy as to why I know/recall this so recently) 08:05:51 Or be too long-winded for something simple? 08:06:02 Sgeo: I wasn't playing attention 08:06:07 oh, the luckstone from mine's end isn't 08:06:09 elliott: bhaak is the developer of UnNetHack 08:06:14 it's replaced with getting into the quest 08:06:18 coppro, ping 08:06:20 "bhaak 08:06:20 Still believes that Nethack is the most popular roguelike. 08:06:20 Also believes that the earth is flat. 08:06:20 Happens to maintain a Nethack fork, UnNethack. If you're curious how a Nethack with some thoughts spent on balance could look like, give it a try: http://sourceforge.net/apps/trac/unnethack/ 08:06:20 Is on the record as stating that he is not a shark. 08:06:21 Likes ke$ha" 08:06:30 and possibly the person with the most (although not the largest volume) of AceHack patches but me 08:06:39 Sgeo: makes sense 08:06:47 goodplayers 08:06:47 10 wins. Add yourself to the list with !nick goodplayers yourname. Don't be a monqy and delete the list. 08:06:47 The number of wins required to be a goodplayer increases over time. It is defined to be one more win than monqy currently has, except when it gets fixed at nice numbers like 10 or 27 for a while. 08:06:55 monqy needs to extricate himself from this learndb 08:07:23 http://twitpic.com/monqy <-- google search result for monqy, COINCIDENC???? 08:07:32 a picture of a twit? 08:08:03 also, I'd be very surprised if Crawl were more popular than NetHack 08:08:09 but Crawl's playerbase, I expect to be easier to count 08:08:12 ais523: I wouldn't, at all 08:08:12 Sgeo: Now, for the killer question: can you work out whether this applies in the totally general case? 08:08:22 NetHack's a part of UNIX culture, Crawl isn't 08:08:29 ais523: Nobody on Windows plays NetHack, lots of people on Windows play Crawl (tiles, universally) 08:08:36 (Yes I know not "nobody" etc. etc. etc.) 08:08:42 elliott: most of the YouTube results for NetHack are played on Windows 08:08:44 coppro, general as in generalizes to other rules, or to infinite sized universes? 08:08:45 Also, Fushigi no Dungeon. 08:08:50 Also see sheer volume of DCSS on http://www.reddit.com/r/roguelikes, although I realise the sample might be biased 08:08:53 ais523: bad logic 08:08:58 Sgeo: To all finite patterns 08:08:58 elliott: indeed 08:08:59 X=>Y =/= Y=>X 08:09:10 (a series of Japanese console rogue-likes) 08:09:11 I'd be very surprised if NetHack had more active players than DCSS 08:09:14 but it's still relevant, you just have to plug the numbers into Bayes' Theorem 08:09:20 pikhq_: you don't have to tell me what the Mystery Dungeon series is 08:09:24 I'm too lazy to be a Bayesian 08:09:28 some of the games in it are released in the UK too 08:09:33 "monqy 08:09:34 killed good players, is a horrible person" 08:09:34 ais523: Not everyone would know. 08:09:36 yep 08:09:59 coppro, good question, I'd like to try, but I have no reason to believe I can. I am currently mentally playing with more GoE stuff though 08:10:21 I'm actually quite a fan of Pokémon Mystery Dungeon; its bonus levels (Zero Island) have a balance unlike anything I've seen in any other roguelike, and are sufficiently fun that I'm considering writing my own roguelike based on similar principles 08:10:37 it's like what I think Crawl ought to be like, rather than what it actually is like 08:10:39 ais523: interesting; your recommendation might make me pick one up 08:11:00 coppro: be careful; the first 85% or so of Pokémon Mystery Dungeon is insultingly easy, and you have to play through it before you reach the fun part 08:11:11 most people have given up before they reach it 08:11:16 squarelos totally looks like spanish ors omething 08:11:35 ais523 is going to reply to this with an opinion on squarelos 08:11:48 elliott: nah, I'm not good enough at Crawl to have a serious opinion on it 08:11:59 but apparently, the developers mostly dislike it, and the top players mostly like it 08:12:15 presumably the wider playerbase mostly dislikes it because it looks worse than circlelos, but I'm not sure 08:12:21 ais523: monqy seems to be behind it 08:12:45 clearly, we need to inundate him with these mixed opinions 08:13:13 ais523: I was planning to go for the discount bin anyways 08:15:34 ais523: completely unscientific comparison based on seeing a link to an SA forums thread in the crawl learndb: Crawl's thread has amassed 141 pages in three months; I can't even /find/ a thread for NetHack, but Minecraft's has attained 574 in six months 08:15:52 I think it's fair to say that Crawl is the most popular roguelike THAT PEOPLE ACTUALLY THINK IS A ROGUELIKE WHEN THEY'RE PLAYING IT OK OK PIKHQ 08:17:36 Now back to mcmap 08:18:05 another completely unscientific comparison: NetHack's been slashdotted more often than Crawl 08:19:04 ais523: oh, /come on/ 08:19:11 that's about seven hundred times more biased than mine 08:19:54 also, the SA thread for Crawl was, for ages, the main forum to discuss the game 08:19:59 which is why it's mentioned there 08:20:04 a? 08:20:07 *sa? 08:20:12 coppro: something awful 08:20:22 they moved away to the Tavern because they didn't like a pay site having most of the discussion about the game 08:20:24 one of the largest forums on the internet, with some site that nobody reads attached to it 08:20:41 is it the largest paid forum, I wonder? 08:20:41 elliott: it is indeed something awful 08:20:53 things like many of the 4chan boards are presumably larger, but you don't have to pay to post there 08:20:55 ais523: according to http://www.big-boards.com/, no; offtopic.com is larger 08:21:09 coppro: what an original joke 08:21:09 heh, I'm not surprised there are forum rankings 08:21:18 but you only mentioned one other forum, so I'm guessing that they're second 08:21:23 ais523: unfortunately, that ranking omits the largest forum on the internet because it doesn't have the data they want 08:21:30 and no, they're just the only one I remember being pay-for 08:21:32 aha 08:21:34 I checked the biggest ones out a while back for some reason 08:21:42 (the largest forum on the internet is 2channel, by a large margin) 08:21:48 oh, that makes sense 08:21:50 (but they don't have e.g. membership information as they don't have members) 08:22:00 oh wait "RegistrationOptional, USD33.00/year" 08:22:02 maybe they do :-P 08:22:21 does a paid forum end up being better? 08:23:05 itidus20: depends on what you mean by "better" 08:23:17 it's going to discourage a huge number of potential posters, and probably many readers too 08:23:30 but that's not necessarily going to be a bad thing 08:23:53 * elliott has ended up coding mcmap in gedit, I wonder why? 08:24:01 its a weird idea 08:24:12 Well, I know why, it's because vi displays tabs as spaces, so I can't copy and paste properly with my terminal, and because emacs just feels wrong here 08:24:12 http://www.mezzacotta.net/archive.php?date=2012-12-22 My goodness that is wonderful. 08:24:32 ais523: SA seems to do well enough with those: 08:24:32 5,187 Users Logged In 08:24:33 3,550 registered users logged in. 08:24:33 155,024 users total. 08:24:41 (OK, it's probably one of the only successful for-pay forums.) 08:24:45 elliott: if you're a paid forum, being big is definitely to your advantage 08:24:53 just like if you're a social network, being big is definitely to your advantage 08:24:54 Obvious statements woo :P 08:25:04 pikhq_: what is so special about that date? 08:25:15 coppro: you can figure that one ou 08:25:15 t 08:25:20 pikhq_: haha, that must have been specialcased 08:25:21 coppro: Day after the Mayan calendar ends. 08:25:26 ais523: Undoubtedly. 08:25:27 it's not 08:25:29 http://www.mezzacotta.net/archive.php?date=2012-12-20 is the same 08:25:40 as is http://www.mezzacotta.net/archive.php?date=2012-11-01 08:25:44 you're doing something wrong 08:25:47 oh wait, duh 08:25:48 oh right, those comics haven't been written yet 08:25:49 you can't see future comics 08:25:59 Aaaah, it only peeks into the past. 08:26:08 yeah, I know the date 08:26:14 just nothing seemed special about that site at that date 08:26:24 coppro: well, that the comic didn't exist 08:26:32 on account of the universe not existing, just like mezzacotta extends back to the beginning of time 08:26:41 it's only amusing if you know what mezzacotta is 08:27:20 I do not 08:27:40 http://www.barnesandnoble.com/w/the-assemblies-of-god-holy-bible-god/1030075545?ean=2940012671967&itm=2&usri=assembly%2bof%2bgod oh, this pattern of "helpful" votes isn't suspicious 08:28:01 coppro: It is a webcomic which has an update for every day. 08:28:06 it has the largest archives of any webcomic ever 08:28:25 ais523: well, MSPA will surpass it in a few years, I'm sure 08:28:35 presumably it was going as a newspaper comic before it first came online, and as a pamphlet comic before that, and as a stone carving comic before that 08:28:50 and as a plsama painting comic before that 08:28:51 plasma 08:28:55 Specifically, every day on the proleptic Gregorian calendar. 08:29:34 And then some. 08:29:37 I GUESS MY JOKE TRULY WAS THAT BAD 08:29:48 http://www.mezzacotta.net/archive.php?date=-9999999999999-01-01 Here's the earliest comic. 08:29:49 pikhq_: DMM could tell that the Gregorian calendar was going to be introduced millions of years before it was, so he worked on that assumption 08:29:58 also, my fingers tried to tab-complete Gregorian, and it half-worked 08:30:06 hahaha 08:30:10 -!- azaq23 has quit (Quit: Leaving.). 08:30:19 hmm, "I think this comic is going downhill." must have been special-cased as the first line 08:30:55 coppro, you should read all of them. 08:30:57 elliott: it could just be chance 08:31:16 There's a comic worth archive-binging. 08:31:25 Especially since you'll need to invent immortality to do so. 08:31:35 ais523: yeah, but /come on/ :P 08:31:36 elliott, ais523, or, perhaps the function determining the comic was designed with that result in mind 08:31:37 Well, not necessarily immortality. 08:31:46 Just being highly prolonged. 08:32:16 ahh.. is mezzacotta a procedural comic? 08:32:23 Yes. 08:32:27 itidus20: no, it is hand-written by the comic irregulars 08:32:28 pikhq_: fuck you 08:32:31 Either that or DMM is amazing. 08:32:39 IT IS NOT JUST DMM DO NOT DISCOUNT THE CONTRIBUTIONS OF OTHERS 08:32:55 today's mezzacotta is funny 08:33:11 although the first and second panels should be swapped 08:33:51 -!- Sgeo_ has joined. 08:33:57 "The rod of alertness is planted (set) to prevent each instance of a beetle." 08:34:17 * elliott really wants to play frictionless tennis now 08:36:19 -!- Sgeo has quit (Ping timeout: 255 seconds). 08:37:14 the D&D markov chain person strikes again? 08:37:21 ? 08:37:53 elliott: one of the mezzacotta people just does markov chains of the d20 SRD (basically, D&D minus trademarks) 08:38:10 and itidus20's quote sounds like it was generated like that 08:38:40 there is a tetris dude 08:38:44 goes by holdnext 08:38:47 ohhhh 08:38:55 i swear to god every post he makes sounds like a markov chain text generator 08:38:58 so theres actually characters 08:38:58 but apparently he's a real person 08:39:22 um fizzie 08:39:27 Uint32 v = *b; 08:39:27 if (v < 64) 08:39:27 rgba = RGBA_OPAQUE(4*v, 4*v, 0); 08:39:27 else 08:39:27 rgba = RGBA_OPAQUE(255, 255-4*(v-64), 0); 08:39:29 b is the array of blocks 08:39:34 don't you want to use y, not v?... 08:39:57 oh wiat no 08:40:00 b is different for that 08:40:01 argh 08:43:41 ais523: 08:43:41 int lv_block = c->light_blocks[bx*(CHUNK_ZSIZE*CHUNK_YSIZE/2) + bz*(CHUNK_YSIZE/2) + ly/2]; 08:43:42 int lv_day = c->light_sky[bx*(CHUNK_ZSIZE*CHUNK_YSIZE/2) + bz*(CHUNK_YSIZE/2) + ly/2]; 08:43:42 if (ly & 1) 08:43:42 lv_block >>= 4, lv_day >>= 4; 08:43:42 else 08:43:42 "Not being one-to-one is not considered sufficient of a function for it to be called one-way (see Theoretical Definition, below)."? 08:43:44 lv_block &= 0xf, lv_day &= 0xf; 08:43:44 Huh? 08:43:46 typical mcmap code 08:44:04 gah, stupid italics indentation 08:44:10 (my client interprets tab as "toggle italics") 08:44:23 Sgeo_: yes, those are different concepts. 08:44:50 one-to-one == injective (probably what you want for GOL stuff) 08:45:00 I'd say the bitshifts/bitmasks are correct there, as it looks like it's trying to unpack a format that packs multiple 4-bit chunks into an octet 08:45:03 oerjan, I'm on this page for different reasons 08:45:04 one-way = cryptographical 08:45:06 and the mathematical behaviour is irrelevant 08:45:29 oerjan, and I'm kind of just wondering about hashes not necessarily being one-way 08:46:00 Sgeo_: well no one has proved that one-way functions definitely _exist_ 08:46:22 (requires P != NP) 08:46:33 I should go to sleep now 08:47:20 oerjan: does not require P != NP; if checking is O(n^2) and breaking is O(n^999), it's going to be safe for all practical purposes with high enough n 08:47:39 well depends on your precise definition then 08:48:00 P != NP iff P != 0 and N != 1 08:48:08 08:48:15 it's been made before 08:48:41 also, what if P = +Inf, N = 2? 08:48:44 +Inf is not a number 08:48:56 no, that's NaN 08:49:03 > (1/0) == (0/0) 08:49:04 False 08:49:07 elliott: +Inf * 2 = +Inf 08:49:14 > (1/0) * 2 08:49:15 Infinity 08:49:28 it was a joke 08:49:37 ais523: I would just like you to know that I edit mcmap with four-wide tabs 08:49:37 oh, I see 08:49:40 in response to coppro 08:49:49 YOU ARE LIVING A LIE 08:50:14 Who doesn't use four-wide tabs for stuff? 08:50:19 elliott: why not edit it with half-width spaces too? 08:50:26 Sgeo_: FREAKS 08:50:28 ais523: SOOO ANGRYYYYYYYYY 08:50:33 Sgeo_: oh god don't 08:50:37 you're not me, so he'll actually respond 08:50:41 and we'll be here for hours 08:51:28 I actually posted that Linux coding style guide quote to someone in a different channel earlier 08:51:35 when we were about to get into a tabs vs. spaces vs. tabs=8 war 08:51:39 I need to go to sleep 08:51:46 but it killed the conversation, obviously they were unable to argue with ti 08:51:47 when we were about to get into a tabs vs. spaces vs. tabs=8 war 08:51:48 *it 08:51:49 uh oh ais523 08:51:58 you implicitly acknowledged that there MAY exist tabs that are not equal to eight psaces there 08:52:05 better be careful!!!! 08:52:19 elliott: no, I acknowledge that some people use tabs for purposes that most programs are incapable of reading 08:52:26 Erm, I meant "4 spaces for each indent level" when someone said tabs 08:52:31 * Sgeo_ hides 08:52:40 the only programs I can think of where tab width is variable, are some programming editors, and word processors 08:52:43 everything else uses tab=8 08:52:50 (well, QBasic uses tab=14, but it's insane) 08:52:51 I think my Python is showing 08:52:53 ais523: hehehehhehehe WOW LOOKS LIKE I'M NOT GETTING INTO THIS AGAIN WITH YOU how strange 08:52:57 Wow, that sounsd wrong 08:55:39 hey, ahtewa's using ä in Eodermdrome programs 08:55:41 that's cheating! 08:55:48 although, I suppose I didn't specify the alphabet 08:55:55 and it does make it more pronounceable 08:56:56 -!- ais523 has set topic: Tarn was pleased. “The hippos like the sewers!” he said. He took a celebratory swig of Dr. Pepper, and rocked back and forth. | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 08:57:07 clearly we need to get someone vietnamese to write the eodermdrome C interpreter 08:57:15 (all I added was a comma; it's correct either way but means something slightly different now) 08:58:46 ais523: it looks to mean the exact same thing to me 08:58:49 since I know the context 08:59:01 how has the meaning changed? 08:59:14 oh, I think with the comma it implies that the swig of Dr. Pepper and the rocking happen one after the other 08:59:19 and without, it leaves it ambiguous as to whether they overlap 08:59:23 haha 08:59:25 OH THE MEANING-CHANGE 08:59:33 I said "slightly different" 09:00:15 slightldyifferent 09:00:30 ais523: the source of that is an amusing read, by the way 09:00:47 ais523: It's an NY Times article that purports to be about Dwarf Fortress, but is mostly a list of all the ways in which the NY Times writer thinks Tarn is weird 09:01:11 oh, I, err, looked at that article 09:01:24 but it was paywalled 09:01:37 that paywall is bypassable with a single line of JS, IIRC 09:01:41 it's literally just an overlay 09:02:08 not in my case, it wouldn't scroll, and I assume the article was longer than a screenful 09:02:16 it's possibly because I declined cookies and didn't use JS 09:03:03 ais523: umm, you can disable scrolling, I think 09:03:05 but fair enough 09:03:16 but you could see the article greyed-out with the one I'm talking about 09:03:20 I couldn't 09:04:32 -!- oerjan has quit (Quit: Good night). 09:04:58 ais523: do you know how to check whether the window is focused in SDL? 09:05:05 I suppose I have to handle the event... 09:05:15 elliott: I don't, I've hardly used SDL 09:05:23 I can't even remember if DNA Maze is written in it or not 09:05:34 I know I straight-ported it to something, but can't remember if it was SDL, although it seems plausible 09:06:08 it is :P 09:06:32 straight ports generally don't require much thought 09:06:46 sufficiently so, that you can forget what libraries you're working with 09:07:16 I've learned very little SDL working on mcmap, although I've mostly left the actual map parts alone until now 09:08:33 -!- ais523 has quit (Remote host closed the connection). 09:19:02 Ok so an idea came to me. 09:19:46 The degree to which a randomly generated world is enjoyable is probably correlated to the amount of cooperative multiplayer conducted within that world 09:20:22 in other words, always looking for a human meaning 09:20:28 a great many people enjoy single-player minecraft but don't enjoy it online 09:20:36 even cooperatively 09:20:52 but minecraft at least has NPCs I guess thats the diffeernce 09:21:05 maybe you don't need humans 09:21:10 maybe NPCs are enough 09:21:46 lots of people play in peaceful, and then there are no NPCs inside any real structure 09:21:54 and sheep and pigs are generally more of an ignored annoyance outside 09:21:58 cows too 09:22:02 chickens are too tiny to notice 09:22:52 ok so.. perhaps it is relative to how busy the persons social life is 09:23:10 like, the more social the more enjoyable? 09:23:19 oh.. i mean.. 09:23:22 If anything it's the opposite, although I doubt even that; plenty of MC players seem to be sociable 09:24:36 i dont have much of a social life .. so gradually I don't enjoy being too alone 09:25:06 Well, with the size and speed a lot of builds are constructed, I doubt a lot of the big ones involved too much social interaction during the build period... 09:26:14 I mean.. I'm indoors at home all day every day. At first it seemed like the perfect chance to be alone with computers and books. But gradually I found dependance on chatrooms etc 09:28:34 looking for human meaning? mc's randomly generated worlds are way better than those constructed by hand for more expensive games, exactly because they don't look like they've been drawn by a human 09:29:33 well i was thinking about this while reading mezzacotta 09:29:41 oh well that explains it then 09:30:26 you should not share ideas before they are properly cooked 09:30:44 lol 09:31:04 oklopol: so ais should never have talked about feather? :p 09:32:25 " Well, with the size and speed a lot of builds are constructed, I doubt a lot of the big ones involved too much social interaction during the build period..." <<< doing stuff together is just a more primitive form of social interaction 09:33:27 i referred to solo builds 09:33:40 oh sorry 09:33:56 years ago playing final fantasy 3/6 on a SNES I started to imagine "This is great. It's a shame the NPC is 'stuck' to a set of scripted events." not in those exact words 09:34:03 i thought you meant they were multiplayer builds but so big and quickly done that the players must've just been building like crazy 09:35:08 ugh, scripted events... is there a worse 09:36:18 But as I get older, I start to realize you can't replace the storyteller with a computer. 09:36:34 Sometimes the story is well-written 09:36:42 well read a fucking book 09:36:58 the point of games is you can be creative 09:37:08 and the game does a good job of expanding the story in the game 09:37:14 no it doesn't 09:37:16 it never does 09:37:18 yes it does 09:37:21 no it doesn't 09:37:22 it never does 09:37:27 I have to disagree 09:37:31 well i have to agre 09:37:32 e 09:37:35 ...with myself 09:37:36 k then 09:37:43 lol 09:37:45 k indeed 09:37:49 obviously this disagremeent can be settled in only one fashion 09:37:54 obviously 09:37:55 what is that 09:38:01 fight to elliott's death 09:38:22 coppro> I have to disagree (with oklopol) well i have to agree (with oklopol) 09:38:39 elliott has the Magic Spirit of Rightness in him 09:38:52 the person who kills him and takes the Magic Spirit of Rightness will, thereafter, be right 09:39:28 coppro: i say oklopol is right because i like him more 09:39:32 issue resolved 09:39:38 " and the game does a good job of expanding the story in the game" <<< afaik, in every game the story can only be expanded locally, or you can explore a few main branches. to me it just feels like they couldn't come up with a long enough story so they added some parts where i have to press x repeatedly. 09:40:23 with slightly (very slightly) varying values of pressing x 09:40:43 looks like pixelcomic is over 09:40:52 are you mocking me? 09:41:08 no 09:41:10 "THE FACT THAT IT IS NAMED HURRICANE PIXEL IS WHAT MAKES IT INTERESTING 09:41:10 IMAGINE A WEATHERMAN IN REALITY TALKING ABOUT "HURRICANE HUMAN" 09:41:11 TO WARRANT SUCH A NAME THIS HURRICANE WOULD HAVE TO BE CAPABLE OF DESTROYING THE EARTH 09:41:11 (WHICH WOULD HAVE A DELICIOUSLY IRONIC VALUE IN NAMING IT "HUMAN" MWAHAHA AHEM)" 09:41:15 are you sure 09:41:18 the annotations of this were ten times better than the comics itself 09:41:19 oklopol: yes 09:41:31 because that would've been a rather subtle form of mocking 09:41:45 ...:| synchronicity 09:41:47 http://pixelcomic.net/016.shtml 09:41:50 "ARE YOU MOCKING ME OR SOMETHING" 09:42:19 PIXELCOMIC UPDaTeD? 09:42:22 Damn shift key 09:42:36 *pixelcomic updAtEd 09:42:38 Sgeo_: nope 09:42:42 but its index page is now a list of all strips 09:42:45 which implies overness to me 09:43:54 :( 09:44:51 I AM NOT ALONE WHEN I SAY THAT 09:44:51 I ALWAYS FOUND IT ODD HOW LOIS LANE WAS RENDERED INCAPABLE OF RECOGNIZING SUPERMAN 09:44:51 SIMPLY FROM A PAIR OF GLASSES 09:44:51 I WONDER IF ANYONE HAS EVER BEEN INSPIRED TO ROB A BANK WEARING GLASSES 09:44:51 AND THEN SUCCESSFULLY ESCAPE BY THROWING AWAY THE GLASSES AND WALKING CASUALLY 09:45:11 http://pixelcomic.net/020.shtml 09:45:14 these are awesome 09:46:11 oklopol: i love how it'd be a really shitty comic without the annotations making fun of it 09:47:45 i would love it anyway 09:47:49 elliott, btw, MSPA is more stable now 09:47:55 Sgeo_: i read it ages ago 09:47:57 not as good as quimbox but anyway 09:48:04 oklopol: less than three hundred comics for yr enjoyment 09:48:27 the last strip is pretty much the best 09:48:49 http://pixelcomic.net/044.shtml <-- oerjan 09:52:03 oklopol: also what's quimbox 09:52:21 well you read the comic right? 09:52:54 which comic 09:53:01 quimbox 09:53:03 you must have 09:53:10 because you said it was the worst comic in the world 09:53:20 is that the vjn thing 09:53:35 yes 09:53:43 istr it being amazing 09:53:49 anyway quim = pussy, assuming you live a few hundred years ago 09:54:25 elliott: The Magic Spirit of rightness is not transitive 09:54:33 the punchline is going to be amazing. 09:55:22 -!- nooga has quit (Remote host closed the connection). 09:55:51 "I LOVE TO IMAGINE THAT WHEN A PIXEL STARTS ROLLING SOME SNOW 09:55:51 IT AUTOMATICALLY REMAINS SQUARE SHAPED" 09:56:30 -!- Somelauw has joined. 09:56:37 elliott: okay pretty quickly the annotations turn out crucial for the jokeness 09:56:50 okay so my ridiculous gmail plan might actually work 09:56:56 oklopol: it's great :D 09:57:09 -!- Somelauw has left. 09:57:16 oklopol: he's like "oops this is totally unfunny, let me say funny things as an annotation" 09:57:53 i love how even a comic about pixels gets significant art improvement 09:58:30 I GUESS SOME PIXELS BECOME CELEBRITIES FOR BEING IN SO MANY MOVIES 09:59:33 there is some controversy over whether pixels are infact rectangular 10:00:10 but thats to be expected i guess 10:00:44 there's that thing about them ... not being 10:00:50 for algorgorgotihms 10:01:10 HEY IDENTICAL PANELS THAT ARE DIFFERENTIATED SOLELY BY THE DIALOGUE 10:01:10 I AM A TRUE COMIC ARTIST NOW 10:01:10 contravarsial dinosaur comics dis 10:02:37 I ENCOUNTERED THIS FIERCELY ORANGE CREATURE IN MY BACK YARD 10:02:37 AND WHEN FETCHING MY DIGITAL CAMERA I OF COURSE FELT THE NEED TO RUN 10:02:38 IN FEAR THAT THIS THING WOULD ESCAPE IN 8 WHOLE SECONDS 10:02:54 Bloody useless and trivial result: In an m x n section of space, there are no oscillators with period larger than 2^(m*n) 10:03:28 are you sure? 10:03:40 :D 10:04:12 * Sgeo_ is referring to two-state CA with an I-forget-the-name neighborhood 10:04:17 if state is binary 10:05:00 conway's game of life neighborhood? 10:05:04 Yes 10:05:22 -!- Taneb has joined. 10:05:33 Hello 10:05:35 Although the neighborhood is irrelevant, come to think of it. well, hmm. What exotic neighborhood could break it? 10:05:38 have you proved it or merely sampled it? 10:05:38 092 - EXERTION OF POLAR OPPOSITION - 020922 10:05:38 I AM ENJOYING THE FACT THAT I AM RAPIDLY BECOMING THE MASTER OF NOT MAKING SENSE 10:05:38 IF ANYONE IS INTERESTED IN SUBSCRIBING TO AN APPRENTICESHIP FOR NOT MAKING SENSE 10:05:38 PLEASE CONTACT ME VIA EMAIL OR AIM 10:05:42 but yeah if you have a configuration in {0, 1}^{Z^2} that has period vectors (0, m) and (n, 0), then necessarily the orbit of that configuration in your CA is eventually periodic with period less than or equal to 2^{mn}. 10:05:45 it links to both :D 10:06:01 trivial to prove but it's actually used all the time 10:06:08 itidus20, I'm too lazy to sample 10:06:28 What are we talking about? 10:06:43 " Although the neighborhood is irrelevant, come to think of it. well, hmm. What exotic neighborhood could break it?" <<< even if the neighborhood and rule are different at every cell, the result follows, just as trivially 10:07:22 your state set has size 2^{mn} so a deterministic system will be come periodic with period less than or equal to that 10:07:42 Taneb: cellular automata 10:07:47 isn't that just "finite state machines cycle" 10:07:50 Okay 10:07:53 ZOMG WOWZ 10:08:43 oklopol, actually, my statement is _slightly_ different from that. I mean a finite sized pattern on an infinite mostly empty grid. Same idea though, but applies only to patterns that don't grow past m*n 10:08:47 Same thing though 10:08:59 Um, did I state "doesn't grow past m*n"? 10:09:02 I might not have 10:09:07 Sgeo_: but wrapping the rule around? 10:09:13 err 10:09:17 wait what 10:09:29 oh oscillator 10:10:21 THE MORAL OF THIS STORY IS THAT 10:10:21 EVOLUTION REQUIRES A GIANT DRIP OF SWEAT 10:10:44 110 - AN END - 030124 10:10:44 GIVE ME ONE GOOD REASON WHY I SHOULD CONTINUE WITH MY LIFE 10:10:44 AND BY LIFE I MEAN COMIC STRIP 10:11:09 this comic is way too smart for me 10:11:31 i cannot follow the conversations fast enough for this to even count as a comic 10:11:39 oklopol: it's study 10:11:43 yeah 10:12:52 -!- augur has quit (Remote host closed the connection). 10:13:01 -!- augur has joined. 10:13:13 elliott, i'll give you no good reasons! 10:13:57 THIS IS WHAT HAPPENS WHEN YOU GO TO COLLEGE 10:13:57 WHAT YOU LEARN IN COLLEGE IS 10:13:58 WHAT YOU TRULY VALUE IN LIFE 10:14:06 oklopol: it's like poetry for the soul 10:14:32 I want to treat areas of the grid as usefully finite for X time but it is probably imposible, at least usefully 10:15:07 oklopol: 123 is like oerjan but better 10:15:12 rip oerjan++ 10:15:57 "I WOULD HAVE BEEN BETTER OFF IF I WAS A HAMSTER RUNNING INSIDE MY HAMSTER WHEEL OF HAMSTER FORTUNE AND HAMSTER VIRTUE" 10:16:39 THE TOP OF THE LINE IN FLAT PANEL MONITORS USES PLASMA PIXELS 10:16:51 Derp misread that as it's used for the top row 10:17:03 ONLY $19.95 10:17:03 BUT WAIT 10:17:04 CALL NOW AND GET AN ADDITIONAL 10:17:04 MINUTE OF YOUR LIFE STOLEN 10:17:24 THE QUESTION IS 10:17:25 SUPERFLUOUS WEALTH SOMEHOW GIVES ONE 10:17:25 THE ABILITY TO GROW AN ERRATIC MOUSTACHE 10:17:25 a question apparently 10:17:35 -!- FireFly has joined. 10:18:38 Get out of here as soon as you can 10:19:32 wat 10:19:40 FireFly is an idler 10:19:51 Yeah 10:19:59 Why, is it illegal to idle? 10:20:08 " I want to treat areas of the grid as usefully finite for X time but it is probably imposible, at least usefully" <<< if this was still about CA, idgi, please explain 10:20:47 FireFly: nope, Taneb seemed to think you were new 10:20:56 areas of the grid would seem to mean (m x n section of space) 10:21:09 Nah, I was trying to stop more people be drawn into this single conversation 10:21:15 Rather than the channel as a whole 10:21:19 itidus20: yeah i got that 10:21:43 usefully finite sounds like the pipe dream part 10:22:36 so once again let me mention that injective on finite configurations <==> surjective 10:23:27 valid in any dimension and on many many many other groups 10:26:51 I can never remember jectives 10:27:25 surjective = onto, injective = one-to-one; onto = all have preimage, one-to-one = different go to different in the mapping 10:27:57 sur is just french for onto 10:27:59 There's another one 10:28:10 well bijective but that's easy to remember 10:31:57 -!- elliott has quit (Remote host closed the connection). 10:32:41 -!- elliott has joined. 10:35:45 well yeah but elliott doesn't know that 10:36:21 ofc i don't 10:38:08 really you only know what you've been told, or otherwise gathered from your perceptions, and also the stuff you've independently thought up in your head 10:38:40 and perhaps some other stuff that was there in the first place 10:38:57 plus i dunno some bonus maybe 10:39:00 pizza 10:39:04 -> 10:45:00 or is that just what they want you to thin 10:45:05 ^think 10:52:33 Derp. 10:53:04 I just proved to myself that there are countably infinite finite-sized oscillators, then realized that there are countably infinite finite-sized patterns 10:53:13 Ok, I think everyone's sick of my failures 10:56:07 nah 10:56:09 those aren't failures 10:56:29 they are just unremarkable successes 10:57:27 -!- MigoMipo has joined. 10:58:07 I assume the actual algorithm for enumerating through all finite-sized oscillators is also unremarkable? 10:58:31 As remarkable as the one for bit strings with a condition 11:00:49 I _just_ realized how to determine if a finite-sized pattern is a GoE or not... and I was talking about related stuff just hours ago. 11:00:52 * Sgeo_ slaps self 11:01:11 (And yes, that's what I was looking for for quite a long period of time here) 11:06:28 all of math is unremarkable 11:06:42 most of math is unremarkable 11:06:44 not all 11:07:24 Sgeo_: This sort of stuff is good. Keep at it, and tell me if you can prove or disprove the existence of oscillators with no entry points in finite grids of games of life 11:08:06 coppro, are you saying you know the answer? 11:08:48 Any such oscillators with no entry points would have to be a certain size, and have no internal gaps of a certain size. 11:09:20 all of math is unremarkable 11:09:23 so i take it you can't do any math? 11:09:45 (joking, but with a point.) 11:10:09 i mean, the answers are only remarkable until some other rule comes along and generalizes them 11:11:53 Let's restrict myself to an n*n grid. 11:11:55 Sgeo_: No, I don't 11:12:08 however, surely there are reasons for math beyond our understanding 11:12:32 the basic foundations of abstract algebra are utterly boring 11:12:38 but the wondrous things you can do with it are not 11:13:54 n*n grid, (n-5) by (n-5) patterns all have GoEs. But some of those patterns may oscillate into each other, so that there is 1 GoE for each... wait, no! 11:14:23 haha 11:14:48 Even in the case of oscillators, there are multiple GoEs for each phrase of the oscillator (as long as each phrase is at the particular size or smaller) 11:14:57 http://www.youtube.com/watch?v=svXeDHE6tBU 11:15:09 Because you could put that spare dot in several locations 11:15:19 You can even do it for n by n-5 11:15:55 most of math is unremarked, but quite markable. 11:16:15 Here is what I have so far: Any pattern with a 5x5 space admits an eden to its next generation 11:16:18 This puts a rather high lower bound on number of GoEs: 2^[n(n-5)] 11:16:18 We've got a sword 11:16:50 Since you can stick a dot in the center of that space without affecting the result (which is, in CA parlance, to say that they are twins) 11:17:48 Well, that greatly increases the lower bound 11:17:50 what's an entry point? 11:18:19 Say that | | are symbols for repeat 11:18:22 A |B C| 11:18:26 I've been holding a sword 11:18:27 A would be an entry point 11:18:33 I think 11:18:34 " the basic foundations of abstract algebra are utterly boring" <<< no they are not! 11:18:40 they are utterly awesome 11:18:58 oklopol: Axioms are boring 11:19:02 things that you do with axioms are cool 11:19:17 oh, i thought you meant things like the homomorphism theorem and stuff 11:19:32 Sgeo_: Thus to prove the existence of an oscillator with no eden predecessors, you must have an oscillator that never contains a five-by-five hole 11:19:44 this is necessary although not sufficient 11:19:49 it's "nothing new under the sun" but with numbers. 11:19:52 hehehe 11:20:24 coppro, ooh, I think, on a torus, "no 5x5 or larger hole" also forces it to be the necessary size 11:20:44 Sgeo_: yeah 11:20:44 obviously there cannot be an oscillator that's a GoE 11:20:50 or what do you mean by oscillator? 11:21:08 and so i take entry point = preimage 11:21:31 oklopol: We're trying to reason about the existence of an oscillator with no eden that will result in the oscillator through repeated evolution 11:21:52 On a finite grid such as a torus 11:21:58 well you do know you will never find a GoE for GoL? 11:22:04 we're working on toroids right now 11:22:07 oklopol: uh what 11:22:13 they are big. 11:22:54 well dunno maybe you are really smart or have a smart program or can read wp 11:22:57 There's an 11x11 known orphan 11:23:09 right, if you start from that, then you'll find an orphan easily 11:23:12 by doing nothing 11:23:24 but you would never find that yourself 11:23:24 oklopol, even in infinite grids, they exist. And ais523 and I proved that for any pattern on a finite grid that has a 5x5 or larger hole (coppro, I'm using this formulation now), there's a GoE that results in it 11:23:46 oklopol: no, but someone else found it for me 11:23:48 so whee 11:24:22 results in it? you mean evolves into it? no that's obviously false 11:24:44 s/finite/toroidal/ 11:25:02 well unless 0 iterations of the rule are allowed as well 11:25:19 yeah, this is accepting 0 iterations 11:25:25 actually that one holds in any finite space 11:25:42 no 11:25:46 oh for gol again 11:25:51 but the one about oscillators might be different between finite limited space, and finite toroidal space 11:25:55 yes this is all gol 11:26:01 CAs exist without edens 11:26:07 obviously 11:26:26 anyway, back to the subject at hand 11:26:48 " oklopol, even in infinite grids, they exist. And ais523 and I proved that for any pattern on a finite grid that has a 5x5 or larger hole (coppro, I'm using this formulation now), there's a GoE that results in it" <<< how did you prove this? 11:27:01 oklopol, read logs 11:27:01 and this is for periodic configs, that is, toroidal? 11:27:20 okay i have a counterexample 11:27:22 oklopol, yes. Or, might work for other finite as well. Certainly other finite that wraps 11:27:26 Oh? 11:27:39 no wait, maybe not, hmmhmm 11:27:42 where in the logs, today? 11:27:49 Either today or yesterday 11:27:55 I was explaining to coppro 11:28:01 oklopol: the proof is fairly straightforwad 11:28:04 Timezones scare me 11:28:07 *forward 11:28:15 oklopol: Just add a dot in the 5x5 hole 11:28:46 and what then 11:29:26 Work backwards. You're not in an oscillator, so all possible patterns going backwards must eventually be a GoE. 11:29:54 oklopol: More lucidly this time 11:29:56 so it was for periodic ok 11:30:41 and why aren't you in an oscillator? 11:31:06 If you aren't, you already must have a finite number of predecessors since there are only finite states to work from and repeated application will never get you back to an earlier one 11:32:05 well obviously, if you restrict to configs with periods m and n; why aren't you in an oscillator? 11:32:39 Let me restate the proof better 11:32:51 There's a really simple answer for that that is in my head that just won't come out 11:32:54 if you restate the trivial part, i will slap you 11:32:58 Unless my thinking is muddled 11:34:36 If you keep going backwards, and you're in an oscillator somehow, then you get...now I'm wondering if this proof only works for starting from oscillators... but if it's not an oscillator then it's a preimage to one 11:34:37 really i'd like to hear your definition of hole 11:34:54 like a 5x5 empty space you cannot move out of, using only white cells? 11:35:18 5x5 dead cells surrounded by anything 11:35:28 i mean obviously otherwise you can just take a 5x5 empty space and surround it with small oscillators to find something with infinitely many preimages 11:35:30 oh 11:35:36 Given some state, an infinite number of applications must eventually oscillate due to finite state space. If the repeated applications do not arrive at the original, you are not in an oscillator and must have finitely many predecessors. If you are in an oscillator, make a cell live in the center of a 5x5 square of dead cells. This pattern is a twin to yours, so they have the same successor. But the oscillator cannot reach this twin through re 11:35:40 well then it's obviously false 11:36:13 since the state wiht the added live cell is a predecessor as its successor is a part of the same oscillator 11:36:23 ah that's a good point 11:38:13 either the original thing with a 3x3 hole or the one with an added dot must not be an oscillator, since they have the same image, and therefore one of them has an n'th preimage that's a goe 11:38:22 yeah 11:38:33 does the size 5x5 give you that in fact it's the original one? 11:38:54 5x5 is required to ensure that the added cell doesn't interact with anything 11:39:14 oh indeed it is 11:39:27 forgot what the rule was 11:39:35 so did I at first :) 11:40:07 and now I want to tackle the harder problem :D 11:40:39 Can we count how many patterns there are with 5x5 or larger holes? 11:40:54 Because that's the lower bound on GoEs 11:40:58 anyway it's usually the one with the dot that has a goe nth preimage, since you can, as i said, just have small oscillators and a 5x5 hole in between them 11:42:31 anyway if that 11x11 thingie can be made to collapse into the all-0 configuration, then all finite configs have a goe preimage (although it might not fit in your favorite torus) 11:42:39 coppro: what's the harder problem? 11:43:08 oklopol: Do all finite configs have a geo preimage? 11:43:30 a finite goe preimage, on an infinite grid? or torus again 11:43:35 torus 11:43:50 wrapping around? 11:43:52 If not, which sizes of torii admit states with no goe preimage 11:43:57 that's what torii do 11:44:09 usually yeah 11:44:26 *tori 11:45:12 goe is too complicated for this to be at all interesting really 11:45:34 too complicated to be interesting? what? 11:45:48 well mathematically interesting 11:45:51 i dunno where you get your kicks 11:47:31 now I'm pretty sure that anything smaller than 3x3 admits nothing other than the trivial oscillator 11:47:36 " oklopol: Do all finite configs have a geo preimage?" <<< well for this particular question, actually the answer is trivially "yes", but questions that actually depend on gol, kind of hard 11:47:52 hmm 11:47:59 wait what the fuck am i saying :D 11:48:00 oklopol, wait, it is? 11:48:08 oklopol, describe please 11:48:23 it's no trivially true for all non-surjectives 11:48:25 *not 11:49:16 yeah :D 11:49:47 how far have you checked? 11:50:08 From experimetnation, it appears that 3x3 admits only period-1 oscillators and patterns that produce the trivial oscillator in one or two generations, and if by two, the intermediate state is always the all-on state 11:50:18 not very far, I'm playing around manually 11:50:29 I may write a script tomorrow to do serious checking 11:50:59 We're actually testing stuff? That's boring :/ 11:51:13 well there's no way to do this any other way 11:51:24 for small patterns 11:51:52 yeah 11:51:59 experiment for the small case 11:52:00 you can probably prove it for all large enough patterns by looking at the images of the goe on the wiki 11:52:01 *cases 11:52:03 If we can prove that the lower bound on GoEs = the number of patterns without 5x5 holes 11:52:11 pedia 11:52:14 oklopol: That's hardly sufficient 11:52:29 How many patterns are there without 5x5 holes? 11:52:35 coppro: whoosh 11:52:57 I suspect that the answer is constant beyond a certain size 11:53:06 coppro: it might be. if it's not, what else can you do really. 11:53:15 oklopol: See if there's a pattern 11:53:32 what if it's only prime by prime tori? 11:53:32 to what? 11:53:36 Is there an upper bound on number of GoEs? 11:53:44 Sgeo_: yes. The number of states 11:53:47 :P 11:53:58 if you take a random problem, you will find a random answer. it's not the prime by prime tori. 11:54:25 Actually, number of patterns without 5x5 holes is the upper bound 11:54:48 interesting 11:54:55 The question is equivalent to: Is the number of GoEs = to the upper bound? If not, then there's a pattern without a 5x5 hole that is not a GoE 11:55:02 oklopol: prove it :P 11:55:09 Sgeo_: Dude 11:55:15 Sgeo_: that makes no sense 11:55:36 an upper bound is an estimation; you need some criterion for the upper bound 11:55:42 making conjectures is a great way to progress 11:55:52 but that particular one is obviously false 11:55:53 Ok, replace "upper bound" with "number of patterns without 5x5 holes" 11:55:54 Sorry 11:56:00 ah ok 11:56:05 in which case I go with oklopol 11:56:15 so fun fact: any 3-cell pattern on a 3x3 torus immediately fills the entire torus and dies 11:56:38 every cell sees every cell so obviously 11:57:06 only depends on the amount of live cells 11:57:17 Come on, someone tell me a way to count patterns without 5x5 holes 11:57:21 whether it's instantly everyone alive, or instantly everyone dead 11:57:21 There has to be an easy way 11:57:37 oklopol: right, thanks for beating sense into me :D 11:58:09 Sgeo_: I could do it in a few minutes, but it doesn't seem worth it 11:58:37 it's just a counting problem 11:59:10 Yes, and if the lower bound on GoEs ever equals it for some sized tori, we'll have some answers 11:59:23 that seems quite unlikely 11:59:41 except on small tori 12:00:12 once you're above 16x11 then you definitely won't hit that bound 12:00:17 since there is a known 11x11 orhpan 12:01:19 ooh 3x3 torus. nifty 12:01:21 also i still don't get how you know 5x5 hole => goe nth preimage, all we've established is either that pattern or the one with a dot in the middle has one, how did you do the final step? 12:01:38 i mean there are patterns with a 5x5 hole that are in an oscillator 12:01:45 as i said 12:02:16 coppro: will every 3x3 torus eventually die? 12:02:25 itidus20: in at most 2 steps 12:02:27 itidus20: or be stable 12:02:28 homework: why? 12:02:44 oklopol, if it's in an oscillator, then that cell will die, and the oscillator will eventually reach the same position except without the dot 12:02:47 oh hmm 12:02:52 Or am I misunderstanding your question? 12:02:58 * oklopol tries to remember the rule 12:03:24 oklopol: Suppose that one of the two has no goe nth premiage. Then it must be in an oscillator as the state space is finite. But that means its successor is a predecessor, and its successor has the other twin as an nth preimage and hence has a geo nth preimage; contradiction 12:03:26 right the rule is not symmetric w.r.t. live and dead cells, in that case 3x3 is not quite as trivial as i said 12:03:38 still pretty trivial though 12:03:47 rule is 2 or 3 to stay alive, 3 to birth 12:04:22 it's not a contradiction that the config with a 5x5 hole is in an oscillator 12:04:40 because that can happent 12:04:42 *happen 12:04:44 oklopol: sure 12:04:47 oklopol, did I misunderstand your question? 12:04:56 Suppose it's a p2 oscillator 12:05:01 But it has to have a goe nth preimage because its successor does, and its successor is itself an nth preimage 12:05:06 since it's in n oscillator 12:05:08 *in an 12:05:09 Pattern in phase 1 + dot has goe primage. 12:05:11 preimage. 12:05:23 Then, phase 2 + no dot has goe preimage 12:05:31 Then phase 1 + no dot has goe preimage 12:07:09 " But it has to have a goe nth preimage because its successor does" <<< are you claiming this is a general truth for CA? 12:07:34 oh hmm 12:07:37 oklopol: No 12:07:53 oklopol, what CA is it not true for? Nondeterministic? 12:08:03 Are there nondeterministic CAs? 12:08:30 well i don't see why that's true 12:09:04 Oh wait, I misread the quote as "predecessor" 12:09:09 oklopol: Okay, let me try this again from the top. Given a state S with a 5x5 hole, put a dot in that hole and call it H. 12:09:19 why don't you just explain the part i don't get 12:09:25 oklopol, I'm trying to 12:09:31 Sgeo_> Pattern in phase 1 + dot has goe primage. 12:09:31 preimage. 12:09:31 Then, phase 2 + no dot has goe preimage 12:09:31 Then phase 1 + no dot has goe preimage 12:09:32 because I'm not quite sure what part that is 12:09:45 Maybe I'm not getting what part you're not getting? 12:09:48 Both S and H cannot be in the same oscillator as the generation function is bijective within an oscillator and G(S) = G(H) 12:10:06 and they cannot be in different oscillators for the same reason 12:10:13 So one is not in an oscillator 12:10:24 oh lol 12:10:28 yeah okay igi :D 12:10:38 hey that's a neat trick 12:11:38 this code is a shit :( 12:12:14 elliott, do Game of Life stuff with us 12:12:14 Now I want to write a script which will enumerate every state of a finite torus GoL modulo symmetry and create a graph of the results 12:12:23 but I think sleep must come first 12:12:35 Sgeo_: no 12:13:26 so to generalize 12:13:34 if you have two preimages, then you have a goe nth preimage 12:13:38 yeah 12:13:53 in finite state space, anyway 12:13:56 yes 12:14:28 why do I suddenly feel like this is going to become category theory 12:16:05 a good analogy can apply to anything 12:16:40 also if one of your images has a goe nth preimage, then you have one as well 12:16:49 in finite space 12:17:29 I'm going to need to go out soon 12:17:40 Chicken sandwich for breakfast :D 12:17:52 -!- Taneb has quit (Ping timeout: 252 seconds). 12:18:07 oklopol: right 12:18:20 Sgeo_: omg how amazing D::DDDD 12:18:32 that's an interesting lemma for functions acting on a finite space, certainly, nothing to do with ca tho 12:18:50 it's all a function of IRC 12:18:52 3x3 admits oscillators with no goe nth preimage, as does 1xn with n>=3 12:19:35 actually wait 12:19:39 With no goe nth preimage, or no goe nth preimage provable with a 5x5 hole? 12:19:39 cool 12:19:43 has to be even n 12:20:06 Or, if you can prove there's only one preimage, that would do it 12:20:18 sheesh, stop obsessing about 5x5 holes pervert 12:20:39 hmm... actually, odd may admit a seriously wacky oscillator 12:21:11 so I am looking at a video with the heading "morphism category theory" and I'm getting basic knot theory explained 12:21:53 ok so 1xn with odd n admits oscillators 12:21:55 neat ones too 12:22:12 would be good for the patterns of random lights that repeat in weird cycles in scifi schows 12:22:33 oh there we go 12:22:42 they each represent a symmetric 2-morphism 12:22:45 NO WONDER 12:22:58 well the only way not to admit an oscillator is to have everything go to zero 12:23:09 err sorry 12:23:23 non-goe predecessor oscillator 12:23:45 need a good adjective 12:23:47 stranded? 12:23:52 i don't think we have a name for this concept in math 12:23:58 so come up with your own 12:24:07 k I'm calling them stranded oscillators 12:24:12 oklopol, I consider everything at 0 to be a period 1 oscillator 12:24:33 there's a name for ones which have arbitrarily long preimage chains, such points are said to belong to the limit set of the CA 12:24:33 also the 1x11 torus is weird 12:24:33 Is that an abuse of terminology? 12:25:01 oklopol: ah ok, that works then 12:25:12 Sgeo_: that's the terminology i'd use, i just assumed coppro meant there has to be a 1 since he said it admits one 12:25:14 actually wait, no it doesn't 12:25:31 I agree with that terminology 12:25:40 if every point goes to the all-0 config for some state 0, the CA is said to be nilpotent 12:25:49 (then there exists a k such that all points to go all-0 in k steps) 12:25:49 symmetric 2-morphism? 12:26:51 1x5 is nilpotent 12:26:55 Sgeo_: talking about the video 12:27:39 1x7 has a weird spaceship oscillator 12:27:44 :o 12:28:30 actually, how about a xenophobic oscillator 12:28:38 ...wha 12:28:39 ? 12:28:42 I like that name 12:28:51 does it not like other kinds of oscillators 12:28:56 nope 12:29:04 it doesn't like any state except its own members 12:29:10 exclusive might work too 12:29:27 -!- Taneb has joined. 12:29:29 What do you mean by that? 12:29:46 -!- Taneb has left. 12:29:57 -!- Taneb has joined. 12:30:15 Sgeo_: Just trying to name these oscillators with no predecessors 12:30:23 Ah 12:30:45 I suppose a closed oscillator would probably be best 12:31:08 well you have a set that cannot be entered, kind of like a fortress. so call each config in there a *drumroll* brick 12:31:20 How did you prove they exist for the 1xn and ... the other thing you proved? 12:31:59 I mean, experimentally, but how do you demonstrate they have no other preimages? 12:32:10 closed is good, in fact it's a closed set in the topology given by one-way orbits 12:32:23 (clopen in fact) 12:32:39 1xn for even n I'm not 100% sure about but could probably sketch up a proof 12:32:55 topology given by one-way orbits being that a set is open if it's closed under the map 12:33:02 any zebra stripe pattern is stable and I'm pretty sure also has no other predecessors 12:33:32 if you can go through all the configs, it's easy enough to enumerate stranded ones 12:33:37 yeah 12:33:48 not sure if I prefer stranded or closed 12:33:50 rendaer a q 12:34:07 closed is more conventional but stranded sounds more like the concept 12:34:15 Sgeo_: 3x3 is straightforward 12:34:47 Sgeo_: in 3x3 all configurations with exactly 3 cells alive are stable and all others die out in at most 2 generations 12:35:28 oklopol: yeah, at some point I will write a script to enumerate these 12:35:34 Hmm, ok. 12:35:59 enumerate ones that belong to a closed oscillator? 12:36:49 yeah, at least for small tori 12:37:15 remember to use the fact you only need to look at the first preimages, and then enumerate the whole orbit if you have multiple 12:37:22 otherwise that's gonna take some time 12:37:49 I suppose 12:37:52 If you have multiple preimages for a state, then it's not a closed/stranded oscillator 12:37:54 iiuc 12:38:30 no it's not, point is you never need to look further than that because a point is in a closed oscillator iff it has a preimage not in a closed oscillator 12:38:48 Sgeo_: sketch of prrof for 1xn in my head 12:38:56 (for even n, anyway) 12:40:18 1x9 appears to really really like a single oscillator 12:40:39 have yet to find a pattern other than all-off and all-on that doesn't result in i 12:40:43 *in it 12:41:22 (another problem: Is there a general solution to the number of distinct oscillators on an mxn torus? 12:41:57 anyway, bed 12:42:00 nope 12:42:20 oklopol: nope there isn't one or nope there can't be one? 12:42:37 nope there can't be one, assuming the way you can implement a tm in gol is in any way sensible 12:42:50 ah 12:42:55 -!- cheater_ has quit (Ping timeout: 255 seconds). 12:42:59 night 12:43:10 Huh? 12:43:21 First: You can't impement a TM on a torus 12:43:22 -!- cheater_ has joined. 12:43:28 you can't? 12:43:44 it grows forever even if its tape doesn't? 12:43:49 oklopol, TM implies infinite storage 12:43:54 A torus is not infinite 12:44:19 but does the gol implementation need expanding space for constant storage 12:44:21 Erm, that's what I usually mean when I say torus, anyway 12:45:00 if it doesn't, there can't be a general solution to the number of distinct oscillators 12:45:04 at least not in the form of a tm 12:45:04 oklopol, what? 12:45:21 what? 12:45:25 You need expanding space for expanding storage, I'd assume 12:45:37 obviously, that's not what i asked 12:45:41 And you can't forbid expanding storage without forbidding TM 12:46:14 ... 12:46:16 Surely, a counterexample, then: Why can't you simply enumerate every mxn pattern, and count the oscillators? 12:46:42 err sure you can do that :D 12:46:45 *surely 12:46:49 what i meant originally 12:46:57 was that the fact you can implement a tm 12:47:04 means there can't be any sort of nice formula 12:47:11 but not in any rigorous sense 12:47:16 What is a "nice formula"? 12:47:21 "Nice formula" has no meaning 12:47:31 that's why i said "not in any rigorous sense" 12:47:42 i then forgot that this was all i meant and claimed you can't even calculate them 12:48:18 which is not true since given m and n, you can certainly just count the oscillators 12:48:48 but for instance this is certainly p-complete 12:48:54 because you can implement tm's 12:48:58 So, hm. I'm still not quite sure I get what finite state automa have to do with this 12:49:03 And I'm refusing to call it TM 12:51:52 well the point is you can draw an initial part of the infinite tape with a tm using logspace, this is all you usually need for p-hardness results 12:54:48 and what i mean is that whether a single config is in an oscillator should be p-hard, since you can reverse your computation and start over with yes-instances, and go to all-0 or something for no-instances 12:55:34 Sorry, I'm a bit confused 12:56:06 well to, hopefully, unconfuse you, you are certainly right in that you can just count oscillators 12:56:07 Um, is doing several GoL generations and comparing generally considered p-hard? I'm a bit lost with complexity classes. 12:56:23 Oh, wait 12:56:32 p-hard 12:56:49 what i'm saying is there can't, intuitively, be a nice formula for this, because there never is for this kind of things. 12:56:55 elliott: (sic) 12:58:06 basically just means you can draw a finite part of a turing machine config in the state 12:58:12 or a circuit 12:58:14 Is running GoL for 2^mn generations not intuitively a nice formula? 12:58:33 it's a nice algo, i wouldn't call it a formula 12:58:39 Ok 12:59:21 oklopol: is the algo "for i in ... setp gol" 12:59:26 step 12:59:44 i wouldn't call it a formula 12:59:53 i would call m^n + n^m a formula 13:00:23 Hmm. 13:00:28 something that's actually some kind of solution to the problem 13:00:42 that you surely cannot have, because you can implement a tm. 13:00:51 I guess I know what nice means, kind of. We would like a nice means of determining the existence of stranded oscillators, without brute-forcing 13:01:20 oklopol, but there must be a formal definition of what it is that you cannot have? 13:01:38 i just studied the 2x2 toroidal by hand.. because formulas for these things are simply over my head. 13:01:39 Sgeo_: i'm not aware of one, i suppose that would be complexity classes 13:01:43 and it was fun to see 13:01:50 itidus20, get Golly 13:01:59 but all i'm saying is tm ==> all hope is gone, mathematically 13:02:05 Although I don't even have Golly open right now 13:02:11 -!- MigoMipo has quit (Ping timeout: 240 seconds). 13:02:32 oklopol, tbh, that sounds more like a rule of thumb. And again, you can't have TM on a finite torus 13:02:50 yes, a rule of thumb that's always true 13:02:57 kind of like the church-turing thesis 13:03:04 12 out of 16 died... and the other 4 turned into fascinating "up" "down" "left" "right" shapes 13:03:23 you can have a tm on a finite torus, it will just explode if it tries to use too much space 13:03:51 my thumb still applies 13:03:52 by turned into i should say "remained as" 13:06:03 Hmm, there's no "nice" way to see the result of a TM without running it... but all that really equates into is there's no way to see the result of a TM without the thing computing the result, whether by simulating the TM or not, definitely not halting 13:06:34 Not really sure how to apply that here. 13:06:34 -!- BeholdMyGlory has joined. 13:07:46 you apply it by noting you cannot know whether a tm drawn on a config is in an oscillator without running it, which means the only possible formula is brute-force. 13:08:11 this is not a formal proof, but only an ass would not accept it 13:09:16 I'm just going to mentally s/tm/fsm/ what you said and say ok 13:09:20 point is, you cannot take a random problem and expect it to be mathematically interesting, the solution will be just as random 13:09:54 well if you want to be a fucking outstanding retard, go ahead 13:10:39 * oklopol prepares more insults 13:11:00 anyway if you substitute fsm where i say tm, that really means nothing 13:11:10 I can solve the halting problem for your "TM" on the torus 13:11:13 the point is it's a certain kind of fsm, one that has a tape. 13:11:21 I always try to direct everything i think about onto gaming. I figure that to give a game depth at its core then some mathematics is required. 13:11:50 Then the trick becomes how to turn a mathematical problem into a fun game. 13:12:02 hasn't been done yet 13:12:13 surprise us all and be the first 13:12:28 oklopol, hmm? Are you talking to me or itidus20? 13:13:01 I can solve the halting problem for your "TM" on the torus 13:13:03 tm =/= jutm 13:13:06 utm 13:13:16 Oh 13:13:21 hmm 13:13:30 elliott: is the joke that you're missing the point as badly as Sgeo_? 13:13:56 oklopol: the joke is all the words 13:14:03 i only read that line anyway 13:14:10 i just kind of assumed anything Sgeo_ said would be something like that 13:14:15 oklopol, here's the solution to the halting problem: Run it. If it crashes, or otherwise doesn't return to the initial state after 2^mn, it halts, otherwise, it doesn't. 13:14:34 well he was mostly missing the point and expressing it in random ways 13:15:54 well work time 13:16:30 since last night i realized all lattices with continuous shift-commuting operations over S^Z can be recoded into pointwise lattices 13:17:12 that is, you have a conjugate subshift and the lattice operations only look at the ith symbols of their arguments to determine the ith symbol of the image 13:18:05 elliott, oklopol seems to think that turing-machines can exist in finite space. And just to be clear on the idea of finite tape possibly being TM vs UTM, he mindboggled when I said that I could solve the halting problem for his TM (although maybe he thought I meant with stuff _on_ the machine, which is impossible) 13:18:47 that wacky oklopol with his strange uncommon mathematical beliefs 13:19:14 elliott, if I'm missing something, please tell me 13:19:27 mathematics is my religion 13:19:42 i don't think i ever actually proved anything 13:20:00 for actual games one thing that tends to be necessary is interfacing the math models with non-math things. 13:20:56 whether the interfaced things is actually non mathematic is questionable though 13:21:21 Sgeo_: sorry i was talking to itidus20, i have you on ignore 13:21:31 i did not mindboggle at you claiming that trivial thing 13:21:58 sorry to everyone that i am always offtopic 13:22:55 well so, its a bit like what the chinese did with yin and yang, and trigrams. applying meanings. 13:23:00 -!- MigoMipo has joined. 13:23:59 and so 00=north, 01=east, 10 = west, 11=south 13:24:24 congratulations, you discovered binary 13:25:03 but the pure mathematicians never actually apply it to anything.. the "interfacing" 13:25:10 i guess its horses for courses 13:25:31 they make it all possible etc 13:26:09 oklopol, is our disagreement here just a matter of terminology? 13:26:17 i am sure that if i did that better i could say north + east = northeast 13:28:00 itidus20, easy way for the future is to assign 1 bit to 1 ... bit 13:28:14 So north/south gets 1s place, east/west gets 2s place, or something like that 13:28:26 Although that doesn't... quite... hm 13:28:33 Kind of assumes defaults 13:29:42 ah.. it was right how i had it.. no doubt 13:30:40 ahh fuck it. time for me to take a break. 13:30:40 -!- MSleep has changed nick to MDude. 13:30:44 Oh, it trivially doesn't work 13:30:49 My scheme, I mean 13:31:13 8 possible states, so you need 3 bits 13:31:28 00 + 01 = 01 .. that creates a problem 13:31:38 just do a bitmask duh 13:31:39 powers of two 13:32:53 ais523: yes, fizzie thinks this is the nineties, and does things like use bitshifts instead of division <-- I think the most bitshifts are where there are negative numbers, where bitshift != round-towards-zero division. (Though it admittely uglily assumes sign-extending arithmetic shift for signed quantities.) 13:32:54 I'm trying to think of a non-ugly way to do it in 3 bits now. 13:33:49 A NORTH flag, a WEST flag, and one more flag 13:33:52 applying meanings to numbers is approximately as fun as processing the numbers 13:34:39 Oh, duh. If I only had two flags, so NORTH or not NORTH (south), and WEST or not WEST (east), then you only get diagonal directions 13:35:41 perhaps it doesn't work out neatly if using addition 13:35:47 addition is kind of a luxury 13:36:24 Trivial ordering, probably ugly though, let's see what happens: 000 = N, 001 = NE, 010 = E, 011 = SE, 100 = S, 101 = SW, 110 = W, 111 = NW 13:36:38 I'm honestly thinking ternary at this point 13:36:57 You can trivially do it in two trits 13:37:30 Um, with space left over. Oh, for neutral 13:37:45 just do a bitmask duh 13:37:45 powers of two 13:37:57 oh wait, three bits 13:38:03 meh 13:38:11 seems space left over is the price for being able to add them 13:38:16 elliott, you'd need NORTH, NOT NORTH, and SOUTH 13:38:26 itidus20, look 13:38:35 0+ is North, 0- is South 13:38:41 00 is Neutral 13:38:47 ah.. so its a 2s compliment thing? 13:39:01 +0 is West, -0 is East 13:39:16 itidus20, no, it's base 3 instead of base 2, but instead of 0, 1, and 2, we go -1, 0, and 1 13:39:19 ah ok this is the trits 13:39:41 So, +0 + 0+ is North + West = NorthWest 13:39:45 = ++ 13:39:53 probably the netral is a necessary placeholder for the addition 13:39:58 ^neutral 13:40:20 itidus20, it's because naturally there isn't on or off, there's forward, backwards, and neither 13:40:22 -!- Taneb has quit (Ping timeout: 252 seconds). 13:40:35 hmm ok 13:40:55 If you're going north, than what would east/west be? Neither. 13:41:06 If you're going west, north/south must be Neither 13:41:15 so it's to account for the uh.. center point 13:41:42 ohhh 13:41:45 right ok i see now 13:41:54 thats deep 13:42:44 And these balanced ternary are just numbers 13:43:18 -- = -1*3^1 + -1*3^0 = -3 + -1 = -4 13:43:56 -0 = -3, -+ = -2, 0- = -1, 00 = 0, 0+ = 1, +- = 2, +0 = 3, ++ = 4 13:44:50 -!- oklopollen has joined. 13:45:15 And with bitmasks, usually you use bitwise or instead of addition, although addition works as long as you're careful that + and - only combine with 0s. Not sure what you use with trits 13:45:33 quickly, make a guess! 13:45:39 Erm, sorry, that "as long as" is for trits, not bits 13:46:05 Sgeo_: to your last question: probably. 13:46:36 -!- itidus20 has changed nick to itidus20|afk. 13:46:53 Ok, so no more arguments about terminology? 13:47:12 no never ever. 13:47:36 but no makeup sex since i have to work 13:48:28 actually i just have to copypaste some stuff and generalize it :-DSASD 13:48:34 -!- Lymee has joined. 14:09:48 -!- pikhq_ has quit (Ping timeout: 240 seconds). 14:09:51 -!- pikhq has joined. 14:12:14 -!- CakeProphet has joined. 14:40:17 -!- oklopollen has quit (Quit: Page closed). 14:41:07 -!- Taneb has joined. 14:41:12 Hello 14:48:22 Believe it or not, etc. etc. etc. 14:48:25 Bye 15:01:44 Wow, that's pretty etc, etc, etc. 15:02:28 I'd rather not think about the details so, etc, etc. 15:05:05 sup CakeProphet 15:07:20 nothing much... 15:07:28 chilling after work. tired as shit. 15:07:41 I don't know if you knew this or not, but shit gets pretty tired. 15:07:46 not a lot of energy in those motherfuckers. 15:24:36 i'm also pretty tired, worked for almost an hour 15:25:36 -!- Taneb has quit (Ping timeout: 252 seconds). 16:09:50 hai fizzie 16:09:57 fizzie, I'm Elizacat, and I've taken interest in mcmap :3 16:10:12 fizzie, I've never gotten around to poking you because I'm shy as hell. But hello! 16:11:06 Well, um, hello, I guess. (I never really know the correct responses.) 16:11:06 fizzie, I'm interested in helping! I'm told you guys have a private channel for this, if you want to give me an inv I'd be much obliged, but you don't have to if you don't want 16:11:09 hahahahaha 16:11:10 it's ok :P 16:11:22 I'm not an extrovert even online, but one of us had to initiate it 16:11:30 and well, you don't know who I am 16:11:31 so :p 16:11:44 the onus would be on me for that wouldn't it 16:12:02 I am extrovert online 16:12:06 because I don't give a shit. 16:12:18 fizzie, I'm normally pretty nice if not rather unserious :p 16:12:26 fizzie, just be aware :P 16:12:35 it's always serious business around here. 16:12:39 * Elizacat is a good friend of Vorpal's 16:12:44 internet is serious business CakeProphet 16:12:46 you wanna go 16:13:01 dude I'm so good I don't even have to I've already won. 16:13:07 Well, there's a "private" channel for Minecraft-related stuff so that it doesn't clobber things here, but I don't think it's really all that private, it's just a "-minecraft" suffix and I'd be surprised if it hasn't been mentioned publicly here. 16:13:10 fuck punctuation. 16:13:11 CakeProphet, come at me bro 16:13:11 :p 16:13:40 yeah I've known of it, but I don't like minecraft. 16:13:58 * Elizacat encases CakeProphet in a bedrock house and pours lava 16:14:09 "this is why Id on't like it..." 16:14:15 my RL friend made a castle that rebuilds itself. 16:14:20 I did that 16:14:21 :p 16:14:30 Vorpal and I built a self-regenerating house <3 16:14:33 well 16:14:36 he did the logic 16:14:38 I just had the idea 16:15:19 please tell me Vorpal isn't your boyfriend 16:15:27 i might have to kill myself 16:15:41 but they build self-regenerating houses in minecraft together it would be so adorable 16:16:33 i once asked a girl to build stuff with me in mc but she said we were moving too fast 16:18:10 I tried to teach my ex Python. 16:18:17 I think there is probably a reason she is my ex. 16:18:54 Because she has taste in languages? 16:19:06 not quite. 16:19:09 i tried to teach my ex to program a few times but she just got really mad because she didn't get it 16:19:19 or didn't get it quickly enough 16:19:23 right. 16:19:45 Elizacat: could you please tell me that 16:19:53 i'm scared by your silence 16:20:12 please tell me Vorpal isn't your boyfriend <-- lol, no I'm not. 16:20:19 thank god 16:20:33 oklopol, just happen to play on the same minecraft server. 16:30:04 -!- oklopol has quit (Read error: Connection reset by peer). 16:34:24 -!- monqy has joined. 16:42:11 -!- elliott_ has joined. 16:45:41 -!- elliott has quit (Ping timeout: 258 seconds). 16:56:06 haha 16:56:11 oh god 16:56:13 me dating Vorpal 16:56:17 I'm sorry 16:56:18 that is just 16:56:19 no :P 16:56:24 no offense Vorpal 16:56:26 but I wouldn't date you :P 16:56:28 and you wouldn't date me 16:56:30 I'm too crazy 17:05:44 -!- Taneb has joined. 17:10:27 Blood is thicker than water, but corn syrup is thicker than blood. (An American national pride slogan by me :P ) 17:11:25 Lava is thicker than corn syrup 17:11:57 I don't think that lava is anyone's (de facto) national beverage. But blood probably is? 17:13:00 Might be Icelands? 17:13:39 But I was talking about threats of violence 17:15:50 You're ruining my slogan buzz :P 17:33:12 Right. Lasagne went in at 6:32 17:33:24 uh oh sgeo 17:33:45 Uh ohhhhhhhhh, sgettio 17:34:07 Y'know where I'm off to? Lancaster! 17:34:19 Lancaster? 17:34:25 But that's in Lancashire! 17:34:32 Dun dun DUNNN 17:34:38 I'm going to Durham tomorrow 17:34:55 And, after tomorrow morning, I won't be online 'till Tuesday 17:40:11 that was crazy... X broke... By refusing the believe in the mouse cursor. For example, xkill said it couldn't grab mouse. And mouse did nothing... 17:40:21 well it moved around just fine 17:40:30 but click didn't work 17:43:43 -!- GuestIceKovu has changed nick to Slereah. 18:07:05 iceland;s national beverage is alcoholic pine tree 18:21:33 I wonder if you can ferment or distill or whatever coffee beans 18:22:31 If it won' 18:22:38 t kill yeast, you can ferment it. 18:22:46 And if it's liquid, you can distill it. 18:25:12 -!- itidus21 has joined. 18:25:12 -!- itidus20|afk has quit (Read error: Connection reset by peer). 18:30:11 -!- zzo38 has joined. 18:34:06 I'll bet mercury would kill yeast ... 18:38:42 Do you know what the test service numbers are for my telephone service? Including, telling you your own telephone number, disconnecting your line for a few minutes, etc 18:49:51 -!- pikhq_ has joined. 18:50:29 -!- pikhq has quit (Ping timeout: 276 seconds). 18:51:07 http://therighttool.hammerprinciple.com/statements/i-often-get-angry-when-writing-code-in-this-langua 18:51:10 *giggles* 18:53:59 everyone likes haskell on this site 18:55:03 /win 1 18:58:42 In spite of the wording, that's clearly a popularity contest. 18:58:56 Few people get angry while programming in Haskell because few people program in Haskell. 18:59:25 O, yes, probably that would be why. 19:02:41 Strange that that site doesn't let you rank things equal. 19:07:55 -!- ais523 has joined. 19:10:35 hmm, weird observation: within the first 3 or 4 minutes of my computer loading, the touchpad won't move the mouse cursor above the bottom half of the screen, it keeps bouncing down 19:10:39 after a while, it works fine 19:25:24 -!- Taneb has quit (Ping timeout: 252 seconds). 19:32:44 I have now regopherized the Space Weather Prediction Center. 19:33:37 (Some of the files don't work but that is not my fault.) 19:34:25 ais523: whoa 19:41:27 Did you know that? I don't know why some files don't work, but the problem is on their end, not on my end. 19:42:12 -!- Taneb has joined. 19:42:19 (The same files fail to work when using other protocols too, including HTTP and FTP.) 19:45:47 -!- oerjan has joined. 19:55:37 oklopol: 123 is like oerjan but better 19:55:38 wat 19:58:02 is this still referring to that pixelcomic 20:00:56 yes 20:01:37 those kind of puns are too square for me 20:22:32 -!- Taneb_ has joined. 20:24:05 -!- Taneb has quit (Ping timeout: 252 seconds). 20:25:53 -!- Taneb_ has changed nick to Taneb. 20:41:18 -!- Taneb has quit (Ping timeout: 252 seconds). 20:42:41 In the D&D game my character current has two items: a 25-foot rope and a navy guest uniform. 20:42:58 Now make up a computer game text adventure game 20:44:14 -!- Lymee has quit (Ping timeout: 260 seconds). 20:49:50 -!- Lymee has joined. 20:49:51 -!- Lymee has quit (Changing host). 20:49:51 -!- Lymee has joined. 20:50:45 -!- ais523 has quit (Remote host closed the connection). 20:52:30 I didn't end up posting my password in here, did I? The graphics driver died, and I flailed around blindly trying to "sudo /etc/init.d/gdm restart" 20:53:33 You sent nothing in the past few minutes look in the log files to make sure 20:54:19 -!- pikhq has joined. 20:54:19 -!- pikhq_ has quit (Ping timeout: 240 seconds). 21:01:53 Do you know anything else about my optimization problem now? 21:12:46 zzo38: what was it again? 21:13:14 -!- TeruFSX has joined. 21:16:01 quintopia: Start searching the recent IRC log for "Say that there is a command - which does the next letter" 21:16:47 (The starting timestamp is 1311396023 although there are at least three different formats and from different computers, so just search the text instead) 21:19:58 okay 21:20:05 doesnt quite make sense 21:20:10 i'll read it better soon 21:20:22 tunes' time zone is so broken you cannot even search on the minutes. 21:22:56 quintopia: use codu 21:23:04 advicewithoutcontext.com 22:12:54 elliott_: there's a thread on haskell-cafe about that reallyUnsafePointerEq# you used http://www.haskell.org/pipermail/haskell-cafe/2011-July/094103.html 22:14:17 heh 22:18:43 seems my use was safe with forseeable ghc 22:18:57 -!- Sgeo_ has quit (Read error: Connection reset by peer). 22:19:38 -!- SgeoN1 has joined. 22:22:43 I am alarmed by the fact that I now feel the need to run memtest 22:33:30 quintopia: What stuff doesn't quite make sense? 22:42:44 Try eat your chopsticks right now! 23:03:45 -!- itidus21 has changed nick to itidus20. 23:04:54 but i have no chopsticks! 23:05:05 or do i... 23:08:50 Look in your cupboard or drawer or closet or cabinet or wherever you keep it. 23:10:09 wouldn't you know, i do have a couple! 23:10:22 sadly, they're a bit too nicely decorated to eat. 23:10:32 follow the white rabbit 23:11:00 nah i don't want to be chasing the clock 23:11:04 O_O FFFFFUUUUUUUUUUU it's a marsh hare! a marsh hare! 23:11:14 wat 23:11:47 we planted the chopsticks for you to eat 23:12:04 ...i don't believe you. 23:12:21 oerjan: we are HERE 23:12:24 good. i apologize 23:12:25 -!- elliott_ has quit (Quit: disconnection error). 23:12:51 elliott_: no you are not. 23:13:07 -!- elliott_ has joined. 23:13:11 haha, great timing itidus20. 23:13:24 now oerjan will not BELIEVE THAT THING that WAS DEFINITELY not TRUE at all. 23:13:46 oerjan: LETJOISE HAVE A PERARTY 23:14:08 QANTUM BEER NEEDSITY? 23:15:23 what if oerjan was that guy in norway who did that bad stuff, would we even know. :/ 23:15:31 i am just saying that there are a lot of people in norway 23:15:34 and you cannot trust them all 23:15:44 yes. i doubt they would let him chat from prison. 23:16:16 are you saying you escaped :| 23:16:26 oh this is probably in bad taste :DDDDD 23:16:30 oerjan: im sorry ive deeply offended u 23:16:39 i have not escaped. but not from the same place, either. 23:17:29 oh 23:17:34 are you trying to escape 23:17:35 of course there are similarities. i am blond, somewhat tall, and not a muslim. 23:17:35 THIS 23:17:36 MORTAL 23:17:37 COIL 23:18:21 hi oerjan 23:18:36 i'll ignore that question. 23:18:42 -!- Sgeo has joined. 23:19:11 oh. sory. lo oerjan. 23:19:34 oh riead as suggestion 23:19:39 oerjan: hows a ijf 23:19:49 very rieadbale 23:20:09 and thatw as when oerjan turned into a cat 23:20:12 ~Thend/ 23:20:29 miawat 23:21:05 i mcofnused 23:21:20 monqy: itns eryvoene 23:21:55 My memory passed 23:22:05 rest in peace sgeos memory 23:23:34 `addquote My memory passed rest in peace sgeos memory 23:23:35 542) My memory passed rest in peace sgeos memory 23:23:43 did you ever finish writing at.html 23:23:45 reading 23:23:51 elliott_, /me wants to read it 23:23:55 what ae re verbs actulay 23:24:01 elliott_: me yes i did 23:24:03 Sgeo: iduno if anyone else can stan,d,,,,,the @,, 23:24:16 elliott_, you're acting drunk 23:24:19 it has, maximal @ level contents. 23:24:20 I doubt you're drunk, but 23:24:34 Sgeo: so's your face OHOHHHHHHHHHHH BURNSJAP 23:24:47 no if i was intoxicated i would be sure to be much, much more amusing than this 23:24:56 so basically if i'm ever really funny........... 23:25:42 anyway drunk people don't act like anything, they just act like irritable, annoying, stupid versions of themselves 23:25:49 which is a shame since it's rly boring 23:25:55 elliott_: so are you old enough to drink yet? 23:26:23 i think you can drink indoors from like six years old here??????? 23:26:26 but no 23:26:41 three and a bit months before that, but it seems pretty boring so i probably won't bother 23:28:14 alcohol education taught me never to drink to get drunk 23:28:23 an important life lesson 23:28:48 monqy: did you follow it 23:28:58 im not of legal drinking age......... 23:29:07 monqy: so yes then 23:29:26 i'm not actually sure at all why people would get drunk alcohol honestly just seems like the most boring drug, i'm utterly sincere 23:29:50 -!- MigoMipo has quit (Read error: Connection reset by peer). 23:30:19 cigaretes and drunking "lame highs for lame people" 23:30:39 yeah if it doesn't make you go crazy and shoot at people, it's not worth it. take it from a norwegian. 23:30:55 monqy: so is squarelos the best,,, it is a long story involving me reading the crawl learndb and talking to ais 23:31:04 `addquote cigaretes and drunking "lame highs for lame people" yeah if it doesn't make you go crazy and shoot at people, it's not worth it. take it from a norwegian. 23:31:05 well stab people, in the case of weapon-deprived british 23:31:06 543) cigaretes and drunking "lame highs for lame people" yeah if it doesn't make you go crazy and shoot at people, it's not worth it. take it from a norwegian. 23:31:18 elliott_: public humiliation 23:31:19 oerjan: stop making me into a person i don't want to be with laughter 23:31:24 elliott_: is not cool????? 23:31:32 monqy: i am asking,,,sincere questions:((( 23:31:35 :( 23:31:36 is squarelos,,cool 23:31:41 i do not play, crawl, at all, ever, so, 23:31:44 oh 23:31:47 its sort of a joke 23:31:47 it is good to improve things even if they are bad things 23:32:07 ais says that devs dislike it experienced players like it and everyone else dislikes it 23:32:10 is this true and also is this redundant 23:32:13 see crawl has circular line of sight which is ridiculous 23:32:23 and 23:32:25 i would like to have eyes that have circular line of sight 23:32:28 that would be great 23:32:30 well spherical 23:32:37 well um do i 23:32:40 i dont know much about eyes 23:32:44 :( 23:33:20 square los was tried but then got taken down so i made an account called squarelos to lament its demise 23:33:26 line of sight tracing a mandelbrot fractal 23:33:29 rip 23:33:51 anyway pretty much the only way i ever play crawl anymore is doing stupid things as squarelos true story 23:33:55 oerjan: stop youre just making the universe seem relaly inadequate 23:34:02 monqy: thats a good way to play games 23:34:23 -!- TeruFSX has quit (Ping timeout: 250 seconds). 23:34:26 What's wrong with circlelos? 23:34:52 was ist los 23:35:34 line of sight 23:35:48 Sgeo: distance is such that an actual circle in crawl would look like a square this is how crawl space works....yet there's a bucnh of inconsistency like line of sight is based on what looks like a circle to unenlightened humans 23:35:54 Sgeo actually likes crawl though because he's a dumb 23:36:00 -!- SgeoN1 has quit (Quit: Bye). 23:36:09 "distance is such that an actual circle in crawl would look like a square this is how crawl space works" 23:36:11 this is beautiful 23:36:15 i want to see crawl space 23:36:27 wait 23:36:30 isn't that just manhattan distance 23:36:31 its just chebyshev space i think but it pretends it isnt 23:36:32 I think I understand 23:36:45 manhattan is taxicab right? crawl has diagonals. 23:36:50 or am i confusing things 23:36:51 I think manhattan is orthogonal moves only 23:36:53 taxicab yeah. and diagonals suck 23:37:29 hmm, sometimes I get urges to write things in C that relaly shouldn't be written in C 23:37:33 help;p 23:37:49 * Sgeo wants to try Chicken again for some reason 23:37:51 What kind of things do you mean? 23:38:01 the best reason to write anything in anything is that it shouldn't be done 23:38:02 And what programming language do you think those things should be written in? 23:38:04 zzo38: i cannot say, it is too abhorrent 23:38:27 elliott_, web toolkit's been done (for either C or C++, don't remember) 23:38:33 Sgeo: no shit 23:38:44 http://www.webtoolkit.eu/wt 23:38:44 olsner: No, the best reason to write anything in anything is that it *cannot* be done (or at least, it seems like it, until it works) 23:39:01 olsner: i was trying to replicate java-style generics except without type erasure because i don't think you can even do that in C. why? well because it shouldn't be done. also because it meant i could implement a custom allocator which, like, knew all about your objects and could inspect them? which would be cool. but. basically i want to implement half a jvm at c level just because it sounds hard/fun 23:39:04 that's 23:39:06 probably a bad sign 23:39:26 @pl \x = (magnitude x) (line 1, column 4): 23:39:26 unexpected "=" 23:39:26 expecting operator, pattern or "->" 23:39:31 @pl \x -> (magnitude x) (< iterations) . magnitude 23:39:40 No, it is good thing learn, try, see what happened in case you can make something like that. 23:40:25 Wt sounds fun but why C++? 23:40:32 olsner: unfortunately my first start ended up with a member of type TypeInfo##T for an array with element type T. and the problem is that the type of an array with element type T is "struct { TypeInfo##T ...; ... }" which doesn't really paste on to TypeInfo to create a valid token. 23:40:37 TeX also has its own memory allocation algorithms. In fact there are a lot of features of Pascal it doesn't use, although it does use some nonstandard features (but those ones are controlled by macros so you can change it a bit) 23:40:40 so I kind of need generic typeinfos. this is kind of gross. 23:40:49 if i remove those, i'm not sure how to typecheck it 23:40:50 hmmmmmmmmmmmmmmmmmm 23:40:51 this is hard 23:43:07 this is like c++ sudoku: hard edition :( 23:43:51 one time i treid searching for c++ soduko but i only got sudocu solvers i tw as awcufl ;_; 23:44:07 You can create static type checking (usable in ? : operators and such) in C89, even. 23:44:24 monqy: c++ sudoku is my invention and mine alone, also im the only known player, you should try though, you just need a copy of the C++0x features list, a recent g++ compiler, and an ability to forget that things aren't jokes 23:44:36 zzo38: do you have an example? 23:44:39 You just need to use unions and arrays and stuff and a few things 23:44:46 a sprunge or? 23:45:15 And then you can use the sizeof operator which is a constant and can make a macro that checks types at compile time to decide what to do! 23:46:05 ok but 23:46:06 ok 23:46:08 * Sgeo is considering getting a Nook, but the DRM is worrying 23:46:11 I suppose I can try to make up an example, just a few lines I can type directly on here to describe 23:47:24 union { struct { int something; int something_else; int who_cares; } main; char typecheck1[2]; short typecheck2[1]; }; 23:47:30 On the other hand, apparently B&N DRM is easy to remove... 23:47:40 Stuff may have changed though 23:48:06 #define figure_out(x) (sizeof(x->typecheck1[0])==1?abc(x):xyz(x)) 23:48:33 This is my thoughts ideas, at least. 23:49:09 okay, thank you 23:49:18 Yeah, all this stuff looks old 23:49:41 zzo38: But how does that fail at type-time if it'st he wrong size? 23:49:49 the size is obviously always 1 23:50:23 Well, if (x) is of a different type, then sizeof(x->typecheck1[0]) is not 1 23:50:39 Or you can omit the [0] for another number 23:50:52 ah 23:52:04 Of course this is using completely standard C89. GNU C has its own things. And what is probably acceptable in many compilers (or at least, should be) is make a member of the structure with zero elements array, and then you can measure the size of the array element it can be any number you want without messing up the rest of the program! 23:53:32 Although I don't know for sure, this idea might also be possible with LLVM to force each different structure type to be considered different by having different sizes of data of zero length array at the end. 23:55:31 http://www.barnesandnoble.com/w/jesus-deepak-chopra/1012718717?ean=9780061980404&itm=7&usri=jesus for the life of me, I can't figure out who the target market is 23:58:18 Did you ever read about the Uncarrot Tarot? I did have a idea of a four-player trick-taking game using those cards, which I called "Rulers". (It uses all the cards, including the metas.) 23:59:28 If a Hitchhiker is played to a trick, then you must Hitchhike. 2011-07-24: 00:00:10 The "Pickle" card can be played as a minor or as a major, depending on circumstances. 00:03:35 The player with the Title card must lead that card on the first turn at the beginning of the game (unless nobody has that card in case it is a face-down hidden card in the center of the table). 00:08:42 can you write up the full rules? 00:09:21 why is lambdabot in #esoteric? 00:09:26 Unfortunately I never have. I have never actually thought of the full rules, but I have thought of many ideas, a few of which I forget. 00:10:16 Although I did remember a few things of my ideas, and possibly even have new ideas I can write here. Other people can also make up ideas, since it is incomplete. 00:11:28 You score by the first trick, the last trick, sequences, and by taking tricks containing "rulers". 00:12:07 You must follow suit if possible, and sometimes follow ranks. 00:12:47 Majors beat minors (and miscellaneous suited cards), metas beat everything. However, some majors and metas have special powers. 00:13:04 -!- elliott_ has quit (Ping timeout: 260 seconds). 00:13:51 (The card with instructions for divinations is used too in this game, although after playing this game you cannot use the deck for divination since the divination rules require that the deck is never shuffled.) 00:14:23 @pl \x -> (x,x) 00:14:23 join (,) 00:15:20 @t join 00:15:20 Maybe you meant: tell thank you thanks thx ticker time todo todo-add todo-delete topic-cons topic-init topic-null topic-snoc topic-tail topic-tell type . ? @ ft v 00:15:27 @type join 00:15:28 forall (m :: * -> *) a. (Monad m) => m (m a) -> m a 00:15:43 -!- augur has quit (Remote host closed the connection). 00:15:55 -!- augur has joined. 00:20:35 i forgot how the function monad instance works 00:30:51 @pl (\x -> map (\y -> (tick*x, tick*y)) [-half..half]) 00:30:52 (line 1, column 37): 00:30:52 unexpected "[" 00:30:52 expecting variable, "(", operator or ")" 00:31:13 @pl \x -> map (\y -> (tick*x, tick*y)) [-half..half] 00:31:14 (line 1, column 36): 00:31:14 unexpected "[" 00:31:14 expecting variable, "(", operator or end of input 00:31:16 :( 00:31:32 @pl \x -> map (\y -> (tick*x, tick*y)) 00:31:33 map . (. (tick *)) . (,) . (tick *) 00:31:39 ok yeah not replacing that 00:31:55 @pl \x -> map (\y -> (tick*x, tick*y)) [negate half .. half] 00:31:56 flip map [negate half..half] . (. (tick *)) . (,) . (tick *) 00:32:01 * Lymee reaches for a barf bag 00:32:13 @pl \x -> map (\y -> (tick*x, tick*y)) (enumFromTo (-half) half) 00:32:14 flip map [negate half..half] . (. (tick *)) . (,) . (tick *) 00:33:51 \x -> map (\y -> (tick*x, tick*y)) = map . (join (***) (tick *) .) . (,) 00:35:33 barf barf barf 00:36:30 I'd write that as \x -> map (join (***) (tick*) . (,) x), or (x,) with -XTupleSections, or with both = join (***) defined somewhere 00:37:40 Or \x -> let tx = tick*x in map ((tx,) . (tick*)) 00:40:13 -!- FireFly has quit (Quit: swatted to death). 00:44:22 -!- esowiki has joined. 00:44:43 -!- esowiki has joined. 00:45:04 -!- esowiki has joined. 00:45:41 -!- esowiki has joined. 00:46:31 -!- esowiki has joined. 00:47:29 -!- esowiki has joined. 00:48:13 -!- esowiki has joined. 00:48:57 -!- esowiki has joined. 00:49:41 -!- esowiki has joined. 00:50:21 -!- esowiki has joined. 00:51:01 -!- esowiki has joined. 00:51:46 -!- esowiki has joined. 00:52:24 -!- esowiki has joined. 00:52:24 -!- glogbot has joined. 00:53:47 why is lambdabot in #esoteric? <-- because we asked nicely (well i assume it was nicely) 01:00:06 :t (*) `on` recip 01:00:07 forall a. (Fractional a) => a -> a -> a 01:00:31 @hoogle Fractional -> Integral 01:00:31 Warning: Unknown type Fractional 01:00:31 Unsafe.Coerce unsafeCoerce :: a -> b 01:00:31 Prelude ($) :: (a -> b) -> a -> b 01:00:46 @src Double 01:00:46 data Double = D# Double# 01:00:49 Lymee: floor, ceiling, round 01:00:54 I see. 01:01:07 :t floor 01:01:07 forall a b. (RealFrac a, Integral b) => a -> b 01:01:15 Hmm 01:01:20 fractional can be e.g. complex 01:01:20 I wanna be a Devil's Advocate 01:02:23 @pl \x -> map (\y -> (tick*x, tick*y)) [ -half..half] 01:02:23 (line 1, column 36): 01:02:23 unexpected "[" 01:02:23 expecting variable, "(", operator or end of input 01:02:28 huh 01:03:06 weird broken parser 01:03:15 (given that it accepts it without - 01:03:17 ) 01:17:56 Sgeo: Why do you want to be Devil's Advocate? 01:18:18 I've boredly given some thought to what I consider an inane position 01:18:38 I think I can make it "work" fsvo "work" 01:41:33 Bleh. 01:41:41 I'm doing the Mandelbrot set with this: length $ takeWhile ((<2) . magnitude) $ take maxIters $ iterate step $ 0.0 :+ 0.0 01:41:45 Can't figure out any optimizations. 01:41:58 Anybody have any ideas? =w= 01:41:58 Oh! 01:42:19 Um, no wait, can't do that. 01:42:29 Lymee: magnitude is somewhat expensive as it requires a square root 01:43:08 @hoogle Complex a -> a 01:43:08 Data.Complex imagPart :: RealFloat a => Complex a -> a 01:43:08 Data.Complex magnitude :: RealFloat a => Complex a -> a 01:43:08 Data.Complex phase :: RealFloat a => Complex a -> a 01:44:55 :t \(a :+ b) -> a*a + b*b < 4) 01:44:56 parse error on input `)' 01:44:57 er 01:45:00 :t \(a :+ b) -> a*a + b*b < 4 01:45:01 forall t. (RealFloat t) => Complex t -> Bool 01:45:08 that might be better 01:46:12 also perhaps findIndex is more efficient than length $ takeWhile ... 01:46:22 :t findIndex 01:46:22 forall a. (a -> Bool) -> [a] -> Maybe Int 01:46:53 (then again, maybe not) 01:47:52 and it all depends on ghc's list fusion being able to optimize away the intermediate lists 01:52:12 @pl \x -> ((double $ imagPart x) + (double $ realPart x)) < 4 01:52:12 (< 4) . ap ((+) . double . imagPart) (double . realPart) 01:52:50 :t ap 01:52:51 forall (m :: * -> *) a b. (Monad m) => m (a -> b) -> m a -> m b 01:52:56 @hoogle forall (m :: * -> *) a b. (Monad m) => m (a -> b) -> m a -> m b 01:52:56 Parse error: 01:52:56 --count=20 "forall (m :: * -> *) a b. (Monad m) => m (a -> b) -> m a -> m b" 01:52:56 ^ 01:53:04 @hoogle (Monad m) => m (a -> b) -> m a -> m b 01:53:04 Control.Monad ap :: Monad m => m (a -> b) -> m a -> m b 01:53:04 Control.Monad liftM :: Monad m => (a1 -> r) -> m a1 -> m r 01:53:05 Control.Applicative (<*>) :: Applicative f => f (a -> b) -> f a -> f b 02:00:20 -!- cheater_ has quit (Ping timeout: 255 seconds). 02:09:20 @pl \x -> xCenter+tick*x 02:09:20 (xCenter +) . (tick *) 02:13:25 -!- cheater_ has joined. 02:16:18 :t findIndex 02:16:18 forall a. (a -> Bool) -> [a] -> Maybe Int 02:16:26 :t (a->a)->a->Int 02:16:27 parse error on input `->' 02:16:33 :t (a -> a) -> a -> Int 02:16:33 parse error on input `->' 02:16:58 ?? 02:17:10 @hoogle (a -> a) -> a -> Int 02:17:10 Data.Generics.Schemes everywhere :: (a -> a) -> a -> a 02:17:10 Data.Generics.Schemes everywhere' :: (a -> a) -> a -> a 02:17:11 Prelude until :: (a -> Bool) -> (a -> a) -> a -> a 02:17:44 until doesn't count number of steps, alas 02:21:24 -!- MDude has joined. 02:21:24 -!- MDude has changed nick to MSleep. 02:28:59 A, doh. 02:29:12 I changed z^^2 into z*z 02:29:22 Suddenly, almost halved time! 02:29:39 Lymee: there was a reason i wrote it with that yeah :P 02:30:27 istr someone wondering why ghc doesn't optimize x^2 to x*x before 02:30:49 > x^2 02:30:50 x * x 02:31:21 ha. 02:31:21 they are absolutely identical 02:31:32 > x * 3 02:31:33 x * 3 02:31:44 :t x 02:31:45 Expr 02:31:49 Ooh 02:31:56 > x :: Num 02:31:57 Class `GHC.Num.Num' used as a type 02:31:59 (in final result) 02:32:03 > show x 02:32:04 "x" 02:32:10 Ooh 02:32:14 This is a good idea 02:32:20 ...I thought everyone already knew about Expr. 02:32:21 > y 02:32:22 y 02:32:25 > fix f 02:32:25 Ambiguous type variable `a' in the constraints: 02:32:25 `GHC.Show.Show a' 02:32:25 a... 02:32:29 > a 02:32:30 a 02:32:31 > fix f :: Expr 02:32:32 f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (... 02:33:36 > scanl1 (*) [a,b,c,d,e] 02:33:37 [a,a * b,a * b * c,a * b * c * d,a * b * c * d * e] 02:35:28 > a+b 02:35:29 a + b 02:35:32 Heh. 02:35:34 Didn't know that existed. 02:35:41 Any way to evaluate that? 02:35:47 > a+g 02:35:48 a + g 02:35:51 > (a+g) 1 1 02:35:52 Couldn't match expected type `t1 -> t2 -> t' 02:35:52 against inferred type ... 02:35:55 not to my knowledge 02:36:07 :t a 02:36:07 Expr 02:36:12 @src Expr 02:36:12 Source not found. 02:36:27 Lymee: it's in a package named simplereflect 02:36:31 iirc 02:37:14 http://hackage.haskell.org/package/simple-reflect 02:38:17 oh there's a reduction function 02:38:34 reduction (a+b+c+d) 02:38:37 er 02:38:39 > reduction (a+b+c+d) 02:38:40 Not in scope: `reduction' 02:38:42 oops 02:39:15 maybe lambdabot doesn't have the latest version 02:39:28 > reduce (1+2+3+4) 02:39:29 3 + 3 + 4 02:39:34 > reduction (1+2+3+4) 02:39:34 Not in scope: `reduction' 02:39:42 >reduce (a+b+c+d) 02:39:46 > reduce (a+b+c+d) 02:39:46 a + b + c + d 02:39:52 > reduce (a*b+a*c) 02:39:53 a * b + a * c 02:39:57 i guess it cannot reduce pure symbols 02:40:02 > reduce (a*(b+c)) 02:40:03 a * (b + c) 02:40:08 Bleh. 02:40:16 > iterate reduce (1+2+3+4) 02:40:16 [1 + 2 + 3 + 4,3 + 3 + 4,6 + 4,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10... 02:40:51 > iterate reduce (1*2+3*4) 02:40:52 [1 * 2 + 3 * 4,2 + 3 * 4,2 + 12,14,14,14,14,14,14,14,14,14,14,14,14,14,14,1... 02:41:58 > (\x -> fst $ head $ dropUntil (\x -> (fst x) == (snd x)) $ zipWith (,) x $ tail x) $ iterate reduce (1*2+3*4) 02:41:58 Not in scope: `dropUntil' 02:42:10 * Lymee runs 02:42:18 :t var 02:42:19 forall a. String -> Sym a 02:42:27 > (\x -> fst $ head $ dropWhile (\x -> (fst x) != (snd x)) $ zipWith (,) x $ tail x) $ iterate reduce (1*2+3*4) 02:42:28 Not in scope: `!=' 02:42:38 > (\x -> fst $ head $ dropWhile (\x -> !((fst x) == (snd x))) $ zipWith (,) x $ tail x) $ iterate reduce (1*2+3*4) 02:42:39 : parse error on input `!' 02:42:43 > (\x -> fst $ head $ dropWhile (\x -> not ((fst x) == (snd x))) $ zipWith (,) x $ tail x) $ iterate reduce (1*2+3*4) 02:42:43 1 * 2 + 3 * 4 02:42:47 Aww. 02:46:04 > dropWhile (uncurry (/=)) . ap zip tail $ iterate reduce (1*2+3*4) 02:46:05 [(1 * 2 + 3 * 4,2 + 3 * 4),(2 + 3 * 4,2 + 12),(2 + 12,14),(14,14),(14,14),(... 02:46:12 hm... 02:46:30 > ap zip tail $ iterate reduce (1*2+3*4) 02:46:31 [(1 * 2 + 3 * 4,2 + 3 * 4),(2 + 3 * 4,2 + 12),(2 + 12,14),(14,14),(14,14),(... 02:47:12 > 14 == (14 :: Expr) 02:47:13 True 02:47:25 > reduce (2+12) == (14 :: Expr) 02:47:26 True 02:47:54 > reduce (2+12) /= (14 :: Expr) 02:47:55 False 02:48:10 > 2+12 /= (14 :: Expr) 02:48:10 False 02:48:16 ooh 02:48:19 darn 02:48:38 it actually reduces when comparing 02:50:37 http://pastebin.com/PXcS0k5G < is my code horrible? 02:51:06 > reduce (2+12+4+5) /= (14 :: Expr) 02:51:07 True 02:51:16 > reduce (2+12+4+5) /= (25 :: Expr) 02:51:17 True 02:51:23 > (2+12+4+5) /= (25 :: Expr) 02:51:24 True 02:51:31 > iterate reduce (2+12+4+5) 02:51:32 [2 + 12 + 4 + 5,14 + 4 + 5,18 + 5,23,23,23,23,23,23,23,23,23,23,23,23,23,23... 02:51:35 opps 02:51:36 my math fail 02:51:39 :P 02:51:40 > (2+12+4+5) /= (23 :: Expr) 02:51:41 False 02:53:48 > reduce (i*i) 02:53:48 i * i 02:53:54 > reduce (i+i) 02:53:54 i + i 02:54:03 > reduce (i^3) 02:54:04 i * i * i 02:54:10 > reduce (i^(100^100)) 02:54:11 i * i * (i * i) * (i * i * (i * i)) * (i * i * (i * i) * (i * i * (i * i)))... 02:54:13 * Lymee runs 02:54:30 > map (\x -> take 10 $ show x) $ iterate reduce (i^(100^100)) 02:54:31 ["i * i * (i","i * i * (i","i * i * (i","i * i * (i","i * i * (i","i * i * ... 02:54:42 > drop 100 $ iterate reduce (i^(100^100)) 02:54:43 [i * i * (i * i) * (i * i * (i * i)) * (i * i * (i * i) * (i * i * (i * i))... 02:54:49 > drop 1000 $ iterate reduce (i^(100^100)) 02:54:49 [i * i * (i * i) * (i * i * (i * i)) * (i * i * (i * i) * (i * i * (i * i))... 02:54:52 Aww. 02:54:59 @redo map (\y -> map (\x -> fracf $ (xCenter+x) :+ (yCenter+y)) range) range 02:54:59 Maybe you meant: do read todo undo 02:55:03 argh 02:55:09 @list undo 02:55:09 undo provides: undo do 02:55:15 @do map (\y -> map (\x -> fracf $ (xCenter+x) :+ (yCenter+y)) range) range 02:55:15 map (\ y -> map (\ x -> fracf $ (xCenter + x) :+ (yCenter + y)) range) range 02:55:21 darn 02:55:28 What did you want to do? 02:55:31 @do x >>= f 02:55:31 do { a <- x; f a} 02:55:40 turn it into a list comprehension 02:55:48 Ah. 02:57:19 [ [ fracf $ (xCenter+x) :+ (yCenter+y)) | x <- range ] | y <- range ] 02:58:04 Already did it. 02:58:06 :) 02:59:08 you have some more parentheses than necessary, but fair enough 03:00:35 also double is usually called square 03:02:00 uh 03:02:01 wait why did i do that 03:02:15 >< 03:02:18 beats me :P 03:03:42 -cpp Run the C pre-processor on Haskell source files 03:03:42 [dynamic] 03:03:46 Is there any reason to ever do that? 03:04:17 haskell doesn't have much in the way of conditional compilation without it 03:04:27 well didn't use to, anyway 03:04:39 i guess you can use template haskell these days 03:05:21 From what I read about Haskell, C pre-processor doesn't seem like the best kind of preprocessor for Haskell (because of the meanings of # and ' in Haskell, as well as other things) 03:05:40 i think it's actually a slightly modified preprocessor 03:05:48 What might be improved is something like how the macro preprocessor stuff in WEB but changed for Haskell stuff. 03:06:46 when hugs was still alive, it shared a number of library source files with ghc, which sometimes used cpp 03:07:28 For various reasons, I doubt a C preprocessor would work well with Haskell. 03:08:18 as i said, it is a modified one. 03:08:20 [snip]:~/hs$ time ./mandelbrot 1000 0 0 1 300 output.png 03:08:20 real0m24.731s 03:08:21 user0m24.650s 03:08:21 sys0m0.036s 03:08:21 [snip]:~/hs$ time ./mandelbrot 1000 0 0 1 300 output.png 03:08:21 real0m7.606s 03:08:23 ...... 03:08:25 o.o 03:08:36 Is -O9 really that effective? 03:09:45 well -O2 is effective, iirc -O3 sometimes gets worse, and i don't think there's a difference beyond that 03:09:54 * Lymee boggles 03:09:56 oerjan: Yes, a modified one might work. 03:10:31 iirc -O3 uses some experimental optimizations that are not guaranteed to actually make things better. 03:10:46 The executable -O2 and -O3 generate are identical, so.. 03:11:42 oh wait it's actually -O1 and -O2 03:11:58 http://www.haskell.org/ghc/docs/latest/html/users_guide/options-optimise.html 03:12:21 "At the moment, -O2 is unlikely to produce better code than -O. 03:12:23 " 03:14:41 or wait, there's not actually a number for using those that make things worse. 03:18:24 -!- azaq23 has quit (Ping timeout: 260 seconds). 03:24:57 http://www.malevole.com/mv/misc/killerquiz/ 03:25:52 Not funny. 03:25:52 =p 03:29:49 Is IUP generally well-regarded? 03:34:34 -!- NihilistDandy has joined. 03:39:47 -!- azaq23 has joined. 03:39:48 -!- azaq23 has quit (Changing host). 03:39:48 -!- azaq23 has joined. 03:41:48 Ohai 03:47:25 hrm... crap 03:47:36 Wut 03:47:47 writing that script I wanted will be harder than I thought 03:48:08 since I have to account for translational symmetry too 03:48:49 not too hard, just annoying 03:49:18 * NihilistDandy nods 04:03:45 -!- pikhq_ has joined. 04:03:54 -!- pikhq has quit (Ping timeout: 260 seconds). 04:07:26 -!- BeholdMyGlory has quit (Remote host closed the connection). 04:33:50 coppro: sounds like you want some kind of ABSTRACTION 04:34:25 * NihilistDandy trumpets 04:34:56 honestly are there programmers out there who think abstraction is in general bad? 04:35:56 better not be 04:36:05 College C programmers 04:36:37 Oracle admins 04:46:46 What about COBOL programmers? 04:47:30 I AM FORTRAN AND I DISLIKE CHANGE 04:56:05 Whether you need abstraction as well as what kind of abstraction depends on a lot of stuff! 05:05:25 like the socioeconomic status of your target demographic, for instance 05:05:37 or...the price of oil in canada 05:06:02 and the age of the current pope of course 05:07:12 Also your favorite ice cream 05:07:25 The lactose intolerant have no need for abstraction 05:08:04 This is an obvious truth, whose proof is left as an exercise to the reader. 05:43:08 Once I wrote something as a joke for rules of a card game, the value of the Queen card is current age of the queen, and to figure out the value of a Joker card you tell a joke to your opponent, and the value of this card is however many times your opponent laughs. 05:44:26 How did a couple hours of magic turn into 8? 05:44:31 s/magic/Magic/ 05:45:07 Meh, whatever, I regret it not. 05:45:12 Do you have more information? 05:45:18 pikhq_: magic, of course 05:45:29 (Maybe question can be answered, then?) 05:46:40 I found the texts I wrote some jokes of rules for card game and stuff. Here is some of it: 05:46:55 This game can be played by any number of people, as long as the number of people is even and prime. First, shuffle the cards. The players can now make a deal, either an addition deal or a multiplication deal. And then you figure out the values of the cards, and then finally you deal the cards. 05:47:01 If the deck has 40 cards, then you get 3 cards. If the deck has 52 cards, then you get 4 cards. If you are a funny guy, then you get 5 cards. If your name is Aaron, then you get 6 cards. 05:48:24 This document also jokes about measuring the resistance of pokemon cards in ohms. 05:48:28 haha 05:48:35 link? 05:49:50 http://zzo38computer.cjb.net/GamesMadeStupid/cardgame.htm 05:50:35 I didn't write it completely by myself (I forget exactly which parts) although I did write much of it and I did put everything together. 05:52:03 Also, I'm not entirely sure why I *started* this, other than that someone said "lol if freebsd used git, they'd have to have a gigantic repo in /usr/src", but cvs2git of FreeBSD's repo has taken two days thus far. 05:53:22 I like the win condition for solitair 05:53:24 *solitaire 05:54:02 (FWIW, FreeBSD typically has a CVS checkout of the source used to build the system in /usr/src) 05:54:15 Ah 05:54:49 Personally, I'm going to be surprised if the git repo of all changes from '93 is larger than a CVS checkout. 05:56:26 Doesn't CVS put metadata in the file though? 05:57:15 Yes. 05:57:28 Well, actually, it's optional metadata in the file. 05:57:39 Does cvs2git strip it? 05:57:58 I *think* it just fills in the metadata. 05:58:21 Or maybe it leaves it alone? 05:58:25 I dunno, I'll look. 06:03:08 Crud, my eyes are going weird 06:03:22 I'm reading a Homestuck update, and some of the text looks like it's popping out 06:03:26 Depending on the color 06:04:44 Link? 06:06:48 NihilistDandy, have you read all of Homestuck? 06:06:58 No. 06:19:52 technically no one has. 06:21:33 andrew husey in the future 06:22:05 adnrew, sorry 06:24:02 I didn't find the character Evinrude's (in The Rescuers) name meaningful until I got older 06:24:07 Then it was funny for a second 06:24:22 I should finish PS 06:24:45 He's a dragonfly, you see, and he propels mouse sized boats around a bayou 06:29:53 i got the joke the first time i saw it 06:29:58 when i was like 7 06:30:08 How good are you at optimization algorithms and that stuff? I was trying to make some kind of optimization. However, I cannot quite figure it out. That is why, I would like some help too. And then I can learn. 06:30:26 quintopi1: I lived in a landlocked state 06:30:34 With no boating friends 06:30:39 aha 06:30:41 I'm sorry I didn't have a yacht like some people 06:30:44 :P 06:31:15 i'm sorry i was taken fishing from very young in tiny johnboats 06:31:39 I did all my fishing from land :D 06:32:13 -!- quintopi1 has changed nick to quintopia. 06:32:27 -!- quintopia has quit (Changing host). 06:32:27 -!- quintopia has joined. 06:35:57 -!- hagb4rd has joined. 06:41:16 -!- hagb4rd has quit (Read error: Connection reset by peer). 06:46:12 i wanna thank whoever linked me to: http://everything2.com/title/Using+Asteroids+to+explain+the+topological+classification+of+2-manifolds 06:46:31 just reading it now and the idea is making sense 06:47:20 :D 06:47:57 so now what we need is a torus shaped monitor 06:48:58 with uh.. touchscreen 06:49:34 and it would be incredibly boring and a stupid idea and i'll just let it go 06:49:35 -!- oerjan has quit (Quit: Good night). 06:51:04 I have seen a diagram in a book where they described a TV screen being shaped like torus. I think the reason is similar, too. 06:51:14 Being stupid? 06:51:53 (But it didn't have touchscreen) 06:52:08 (Nor would touchscreen help in the context it was given in) 06:52:41 NihilistDandy: Is that a question to me? Or to itidus20? 06:53:13 I meant was the reason for the toroidal TV screen "being stupid"? 06:53:51 No! The reason was to indicate having no edges and you can move one direction to end up in the same place, and so on things like that. 06:54:24 Of course you would not have such a TV screen, I don't think it would work very well for any circumstances I can understand. 06:54:50 Mostly a joke 06:55:36 -!- hagb4rd has joined. 06:59:00 I wish my last name were more palindrome friendly. 06:59:28 this panel setup for the scratch is making everything extremely difficult to follow 06:59:43 it also doesn't help that I've forgetting details of what happened.... 06:59:46 +been 07:01:37 -!- NihilistDandy has quit (Quit: sleep). 07:03:10 :( The Science of Discworld isn't available as an ebook 07:03:25 Or at least, not from B&N 07:04:33 Oh, eBooks.com has it 07:18:04 ok i was following it until the spehrical universes bit 07:18:36 is the idea that a sphere doesn't really need an edge? 07:21:20 nevermind.. im pretty sure i know what a sphere is :-s 07:21:21 -!- augur has quit (Remote host closed the connection). 07:22:30 I hope someone can understand my register optimization algorithm problem that I have had. And if there is other channel that they know this kinds of things better. 07:22:41 -!- zzo38 has quit (Quit: But for now I sleep). 07:44:16 -!- augur has joined. 08:07:33 -!- hagb4rd has quit (Ping timeout: 255 seconds). 08:19:05 :t Expr 08:19:06 Not in scope: data constructor `Expr' 08:19:21 @hoogle a -> Expr 08:19:21 Warning: Unknown type Expr 08:19:21 Prelude id :: a -> a 08:19:21 Data.Function id :: a -> a 08:19:26 :t x 08:19:27 Expr 08:20:13 > a > b 08:20:13 False 08:20:36 > a < b 08:20:37 True 08:20:42 > a + 1 < b 08:20:43 True 08:21:24 > succ a 08:21:25 succ a 08:22:05 > EnumFromTo a z 08:22:05 Not in scope: data constructor `EnumFromTo' 08:22:09 > enumFromTo a z 08:22:09 *Exception: not a number 08:22:53 > pred . succ $ a 08:22:54 pred (succ a) 08:23:50 http://www.jazzscheme.org/images/screenshots/text_jazz.htm I am a bit unnerved by how similar to Java that looks 08:24:26 that pretty much is Java. 08:24:55 at least in program structure. 08:31:04 Greetings from Lancaster 08:31:24 -!- Taneb has joined. 08:31:42 -!- augur has quit (Remote host closed the connection). 08:31:45 That's the second time I've had non-latin characters in a captcha 08:32:35 haha. "Jazz borrows ideas from ... Java for its simple object system ..." 08:34:51 Well, Java's *object system* isn't too complex. 08:35:30 What's complex is that it has an overly verbose syntax and utterly retarded APIs. 08:35:39 Along with pointless edge cases. 08:36:56 Also, it suffers from the whole "let's do static typing but not have a good type system" thing. 08:41:53 What's wrong with the type system? 08:41:59 aside from requiring verbose syntax. 08:42:34 I've had an idea for an esolang! 08:42:40 All about ducks! 08:43:22 CakeProphet: It's static and not good enough to handle type inference. 08:43:32 i.e. it sucks. 08:43:34 It'll have duck typing, and the batman must be dismissed with a score of zero! 08:44:10 This, in my estimation, is *worse* than being loosely or un-typed. 08:58:26 Well, in about an hour, I leave 08:58:40 Far to the South 08:58:59 Durham 08:59:54 elliott, don't click this until you read new Homestuck update, but I just want to say I'm lolling at http://bit.ly/nJn669 09:02:30 Hahaha 09:05:01 -!- monqy has quit (Quit: hello). 09:11:08 -!- augur has joined. 09:33:38 Just discovered my first cavern in Dwarf Fortress 09:34:13 -!- Taneb has quit (Quit: Page closed). 09:58:56 -!- Phantom_Hoover has joined. 09:59:35 Hmm, I wonder if this connection will last for more than ten seconds. 09:59:35 Phantom_Hoover: You have 12 new messages. '/msg lambdabot @messages' to read them. 10:09:38 -!- Phantom_Hoover has quit (Ping timeout: 250 seconds). 10:23:25 -!- MigoMipo has joined. 10:25:51 -!- Sgeo has quit (Read error: Connection reset by peer). 10:26:33 -!- Sgeo has joined. 10:29:12 -!- hagb4rd has joined. 10:38:58 Has anyone implemented Brainfuck in the SQLite virtual machine? 10:45:51 -!- ais523 has joined. 10:59:47 > pl (foo a) == (foo b) 10:59:48 Not in scope: `pl'Not in scope: `foo'Not in scope: `foo' 10:59:56 > pl (len a) == (len b) 10:59:56 Not in scope: `pl'Not in scope: `len'Not in scope: `len' 11:00:20 @pl 11:00:21 (line 1, column 1): 11:00:21 unexpected end of input 11:00:21 expecting white space, "()", natural, identifier, lambda abstraction or expression 11:00:31 @pl \x y = (len x) == (len y) 11:00:32 (line 1, column 6): 11:00:32 unexpected "=" 11:00:32 expecting pattern or "->" 11:00:36 @pl \x y -> (len x) == (len y) 11:00:36 (. len) . (==) . len 11:00:42 quiet you 11:02:33 ahah 11:07:04 :t (==) `on` length 11:07:05 forall a. [a] -> [a] -> Bool 11:07:17 yeah I know 11:07:20 I just caught myself 11:17:40 -!- Phantom_Hoover has joined. 11:21:50 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds). 11:36:51 :t (. len) . (==) . len 11:36:52 Not in scope: `len' 11:36:52 Not in scope: `len' 11:37:01 :t (. length) . (==) . length 11:37:02 forall a a1. [a1] -> [a] -> Bool 11:37:13 It's more generic than (==) `on` length 11:38:59 omg no, the doctor is in one of the harry potter movies (and plays a baddie) 11:43:16 -!- sebbu2 has quit (Ping timeout: 240 seconds). 11:46:08 @pl \l1 l2 a b -> (l1 a) == (l2 b) 11:46:08 flip . (((.) . (==)) .) 11:46:33 @pl \l1 l2 a b -> (l2 a) == (l1 b) 11:46:33 flip (flip . (((.) . (==)) .)) 11:46:45 @pl \l1 l2 a b -> (l1 b) == (l2 a) 11:46:45 (.) . flip . ((==) .) 11:46:54 @pl \l1 l2 a b -> (l2 b) == (l1 a) 11:46:54 flip ((.) . flip . ((==) .)) 11:47:06 Hmm, I was trying to get rid of the flips. 11:47:21 Seems to be impossible is you want to have both l1 and l2 before a and b. 11:48:16 Ultimate goal was makeing "(. length) . (==) . length)" make look more symmetric in the two length calls. 12:07:53 -!- sebbu has joined. 12:10:04 "You can use the software in any way you like, make money and do as you will, and even change the source code and distribute it and charge for it provided that your changed version still works." 12:10:13 http://www.lambdassociates.org/Shen/newappeal.htm 12:10:27 Um, that... is there a legal definition of "works"? 12:11:33 as a noun, yes 12:11:35 I don't think so as an adjective 12:11:58 anyway, there's a legal definition of everything, occasionally the courts have to decide what it is, though 12:20:31 * Sgeo for some reason tries Allegro CL Express 12:46:34 -!- BeholdMyGlory has joined. 12:49:40 -!- azaq23 has quit (Quit: Leaving.). 12:50:56 http://www.reddit.com/r/programming/comments/ixkql/how_to_make_a_compiler_1000_times_faster/c27guh6 I... uh... 12:51:09 Seriously? 12:51:27 Even _____I_____'m not that stupid to do that, and I barely know what I'm doing 12:52:22 Then again, I'll probably make mistakes that this person doesn't 12:53:18 And trying to skim what the person wrote just ... dizzies me, so I'm the last person who should be commenting 13:05:56 http://sds.podval.org/ocaml-sucks.html is it just me or does this article have a mix of stupidity and insight? 13:06:29 hmm, n/m 13:08:06 -!- FireFly has joined. 13:17:30 "Make no mistake: Java/C/C++/C#/Perl are much worse than OCaml! " 13:17:49 I actually use OCaml in my day job 13:17:55 it made me want to invent Anarchy 13:18:05 because it's decently good at what it does, but has a few annoyances 13:18:33 My view of the world is always getting me down but it's not all that bad. 13:19:09 it's like i think people would be less happy overall if i let my own private piece of the world turn to shit 13:19:52 So, I think that people get used to what they are doing... and sometimes I get the urge to make breakthroughs and independant rediscoveries 13:21:07 and, at the worst of it... the analyzers start believing their own crap 13:21:23 and that surely drains the life out of them 13:21:24 "Now (Dec 1999)" http://sds.podval.org/tool.html 13:22:32 they speak of what is possible and what is not possible as if they had lived billions of years 13:23:11 and still, 1000s of years ago people alerady knew that billions of years can be insignifigant depending on what you are looking for 13:23:53 and they have the audacity to make claims on the computational power of the known universe 13:24:36 oh god i am ranting again... when did this happen 13:24:58 its one of these monologues which someone earlier today told me isn't fitting in a _chatroom_ 13:30:36 -!- MSleep has changed nick to MDude. 13:52:03 itidus20: it happens. 13:52:45 cake: i have so much dissatisfaction with so many things that a rant can erupt at any time. 13:53:15 > foldl1 (flip par) $ scanl1 (*) [1..] 13:53:23 mueval-core: Time limit exceeded 13:53:23 mueval: ExitFailure 1 13:53:40 ah, right, because par would impose strict semantics. 13:54:04 > foldl1 (flip par) . take 100 . scanl1 (*) $ [1..] 13:54:08 mueval-core: Time limit exceeded 13:54:13 > foldl1 (flip par) . take 50 . scanl1 (*) $ [1..] 13:54:16 1 13:54:22 lol 13:54:58 Yeah, sometimes I feel like executing the first 50 factorials in parallel for absolutely no gain. 13:56:27 except that's not really what happened. 13:56:46 > foldl1 par . take 50 . scanl1 (*) $ [1..] 13:56:47 30414093201713378043612608166064768844377641568960512000000000000 13:57:21 I think even then it's still sequential. 14:01:11 Light, service, state, box, cross, paper, door, teddy bear, fish, dog, apple, stroller, fish trap, slim, high, parent, free, country, swamp, fillet, rosé, parfait, brick, sleep, office, small, hand, clove, child, knife, two, sister, switch, unhappy, warm, inntermost, left, woman, reply, expense, guest, man, fine, spring, eighth, thousand, dead, skirt, step, grandmother, young couple. 14:01:18 Aye? 14:04:58 it woould be nice to have latex support in an IRC client. 14:05:46 I had a dream about an annoying douchebag who logged into this channel and spoke almost entirely in fancy latex 14:06:01 and his name changed every post. 14:06:16 and was also full of latex crap. 14:06:43 tswett, wat. 14:07:06 > deleteAllFiles `par` 'wat' 14:07:07 : 14:07:07 lexical error in string/character literal at chara... 14:07:12 Lymee: oh, it's a list of nouns and adjectives. 14:07:36 There are 51 types. This is one from each type. 14:07:40 Or, it's supposed to be. 14:12:57 Ihan vitun kamalan sekavat. 14:13:54 @src seq 14:13:55 Source not found. Take a stress pill and think things over. 14:18:39 @pl (\y -> [fracf $ (xCenter+x) :+ (yCenter+y) | x <- range]) 14:18:39 return . fracf . (<- range) . (| x) . ((xCenter + x) :+) . (yCenter +) 14:18:44 .... 14:18:45 wat 14:18:56 @pl doesn't understand list comprehensions 14:19:04 I see... 14:19:08 @. pl undo (\y -> [fracf $ (xCenter+x) :+ (yCenter+y) | x <- range]) 14:19:08 (range >>=) . flip flip [] . (((:) . fracf) .) . flip ((:+) . (xCenter +)) . (yCenter +) 14:33:19 Aww, how cute. 14:33:37 $pl \x -> [y + 1 | y <- x] 14:33:40 @pl \x -> [y + 1 | y <- x] 14:33:40 return . (y +) . ((1 | y) <-) 14:33:56 Hee hee. 14:35:33 heh. 14:36:46 nice 14:45:27 what the? 14:45:30 @pl \x -> [y + 1 | y <- x] 14:45:31 return . (y +) . ((1 | y) <-) 14:45:34 I don't get it 14:45:43 :t (<-) 14:45:45 parse error on input `<-' 14:45:49 so... 14:45:53 what the hell 14:45:55 Vorpal: 2011-07-24 17:18:47 ( Deewiant) @pl doesn't understand list comprehensions 14:46:02 Deewiant, *oh* hah 14:46:14 @. pl undo \x -> [y + 1 | y <- x] 14:46:14 ((1 +) `fmap`) 14:46:24 :t undo 14:46:24 Not in scope: `undo' 14:46:30 Deewiant, where is undo from? 14:46:35 @help undo 14:46:35 undo 14:46:35 Translate do notation to Monad operators. 14:46:41 ah 14:52:56 -!- pikhq has joined. 14:53:12 -!- pikhq_ has quit (Ping timeout: 276 seconds). 15:06:52 tswett: I wonder if you were talking about the inflection classes of nominals, how cute 15:27:48 atehwa_: you can determine that with figuratively absolute certainty. 15:32:15 > foldll1 (`f`) [a,b,c] 15:32:15 : parse error on input `)' 15:32:30 blasphemy! 15:32:57 (`f`) would be equivalent to (f) 15:34:08 yes I was seeing if it worked. 15:41:23 Android headset:nä 15:53:29 CakeProphet: For a fixed arity, I suppose you can always work around the lack of (`f`) with (\x y -> (x`f`y)). Especially if you choose suitably easily overlookable Unicode characters for x and y. (\ו י -> (ו`f`י)) maybe? 15:54:26 Wow, that renders real bad in XChat. Must be the right-to-leftness of the Hebrew letters. 15:54:46 You can make it \x -> (x`f`) and it'll work for any arity 15:54:58 Oh, good. 15:55:24 (\x y -> (x`f`y) would work for any arity >= 2) 15:55:34 Roight. 15:57:34 And since it no longer needs whitespace to separete x and y, (\י->(י`f`)) then. Which XChat renders so that it looks, approximating the Hebrew "yod" with ', as (\')<-'`f`)) -- it seems to do the text in-between those things as right-to-left. 16:00:16 fizzie: what do you mean work around the lack of (`f`)? 16:00:37 like... I don't see a need really. I just wondered if it was possible. It doesn't need a work around because f is the work around. 16:00:38 Since it's "f", I supposed you must have some reason to complicate it. 16:00:57 yep, I love needless complication. :) 16:01:20 Right. And "f" is not a proper workaround for complicating "f". (Unless you're being very gracious.) 16:01:52 > fix id 16:01:55 mueval-core: Time limit exceeded 16:01:57 :t fix id 16:01:58 forall a. a 16:20:48 haha, in order to put a Palm phone into developer mode, you enter the Konami code 16:26:29 -!- atehwa_ has changed nick to atehwa. 16:30:39 -!- hagb4rd has quit (Ping timeout: 255 seconds). 16:49:52 -!- monqy has joined. 16:53:12 ais523: all of the trendy tech scenesters would be like "everybody trendy already knows about that." 16:53:19 techsters? 16:53:30 perhaps 16:53:35 can you put -ster on the end of anything to make it sound condescending? 16:54:18 I don't know 16:55:44 numberster 16:55:55 graph rewritester 16:56:29 fixed pointster 16:56:55 > map (++ "ster") $ (`replicateM` ['a'..'z']) >>= [1..] 16:56:56 The section ``Control.Monad.replicateM` 16:56:56 ['a' .. 'z']' takes o... 16:57:13 > map (++ "ster") $ (`replicateM` ['a'..'z']) =<< [1..] 16:57:15 ["aster","bster","cster","dster","ester","fster","gster","hster","ister","j... 16:57:23 ...okay so maybe not everything... 16:57:23 tadaa 16:57:47 ester = "lousy e" 16:58:08 a g-ster actually sounds like a somewhat cool person. 16:58:11 "not-to-be-taken-for-serious e" 16:58:58 gster sounds like something people would call a somewhat cool person but is actually in reality ridiculous 17:43:06 -!- derrik has joined. 17:58:02 -!- Nisstyre has quit (Quit: Leaving). 18:06:21 -!- CakeProphet has quit (Ping timeout: 240 seconds). 18:21:48 -!- zzo38 has joined. 18:23:53 IBM PC (Model 5150) Guide to Operations, Part 1 of 2 http://www.retroarchive.org/dos/docs/pc_op_guide1.pdf 18:55:06 -!- cheater_ has quit (Ping timeout: 255 seconds). 18:58:39 -!- zzo38 has quit (Quit: zzo38). 19:04:33 -!- Nisstyre has joined. 19:09:00 -!- cheater_ has joined. 19:23:26 -!- oerjan has joined. 19:31:28 once again, everyone who has said anything interesting in the logs is gone now :( 19:32:32 Fortunately there is lambdabot and messages. 19:36:30 -!- cheater_ has quit (Ping timeout: 255 seconds). 19:40:56 -!- NihilistDandy has joined. 19:43:26 -!- cheater_ has joined. 19:46:56 I was discussing with a coworker about number theory and programming, and the subject of whether loops or number theoretic algorithms are faster, in terms of processor instructions. For a toy example, consider summing the first 1 million digits. 19:47:30 [asterisk]that sentence was horribly structured 19:48:42 I was discussing number theory and programming with a coworker, and the subject of whether loops or number theoretic algorithms were faster (in terms of processor instructions) came up. For a toy example, consider summing the first 1 million digits. 19:48:46 Better 19:51:34 Any thoughts on the matter? 19:55:33 fizzie: but that is not as fun :( 19:57:05 NihilistDandy: well i would be really surprised if a loop for that were faster than calculating 1000000*1000001/2 on any realistic hardware 19:57:41 er wait you said digits not numbers. what do you mean by that... 19:57:54 [asterisk]numbers 19:57:58 ok 19:57:59 My bad 19:58:49 of course there must be less skewed examples... 19:59:30 like how bubble sort is faster than quicksort if the list/array is small enough 20:00:26 hm you were one of those who said something interesting 20:00:27 I meant was the reason for the toroidal TV screen "being stupid"? 20:00:28 I've been trying to find some definitive source on how multiplication is done at the processor level, but no one seems to agree (or everyone who does is several decades out of date) 20:00:46 it's not that unreasonable when you think of how scan lines work 20:01:03 it _is_ very close to a toroidal setup 20:01:11 But it's unreasonable when you consider how watching TV works :D 20:01:42 NihilistDandy: i understand that modern processors use a huge circuit to do multiplication _very_ fast 20:02:15 while e.g. the old 6502/10's had no multiplication instruction and you needed to use shift/addition to write it 20:02:25 That's my understanding, too, but they do it with (essentially) a huge number of partial products and additions 20:02:44 Which still boils down to shift/add 20:03:15 no... it is much faster 20:03:27 because it's parallelized, not a loop 20:04:05 Right, faster in terms of actually getting done 20:04:09 but i think ais523 is the right person to ask about this 20:04:12 I mean in the sense of number of instructions 20:04:17 about what? 20:04:32 about how multiplication is done in modern processors 20:04:48 oerjan: I'm not sure what sort of multiplier they use, there are several plausible sorts 20:05:16 yes but i assume you can explain how it's better than a shift/add loop 20:05:30 actually, sometimes it is a shift-add loop 20:05:35 but implementing it in hardware makes it much faster 20:05:51 heh 20:06:38 anyway even a shift/add loop should be faster than directly adding 1..1000000 in a loop 20:07:52 So, ais523, does an addition loop use more instructions than a multiplication? I suppose that's the basic question 20:08:17 -!- CakeProphet has joined. 20:08:17 -!- CakeProphet has quit (Changing host). 20:08:17 -!- CakeProphet has joined. 20:08:26 NihilistDandy: the number of instructions is pretty much irrelevant when it comes to speed 20:08:29 not all instructions are equal 20:08:32 It's not about speed 20:08:51 if it's about program length, you'd just use the processor's multiply instruction 20:08:58 as it's nice and short compared to a loop 20:09:00 It's not about length 20:09:05 what is it about, then? 20:09:06 It's about what the computer's doing 20:09:16 when you write a*b in a program, or whatever? 20:09:28 it compiles it into the processor's multiply, which puts it into a dedicated multiply circuit 20:09:49 DSPs normally have very fast multiply circuits that take up a lot of silicon space, because doing lots of multiplications quickly is their main purpose for existence 20:09:56 CakeProphet: are you actually present? 20:09:57 So I've read 20:10:02 regular processors, even if it takes 10 times as long as any other instruction, it's still going to be gine 20:10:05 *fine 20:10:06 (i mean hi) 20:10:51 seems not. 20:11:27 ais523: I'm not really concerned about how long it takes. My only real question is "Are there fewer processor instructions in an additive loop or a multiplicative algorithm?" 20:11:46 oh, you're concerned about instruction /count/? 20:11:49 Right 20:11:59 Totally irrelevant to anything meaningful 20:12:03 Just a curiosity 20:12:04 a multiplication and addition are both one instruction (imul and add, respectively) 20:12:10 add takes fewer bytes to represent in x86, at least 20:13:38 Instruction count is a very weird thing to ask about, though. 20:13:42 So, if I'm following you correctly, adding the numbers 1..1000 in an additive loop uses at least 1000 instructions (though likely more), and (1000*1001)/2 uses approximately 3? 20:13:49 yep 20:13:56 pikhq: I know. It's just what the discussion turned to. 20:14:08 Instruction count means absolutely, positively *nothing* on modern CPUs, after all. 20:14:16 oh it's actually performed instructions, not source size... 20:14:32 ais523: Awesome, then number theory and I won that discussion after all :D 20:14:40 I didn't believe the question either, that's why it took so long for me to work out what NihilistDandy meant 20:14:41 NihilistDandy: Still bloody weird. But at least you realise it's pointless. :) 20:14:55 lol 20:14:56 the great thing about the channel, though, is that you get an answer even if people don't understand why the question 20:15:09 I'm too #esoteric for #esoteric :D 20:15:10 whence bathyspheres? 20:15:19 whereas in most channels, you get told off for asking questions like that 20:15:43 oerjan: that way 20:15:50 hmm, does anyone know if Debian keep old versions of things around in repositories? 20:15:56 Yeah, very few channels have the mindset of "Yeah, that person may just like asking stupid questions." 20:15:58 ok, thanks 20:16:04 e.g. if a security bug is fixed, can you grab the version pre-fix from anywhere? 20:16:05 ais523: They don't really do that *much*. 20:16:10 bleh 20:16:16 what about md5/sha1 hashes? 20:16:30 I dunno. 20:16:38 ais523: At least not in the same places, because if you try to install things without updating your copy of the indices, you tend to get 404 errors relatively soon. 20:16:43 so that if someone gives you a library and says "this is version 3.4.foo of bar from Debian", you can verify that they're telling the truth and haven't given you a malicious executable 20:16:46 Oh, snapshot.debian.org 20:17:15 They store all old package versions. 20:17:22 thanks, that's exactly what I wanted 20:17:23 Well, from 2005 to present. 20:18:03 (╯°□°)╯︵ ┻━┻ 20:19:48 ais523: The hashes of binary packages are also mentioned in the "accepted X" emails sent on the foo-changes@ mailing lists, which are archived. Not sure if there's an easy way to navigate those, though, since packages.qa.debian.org just links to the newest twenty or so. 20:20:31 elliott, don't click this until you read new Homestuck update, but I just want to say I'm lolling at http://bit.ly/nJn669 20:20:43 i wonder who actually gets paid for .ly domains now... 20:21:42 Libya Telecom & Technology. 20:21:59 Though they *probably* aren't running too well. 20:22:26 if they even have standing offices anymore 20:22:56 How fucked is Tripoli, anyways? 20:23:30 Like, 15 or 20 on a scale from 1 to 10? 20:23:57 Like B---------------O----------------D this fucked 20:24:08 So, quite 20:24:16 i was going to say 9 as a wild guess. although presumably that mostly applies to government buildings... 20:24:20 But only halfway there 20:26:47 oerjan: LT&T is pretty much a government thing. 20:27:29 at least their website is up 20:27:36 oerjan: It's ran by the son of al-Gaddafi, so... 20:27:59 _the_? he has at least a handful and some are dead. 20:28:11 s/the/a/ 20:28:16 FROM BEYOND THE GRAVE 20:28:49 actually it may be just one dead so far, i haven't paid attention 20:33:02 Google's traffic report seems to suggest there's actually a bit more interweb traffic out of Libya after about mid-July; the curve's been pretty flat since beginning of March: http://www.google.com/transparencyreport/traffic/?r=LY&l=EVERYTHING&csd=1296645717109&ced=1311539850000 20:33:13 @pl \l1 l2 a b -> (l1 a) == (l2 b) 20:33:16 hm... 20:34:05 -!- derrik has quit (Quit: over and out). 20:34:47 :t uncurry (==) . (?l1 *** ?l2) 20:34:48 forall a (a1 :: * -> * -> *) b b'. (Eq a, ?l1::a1 b a, ?l2::a1 b' a, Arrow a1, Functor (a1 (b, b'))) => a1 (b, b') Bool 20:34:58 god have mercy 20:35:17 God is dead 20:36:18 :t uncurry (uncurry (==) . uncurry (***)) 20:36:19 Couldn't match expected type `b -> c' against inferred type `Bool' 20:36:19 In the first argument of `(.)', namely `uncurry (==)' 20:36:19 In the first argument of `uncurry', namely 20:36:21 bah 20:37:05 :t uncurry ((uncurry (==) .) . uncurry (***)) 20:37:06 forall b b' c'. (Eq c') => ((b -> c', b' -> c'), (b, b')) -> Bool 20:37:26 hm right 20:37:31 :t curry ((uncurry (==) .) . uncurry (***)) 20:37:31 forall (a :: * -> * -> *) b b' c'. (Eq c', Functor (a (b, b')), Arrow a) => a b c' -> a b' c' -> a (b, b') Bool 20:37:56 :t curry ((uncurry (==) Prelude..) . uncurry (***)) 20:37:56 forall b b' c'. (Eq c') => (b -> c') -> (b' -> c') -> (b, b') -> Bool 20:38:18 oh hm 20:39:15 :t curry (curry . (uncurry (==) Prelude..) . uncurry (***)) 20:39:15 forall b b' c'. (Eq c') => (b -> c') -> (b' -> c') -> b -> b' -> Bool 20:39:19 yay 20:39:25 twice11: ^ 20:39:49 -!- Phantom_Hoover has joined. 20:39:50 -!- Phantom_Hoover has quit (Changing host). 20:39:50 -!- Phantom_Hoover has joined. 20:39:59 i guess it may not be an improvement over the flips 20:45:24 http://wondermark.com/740/ 20:46:41 @pl liftM 20:46:41 fmap 20:46:46 bleh 20:47:01 :t (return.) . (flip (>>=)) 20:47:02 forall (m :: * -> *) (m1 :: * -> *) a b. (Monad m, Monad m1) => (a -> m1 b) -> m1 a -> m (m1 b) 20:47:06 umm, that's backwards 20:47:08 @t liftM 20:47:08 Maybe you meant: tell thank you thanks thx ticker time todo todo-add todo-delete topic-cons topic-init topic-null topic-snoc topic-tail topic-tell type . ? @ ft v 20:47:11 @type liftM 20:47:12 forall a1 r (m :: * -> *). (Monad m) => (a1 -> r) -> m a1 -> m r 20:47:16 @type fmap 20:47:16 forall a b (f :: * -> *). (Functor f) => (a -> b) -> f a -> f b 20:47:20 :t (flip (>>=)) . (return.) 20:47:20 forall (m :: * -> *) a b. (Monad m) => (a -> b) -> m a -> m b 20:47:23 there we go 20:47:33 @src seq 20:47:37 I worked that out last night, and it increased my understanding of monads somewhat 20:47:43 @src fmap 20:47:43 Source not found. Your mind just hasn't been the same since the electro-shock, has it? 20:47:54 @src liftM 20:47:54 liftM f m1 = do { x1 <- m1; return (f x1) } 20:48:01 I prefer my definition 20:48:11 seq cannot be defined in haskell, except for specific datatypes, and not at all e.g. for functions. 20:48:57 @undo do { x1 <- m1; return (f x1) } 20:48:57 m1 >>= \ x1 -> return (f x1) 20:49:06 @pl m1 >>= \ x1 -> return (f x1) 20:49:06 f `fmap` m1 20:49:12 heh 20:49:19 The power of Caleskell. 20:49:35 i don't think @pl is the same as caleskell 20:50:07 -!- Phantom_Hoover has quit (Ping timeout: 264 seconds). 20:50:08 I thought the `fmap` there was, though. 20:50:18 In normal Haskell, that'd have a different type. 20:50:39 not really, @pl just doesn't distinguish liftM from fmap 20:50:49 any reasonably Monad should have them equal 20:50:55 *le 20:51:01 @pl (\a b c -> a c (b c)) 20:51:01 ap 20:51:28 @src ap 20:51:29 ap = liftM2 id 20:54:11 -!- ais523 has quit (Remote host closed the connection). 20:56:23 CakeProphet: For a fixed arity, I suppose you can always work around the lack of (`f`) with (\x y -> (x`f`y)). Especially if you choose suitably easily overlookable Unicode characters for x and y. (\ו י -> (ו`f`י)) maybe? 20:56:45 um (`f`) _would_ be equivalent to (f) if it worked 20:57:02 Well, yes, but it doesn't. 20:57:18 i mean you can work around it by simply saying (f) :P 20:57:42 The "point" (I use the word very loosely) was to say "f" in a more complicated way. 20:57:47 O KAY 20:58:23 however (\x y -> (x`f`y)) is _not_ quite the same as f, if f is not a two-argument functino 20:58:28 *ion 20:58:40 Right, that's why it's just a workaround. 20:59:05 functinos, the elementary particles of functional programming 20:59:08 An imperfect one, that is. 21:00:00 Deewiant gave a slightly better one a bit later. 21:02:13 oerjan: Quite impressive, but really no improvement over the flips. 21:03:25 sadly so 21:04:08 :t uncurry(***) 21:04:08 forall (a :: * -> * -> *) b c b' c'. (Arrow a) => (a b c, a b' c') -> a (b, b') (c, c') 21:18:56 -!- CakeProphet has quit (Ping timeout: 260 seconds). 21:27:48 -!- zzo38 has joined. 21:47:37 -!- MigoMipo has quit (Read error: Connection reset by peer). 22:04:48 -!- TeruFSX has joined. 22:12:33 -!- TeruFSX has quit (Read error: Connection reset by peer). 22:14:55 -!- TeruFSX has joined. 22:17:04 From Doctor Who WMG: 22:17:05 "One of the Characters is a Time... oh, wait. 22:17:06 " 22:20:12 http://tvtropes.org/pmwiki/pmwiki.php/WMG/DoctorWho I'm loving this 22:20:25 what is WMG? 22:20:34 Wild Mass Guessing 22:20:45 One theme in WMG pages is that one of the characters is a Time Lord 22:20:56 So, in Doctor Who, well... 22:21:07 SGEO IS A TIME LORD 22:21:27 My favorite WMG was "The Doctor is *not* a Time Lord" 22:27:40 "The Doctor is a fruit fly" this one rings true to me 22:29:17 I looked at ZPAQ and it seems to contain many redundant opcodes. 22:30:36 -!- TeruFSX has quit (Ping timeout: 276 seconds). 22:30:56 Opcodes 4, 136, and 196 are all equivalent. 22:31:04 Opcode 64 is useless. 22:31:30 Opcodes 224 and 232 are equivalent. 22:43:34 -!- NihilistDandy has quit (Quit: cookin'). 22:45:16 -!- MDude has quit (Ping timeout: 240 seconds). 22:52:56 -!- elliott_ has joined. 22:56:34 01:41:41: I'm doing the Mandelbrot set with this: length $ takeWhile ((<2) . magnitude) $ take maxIters $ iterate step $ 0.0 :+ 0.0 22:56:38 use . instead of chained dollars 22:56:39 hth 22:56:46 hi oerjan :P 22:56:50 i ate some mandelbrot today 22:57:04 g'day 23:07:55 Actually I think opcode 208 seems also equivalent to opcode 4 23:08:25 As well as opcode 160 23:09:11 No, wait... opcode 208 isn't. 23:10:46 But opcode 168 is the same as opcode 64, and opcode 176 is the same as opcode 4. 23:14:17 Actually I think opcode 160 might result in undefined behavior in some implementations if A is zero 23:19:33 02:50:37: http://pastebin.com/PXcS0k5G < is my code horrible? 23:19:41 Lymee: don't use exception handling to handle your failed pattern match. 23:19:44 that's super gross 23:20:14 Lymee: also, add top-level type signatures, and ditch parseInt/parseDouble, they're just kludges for not declaring your types. 23:21:05 03:09:45: well -O2 is effective, iirc -O3 sometimes gets worse, and i don't think there's a difference beyond that 23:21:14 oerjan: cabal does -O by default because -O[two] is usually wasteful 23:21:17 (nowadays) 23:22:40 well i corrected myself after actually looking at the manual 23:22:50 03:24:57: http://www.malevole.com/mv/misc/killerquiz/ 23:22:50 03:25:52: Not funny. 23:22:50 03:25:52: =p 23:22:50 it's ancient but mostly way too easy 23:23:14 04:34:56: honestly are there programmers out there who think abstraction is in general bad? 23:23:14 yes, or more generally manual abstraction 23:23:34 there's some work on basically making copy-and-paste "safe", by the logic that we all do it anyway 23:23:39 and abstract automatically like that 23:23:45 subtext is IIRC based around that in part 23:24:16 how does that work 23:25:11 monqy: by making changes of copied stuff turn into parameters, presumably 23:25:14 i mean, essentially 23:26:28 -!- azaq23 has joined. 23:26:59 elliott_: if he's not to use exception handling he'd have to use reads, which is rather more awkward there. 23:27:20 oerjan: so define a helper 23:27:26 ?hoogle (Read a) => String -> Maybe a 23:27:26 Network.CGI.Protocol maybeRead :: Read a => String -> Maybe a 23:27:26 Network.CGI readCookie :: (Read a, MonadCGI m) => String -> m (Maybe a) 23:27:26 Network.CGI readInput :: (Read a, MonadCGI m) => String -> m (Maybe a) 23:27:31 Network.CGI.Protocol maybeRead :: Read a => String -> Maybe a 23:27:32 oh come on 23:27:54 i suspect maybeRead is what you mean 23:27:55 12:50:56: http://www.reddit.com/r/programming/comments/ixkql/how_to_make_a_compiler_1000_times_faster/c27guh6 I... uh... 23:27:55 see response 23:28:04 oerjan: yeah but the module :P 23:28:45 13:05:56: http://sds.podval.org/ocaml-sucks.html is it just me or does this article have a mix of stupidity and insight? 23:28:46 i looked at this guy's homepage when i saw this and started ignoring him after seeing "support Israel's right to self-defense!" and a link to esr's Anti-Idiotarian Manifesto 23:29:00 but... that article on ocaml is pretty reasonable. 23:29:04 elliott_, did you see my earlier log ping of you? 23:29:10 no 23:29:24 08:59:54: elliott, don't click this until you read new Homestuck update, but I just want to say I'm lolling at http://bit.ly/nJn669 23:29:35 i raged when i saw the first line with multiple commas about half-way through 23:29:39 but then i was laughing too hard to rage 23:31:00 Sgeo: it wasn't earlier. 23:31:19 13:23:53: and they have the audacity to make claims on the computational power of the known universe 23:31:28 itidus20: it is not audacity to make predictions based on available evidence. 23:31:55 as long as they realize their own axioms are all fragile 23:32:12 What does "fragile axiom" even mean? 23:32:23 it means that it will eventually break 23:32:37 ok, you've stopped making sense so i can't respond to that. 23:32:40 I mean, sure, you could question whether some math equations actually do apply to the real world, but axioms are just... 23:33:04 well they _do_ know that, with the whole quantum mechanics vs. general relativity inconsistency 23:33:22 Although I guess it is possible to eventually discover that commonly used axioms lead to a contradiction 23:33:50 there is no end to it.. every last axiom will probably get contradicted given sufficient "time" 23:34:04 @hoogle Read a => String -> a 23:34:04 Prelude read :: Read a => String -> a 23:34:04 Text.Read read :: Read a => String -> a 23:34:04 Prelude readIO :: Read a => String -> IO a 23:34:14 er wait 23:34:21 @hoogle Read a => String -> m a 23:34:21 Prelude readIO :: Read a => String -> IO a 23:34:21 System.IO readIO :: Read a => String -> IO a 23:34:21 Network.CGI.Protocol maybeRead :: Read a => String -> Maybe a 23:34:33 itidus20: And you have the audacity to make claims about the strength of every axiom? 23:34:48 "as long as they realize their hypocrisy is fragile" 23:34:53 oh hm readIO could actually be used but it would be almost using exception handling :P 23:35:05 At least _they_ are experts in their field... 23:35:18 oerjan: it would involve using exception handling 23:35:26 ?hoogle IO a -> IO (Maybe a) 23:35:26 System.Timeout timeout :: Int -> IO a -> IO (Maybe a) 23:35:26 Control.Applicative optional :: Alternative f => f a -> f (Maybe a) 23:35:26 Prelude Just :: a -> Maybe a 23:35:32 i guess i'm not actually helping anyone with my comments 23:35:44 more like a heckler 23:36:16 my point was not a personal one 23:37:24 Every atheist would pretty much say that theologians are .. incorrect (well, every atheist who thinks about it. 23:37:26 we tend to claim that the one sure thing is death.. but we don't even know what that consists in.. death remains undefined 23:37:38 And I still have reservations about saying "every atheist", but I think it makes sense here 23:37:50 Sgeo: for some specific definition of theology. 23:37:59 it is not impossible to make valid claims about beliefs and belief systems 23:38:19 if you think theology is just people saying "christianity is true" all day... well, lol @ you? 23:38:39 itidus20: "we" 23:38:45 The only time I ever hear that is coupled jokingly with "taxes" 23:39:00 ok i think whats happening is that i have left a chatroom full of people always trying to ram a belief down my throat of a spiritual nature, to a room full of computer scientists who can actually relax 23:39:08 And we know what death consists of, i.e. we know generally what the process of death involves 23:39:19 elliott_, oh, I was considering theology to be more of an assumption that the underlying belief is true. Or at least contain such an assumption. Rather than things of the form "Christianity says this, Judaism says this" etc 23:39:25 Some people attach additional spiritual elements to that moment, but that's separate from what "death" actually involves as far as our universe is concerned 23:39:27 i'm still defensive. 23:39:46 Sgeo: Well, sure, it could take that form? But then it just has an implicit "If [belief] is true, then...". 23:40:06 Hmm, ok 23:40:37 I don't know much about theology, but it seems that the only way it could consist entirely of false statements was if it was literally a party game involving saying that your religion is true 23:40:45 oblig.: And that's called church 23:41:15 elliott_: i suspect optional may actual do the right thing, assuming IO has the Alternative instance i expect 23:41:23 i was in a chatroom with a bunch of people who hated everyone 23:41:40 > optional (read ")" :: Int) 23:41:41 Couldn't match expected type `f a' 23:41:41 against inferred type `GHC.Types... 23:41:49 > optional (read ")" :: Int) :: IO (Maybe Int) 23:41:49 Couldn't match expected type `GHC.Types.IO GHC.Types.Int' 23:41:49 against i... 23:41:51 * elliott_ grumble 23:42:03 itidus20: no, we just hate Vorpal and cheater_ here ;-) 23:42:06 ?ty optional (read ")" :: Int) :: IO (Maybe Int) 23:42:07 Couldn't match expected type `IO Int' against inferred type `Int' 23:42:07 In the first argument of `optional', namely `(read ")" :: Int)' 23:42:07 In the expression: optional (read ")" :: Int) :: IO (Maybe Int) 23:42:13 hehe 23:42:23 ?hoogle optional 23:42:23 Control.Applicative optional :: Alternative f => f a -> f (Maybe a) 23:42:23 Text.Parsec.Combinator optional :: Stream s m t => ParsecT s u m a -> ParsecT s u m () 23:42:23 Text.ParserCombinators.ReadP optional :: ReadP a -> ReadP () 23:42:32 oerjan: I don't know if it has one 23:42:55 oh wait 23:42:57 I need a return 23:43:03 oerjan: IIRC that catching errors in IO doesn't catch pure errors 23:43:15 Prelude Control.Applicative Control.Exception> optional (evaluate (read ")") :: IO Int) 23:43:15 :1:1: 23:43:15 No instance for (Alternative IO) 23:44:05 http://esolangs.org/w/index.php?title=User:Alexanderdna&curid=4076&diff=24010&oldid=24004 23:44:09 grmbl 23:44:17 oerjan: can i say grml is that o.k. 23:44:31 but among those hateful people i did find one guy who started to teach me actual things 23:46:13 I am confused about the truth of axioms. 23:46:34 Clearly they work. 23:47:04 The numbers 0,1,2,3,4,5 can be expected to hold firm for millions of years 23:47:12 > mzero :: IO () 23:47:13 Overlapping instances for Control.Monad.MonadPlus GHC.Types.IO 23:47:13 arising f... 23:47:14 billions etc 23:47:17 oerjan: argh 23:47:23 oerjan: (there is: 23:47:26 MonadPlus m => Alternative (WrappedMonad m) 23:47:26 (ArrowZero a, ArrowPlus a) => Alternative (WrappedArrow a b)) 23:48:16 but the question then is can the countability of things dissapear ever? or rather... can the potential of someone to exist who can count ever dissapear? 23:48:30 can any potential ever dissapear? 23:49:01 and what is the substance of which potentials are made :-? 23:49:30 does there have to be a substance 23:49:36 nope 23:50:50 so, then the question probably becomes, what are the dependant factors of potential 23:51:22 i mean, what is potential dependant upon 23:51:38 and i'd rather make a coffee than worry about that right now 23:53:03 oerjan: hm try :: Exception e => IO a -> IO (Either e a) 23:53:23 ?hoogle \a b -> catch a (const b) 23:53:23 Parse error: 23:53:23 --count=20 "\a b -> catch a (const b)" 23:53:23 ^ 23:53:27 ?pl \a b -> catch a (const b) 23:53:27 (. const) . catch 23:53:29 oh duh 23:53:32 ?pl \b -> catch a (const b) 23:53:32 catch a . const 23:53:42 instance Alternative IO where 23:53:42 empty = ioError (userError "empty") 23:53:42 (a <|> b = try a (const b) 23:53:43 anyway 23:53:46 erm without paren 23:54:15 [...] to a room full of computer scientists who can actually relax <-- you _do_ realize there are a considerable number of sometimes a bit insistent atheists in here, right? 23:56:17 atheism means an army without a leader :D 23:56:26 means peace? maybe :P 23:56:47 Richard Dawkins perhaps. 23:56:55 richard dawkins is an asshole 23:57:10 Someone noticed he looks like Emma Watson 23:57:14 does christianity have a leader? buddhism? 23:57:15 what 23:57:39 http://images.icanhascheezburger.com/completestore/2008/10/6/128677918460759115.jpg 23:57:49 a percieved god is a leader 23:57:50 oh right that 23:58:07 itidus20: plenty of buddhist sects are atheistic (in the technical sense) 23:58:27 ya.. the room i was in was full of buddhists.. but that doesn't make me a buddhist. i was more a spectator 23:58:38 sgeo goes to #jesus 23:58:41 or at least he used to 23:58:46 > optional (read ")" :: Int) <-- sheesh i meant with readIO duh 23:58:52 hes totaly a christan 23:58:57 i'm more level headed than most of them 23:59:00 oerjan: o irte 23:59:13 ok not most of them 23:59:22 but teres a few ya see who are just completely nuts 2011-07-25: 00:01:00 someone points out that emma watson pic probably photoshopped 00:01:09 isn't it obvious 00:03:56 the conclusion i have reached is that religions can't make any claims which are beyond question and still have anything to do with them being religions 00:04:02 I have thought of a few more things about the algorithm I was having problems with recently. 00:04:34 in other words, to 'force' a conversion you have to distort the truth somehow 00:05:05 If you have "A[B]C", then maybe you can deal with "AB" and "AC" separately and then figure out if there is combined way of results like that 00:05:35 Because the result of "A" must agree in the final output 00:06:21 itidus20: some people are gullible or think badly 00:07:04 monqy: yup.. in addition, many people are manipulative and opportunistic 00:07:20 If you have "YZ" but "Y" and "Z" has no words shared in them (such as "-a-a-a-a-a-b-b-b-b-b-a-a-c-c-c-c-c-d-d-d-d-d-c-c-c") then you can treat them separately; I don't know if this helps though. 00:07:45 itidus20: parents 00:08:11 hehe 00:08:45 itidus20: this reminds me of a comment i found on godel's lost letter today: "Buddhism discourages insistence (執著). A common pitfall is to insist on being non-insist." 00:08:54 If there is a word that can only appear once, then possibly it can be ignored. 00:09:16 (in fact i thought of you while reading it, since i had the impression you were something like a buddhist) 00:09:45 oerjan: I have read something like that. 00:10:18 (http://rjlipton.wordpress.com/2011/07/23/self-defeating-sentences/#comment-12512) 00:12:29 zzo38: the problem with dealing with AB and AC separately is that the combined cost is essentially A+B+C, meaning that the optimal choice for A might be different in AB, AC and A[B]C 00:12:43 this reminds me of subset sum and that kind of problem 00:13:28 which might lead to a way of proving it NP-complete, perhaps 00:13:38 oerjan: Yes now I can see that too. What is subset sum and that kind of problem? 00:14:17 or maybe hamiltonian circuit stuff as well 00:14:31 any NP-complete problem which requires summing things, i guess 00:14:47 er wait not hamiltonian 00:14:52 What is hamiltonian circuit stuff? I don't know much about these kind of things. I do not have much experience with it. 00:14:52 traveling salesman 00:15:01 oerjan: i hanged out with them.. i never admitted to being one though 00:15:01 :D 00:15:08 (online) 00:15:24 I can look in Wikipedia some things 00:15:43 zzo38: traveling salesman is the problem where you have a map (really graph) with distances between "cities" and you want to find the shortest path which passes through all of them 00:15:48 and i met this one buddhist who was actually quite wise.. 00:16:59 I learned to approach buddhism with a wikipedia mindset. 00:17:10 oerjan: Yes the traveling salesman is one I have heard of, and yes I know what that is. (I don't know much else about it, except that one cover of mathNEWS joked about finding a O(1) solution (which is, shooting them).) 00:17:24 Taking each piece of "text" which comes to me and wondering what it's source is. 00:18:19 ok ok as an example.. as an example 00:18:29 take the bible.. there is no abstract bible. 00:18:35 only instances called bibles 00:18:36 zzo38: oh i realized something, it is not fixed which names have to printed inside each [ ] is it. so you can move printing things across the brackets... 00:18:42 *to be 00:18:56 that makes it even more complicated 00:18:59 each bible was published somewhere.. edited by someone.. liable to errors by that publisher and that editor 00:19:09 oerjan: Moving things across brackets is not allowed. 00:19:51 (Unless it is only temporary in order to help with the algorithm) 00:20:41 oh. 00:20:58 as I gradually start to see things this way I started gradually dismissing buddhism etc. attacking it with loud rants. 00:21:21 Although it doesn't look to be the same problem as hamiltonian or traveling salesmen, I don't know whether there can be similar ideas or not. 00:21:31 and then slowly i started to see that some of the people i thought were friends there were actually just manipulative like rotten apples. 00:21:33 yes iirc buddhism has some trouble tracing back its sources 00:21:53 oerjan: hehe. indeed 00:22:13 islam tried very hard to avoid that, by getting things written down as soon as possible. but of course you still have to believe in muhammed for it. 00:22:40 the trick is to just force everything to follow the rules of logic 00:23:04 that's called science 00:23:15 (i think muhammed criticized older religions for being unreliable in that way, so his followers had particular reason) 00:23:41 lol muhammad was all "let's make this one LAST, guys" 00:23:48 :) 00:24:47 when arguing iwth muslims my attack tends to be of the form "suppose that allah lied to the prophet, or mixed truths with lies" 00:25:22 because they tend to base their case on how the quran contains truths 00:25:38 doesn't allah lie as a rule 00:25:41 not lie i mean 00:26:39 its also worth mentioning that apparently the name means "true god" and yet it is never translated as such which is curious 00:27:01 and im sure theres some psychological tactic to giving him 100 names 00:27:44 yes iirc buddhism has some trouble tracing back its sources <-- on the other hand, Buddhism iirc clearly states that the stories are based on what they heard for a few generations. 00:28:02 but religions as we see them today are set up like puzzles for the houdini to wrestle his way out of 00:28:13 oerjan, so they kind of avoid the problem by explicitly stating that it may or may not be a perfect account 00:28:28 it is not a perfect account :D 00:28:42 those who say it is are naive 00:28:44 itidus20, exactly. And it openly admits it 00:28:49 itidus20, that is my point 00:29:02 Are there other Wikipedia articles that have things that can have some things related to my problem? 00:30:08 vorpal: yeah... but then... you come at buddhism thinking, well is there anything of value in this if i try to have a mindset of seeking truths rather than trying to abide by some community's sense of oblivion 00:30:29 itidus20, hm? I'm not sure I understand what you meant there 00:30:46 right. i'll try and use proper english 00:31:02 itidus20, don't worry, it is not my native language anyway ;P 00:31:37 oh what i said makes no sense. that is true 00:31:51 right, not just me then 00:32:33 basically, there are certain properties common to religions.. a certain heavyness. creating obedience, followers, worshippers. blind faith 00:32:57 itidus20, not blind faith when it comes to Buddhism though 00:33:23 itidus20, I believe one of the books openly state that you should question everything. 00:33:26 haha 00:33:30 but even buddhism has this dominating presence 00:33:30 yes nobody ever corrupts religious texts 00:33:33 like a monolith 00:33:47 fuck this meme of buddhism being this perfect beautiful religion of peaceful nice people NOT LIKE THOSE OTHER RELIGIONS 00:33:51 it's a very subtle aspect of religions, almost unspoken. 00:33:57 I'm not a Buddhist myself, but... looking at the major religions it seems the one *least* out of touch with the modern world 00:34:10 I'm perfectly happy to not believe in a religion. 00:34:24 ha ha ha 00:34:26 ha ha ha ha ha ha ha 00:34:30 ha ha ha ha ah ah h ha ha haha ha ha ha ha haha 00:34:36 elliott_, come on, tell us what is so funny 00:34:39 i did 00:34:47 zzo38: maybe http://en.wikipedia.org/wiki/List_of_NP-complete_problems unfortunately it has many non-existent links 00:35:10 a certain someone didnt fuck a certain meme when eliot told -- to 00:35:12 vorpal: the thing is though. simply including a few lines to say "you should question everything" doesn't entirely outweigh the reality-warping presence of a religion. 00:35:18 elliott_, I never claimed buddism was perfect... But as far as I know there has been no holy wars in its name for example. 00:35:22 this is hihgly funyn 00:35:42 itidus20, that is true 00:35:43 it's a valuable statement yeah. 00:35:48 any holy wars in zoroastrianism's name 00:35:59 ?? 00:36:00 elliott_, I never heard of that religion even 00:36:04 heh 00:36:11 uhh.. it's such a statement can be used to lure people into a sense of security 00:36:33 so then it gets very confusing as to where to proceed next 00:37:27 with religion, there is this tendancy to let the mind relax and just believe any nonsense as if under hypnosis 00:37:48 itidus20, good point indeed. But why not follow the advice of putting the religion itself under scrutiny. If you feel you need a religion at all. 00:38:02 some do, some don't 00:38:20 the ones who do tend to be abrasive and cynical 00:38:28 do what? 00:38:29 but good hearted 00:38:32 need religion? 00:38:40 some do put it under scrutiny 00:38:42 ah 00:38:53 * elliott_ bets Vorpal thinks buddhism doesn't have a hell either 00:39:09 am i abrasive and cynical 00:39:12 elliott_, well, that depends on how you define it. 00:39:17 Vorpal: no, it does not: http://en.wikipedia.org/wiki/Naraka_(Buddhism) 00:39:21 hth. 00:40:07 elliott_, sorry you misunderstood it. I was talking about the bit about "thinks" here. I never considered it in fact. I haven't studied the religion in depth, and never claimed to have done that. 00:40:18 hmm 00:40:44 vorpal: so that last point i was making... its really about learning in general.. 00:40:53 itidus20, very deep 00:40:53 theres that point where a religion can't tell you 00:40:58 indeed 00:41:01 yup 00:41:03 thats the clincher 00:41:19 that whole idea about leading a horse to water 00:41:35 itidus20, so pick up a few good suggestions about how to behave towards other people, and then ditch the rest of the religion :P 00:41:44 oh.. its not like that 00:42:15 there is something which a person has to bring about on their own "like a horse drinking from the water" 00:42:33 and.. i don't know what it is 00:42:51 itidus20, err what? 00:43:09 like a person has an innate sense of how to seek truths 00:43:22 but, a religion sort of constrains them 00:43:33 itidus20, You completely lost me now 00:44:12 uhm.. i just lost me too 00:44:21 i understand completely >:D 00:44:45 oerjan, really? 00:45:19 i may be exaggerating a bit 00:45:29 to deny everything in a religion is going too far 00:45:33 it can contain truths 00:45:48 oh yes indeed. 00:45:51 to deny nothing in a religion is not going far enough 00:45:59 agreed 00:46:12 buddhism also references "discrimination" 00:46:31 itidus20, I was not suggesting you would explicitly deny it. Just leave it as "unknown" until further notice. Tri-state logic or something (okay, not quite that) 00:46:51 uhh.. basically........ 00:46:57 comex_: why're you trying to exile coppro 00:47:03 there is never any benefit from playing dumb when seeking truth 00:47:16 like.. pulling punches.. compromising.. making allowances.. 00:47:30 never say never 00:48:23 and religions expect you to just make all these compromises for the benefit of said religion 00:49:11 it is you seeking truth.. 00:49:21 oerjan: That list of NP-complete problems doesn't seem to help me much, especially since most are linked to nonexisting files 00:49:42 and so.. when thinking about a religion a suggestion comes to you "I should deny the evidence before me because my religion says so" 00:51:25 there is no room for white lies in the search for truth 00:51:37 I wonder if there are other ways to change my problem to equivalent ones 00:53:34 zzo38: well the usual way to prove a problem NP-complete is to make a reduction from an NP-complete problem to it, similar to turing-completeness (except the reduction must be polynomial time, not just computable) 00:54:43 oerjan: I used to wish there was an add-on term to TC that included being able to do things with the same time complexity, but then I realised that UTMs are slower than real-world computers 00:55:12 I'm not sure what the correct model is; things with bignum addresses tend to have constant-time natural arithmetic, which is, of course, impossible 00:55:21 (Well, "of course") 00:55:52 yeah anything finer grained than polynomial tends to depend on model 00:56:40 and this leads up to asking if anything of value is left in buddhism if you approach it stoically, to never say "I should deny the evidence before me because my religion says so" 00:56:43 (of course some models like minsky machines don't even get that) 00:57:08 to never say "I should subvert my search for truth for some other purpose" 00:57:13 oerjan: which is upsetting... It seems "obvious" that you can't do addition in constant time, but explaining why tends to invoke a real-world-esque assembly language doing a bignum addition loop 00:57:15 Which is ridiculous 00:57:21 oerjan: OK, I think I understand what you mean (a little bit, at least). I don't know if that can solve my problem, though, or how it can do so. 00:57:31 Why does our universe have these apparent time complexities? 00:57:48 to never say "I should subvert my search for truth because it makes buddhism look bad.. or it offends someone.. or it brings up things I can't face" 00:58:01 -!- Sgeo_ has joined. 00:59:22 and you can always suppose you were the only human left alive.. and try and put yourself in those shoes and wonder which artifacts of religion would persist in your mind despite all the people who care being dead 00:59:30 wow, there's a Wikipedia article on [[Essjay controversy]] 00:59:40 -!- Sgeo has quit (Ping timeout: 276 seconds). 01:00:10 itidus20: Everything would persist in your mind, you can't "undo" growing up in an environment 01:00:17 yup 01:01:59 elliott_, why wouldn't it? 01:02:07 Sgeo_: ? 01:02:15 wow, there's a Wikipedia article on [[Essjay controversy]] 01:02:40 well, I forgot that it received significant media coverage 01:02:49 and I'm unsure how objective Wikipedia can be on that topic :P 01:03:38 zzo38: it's sad that the Code Generation section is entirely missing links 01:04:41 oerjan: link? 01:04:43 to context 01:05:16 http://en.wikipedia.org/wiki/List_of_NP-complete_problems#Code_generation 01:05:45 oerjan: I can see that. 01:05:53 oerjan: ugh :/ 01:05:54 That isn't the only one. 01:06:07 (reminding that i am not a buddhist before i continue) i think there is a certain error where people invent conceptions to explain religions. 01:06:11 oerjan: Wikipedia tends to lack a lot of in-depth material on CS, I notice; I suspect with a lot of other topics, too 01:06:11 There are other problems entirely missing links 01:06:54 as far as a god goes, if such a god exists you won't find him by trying to imagine a subset of the universe and giving it a booming voice 01:07:13 if there is a god, you don't have to imagine it right? its not about imagining 01:07:24 its just an interpretation of what you see 01:07:31 itidus20: see pantheism 01:07:48 god as the universe, right? 01:07:55 oerjan: /msg 01:07:56 itidus20: yes 01:08:22 suppose i suddenly found a box .. i could spend a week imagining what is inside it 01:08:48 good imagination 01:08:59 I'd probably get bored after a few minutes 01:09:03 And then someone will force you to look inside and now the state is changed due to observing it 01:09:12 well i could iterate through all the items in my bedroom 01:09:24 and suppose that similar items existed in the box 01:10:26 so imagination is not a very accurate tool 01:11:05 you've gone confusing again 01:11:19 well suppose the universe is the box 01:11:24 good supposition 01:11:36 and the reason you can't see is because its too big instead of too small 01:12:11 now if you imagine a god it might be outside of this box, or inside of it, (or both, or neither... ) 01:12:20 or it might be the box 01:12:41 or maybe its an analogy which can't go far enough 01:12:47 whats a god................................ 01:12:58 My opponent's plan doesn't go too far enough! 01:13:11 congratulations 01:13:34 does your plan go too far enough 01:13:42 im not entirely atheist.. im more agnostic i think 01:14:03 if i'm scared enough i'll pray 01:15:16 but then theres this idea of the economics of, on the one hand, a group proliferating the idea of a god, and on the other hand people deriving a sense of security from it 01:16:00 praying in times of stress doesn't stop you being an atheist, it just means you're being irrational at the time (as far as an atheist is concerned) 01:16:04 and a supply demand idea of: if people like me didn't thump bibles all day you wouldn't have any god to take refuge with in times of stress 01:16:12 it would be kind of cool if atheism made you ALL RATIONAL ALL THE TIME 01:16:33 yeah, atheism is a bit of a religion like that.. 01:16:49 um, it is? 01:16:49 it is sticking to a hard line for its own sake rather than examining evidence on it's own merits 01:17:08 nah, that's a corruption of the term by idiots who ~just deconverted~ and religious people 01:17:25 oerjan: I wonder if anyone else can help me, too, with my problem? 01:17:28 to trot out a cliché but accurate example, you wouldn't give credence to the idea of Russell's teapot, either 01:17:44 any "atheist" who thinks they can "disprove" god or that it's LOGICALLY false or whatever is just an idiot 01:18:00 elliott_, doesn't that depend on the definition of "god" in question? 01:18:35 but the idea of prayer as being rational or irrational.. itself may be irrational :P 01:18:38 Sgeo_: plz no, stop before you show ur prolog 01:19:00 itidus20: well from an atheist perspective, thinking prayer will produce results because a god will answer it is obviously irrational 01:19:23 Prayer could produce the "result" of calming you down, even from an atheist perspective 01:20:17 well duh. that still requires suspension of disbelief, which stress happily provides 01:21:06 ok i see 01:21:22 since prayer is worked by imagining a thing being prayed to 01:21:55 which is no doubt due to millenia of this and that 01:22:36 one day maybe the target of prayers won't be a self-interested entiyt 01:23:19 what do you mean by that 01:23:43 prayer is a transitive verb 01:23:48 well prayer like any ritual could act as stress relief. 01:23:56 I would not call it prayer if you don't expect it to "do" anything, though 01:24:01 more just... a ritual 01:24:09 do you mean "one day maybe people will pray to something that isn't a self-interested entity" or "maybe one day the things to which people pray won't be so self-interested" 01:24:59 maybe one day prayer won't be a covert taboo topic evoking religious imagery 01:25:00 :D 01:25:06 i like that second one monqy 01:25:08 itidus20: prayer is taboo? 01:25:16 prayer is like the least taboo thing, at least in some places 01:25:20 but that we are all conditioned to pray to pre-defined gods is clear 01:25:26 that is.. if we pray 01:25:33 It's official, I'm a fucking idiot. I was pressing the power button on my case because I was convinced that my case falli't attached to anything. I was wrong 01:25:43 *falling apart meant it 01:25:47 meant it wasn't 01:26:38 im starting to lose a grip on reality in my posts now 01:27:23 pray to the flying spaghetti monster 01:27:25 :D 01:28:17 no ;-; 01:28:31 oh what i mean is 01:28:37 yeah.. fsm is a constructed god 01:29:14 i don't know the story of all the gods etc 01:29:35 but fsm is certainly a constructed god just as scientology is a constructed religion 01:29:47 and how esperanto and lojban are constructed languages 01:30:24 or is the word esoteric 01:30:30 esoteric vs constructed 01:30:56 Scientology is not a proper religion, I think 01:31:04 proper? 01:31:43 proper? 01:31:56 it's a cult, but cult is just a word for religions that do things people don't like 01:32:09 It is more like someone who try to earn money and keep everything secret and so on they have reports. 01:32:19 the Church of Scientology(tm) is obviously a completely abhorrent organisation, objectively, but I don't see how you can dismiss the beliefs any more than another religion 01:32:28 there are freezoners who practice the beliefs outside of the CoS. 01:32:56 elliott_: I don't know about the freezoners. But maybe they are a more proper religion; I don't know. 01:33:15 zzo38: religion =/= religious organisation 01:33:32 Scientology-ala-CoS and Scientology-ala-free-zoners may be sects but they're the same religion 01:33:47 OK 01:35:22 linguistically "the truth" implies only one truth 01:36:15 the truth is the set of all things that are true 01:36:27 presumably you're proposing logical relativism 01:36:35 would the truth explain collective conciousness? 01:36:46 define "collective consciousness" :P 01:38:27 each individual probably has memories of being conscious in the past 01:38:35 former instances of their conciousness 01:38:54 and thus can potentially anticipate future instances of their conciousness 01:39:30 and can also try to guess what anothers conciousness is like.. but never really know 01:40:01 and so taking each individuals conciousness as a specific thing, one can imagine a generalization of conciousness 01:40:10 it has a visual field for example.. 01:40:59 but all these visual fields.. 01:41:10 each individual probably has memories of being conscious in the past 01:41:13 they don't seem to occupy a known space 01:41:14 what makes you say this? 01:41:20 but at the same time, I don't see how this relates to "the truth" 01:41:36 _everything_ relates to "the truth" :P 01:41:46 well that is not very helpful 01:42:01 how does the truth need to explain collective consciousness? 01:42:06 I don't think pure consciousness would have a visual field for sure. It might be related but I think it is not the same thing at all 01:42:09 (and why does the truth have any obligations at all?) 01:42:22 ok i am throwing a few fallacies around 01:42:26 have to catch myself.. 01:42:47 given that i don't know what the truth is i can't assume everything relates to it] 01:42:52 yada yada 01:42:58 My ideas of consciousness are very different and incomplete (mostly because I don't know everything). 01:43:44 elliot: good points. 01:43:59 answer is cos it would make life easier 01:44:34 it would be nice to make some general rule 01:44:46 itidus20: btw, i don't get an annoying reminder someone mentioned me if you misspell my name ;-) you could try tab completion ("ell" should do it) 01:44:53 (so I might not reply) 01:45:54 i don't know if my client has name completion 01:46:16 it does 01:46:26 one, every client does; two, you're using XChat 01:47:29 hehe 01:47:36 -!- Lymee has quit (Ping timeout: 240 seconds). 01:47:52 if i hit tab, it jumps around the GUI 01:47:56 I don't think every client does. 01:48:10 its just i don't know how to use the client 01:48:13 Maybe some have it optional or use different keys, too. 01:48:55 itidus20: you need to type in a name prefix first 01:49:18 Maybe you can use a macro if it would help better, I don't know... 01:49:19 oh i see 01:49:25 i have to use 3 characters 01:49:33 e l l tab 01:50:04 why didn't you just say ""ell" " 01:50:16 -!- FireFly has quit (Quit: swatted to death). 01:50:27 Maybe "el" is ambiguous because "Elizacat" also has that prefix (and names are case insensitive in IRC) 01:50:41 i assumed i could get away with just typing 1 letter 01:50:45 like "e tab" 01:50:53 and i read "ell" as "L" 01:50:57 um e works for me 01:51:08 completes EgoBot, though 01:51:29 * elliott_ goes to Settings → Preferences → Input box → Nick Completion and changes sorting to last spoken 01:51:36 (in XChat) 01:51:42 you may want to check that configuration too, itidus20 01:51:56 -!- Lymee has joined. 01:52:17 What I do know, is, there is different tab completion, such as Windows and GNU have two different kind of tab completion. Windows completes the entire text and pushing tab again completes a different filename, with GNU it only completes the unambiguous part and then if you push again, it list all of them. 01:53:02 EgoBot: test 01:53:03 wow 01:53:09 gnarly 01:53:26 Elizacat: test2 01:53:35 itidus20: * elliott_ goes to Settings → Preferences → Input box → Nick Completion and changes sorting to last spoken 01:53:35 ;-) 01:53:43 then it'll always be me because i never shut up 01:53:49 I don't know if they can change tab completion option between Windows-style and GNU-style 01:54:12 Elizacat: last spoken humm 01:54:16 weird 01:54:35 go figure 01:55:04 EgoBot: test 01:55:09 elliott_: test 01:55:25 meh it'll do 01:55:29 its pretty good 01:56:02 maybe it doesn't actually start registering when people speak before you set the option 01:56:07 (wild theory) 01:56:21 its fine now 01:56:26 its good enough -- beter than be fore 01:59:01 -!- cheater_ has quit (Ping timeout: 255 seconds). 02:02:13 back 02:07:37 i think the neighbors dog is in hear 02:07:39 heat 02:07:47 my dogs freaking out again 02:08:00 rips the damn fence palings in 2 to see the neighbours dog 02:11:59 -!- cheater_ has joined. 02:13:11 -!- Nisstyre has quit (Quit: Leaving). 02:15:08 -!- Nisstyre has joined. 02:57:29 -!- derrik has joined. 03:07:44 -!- jcp|1 has joined. 03:08:26 -!- jcp has quit (Ping timeout: 250 seconds). 03:09:22 -!- jcp|other has quit (Ping timeout: 258 seconds). 03:13:51 -!- jcp has joined. 03:16:56 -!- azaq23 has quit (Ping timeout: 240 seconds). 03:18:30 -!- jcp|other has joined. 03:18:57 -!- azaq23 has joined. 03:20:06 -!- jcp|1 has quit (Ping timeout: 258 seconds). 03:20:31 -!- jcp has quit (Ping timeout: 276 seconds). 03:20:42 -!- derrik has quit (Read error: Connection reset by peer). 03:27:22 -!- jcp has joined. 03:33:02 -!- MSleep has joined. 03:34:16 -!- jcp has quit (Ping timeout: 240 seconds). 03:35:01 -!- jcp|other has quit (Ping timeout: 246 seconds). 03:36:01 -!- jcp has joined. 03:41:21 -!- javawizard has joined. 04:01:56 hi 04:18:51 hi 04:18:53 why hi 04:19:28 -!- BeholdMyGlory has quit (Remote host closed the connection). 04:20:25 bye 04:37:17 -!- TeruFSX has joined. 04:44:42 Oh I'm Good 04:44:49 oig 04:44:54 Randomly checked MSPA, there's an update 04:45:08 (Ok, so I'm not good, I've had a bunch of misses like that.) 04:45:13 (Is this like gambling?) 04:51:31 -!- TeruFSX has quit (Ping timeout: 276 seconds). 04:53:04 -!- TeruFSX has joined. 04:54:02 I may just give up on Chicken Scheme 04:54:48 What's wrong with the "there's an egg for that" Scheme? 04:56:11 nothing, Sgeo_ just always chickens out 04:56:39 * oerjan swats himself -----### 04:56:58 fizzie, I can't get eggs to install, and the fact that on the mailing list, a regular was unable to get the egg I wanted to install to install for himself, for a different reason, is not encouraging 04:57:03 And I didn't even need to groan. 04:57:17 Some of the eggs are a bit... rotten. 05:04:08 ^ul (fizzie: PUUUUUUUUUUUUUUUUSH)S 05:04:08 fizzie: PUUUUUUUUUUUUUUUUSH 05:04:09 elliott_: would the second statement you said allow for 0 or more instances of the " pc" of an acceptable size. :p 05:04:10 god dammit, fungot 05:04:11 elliott_: how would that work ( assuming you did everything right, which is deliminated by dollar signs. how can ( with a minimum amount of writing 05:07:16 -!- TeruFSX has quit (Ping timeout: 252 seconds). 05:19:18 *Aaaah*. 05:19:50 Having meaningful, pleasant IRL social interactions is a fairly nice feeling. 05:20:30 ^style 05:20:30 Available: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc* jargon lovecraft nethack pa speeches ss wp youtube 05:23:37 pikhq, yay 05:33:47 for instance, pass a hash to a procedure directly 05:33:53 the keys and values get mixed up 05:33:53 wat is that 05:34:00 Sgeo_, the keys and values you set before you pass, are different inside what you pass it to 05:34:09 in other words foo = 1, bar = 2, could end up foo = 2, bar = 1 05:34:09 you *have* to pass it by reference 05:34:09 or you get that crap 05:34:12 [About Perl] 05:34:38 Can someone explain what's going on with that? If that's really as he said, that's... nonsensical 05:39:12 Yes, if it is how it says, why would it be like that? 05:39:35 That's what I'm asking here 05:40:00 Yes, I don't know either. 05:40:38 Let's make something like a text adventure game: 05:40:40 *Deck* 05:40:55 You are on the deck of a navy ship. You can see the flags and sails from here. 05:41:25 On the deck is the captain, the captain's brother, a bucket of fire, and some other sailors. 05:41:35 You can go fore or starboard. 05:41:36 What next? 05:42:32 I split myself into multple selves and let one self ascend to godhood 05:42:45 You are unable to. Try again. 05:42:46 What next? 05:43:44 -!- JamezQ has joined. 05:43:56 s/Try again/Please try again/ 05:44:44 "The excess seen by the Atlas team has reached a 2.8 sigma level of certainty. A three-sigma result means there is roughly a one in 1,000 chance that the result is attributable to some statistical quirk in the data." 05:44:52 I'm not sure I would phrase that like that 05:45:23 Meh, doesn't matter 05:45:49 Sgeo_: I don't even know what the Atlas team is. 05:46:19 (There are three kind of lies: normal lies, really bad lies, and statistics.) 05:46:19 http://www.bbc.co.uk/news/science-environment-14266358 05:47:50 (Why don't you try something else in my game? Something other than splitting yourself and godhood and so on.) 05:48:16 Examine bucket of fire 05:48:59 The fire contains rags that were previously used for clothing but are now burnt and cannot be used. The fire is very low by now. 05:49:01 What next? 05:49:23 Put hand in fire 05:49:34 Sorry, I'm just being silly, not taking this game seriously 05:50:19 The fire goes out quickly due to your hand wet. 05:50:21 What next? 05:50:38 (Try something a bit less silly, perhaps.) 05:50:52 (And, yes, I am also reading that BBC article) 05:50:53 So I have a DM that won't let me die? 05:50:58 Well, I'm going to try 05:51:00 * itidus20 takes out a cell-shaded wind waker wand and changes the direction of the wind. 05:51:01 I jump overboard 05:51:07 just kidding 05:51:42 OK. You are now in the water. Your uniform is getting wet. 05:51:48 What next? 05:52:10 I exhale, put my head underwater, and take a few deep breaths 05:52:42 You try, but sink and drown before you are able. Now you are dead. You lose. 05:53:04 Yay! 05:53:09 itidus20: OK you are just kidding. Try something else. From the start. 05:53:32 ok sorry 05:54:10 I go fore. 05:54:24 *Center of Ship* 05:54:53 You can see some cargo blocking the way any direction except aft and down. Nothing else is in here. 05:54:53 oops.. i got confused.. ill go back to the deck 05:54:54 What next? 05:55:11 OK. Now you are back at the deck. 05:55:18 The whistle blows. 05:55:32 Being an experienced sailor, you can recognize that they want everyone on the deck by now. 05:55:39 Sgeo_: If you call sub(%foo) and %foo contains ("a" => 1, "b" => 2), it will push either "a", 1, "b", 2 or "b", 2, "a", 1 on the argument stack (@_) of the sub. So the order is not defined, but either way it will have keys and their corresponding values next to each other. And if you build a new hash with %bar = @_ inside the sub, then %bar will contain the same keys and values as %foo. 05:55:56 The same things are on the deck as before, plus Also, and some other doppelgangers. 05:55:58 What next? 05:56:08 s/doppelgangers/sailors/ 05:56:09 Examine captain. 05:56:18 (Why did I write doppelgangers? That makes no sense.) 05:56:31 fizzie, he's supposedly not complaining about undefined order, just that keys and values don't stay associated 05:56:47 fizzie, he left, when he's next on, I'll ask for a concrete example 05:57:03 The captain of this ship is a man of average height and is wearing a captain's uniform. He is holding a spyglass. 05:57:05 What next? 05:57:47 Talk to captain. (should i specify what i say?) 05:57:50 Sgeo_: Well, that doesn't happen. 05:58:07 (by the way i havent really played text adventure games... ive only heard of them) 05:58:11 $ perl -e '%foo = ("a" => 1, "b" => 2); sub foo { print join(" ", @_), "\n"; } foo(%foo);' 05:58:12 a 1 b 2 05:58:12 The captain notices some pirate ships in the distance. You can see them now, too. 05:58:14 What next? 05:58:45 humm 05:59:03 (Should I try just using natural english?) 05:59:17 itidus20: Do it if you want to. This is not a *real* text adventure game. 05:59:40 (Although an actual text adventure game could be written based on this and other things) 06:00:28 Examine self. 06:00:47 You look about the same as always, except that you are now wearing a guest uniform. 06:01:09 After you do that, the captain looks throught he spyglass, notices something, and passes it to his brother. 06:01:11 What next? 06:02:49 Talk to the captain again. 06:03:22 The captain told you he noticed something that is probably bad, on those pirate ships. Something bad will probably happen. 06:03:35 After doing so, the captain's brother passes the spyglass to you. 06:03:36 What next? 06:03:50 Examine fire bucket. 06:04:13 The bucket contains some old rags used for clothing, but are now burnt. The fire has gone out by now. 06:04:17 What next? 06:05:02 (brb) 06:05:19 -!- pikhq has quit (Ping timeout: 258 seconds). 06:05:20 -!- pikhq_ has joined. 06:06:09 humm 06:06:28 Talk to sailors. 06:06:54 The sailors are nervous of your presence and do not wish to talk to you right now. 06:06:55 What next? 06:07:35 s/ are / seem to be / 06:09:45 (does anyone else have any ideas?) 06:10:03 (bah.. ill continue) 06:10:44 (You can always wait or check your inventory if you have nothing else to do.) 06:11:06 check inventory 06:11:19 You have a guest uniform (being worn) and a rope. 06:11:29 What next? 06:12:10 -!- aloril has quit (Ping timeout: 246 seconds). 06:12:24 Request spyglass. 06:12:40 Oops, sorry. Let me try again. 06:12:48 You have a guest uniform (being worn), a rope, and a spyglass. 06:12:54 (You already have the spyglass, I just forgot) 06:12:56 What next? 06:13:03 Look at pirate ship with spyglass. 06:13:29 You look at the pirate ship. You can see some shaman waving their arms. You recognize it as some kind of summoning spell. 06:13:52 As you do so, the water shakes a bit and hooks come up out of the water and get attached to the edge of the ship. 06:13:55 What next? 06:15:33 Look around with the spyglass. 06:16:29 You notice nothing special. You can see the same things you have seen before. There are five pirate ships in the distance. 06:16:58 After doing so, some kuo-toas[1] arrive and climb on the deck. 06:17:04 What next? 06:17:20 [1] See D&D 3.5e Monster Manual for information. 06:18:25 Speak to kuo-toa. 06:19:07 Instead of answering, they try to throw a sticky rope at you. Luckily, they missed. 06:19:37 In addition, Also appears to transform into a gray featureless humanoid shape, still wearing the guest uniform, but also wielding a green sword. 06:20:03 The captain is wondering whether something should be done about this transformation, as well as about the attack. 06:20:05 What next? 06:21:27 Kick kuo-toa. 06:22:16 You miss. One of the kuo-toa tries to attack you and this time you get hit by a sticky rope. One also tries to throw a rope at Also and manages to hit. Also tries to attack one of them with the green sword and hits, knocking one unconscious. 06:22:18 What next? 06:24:09 Throw rope at a concious kuo-toa 06:24:35 You try to take it but now it is stuck on your hand too. 06:24:41 What next? 06:24:56 (You can try again if you want, or do something else.) 06:25:26 (i was being kind of stupid because obviously my regular piece of rope is not a weapon) 06:25:30 -!- aloril has joined. 06:25:40 * itidus20 hide behind Also 06:25:50 Correct. Your regular piece of rope is not a weapon. 06:25:54 You are now hiding. 06:26:22 However, you almost get hit by a cannon. 06:26:28 Also hits one and kills one kuo-toa. 06:26:29 What next? 06:27:35 Look around. 06:28:17 You notice the same things as before. 06:28:29 You accidentally dropped the spyglass and now you have to pay for it. 06:28:42 Some of the kuo-toas are now trying to retreat back into the water. 06:28:58 Others are still trying to attack. 06:29:09 One notices you, and attempts to attack you, and misses. 06:29:11 What next? 06:29:29 Attack the kuo-toa. 06:29:34 ^a 06:29:54 You miss. They try to attack you and slightly damage you. 06:30:09 Also, and some of the sailors, try to attack the other kuo-toas. 06:30:23 Some of the sailors appear to be ensuring the cannons are ready to attack the other ships if it becomes necessary. 06:30:26 What next? 06:31:07 -!- oerjan has quit (Quit: Good night). 06:31:50 Attack a kuo-toa. 06:32:18 You tried again, and still missed. 06:32:42 (Next time, you can try to stun them or cast a spell. You do have a few spells.) 06:32:45 What next? 06:33:37 List my available spells. 06:33:44 unless theres too many 06:34:07 OK. 06:34:12 i mean.. 06:34:13 - Frotz (makes an object emit light) 06:34:14 uhh 06:34:25 - Erase (erases writing on an object) 06:34:26 i can look em up with wiki 06:34:30 but 06:34:36 i have no clue what spells i have :P 06:34:52 - Affect Magical Aura (change the magic aura of something to appear to be something else) 06:35:00 - Grease (makes the floor slippery) 06:35:10 - True Seeing (see past illusions and other magic) 06:35:17 End of spell list. 06:35:18 What next? 06:35:33 Actually, I will list one more: 06:35:54 - Time Hop (makes an object vanish, and reappear in the same place in 30 seconds to 1 minute (you can select the duration)) 06:36:56 Cast Grease. Ideally under my foes but i'll still do it if it'll affect me 06:37:27 OK. Some of the kuo-toas, as well as some of the sailors, as well as Also, all slip and fall down. 06:37:40 You seem to be unaffected at the current moment. 06:37:42 What next? 06:37:58 Cast True Seeing. 06:38:28 You cast True Seeing. You notice nothing special. 06:38:37 Some of the kuo-toas, some of the sailors, and Also, all get up. 06:38:53 One of them attacks Also and misses. One attacks you and moderately damages you. 06:38:55 What next? 06:39:14 Stun a kuo-toa, 06:39:34 OK. You manage to stun three of them at once. 06:39:57 Also attacks one of the unstunned ones and hits. One of the kuo-toas attacks Also and slightly damages him. 06:40:07 Nobody manages to attack you. 06:40:10 What next? 06:40:32 Attack a stunned Kuo-toa 06:41:04 OK. You hit. He is now unconscious. 06:41:21 Also attacks one of the unstunned ones and hits. One of the huo-toas attacks Also and slightly damages him. 06:41:25 The rest retreat back into the water. 06:41:28 What next? 06:42:29 Attack a stunned kuo-toa. 06:42:55 Somehow you still missed. 06:42:57 What next? 06:43:27 Stun kuo-toa. 06:44:02 All of them are already either stunned, unconscious, or dead. Nothing happens, although some of them might be stunned for a longer duration due to this. 06:44:03 What next? 06:45:19 Wait. 06:46:03 Time passes. The captain's brother reveals a scroll case. 06:46:06 What next? 06:47:01 Examine the scroll case. 06:47:25 It is a plain scroll case one foot in length, and appears to be waterproof. 06:47:41 The captain's brother remarks that perhaps the pirates wanted this scroll case, and not the gold. 06:48:00 However, he doesn't know how they could have known about this scroll case, since it was supposed to be a secret. 06:48:02 What next? 06:49:56 -!- azaq23 has changed nick to oriaw. 06:50:20 -!- oriaw has changed nick to derivector. 06:50:21 open the scroll case 06:51:22 -!- derivector has changed nick to azaq23. 06:51:27 It is not yours to open. It belongs to the king. 06:51:47 can i play 06:52:05 yup 06:52:08 (You can stop here if you wish. Note that this is based on a scene from a D&D game I played and there is nothing else to do. Read it if you want to, including for a complete list of spells and my solutions) 06:52:20 -!- azaq23 has changed nick to azaq23p. 06:52:26 -!- azaq23p has changed nick to azaq23. 06:52:50 i am pretty clueless about d & d... :P 06:53:12 i mean not entirely clueless but yeah 06:53:41 itidus20: That is OK. You might be able to understand some of it, since the main text (but not necessarily the foot notes or character sheets) are written in normal text. 06:53:53 i tend to be so hesitant with these things 06:54:12 in life i have an enormous amount of difficulty slipping out of character 06:54:19 i mean .. in character 06:54:26 Where I started on the deck here, is not actually where the game stats. 06:54:31 It is not even where the session starts. 06:54:34 like i mean 06:55:14 certain neuroses i haven't learned to break.. 06:55:14 Both the source file (TeX) and the output file (DVI) are available. So is the macro package I wrote for the purpose of recording D&D games, as well as a recording of a different game I am in as well. 06:55:32 itidus20: What neuroses are those? Can you try harder? 06:55:44 I tend to make friends with psychos in real life. 06:55:47 crazies at least 06:56:09 I'm used to hating the people i spend most of my time with in real life 06:56:21 well not lately.. since i have withdrawn to my moms basement 06:56:38 Well, sometimes I do crazy things too (not always). 06:56:44 i mean 06:56:47 There is currently nothing in my basement. 06:57:02 people who only keep me around as company to take advantage of me 06:57:07 So it would not be useful to go there, except to fix things, measure things, or to get away from the heat. 06:57:08 not because they like me 06:57:20 not because they want me to enjoy their company 06:57:43 O, well, then you would have to try harder to avoid them taking advantage of you in circumstances when you do not want it. 06:58:07 i know that personal stuff is supposed to not enter the room 06:58:24 That is OK, you don't have to. 06:58:53 How much do you know of TeX, anyways? 06:59:15 is that related to latex? 06:59:35 I might want to tell you that the first time I played D&D, I selected race/class at random, from the Player's Handbook only. Resulting in a human wizard. Who had armor and a mace. 07:00:32 itidus20: Yes it is related. LaTeX is a format and a set of macros and packages written on top of a variant of TeX, which is PDF-e-XeTeX. 07:00:54 I prefer Plain TeX, and use it for my stuff. 07:01:02 The world has always been a place where some are happy by making others suffer. 07:01:34 These days it is more implicit than explicit. 07:02:02 I suppose it might be. Often because some people are being greedy or stupid (or both). 07:02:06 On the surface society pretends to be happy and friendly. 07:02:48 Well, mostly, I guess. 07:02:53 Write a report about it if you want to. 07:04:11 But there is an economy based on the ability to cope with stress or not. 07:04:20 Those who cope well with stress and conflict thrive 07:04:38 And those who don't become the food. 07:05:27 In other words, if you have to withdraw from stress and conflict, you lose. 07:05:33 Oh. Fuck. 07:05:50 So, literal interpretation of Genesis time... 07:05:52 Well yes I do suppose there is a lot of that these days. 07:05:53 Noah's Ark. 07:06:21 Wouldn't every animal on the ark have to carry every unique disease for that species? 07:06:32 *Every*. 07:07:03 Well, actually, breeding pair. Could be split between the two. 07:07:19 For the clean animals, there's 7, so 07:07:20 pikhq_: I don't see why. 07:07:21 iirc 07:07:27 zzo38: Otherwise they wouldn't exist. 07:07:42 pikhq_: O, yes. Now I see. 07:07:45 zzo38: Only species extant on the ark could exist post-flood. 07:07:59 Do the "clean" animals have any unique diseases? 07:08:01 If we go with a literal interpretation and claim no evolution since. 07:08:11 Uh, yes, there's rather a *lot* of clean animals. 07:08:19 Yes I can see now, we are going with a literal interpretation 07:08:44 (never mind that there has been speciation more recent than the claimed occurance of the ark story...) 07:09:16 But obviously the people who wrote it made up something because they didn't actually know. It is mythology, like other mythology is. 07:09:34 Yes, the only problem being that a notable number of people believe it literally happened. 07:09:55 Unlike, say, Greek mythology, where there's maybe a few nutjobs that do. 07:10:21 OK, yes I know those things. 07:10:53 -!- elliott_ has quit (Remote host closed the connection). 07:11:11 If they have all animals, they must also have all small ones, big ones, and one that can only live in the water... 07:11:20 -!- elliott has joined. 07:11:50 Although maybe by "animals" in that text they didn't include people or fish 07:12:08 And by "bird" they also included bats 07:14:47 zzo38: Well, they'd have serious issues even with fish. 07:14:53 -!- monqy has quit (Quit: hello). 07:14:59 Either the saltwater or the freshwater fish would be *fucked*. 07:15:24 On another note, I realized I have the full text of King James Bible in my computer, but not the deuterocanonical books. I have been told that the deuterocanonical books are part of the original King James Bible however. Do you know of such texts are available? 07:15:37 pikhq_: Yes of course I can see that 07:19:59 Of course there is a lot of absurdity and stuff in the Bible; however, the text that God created light at first before creating the light producing objects (the sun), does make sense, from both scientific and from spiritual points of view. It might be said to be the Light of God; or the various electromagnetic radiation of various frequencies including light near the start of the universe; or whatever. At least *this* part is not complete nonse 07:20:16 i have stacks of ebooks on my pc. some legal. some illegal. 07:20:25 But there still is a lot of nonsense nevertheless, of the Bible. 07:20:31 none however paid for 07:20:45 zzo38: Sheer dumb luck, but hey. 07:21:06 Wikisource seems to have the KJV apocrypha. 07:21:07 I downloaded this sweet cache of philosophical texts 07:21:14 https://secure.wikimedia.org/wikisource/en/wiki/Bible_%28King_James%29 07:21:29 pikhq_: Yes, you would be correct about that. Of course it is unlikely the people who wrote that part of Genesis (note it comes from various sources) knew anything about science. 07:21:57 * pikhq_ is well aware of the documentary hypothesis 07:23:29 there is always the problems of where to apply literalism and where not to. also interpretations of any text will always vary. 07:24:12 and the history of any given text that old tends to be mysterious enough that it's anyones guess. 07:24:21 What I have of the KJV is in plain ASCII text format, and is accessible over both HTTP and gopher protocols. I would like to find one similar thing to add (perhaps as a separate file) of the apocrypha. 07:24:25 And theer is also mistranslations from language A to language B 07:24:30 itidus20: Why should I care about whether any of it's literal? 07:24:45 zzo38: Well, the Wikisource version has the Apocrypha. 07:24:47 for instance "40" apparently can also mean "many" 07:24:48 itidus20: Yes I noticed those things too. There can be mistranslations and unknown things about the history. 07:25:30 itidus20: The only things that could be taken literally and not contradict, well, essentially all empirical evidence we have are also fairly irrelevant. 07:26:14 The reason I am using KJV is simply because it is in the public domain (Wikisource says it is perpetual copyright in the UK, but I don't live there). 07:26:18 and religions spring up all across the world.. so they are natural enough for us to have 07:26:30 just as written language sprung up 07:26:34 zzo38: Friggin' crown copyright. 07:26:52 itidus20: And we know of some religions in cultures without written languages. 07:27:04 It really does seem to be a universal. 07:27:51 what I really miss about the times long gone is the natural beauty of the land before we ravaged it 07:28:19 with roads.. and what do roads exist for? faster transport.. 07:28:33 Roads are also pretty shitty transport. 07:28:37 and concrete.. well i dont know the exact role of masses of concrete 07:28:47 and skyscrapers.. 07:28:58 welll population growth has a role in it too of course 07:29:05 termites build mounds etc 07:29:22 Fairly simple, actually. If we didn't build those we would be *way* over capacity. 07:29:35 but its just that human activities are so pronounced.. the rest of the plants and animals can't keep a balance with us 07:29:44 Yes it is true the human people are also the problem of making everything messed up you have to be more careful next time. However, there is purposes for things. Everything can have the purposes of them too. 07:30:00 Well, yeah, we're outpacing evolution by several orders of magnitude. 07:30:20 the sea has done a good job of protecting itself by means of its fierce waves 07:30:38 whatever gets built on the sea, gets crushed 07:31:07 or washed ashore 07:31:22 *Someone* doesn't know about oil rigs... 07:31:40 ah.. it can't beat oil, yeah 07:31:50 humm ok.. good point 07:32:08 Lord Oil demands we build on the ocean. Cost is little object. 07:34:38 I kind of feel bad for my hypothetical children 07:35:19 :t (/) 07:35:20 forall a. (Fractional a) => a -> a -> a 07:36:10 I do not want to have any children please. 07:37:02 The Bible is warning you about all of these things can you see that? And yet, many things happen too badly. Pay attention to the warning! We are messing up everything too much! Be more careful next time please! 07:37:22 Some say the message of the Bible is that of love. I say it is that of warning. 07:39:00 i noticed for example that sea creatures don't build things in the ocean 07:39:15 surely they could evolve such capacities if it were a good thing 07:39:46 I think even some Christians have never read the Bible. 07:39:47 I parially gfixed some of my Chicken Scheme issues 07:40:05 But still, some eggs are platform-depenent, apparently 07:41:00 speaking of which.. uh.. spiders build webs.. but i guess its far too much of an energy waste to construct anything meaningful in that way 07:41:15 plants do it i suppose 07:41:32 spiders build webs.. a plant is a web in some cases 07:42:55 zzo38: I'd say the "message" of the Bible is that YHWH is evil. 07:49:24 pikhq_: Well, say what you want to. I suppose you could instead say the message is that it is complete nonsense, if you wanted to. 07:50:11 The Skeptics Annotated Bible has the entire KJV text (but does not include apocrypha) and many cross-references and external references and other notes. 07:53:20 Is the jawbone of an ass a good weapon? 07:54:26 comex_: Why did you try and exile coppro again 07:54:26 elliott: You have 1 new message. '/msg lambdabot @messages' to read it. 07:54:58 zzo38: the basic trouble I have is to have a character who is not me. I am not good at all at making that detachment 07:55:35 itidus20: I am somewhat good at it, but much, I think. I am not sure. 07:55:39 they always inherit my insecurities unless like i am playing a single player game when noone is watching 07:55:43 s/much/not a lot/ 07:56:14 i sorta know why... but doing something about it is like debugging my psyche 07:57:07 Of course I improve on that and other things related to the game, when playing the game multiple times 07:57:52 as a wannabe author its a problem 07:58:13 i can't write a character who doesn't secretly inherit all my neuroses 07:58:49 but please note that in saying this I am expressing my plan to change it. 07:59:11 OK, I understand a bit. Have you tried writing any such things? 07:59:18 Have you improved at all? 07:59:33 My characters tend to not have much social interaction. 08:00:02 I sort of get into this problem of trying to analyze every character in a scene and how they would act 08:00:14 Clearly thats impossible. 08:00:21 Yes it can be difficult. 08:00:48 Maybe its better to be like Mezzacotta and just define each character and throw them into situations 08:00:53 Would saying "Or I might just look at Racket" be offensive in #chicken ? 08:01:27 Sgeo_: UR SO RUDE IM SUICIDE 08:01:30 Read my recordings, see if they would interest you or whatever, criticize it a lot if you want to, or whatever 08:01:48 Source file: http://zzo38computer.cjb.net/dnd/recording/level20.tex Output file: http://zzo38computer.cjb.net/dnd/recording/level20.dvi 08:01:57 ahhh good old cjb 08:02:06 like the geocities which never died 08:02:12 i didn't know it still existed 08:02:34 cjb had that subculture thing about it 08:02:34 I am using the Dynamic DNS service from them 08:03:17 i mean back in the old days you know.. it was all about html 4 pages and webrings.. 08:03:24 geocities, cjb, angelfire 08:04:15 Yes, but I use the dynamic DNS so that I can run multiple protocols and have my own control over the servers and stuff like that. I don't use webrings, much of my files are not HTML at all, and so on. It is different from most. 08:04:19 maybe the world hasn't changed, and it's just me 08:04:30 my point is noone uses webrings etc anymore 08:04:49 You can see it sometimes used. 08:04:49 blogs are fucking ugly... facebooks are ugly.. myspaces are ugly.. 08:05:05 theres no attempt anymore to actually create webpages 08:05:24 ^by amateurs 08:05:35 its all php and mysql and apache 08:05:58 i dont for the life of me understand why so many webpages need databases :D 08:06:25 "accounts" 08:06:41 i guess... i guess.. the web has become an application platform 08:06:45 when did this happen 08:06:53 i didn't know html4 was an application platform.. 08:07:01 i bet tim berners lee never knew either 08:07:15 i guess the "internet" --- ok im ranting in monologue 08:07:18 It shouldn't be. I avoid using it as an application platform 08:08:00 email is good yeah.. forums yeah.. 08:08:12 flashgames.. sure.. youtube.. sur 08:08:33 but its getting weird 08:08:54 I know and I generally try to avoid that kind of stuff instead. 08:09:15 I have not only HTTP server, but also a gopher server and IRC server in my computer 08:10:05 i dunno im just ranting.. 08:10:21 i guess i believe ranting is the most honest form of communication. 08:10:23 And generally programs I write using C or CWEB or whatever, they can be downloaded and run or compiled on your computer, use them local use 08:10:39 HTTP/HTML/Javascript/PHP is such a *stupid* stack for an application platform, too. 08:10:51 Oh, ais isn't here 08:10:54 Darn 08:11:05 I mean, jeeze, the only stack I can think of that'd be worse is, like, X over WAN. 08:11:07 pikhq_: I agree. 08:11:21 my rants are full of shit, but at the time they have an honest energy 08:11:34 i just rattle off one fallacy after another 08:11:36 pikhq_, is there a problem with the HTTP part? 08:11:54 Better way depends on what it is. In some cases, SSH would be better, in other cases, just a local program is OK. 08:12:01 And so on. 08:12:12 at least the web is free 08:12:18 it has that going for it. 08:12:27 Sgeo_: Yes, HTTP is a flawed protocol. 08:12:30 richard stallman needs to get on this though. 08:12:43 itidus20: No he doesn't. 08:12:51 Well, I heard an anti-Racket rant 08:13:08 GNU/www 08:13:12 "Done EmacsW32 base setup. Sleeping 20 seconds so you may read this ..." 08:13:15 Application platform should be the one for the use, such as C program compiled locally and such 08:13:22 Sgeo_: It contains many complexities that literally nobody uses, for instance. 08:13:50 In fact, its basic design is completely contrary to the use it gets put to. 08:13:51 For banking, SSH would be a good way to do it, I think. 08:13:55 It is a wiki protocol. 08:14:06 a html document has evolved into an application platform space. 08:15:10 The basic operations of HTTP are get, put, delete, and patch. 08:15:17 its so absurd.. mr burners lee wouldn't have imagined it in 1million years 08:15:19 Honest. 08:15:35 but it works.. i must admit in contradiction to my rant 08:15:43 it works, and it's free 08:16:05 burners :D 08:16:13 pikhq_: Yes maybe it means it should actually be used that way instead. With, get, put, delete, and patch. 08:16:15 berners ;_; 08:16:37 tbl is a cool dude, if solid in his opinions 08:16:42 dunno how he has time to hang about on irc but 08:17:01 As it is, it is basically used as either a generic data transport or a generic file host. 08:17:23 pikhq_, would be fun if there were wikis that used those features 08:17:25 (he is in #swig a lot) 08:17:28 the hyperlink is ok.. but sometimes people just jump to the URL bar 08:17:32 Although modern web browsers don't really.. blah 08:17:34 It is literally nothing more than a pointless layer for use as a generic data transport, and poorly suited for file hosting. 08:18:04 So effing much impedence mismatch. 08:18:05 for instance.. to travel from bing.com to google.com i type a g in the url bar 08:18:09 pikhq_: Yes, that would be what FTP and gopher protocols are for, I think. 08:18:20 zzo38: FTP also has a lot of stupidities. 08:18:22 no hyperlinks involved there 08:18:26 FTP is dumb 08:18:38 search engines thrive on hypertext though... 08:18:42 It requires *several* round-trips just to get a single file. 08:18:46 it should be avoided wherever possible 08:18:49 Also, it is so insanely stateful. 08:18:59 It may be dumb. But still it is what FTP was designed for, it is for file transfer. 08:19:12 Yes, there is at least less impedence mismatch there. 08:19:27 There are other protocols. Including, Plan 9 Protocol, and SSH, and so on. 08:19:27 use SFTP at least if you're going to use stupid 08:19:30 in my local LAN at home my brother FTPs me files when we have trouble using windows network neighborhoood 08:19:54 pikhq_: I would gladly s/PHP/Python/g in any application stack ever 08:20:02 I was knew a printer who had an FTP server. You could upload a postscript file, and it'd print it. 08:20:10 s/was/once/ 08:20:11 (Gah.) 08:20:27 coppro: Yes please. 08:20:28 fizzie: You've said that, like, exact line before 08:20:35 coppro: I would gladly s/Python//g in everything ever 08:20:41 coppro: Honestly, I think even C programs for CGI would be an improvement. 08:20:45 elliott: I think I typed it a bit differently, but yes, I think I've mentioned. 08:20:49 pikhq_: heh yes 08:20:52 That's sad, I can't even figure out how to toggle an option in emacs 08:21:01 elliott: How much to you know about the type formalisms in Haskell 08:21:05 fizzie: Yes I have heard of that too. However I would prefer one that used Plan 9 Protocol instead of FTP, and DVI instead of PostScript. And arrange in directories for the various jobs, and status, and fonts, and so on. 08:21:07 pikhq_: That seems excessive; PHP doesn't have rampant memory corruption 08:21:17 coppro: Depends what you mean by "type formalism" 08:21:37 elliott: The formal notions of Haskell's type system, and things like it's soundness and other useful properties 08:21:58 It's not "sound"; undefined :: a 08:22:03 wait I could just go talk to that guy at Google who studied at Glasgow. 08:22:08 Depends what you mean by sound :-P 08:22:09 elliott: PHP has rampant injection attacks, though. 08:22:12 coppro: Oh gee, thanks 08:22:14 elliott: it is sound 08:22:23 Well, it's sound in some senses and not in others 08:22:43 There should be Plan 9 Protocol over USB. 08:22:46 A Coq developer certainly wouldn't think much of Haskell's type system 08:22:46 sorry guys.. i tend to join channels where i am the least skilled in a field.. and go offtopic a lot to compensate. 08:22:56 Through the Curry-Howard lens, it is inconsistent 08:23:03 but i see it is coming back around to haskell. nice 08:23:06 itidus20: Is okay, we just go off topic a lot. :P 08:23:32 elliott: Sound means that you don't prove falsehoods 08:23:39 coppro: Haskell's does 08:23:43 foo :: a -> b 08:23:44 foo = undefined 08:23:48 data Void 08:23:50 foo :: Void 08:23:51 foo = undefined 08:24:00 elliott: bottom is not a falshood 08:24:10 Do you even know what the Curry-Howard isomorphism is 08:24:13 Honest question 08:24:20 Because Void is a falsehood, forall a b. a -> b is a falsehood 08:24:22 And those values are proofs 08:24:38 Go type "Axiom undefined : forall a, a." into Coq and tell me it's still sound 08:25:27 elliott: I know what the Curry-Howard isomorphism is. 08:25:36 coppro: "Of course Haskell's type system is unsound!" --Conor McBride 08:25:36 coppro: These are type-level falsehoods. 08:25:38 elliott: And I'm not talking about it 08:25:41 coppro: Happy? 08:25:56 elliott: No. 08:26:10 coppro: You can at least admit the term "sound" is ambiguous 08:26:26 Conor McBride is rather an expert :p 08:26:49 coppro: What you probably refer to is type safety 08:26:51 elliott: k fine then 08:27:07 Well, nice way to respond to someone who points out that experts disagree with your terminology 08:27:08 Whatever 08:27:14 Go ask Mr. Glasgow I guess 08:27:19 the type inference system 08:28:35 Uh, that's Hindley-Milner you're referring to, right? 08:28:41 extended 08:28:57 But yeah, your questions are very vague. 08:29:10 Well, yeah, it's not *quite* straight Hindley-Milner, especially in GHC instead of Report. 08:29:18 pikhq_: yeah 08:30:00 What are the "formal notions" of Haskell's type system, anyway 08:30:07 Contrary to popular belief, Haskell is *not* a very formal language. 08:30:48 Shrug, have it your way 08:32:13 pikhq_: on a relative scale, no 08:32:34 but I'm wondering if anyone is familiar with this stuff because I'm not really in a paper-chugging mood 08:32:57 You have yet to define "this stuff" in any sort of answerable form 08:33:55 elliott: if you can't answer the question, then the answer is "not enough" 08:34:12 if you simply won't because you're a prick, then fuck off 08:34:15 coppro: What can you tell me about the formalisms in C? 08:34:27 coppro: You have not asked a question. 08:34:32 The above question is about as specific. :) 08:34:41 coppro: You have, however, acted like an asshole who isn't really interested in hearing answer from me, so...? 08:35:11 pikhq_: A lot, sadly 08:35:36 coppro: Oh, right, there's actually things that could be called formalisms in the C spec. 08:35:45 Mmm, C abstract machine... 08:36:20 coppro: In future, if you're going to refuse to ask a specific question, ignore me when I point out that your terminology is very vague, and then tell me to either shut up or fuck off, I'd appreciate it if you didn't fucking ping me in the first place. 08:36:24 Thanks. 08:39:08 pikhq_: Have you ever read the definition of restrict 08:39:17 elliott: The terminology was deliberately vauge 08:39:45 coppro: Then I ask you to tell me about programming, and if you ask for specificity, I'm going to assume you know nothing of the subject 08:40:01 coppro: Not recently. 08:40:43 also fuck Hindley-Milner 08:40:48 coppro: Still, probably a bit surprising to people who aren't aware of what's in the C spec. 08:40:50 the paper goes on to define something for one thing 08:40:52 and use it for another 08:41:06 leaving me completely befuddled as to what is actually meant 08:41:13 rage 08:41:29 (which is *incredibly* different from what you'd think if you just saw what compilers do to C) 08:41:57 no kidding 08:43:12 Admittedly, that's in part because there's an impedence mismatch between C and common CPUs. 08:43:18 (surprising, I know.) 08:54:00 I seem to be incapable of remembering the name "Geiser" 08:54:46 "If Geiser came with any guarantees, youd break all of them by not using GNU Emacs 23.2" 08:54:53 And I'm using 23.1 GRAH 09:05:57 -!- zzo38 has quit (Remote host closed the connection). 09:28:39 Sgeo_: Updoot. 09:29:09 I suppose there's no nice in-emacs way to do that 09:29:37 Unless you said "Updoot" not to be funny, but because there's a tool called Updoot 09:29:51 http://www.youtube.com/watch?v=7VFTTGUjskc 09:30:21 (Note: I haven't watched the video) 09:30:28 (Or even seen the description until now) 09:31:09 Sgeo_: You fail at basic reading 09:31:33 I'm not talking about Emacs, for instance 09:31:38 -!- JamezQ has quit (Ping timeout: 252 seconds). 09:31:47 Oh 09:32:37 THE SUSPENSE IS KILLING ME 09:42:37 -!- azaq23 has left. 09:45:24 -!- azaq23 has joined. 09:48:26 -!- chickenzilla has quit (Quit: Lost terminal). 09:54:23 -!- pumpkin has joined. 09:57:52 -!- copumpkin has quit (Ping timeout: 276 seconds). 10:25:30 -!- NihilistDandy has joined. 10:39:10 -!- FireFly has joined. 10:52:40 I should ban cybermutiny from /r/mspaint just to see how e reacts. 10:58:44 how on EARTH can i have files with dynamic content in linux???? 10:58:58 the inability to do this is bewildering. 11:03:13 -!- NihilistDandy has quit (Quit: sleeping). 11:12:52 FUSE is the ugly solution. 11:13:07 Well, "solution". 11:31:47 does disk-backed shm count? :P 11:34:00 What do those... pipe file thingies count as? 11:41:48 -!- CakeProphet has joined. 11:41:48 -!- CakeProphet has quit (Changing host). 11:41:48 -!- CakeProphet has joined. 11:53:19 -!- GuestIceKovu has joined. 11:55:19 -!- Slereah has quit (Ping timeout: 258 seconds). 12:03:51 They count as named pipes. 12:04:01 Can't really use them as files in all contextsies though. 12:04:20 Also difficult if you have many readers at the same time. 12:06:24 Localhost-loopbacked NBD device is another alternative, but tends to require rootish stuff. 12:07:31 I believe you can also quasi-easily offer "dynamic files" via GVFS and things like that, but they're not really real files then. 12:10:57 fizzie: gvfs has a fuse mapper in ~/.gvfs 12:13:25 -!- pumpkin has quit (Quit: Computer has gone to sleep.). 12:14:34 -!- CakeProphet has quit (*.net *.split). 12:15:56 -!- CakeProphet has joined. 12:18:00 Yes, I've noticed it does something like that when I gvfs-mount remote shares. 12:19:28 -!- copumpkin has joined. 12:48:13 -!- itidus20 has quit (Read error: Connection reset by peer). 12:48:33 -!- itidus20 has joined. 12:50:36 -!- GuestIceKovu has changed nick to Slereah. 13:07:05 -!- itidus20 has quit (Read error: Connection reset by peer). 13:07:32 -!- itidus20 has joined. 13:41:52 -!- azaq23 has quit (Quit: Leaving.). 13:57:05 -!- MSleep has changed nick to MDude. 14:16:00 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 14:28:15 Is it just me, or is Monte Carlo a fancy name for something that really isn't that fancy? 14:28:40 it's not that fancy a name 14:28:53 it's a city famous for its casinos and games of chance... 14:29:09 http://en.wikipedia.org/wiki/Monte_Carlo_simulation 14:29:38 hence, any method involving a roulette wheel simulation in it somewhere is called monte carlo 14:32:09 -!- BeholdMyGlory has joined. 14:45:58 -!- copumpkin has joined. 15:49:11 -!- monqy has joined. 16:06:42 -!- MigoMipo has joined. 16:16:56 ?hoogle (==) IORef 16:16:56 Did you mean: == (IORef a) /count=20 16:16:56 Prelude undefined :: a 16:16:56 Test.QuickCheck.Batch bottom :: a 16:17:02 ?hoogle (==) :: IORef a -> IORef a -> Bool 16:17:02 Prelude (==) :: Eq a => a -> a -> Bool 16:17:02 Data.Eq (==) :: Eq a => a -> a -> Bool 16:31:51 -!- aloril has quit (Ping timeout: 252 seconds). 16:45:28 elliott: are you looking for an instance Eq (IORef a)? 16:45:31 -!- aloril has joined. 16:45:40 -!- TeruFSX has joined. 16:46:16 tswett: Found, ages ago; conversation in private channel :-P 16:46:23 Well, semi-private 16:46:36 * tswett nods. 16:46:59 fungot: it's a very good idea. 16:46:59 tswett: last argument must be a cub scout!! have you made your money-drop today?? 16:49:07 `addquote tswett: last argument must be a cub scout!! have you made your money-drop today?? 16:49:07 elliott: and .txt doesn't have links either signed or unsigned... eh, don't worry 16:49:11 544) tswett: last argument must be a cub scout!! have you made your money-drop today?? 16:49:19 ^style agora 16:49:19 Selected style: agora (a large selection of Agora rules, both current and historical) 16:49:30 fungot: well, of could I would never do that. 16:49:31 tswett: 3) a player resigns from an office has whatever duties, then 3 extra votes on 16:49:40 fungot: please continue that thought. 16:49:40 tswett: ( b) any entities disqualified by the assessor that e grants eir poa to the 16:49:55 fungot: yes, I like where this is going. Go on. 16:49:56 tswett: d) any additional information in the new 16:50:06 fungot: that should just about do it. One more. 16:50:06 tswett: judgement ( cfj), 16:50:11 Excellent. 16:50:51 A player resigns from an office has whatever duties, then 3 extra votes on any entities disqualified by the Assessor that e grants eir POA to any additional information in the new judgement. 17:03:34 -!- zzo38 has joined. 17:11:27 -!- derrik has joined. 17:21:05 -!- itidus20 has quit (Ping timeout: 255 seconds). 17:24:15 -!- itidus20 has joined. 17:25:44 -!- CakeProphet has quit (Ping timeout: 258 seconds). 17:28:05 what is the easiest way to convert html to pdf? 17:28:32 press a button 17:29:00 i don't like mice 17:29:21 you're out of luck then 17:29:26 no easy way 17:29:49 i didn't say it had to be easy 17:29:53 just the easiest 17:30:31 Use a printer driver output PDF, I guess. 17:31:00 print to pdf.. that also uses mouse, i.e. too easy 17:31:27 You can use keyboard too, it doesn't require mouse 17:31:30 aha 17:31:32 i'll try thhat 17:31:45 same with the button actually 17:32:04 button in e.g. openoffice 17:32:58 i'm learning italian and this bash/awk script is about italian food. should i try and translate the source code to italian? 17:33:00 quintopia: prince xml is high quality iirc 17:33:19 and free for non-commercial IIRC 17:33:23 However, I don't think PDF is a good format, it is full of dumb things 17:33:28 and written in Mercury, a functional Prolog derivative :-) 17:33:37 -!- TeruFSX has quit (Ping timeout: 240 seconds). 17:34:57 i don't have a choice about the format. it'ss that or .doc :| 17:35:13 i'll look at prince 17:35:47 Well, then use PDF, since DOC (Microsoft Word, I guess) has as many dumb things but in addition might not produce the same result on all computer 17:37:02 quintopia: i have "cutepdf writer" installed.. it prints to pdf 17:37:41 heh, windws 17:37:42 windows 17:38:15 -!- derrik has quit (Remote host closed the connection). 17:38:26 nvm i found the command to convince vimperator to do it 17:38:35 :ha >filename.pdf 17:38:57 -!- derrik has joined. 17:38:58 quintopia: gross, princexml will give nicer output :{ 17:39:07 i will look into it later 17:39:12 i am on a train... 17:39:19 it stops in like ten minutes 17:40:07 i'm also on a train.. it stops every other minute 17:40:19 Does there exist such things sa PDF to HTML, PDF to picture format, PDF to DVI, etc.? 17:41:41 i have an excellent pdf to html 17:42:03 i think 17:42:05 * quintopia looks 17:45:05 http://www.nuc.berkeley.edu/neutronics/todd/nuc.bomb.html 17:48:39 lol at the DON'T TRY AND BUILD AN ATOMIC BOMB warning 17:48:45 PROLLY A BAD IDEA 18:02:02 -!- cheater_ has quit (Ping timeout: 255 seconds). 18:04:33 -!- derrik has quit (Ping timeout: 264 seconds). 18:13:03 -!- Nisstyre has quit (Ping timeout: 252 seconds). 18:14:35 -!- cheater_ has joined. 18:33:38 -!- derrik has joined. 18:38:42 -!- Nisstyre has joined. 18:46:36 -!- oerjan has joined. 18:54:57 -!- JamezQ has joined. 18:58:42 -!- JamezQ has quit (Client Quit). 19:09:45 fizzie: You've said that, like, exact line before 19:09:54 including the misspelling? :D 19:10:07 *typo 19:12:38 perhaps :D 19:23:13 I should ban cybermutiny from /r/mspaint just to see how e reacts. 19:23:23 elliott's a mod somewhere? O_O 19:23:28 :-D 19:23:36 I'm the only mod there :P 19:23:45 And I have taken approximately three moderator actions in my entire tenure 19:24:23 But yeah, this cybermutiny guy makes literally almost every post in there and they're mostly to his site thing which is a collection of seemingly inscrutable MS Paint art made by people who were clearly high at the time :-P 19:24:33 I don't mind, but it would be amusing if this was, like, his main source of revenue. 19:24:58 oh it's about _actual_ mspaint, not those adventures... 19:25:13 that's /r/homestuck, which recently passed /r/mspaint's subscriber count :-( 19:25:35 (but /r/homestuck actually sometimes pays off on a subscription, so...) 19:25:47 oerjan: mind you, /r/mspaint has gotten at least _two_ Homestuck-related submissions in two months 19:25:58 *gasp* 19:26:02 both from the cybermutiny guy who doesn't _appear_ to know what they're actually about :D 19:26:24 http://www.reddit.com/r/mspaint/comments/hdyg7/blue_guy/c1uo7ll 19:31:35 Is it just me, or is Monte Carlo a fancy name for something that really isn't that fancy? 19:31:48 istr it's in contrast to Las Vegas simulation 19:31:59 i don't quite recall what each is, though :P 19:33:32 elliott: are you looking for an instance Eq (IORef a)? 19:33:41 -!- zzo38 has quit (Quit: Don't Quit). 19:33:52 which reminds me that haddock really should provide source links for orphan instances 19:34:20 or all instances really, so you don't have to check two places 19:42:47 * oerjan finds today's mezzacotta comic strangely amusing 19:43:48 -!- pumpkin has joined. 19:44:22 why do we allow vegetables in here anyway 19:46:04 -!- copumpkin has quit (Ping timeout: 263 seconds). 19:48:28 Wouldn't it be discrimination not to? 19:48:42 oerjan: are you sure pumpkin is a vegetable rather than e.g. a fruit or a berry or something? 19:48:53 fizzie: but what if he's an enemy plant? 19:49:33 -!- monqy has quit (Read error: Operation timed out). 19:49:33 Freenode channel guidelines: "Look for the best in people. If you assume people have no self-control, they'll confirm your belief." 19:49:58 olsner: hm better check wikipedia 19:50:04 -!- monqy has joined. 19:50:29 -!- pumpkin has changed nick to copumpkin. 19:50:30 "The noun vegetable usually means an edible plant or part of a plant other than a sweet fruit or seed. -- However, the word is not scientific, and its meaning is largely based on culinary and cultural tradition." 19:50:35 So it can be anything you want it to be. 19:50:44 Even YOU could be a vegetable. (\forall YOU.) 19:51:17 that ancient tradition of vegetarian cannibalism 19:53:22 "In culinary terms, both summer and winter squashes are generally considered as vegetables, even though pumpkin may be used for sweet dishes. 19:53:26 " 19:56:24 WordNet "hypernyms of pumpkin": 19:56:26 Sense 2 19:56:26 pumpkin 19:56:26 => vegetable, veggie, veg 19:56:26 => produce, green goods, green groceries, garden truck 19:56:26 => food, solid food 19:56:27 => solid 19:56:29 => matter 19:56:31 => physical entity 19:56:33 => entity 19:56:35 A clear vegetable. 19:56:39 -!- augur has quit (Remote host closed the connection). 19:57:08 Nouns quite often tend to end up as "entity", I think. 19:57:41 entirely so 19:59:32 WordNet can also comprehensively list everything that is a vegetable; wn vegetable -treen => http://p.zem.fi/avpv 20:00:20 Oh, what a losing piece of code: 20:00:22 $ wn entity -treen 20:00:22 Hyponyms of noun entity 20:00:22 Search too large. Narrow search and try again... 20:00:52 The entirety of entity is entirely too enormous. 20:01:16 (The last line was not part of the error message.) 20:01:55 hm and you _do_ have the entire database locally? 20:02:09 Yes. 20:03:00 enticing. 20:03:12 "The maximum buffer size is determined by computer platform. If the buffer size is exceeded the following message is printed in the output buffer: "Search too large. Narrow search and try again..."" 20:03:21 Oh, so it is the fault of the computer platform. 20:03:45 you just need to change to x86-inf 20:07:59 "If one inputs the word entity as an entry in WordNet 1.6 and try to search its full hyponyms, he will get nothing but a note of "Search too large. Narrow search and try again." provided that he does not narrow the searching by terminating it beforehand. Sure enough, if the entry is not entity but another word, say cat, the searching will probably do." 20:07:59 - Liu Yang, Yu Jiangsheng, Yu Shiwen. A Tree-structure Solution for the Development of ChineseNet. Institute of Computational Linguistics, Dept. of CS, Peking University. Technical Report, 2002. 20:08:07 I seem to have not been the only one interested in entities. 20:10:43 APL? 20:10:58 at this point i'm tempted to create an esolang named haskell. 20:11:06 or maybe C. 20:11:35 oerjan: with haskell, the job has been done for you. 20:11:41 ...touche. 20:11:55 *é 20:12:07 also C ;-) 20:12:47 http://esolangs.org/wiki/Java 20:13:42 hm surely APL isn't the first one 20:18:00 i thought of http://esolangs.org/wiki/Java2K 20:21:25 yeah me to but i don't count that 20:21:36 otoh we have http://esolangs.org/wiki/COBOL 20:22:42 -!- augur has joined. 20:23:41 -!- itidus20 has quit (Ping timeout: 250 seconds). 20:39:33 -!- derrik has quit (Quit: over and out). 20:47:28 -!- CakeProphet has joined. 20:47:28 -!- CakeProphet has quit (Changing host). 20:47:28 -!- CakeProphet has joined. 20:48:46 atehwa: ooh, as i'm looking through the language list for other purposes, i think no one has mentioned Paintfuck to you yet... 20:49:01 ...that's some major idling. 20:49:21 @tell atehwa You might wish to look at Paintfuck 20:49:21 Consider it noted. 20:49:29 ah yes 20:49:37 paintfuck was fun 20:49:44 i mean, uninteresting-looking language 20:49:54 but the tiny two-dimensional data plus storage as output... 20:49:57 very CA kind of feel 20:51:00 "increpare: I can parse the code beforehand to detect logical infinite loops. I think they occur as a certain pattern in the code." 20:51:06 ah the forum paintfuck was on is v. smart 20:51:22 "Edit: After I talked furthermore with ehird from #esoteric, it's a saner idea to leave the crash-course as is. so, as I originally said, it's a feature not a bug" 20:51:23 i show the light 20:51:57 god 20:52:00 oklopol's conway is awesome 20:52:34 conway? 20:52:56 life 20:52:57 game 20:52:58 thing 20:53:00 in paintfuck 20:53:13 00:36:30: i'm testing Haiku 20:53:14 00:36:54: and it appears that it is a major shit 20:53:14 00:39:07: 5+7+5, not 5+11, nooga 20:53:14 can i add quotes from three years ago... 20:55:47 do it do it 20:56:51 Nice quote 20:57:09 i for one welcome our new log-quoting overlords 20:57:37 `addquote [2008] i'm testing Haiku and it appears that it is a major shit 5+7+5, not 5+11, nooga 20:57:39 545) [2008] i'm testing Haiku and it appears that it is a major shit 5+7+5, not 5+11, nooga 20:57:59 -!- cheater_ has quit (Ping timeout: 255 seconds). 20:58:56 -!- CakeProphet has quit (Ping timeout: 276 seconds). 20:59:22 * oerjan removes Impossible! 20:59:48 ? 21:00:10 it's a nonexisting link from four months ago that was never filled in 21:00:36 the policy is clearly stated at the top of the language list (i should know because i added it) 21:01:41 in bold. 21:04:07 -!- MDude has quit (Read error: Connection reset by peer). 21:04:26 -!- MDude has joined. 21:05:20 -!- MigoMipo has quit (Read error: Connection reset by peer). 21:07:58 oerjan: :D 21:08:48 after a previous deletion orgy, probably. 21:09:55 i find no more esolangs named the same as a known (to me) mainstream language. although we do have shakell. 21:10:30 or did, anyhow. 21:10:37 SimonRC: WHERE DID SHAKELL GO 21:11:18 ANSWER OR I SHALL HAVE TO USE THE POLICY 21:11:24 -!- cheater_ has joined. 21:11:24 eventually, anyway. 21:14:02 * oerjan finds it on web archive 21:15:29 what's shakell again 21:15:44 "Shakell is an esoteric programming language created by SimonRC in 2005. It is mainly inspired by SADOL, but also Unlambda, Lisp and Haskell." 21:15:49 -!- elliott has set topic: I wrote the program for my Master’s Thesis (a dynamic programming problem) in Turbo Pascal, so I got good at functional programming. | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 21:17:53 is that for real 21:18:18 monqy: that is the actual topic, yes 21:18:30 ceci n'est pas un topic 21:19:17 monqy: http://www.johndcook.com/blog/2011/07/24/get-started-functional-programming/#comment-94407 21:19:42 :( 21:20:07 "This is why if you want to make sure no one ever instantiates a class (e.g. library) you not only need to make the constructor private, but also make that constructor throw an exception. I'd recommend UnsupportedOperationException. – ArtB 4 hours ago" 21:20:18 java is like this big party of assassins 21:20:27 where everyone is REALLY careful not to let anyone else move a muscle out of line 21:20:32 because they know 21:20:33 the urge 21:20:35 the urge 21:20:36 to KILL 21:20:42 i mean construct objects of private classes 21:20:46 same thing 21:21:06 java... 21:21:13 http://www.reddit.com/r/programming/comments/iz9rh/does_instanceof_void_always_return_false/c27uht9 good 21:21:44 * oerjan ponders mentioning twoducks to atehwa. i think it may be zzo38's most memorable language. it's the one _i_ remember, anyway. 21:22:08 But what if someone bytecode-modifies your class when loading and removes the exception? 21:22:35 fizzie: arrest them 21:22:52 fizzie: then it is no longer your class and you have nothing to worry about 21:23:34 But it still has all your author-annotations and whatnot dangling from it. 21:24:18 warranty void if exception removed by class loader, except if warranty void message removed by class loader 21:25:19 -!- Sgeo has joined. 21:26:06 my own @ from the early 90's had this idea of black box encryption of algorithms, which would be useful here. sadly in the real world this idea seems to have hit some roadblocks. 21:26:47 -!- Sgeo_ has quit (Ping timeout: 255 seconds). 21:26:51 "my own @" I'm glad people can relate to @ in this way 21:27:10 Can I convince you to try out @ when it's ready? :-P 21:27:13 ALWAYS NEED CONVERTS 21:28:18 there's obviously an idea of "perfect operating system that seems easy if you don't look too closely at how it would work" floating around in the collective geek subconscious. 21:28:35 I never expected @ to be easy :-) 21:29:02 it was more, reading a bit of the Loper blog at the start and then looking at TUNES and going, "oh. guess this is my computing life's work then." 21:29:42 oerjan: and -- I'm not even sure that's true 21:29:53 there are so many people who think Unix is some kind of perfection 21:29:55 should be ready just in time for the singularity. whether caused by or causing, remains to be seen. 21:30:11 who think it's literally impossible to improve on filesystems 21:30:25 oerjan: heh, I have to dismiss a lot of my thought trails on @ by going "wait no, that's singularity-level technology" 21:30:32 does losethos have filesystems i forget 21:30:37 monqy: yes 21:30:53 monqy: all other OSes just have defilesystems 21:30:54 elliott: i had no such qualms as it was essentially a sci-fi fantasy :) 21:30:55 GET IT 21:31:01 oerjan: lucky. 21:31:20 oerjan: (but I question any kind of "fantasy" that has black box encrypted algorithms running on your computer!) 21:31:23 more like a dystopia 21:31:52 elliott: it also had formal verification 21:32:19 Still. @ is pretty solidly based around the idea that I don't give a single shit about closed-source software at all and I want to make everything as open and transparent as possible :P 21:33:59 elliott: well the idea here was essentially to able to safely move your computations across the cloud even in the possible presence of malicious programs 21:34:42 ah 21:35:00 (i'm not sure the "cloud" concept was invented then though) 21:35:01 oerjan: (congrats for inventing the obvious about two decades before everyone else, and also actually thinking about the security implications) 21:35:05 snap 21:35:29 it may have been late 90s, i'm not quite sure of the timing 21:35:32 yeah, I'm not sure how @'s distributed computing model works... obviously I'd like it to be the same thing as the parallel programming model :) 21:36:32 Strange that people think it's impossible to improve on filesystems. 21:36:44 You can even improve on filesystems while retaining the concept. 21:37:25 Admittedly, there's not *that* much you can do while retaining the concept of "a chunk of bytes is the only data structure", but hey. 21:38:01 -!- itidus20 has joined. 21:38:25 * elliott sometimes worries that he'll never finish @. and probably everyone else has already filed it under Feather 21:38:53 >_> 21:38:57 :( 21:39:07 * pikhq_ has made bootstrap-linux smaller 21:39:17 oerjan: i actually have this _drive_ to make @ happen, though :D 21:39:17 I was able to remove Perl and GNU sed. 21:39:21 not quickly, just... at all 21:39:25 elliott: well you'd need to be an even greater genius than i think you are :P 21:39:29 and i can't avoid it by NIHing it further as it is The Ultimate 21:39:33 Now it only has things sane people would expect! 21:39:42 oerjan: FLATTERY GOES IN THE OTHER CHANNEL --------> 21:39:50 O KAY 21:39:55 Busybox, Binutils, GCC, Make, Linux. 21:40:09 oerjan: Maybe I'll pull a Stanislav and declare a brick to be @ 21:40:11 -!- CakeProphet has joined. 21:40:11 -!- CakeProphet has quit (Changing host). 21:40:11 -!- CakeProphet has joined. 21:40:13 (http://www.loper-os.org/?p=405) 21:40:41 bricks, black boxes, what's the difference. 21:40:45 "There are a great many other things this amazing silicon device refrains from doing! 21:40:45 Such as, for instance… computing. And yet, it is still a Lisp system!" 21:40:53 sometimes I wonder how Stanislav breathes without laughing 21:41:20 Does not impose an arbitrary order of sub-expression evaluation on programmers. 21:41:22 wat 21:41:31 I guess Stanislav likes his sub-expressions to be executed in parallel 21:41:48 wow i do too 21:41:59 elliott: it's par for the course 21:42:16 oerjan: btw what was that research you mentioned about automatic parallelisation... :D 21:42:34 i mentioned something you didn't already know? 21:42:42 well ages ago :P 21:42:57 it wasn't haskell-related? 21:43:02 it was, I think 21:43:03 oerjan: (also you manage that whenever oklopol ropes you into discussing mathematics for at least two lines) 21:43:30 elliott: i meant related to parallelisation 21:43:39 oh 21:43:51 and haskell, for that matter 21:45:59 hm despite lexicographic similarity, parallel list comprehensions are not it 21:46:25 i guess it's not in ghc directly 21:46:32 nah it was research stuff 21:46:42 maybe you just said there were no good leads that you knew of :) 21:48:42 well if it was _old_ i may simply have mentioned the realization that the overhead of fine-grained parallelism is too high for arbitrary automatic parallelization to have worked well in practice 21:49:04 right 21:49:14 I kind of feel like that's an artefact of our CPUs :/ 21:49:31 like, you know the Connection Machine? Feynman worked on it? 21:49:42 only by name 21:50:04 basically it had tens of tens of thousands of really simple processors with just a few kilobytes of ram each 21:50:17 and they operated on like single bits 21:50:24 I have a hard time believing incredibly-fine-grained parallelism wouldn't pay off on _that_ 21:50:43 well but the actual overhead is in the shuffling of work to and from processors, surely. 21:50:57 well, certainly 21:51:04 but it had optimised routers for that 21:51:11 basically you could communicate to nearby processors instantly... 21:51:19 and there are inherently sequential algorithms (e.g. euclid's algorithm) 21:51:24 well, sure 21:51:29 I'm not denying that 21:51:32 I just mean for subexpressions 21:51:39 I feel like you could dedicate a few hundred CPUs in each region to scheduling and let it go 21:51:48 for any subexpression that triggers some naive "big" predicate 21:52:07 but I don't think the Connection Machine ever really got made again. 21:52:13 i think the thing is that automatic parallelization works badly with code that isn't "obviously" parallel because it still requires intelligence to find out which parts _are_ parallelizable 21:52:28 right 21:52:46 I have this horrible feeling that it's going to be another super-wacky problem that solves this 21:53:00 just like functional programming solved the tangle of effects and dependencies problem 21:53:17 (and the "lack of higher-order control structures" problem) 21:53:19 erm 21:53:23 s/super-wacky paradigm/ 21:53:55 well the current research afaik is about solving it by making it easy for programmers to write programs in such a way that the parallelizable parts _are_ obviously indicated. 21:54:10 but that's not automatic 21:54:52 paradigm/problem :D multi-paradigm languages should henceforth be multi-problem programming languages 21:54:55 oerjan: right 21:54:57 program with many problems at once 21:55:00 olsner: mo paradigms mo problems 21:55:28 oerjan: I think what I really have to do is continue on my path of a super-scaled-back @ as the short- and medium- and short-long- term goals. 21:55:55 I can't just let it succumb to inertia on account of having a big unidentified blob at the centre, I have to try and tackle away at it bit by bit 21:56:42 -!- Lymee has quit (Quit: 1... 2... 3... HUGS! :D). 21:56:48 hug bomb 21:56:57 * oerjan ghcs elliott 21:57:06 *ghc 21:57:27 was going to make some horribly tasteless joke about norwegians, but decided i'm a better person than that 21:57:35 I guess this is just as bad though 21:57:47 nice horribly tasteless joke about norwegians, there 21:57:55 you're a horribly tasteless norwegian 21:57:56 OH SNAP 21:59:08 -!- Lymee has joined. 21:59:30 elliott: keep your jokes fnarfful 22:00:05 or maybe that should be fnarfless, if fnarf is not taste 22:00:54 elliott: the other thing i might have mentioned would be http://www.haskell.org/haskellwiki/GHC/Data_Parallel_Haskell 22:01:18 but how can you not know about that 22:02:46 -!- CakeProphet has quit (Ping timeout: 246 seconds). 22:03:27 oerjan: right 22:05:02 -!- CakeProphet has joined. 22:14:37 -!- CakeProphet has quit (Ping timeout: 260 seconds). 22:15:39 -!- CakeProphet has joined. 22:15:39 -!- CakeProphet has quit (Changing host). 22:15:39 -!- CakeProphet has joined. 22:21:35 -!- itidus20 has quit (Read error: Connection reset by peer). 22:22:35 -!- elliott has quit (Ping timeout: 255 seconds). 22:34:55 i'm gonna start signing my emails "Sent from my Cray X-MP" 22:35:25 only if i can use "Sent from SPACE" 22:35:44 you cannot. 22:41:11 this message sent from a tiny dust speck in space 22:45:40 -!- quintopia has set topic: "I wrote the program for my Master’s Thesis (a dynamic programming problem) in Turbo Pascal, so I got good at functional programming." -Robert Edwin Peary, Sr. | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 22:49:22 turbo pascal can get you to the top of the world 22:49:58 or close to it 22:54:21 Whereas regular Pascal is barely enough to get you up a moderate hill. 23:11:28 -!- TeruFSX has joined. 23:32:16 -!- FireFly has quit (Quit: swatted to death). 23:34:44 @hoogle ByteString->IO () 23:34:44 Data.ByteString putStr :: ByteString -> IO () 23:34:44 Data.ByteString putStrLn :: ByteString -> IO () 23:34:44 Data.ByteString.Char8 putStr :: ByteString -> IO () 23:34:58 @src Data.ByteString putStrLn 23:34:58 Source not found. 23:35:02 @src Data.ByteString,putStrLn 23:35:02 Source not found. It can only be attributed to human error. 23:35:05 @src Data.ByteString.putStrLn 23:35:05 Source not found. There are some things that I just don't know. 23:35:09 @src putStrLn 23:35:09 putStrLn s = do putStr s; putChar '\n' 23:35:13 @src Data.ByteString 23:35:14 Source not found. I am sorry. 23:40:37 @package bytestring 23:40:37 http://hackage.haskell.org/package/bytestring 23:41:56 if i have n regexes, is it possible to compile them all into one optimized thing that will match if either one had matched? 23:42:03 like a big or operator 23:43:53 Lymee: @src only has a small subset of sources. use hoogle or hayoo on the web. istr that hayoo searches all of hackage. 23:43:57 @list hayoo 23:43:57 No module "hayoo" loaded 23:44:00 bah 23:44:56 http://holumbus.fh-wedel.de/hayoo/hayoo.html#0:putStrLn 23:45:41 (that thing above is unlikely to be the ByteString version. although maybe they're identical.) 23:46:17 oerjan, are you smart with regex?? 23:46:37 oops, hayoo's source links are broken. the package name link should still work though. 23:47:15 or module link 23:47:49 cheater_: well why not just put | between them? 23:49:18 what if they contain | already.. hmm yeah then it works too i guess 23:49:35 whether it's efficiently compiled i assume depends on the regex implementation 23:49:43 i wonder if postgresql regex is compatible with python regex 23:49:46 then i would be god 23:50:00 i dunno 23:50:07 yea me either :-\ 23:50:52 http://hackage.haskell.org/packages/archive/bytestring/latest/doc/html/src/Data-ByteString.html#putStrLn 23:51:02 putStrLn = hPutStrLn stdout 23:52:17 -!- TeruFSX has quit (Remote host closed the connection). 2011-07-26: 00:18:11 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 00:24:37 cheater_: one | per pattern plz 00:24:40 :P 00:26:07 * oerjan detects an off-by-one error :P 00:26:47 oerjan: your mom was off-by-one. 00:27:01 can you guess which one it was? 00:27:20 wat 00:27:26 OH SNAP. 00:28:05 oerjan: (implying that you shouldn't have been born, or that you needed another sibling... but that one is less of a sick burn) 00:29:12 ok 00:29:14 well my parents _were_ married just about a month before i was born. draw your own conclusions. 00:30:00 I can't draw. 00:30:08 figures. 00:31:24 though my conclusion is that marriage doesn't matter very much. 00:31:32 except for the legal consequences, which matter a lot. 00:32:44 also, this was in 1970, a time when marriage definitely mattered. 00:33:31 it would basically have been unthinkable for them to _plan_ it this way at that time. 00:34:08 "No public logging! What happens in #emacs stays in #emacs " 00:34:10 booo1 00:34:31 (Note: The .. not actually all that funny stuff is over) 00:34:50 oh yeah. #emacs is a riot. Lots of kinky ASCII porn. 00:34:57 yeah if you want the world to search for your private secrets, tell them in #esoteric. 00:36:09 that's weird my browser locked up but seems to not be using CPU 00:36:25 bug. 00:37:11 some kind of resource bottleneck/deadlock, I guess? 00:37:58 perhaps. 00:38:33 there's always a possibility that it was a ghost. Perhaps you have a haunted computer 00:39:28 oh it's haunted all right, i just cannot recall this particular failure mode before. 00:39:33 if that is the case then you may have a computer capable of hypercomputation. 00:40:18 via ghost-power.. kind of like an oracle, but spookier. 00:43:32 hmmm, so doesn't the fact that humans are reasonably effective at solving the halting problem for a given language suggest that it's impossible to replicate human intelligence via Turing-complete computation? 00:44:34 well, I suppose since we're not perfect at it, and we can't solve it for languages that are unknown to us.. 00:44:47 no, because we are not reasonably effective at it. 00:45:30 -!- augur has quit (Remote host closed the connection). 00:46:24 -!- copumpkin has joined. 00:46:28 it is easy to construct problems we cannot solve. things like "loop through even numbers > 2 until you find one which is not the sum of two primes" just more varied. 00:48:41 now let's see if reloading previous browser session locks it up again. 00:49:44 evidence so far is ... hm it moved. 00:50:36 gah 00:51:06 now it's locked up _and_ using CPU. :( 00:53:28 gah it was a huge pdf file 01:05:28 -!- augur has joined. 01:11:50 -!- NihilistDandy has joined. 01:12:18 ping 01:13:20 6uod 01:16:36 classy 01:43:38 -!- variable has quit (Quit: I found 1 in /dev/zero). 01:43:52 -!- MDude has quit (Read error: Connection reset by peer). 01:44:14 -!- MDude has joined. 01:48:57 -!- CakeProphet has quit (Ping timeout: 264 seconds). 01:58:08 -!- cheater_ has quit (Ping timeout: 255 seconds). 02:01:59 -!- MDude has quit (Read error: Connection reset by peer). 02:02:21 -!- MDude has joined. 02:11:13 -!- cheater_ has joined. 02:27:07 -!- NihilistDandy has quit (Read error: Connection reset by peer). 02:29:22 -!- azaq23 has joined. 02:39:32 -!- Nisstyre has quit (Ping timeout: 255 seconds). 02:47:05 -!- TeruFSX has joined. 02:50:28 -!- jcp has quit (Quit: No Ping reply in 120 seconds.). 02:50:28 -!- javawizard has changed nick to jcp. 02:51:03 -!- jcp|other has joined. 02:53:19 -!- Nisstyre has joined. 02:54:23 -!- cheater_ has quit (Ping timeout: 255 seconds). 02:58:23 -!- TeruFSX has quit (Ping timeout: 276 seconds). 03:07:10 -!- cheater_ has joined. 03:08:08 -!- clog has quit (Ping timeout: 276 seconds). 03:08:34 oh no, we have been unclogged! 03:13:54 -!- copumpkin has changed nick to draino. 03:14:04 * draino grins 03:14:11 -!- Nisstyre has changed nick to Rainbow_Dash. 03:14:24 -!- draino has changed nick to copumpkin. 03:14:28 -!- Rainbow_Dash has changed nick to Nisstyre. 03:14:40 -!- azaq231 has joined. 03:16:05 -!- azaq23 has quit (Ping timeout: 252 seconds). 03:16:43 -!- zzo38 has joined. 03:19:08 Someone mentioned that my optimization/compression problem was related to LZW. I don't know for sure. 03:21:24 -!- TeruFSX has joined. 03:37:40 Do any other literate programs exist that can help with my problem? 03:43:22 -!- MDude has changed nick to MSleep. 04:05:24 Can someone please shed some light on http://www.reddit.com/r/AskReddit/comments/izm57/what_do_you_consider_to_be_the_greatest_unsolved/c27z4vt?context=3 ? 04:07:02 "selectable as an axiom, or counter-axiom" _implies_ unprovable. 04:07:46 and true & false applies to _models_, not axiomatic theories. 04:08:18 again, by godel's completeness theorem, if something is unprovable, then it is false in some model. 04:08:47 provable <=> true in all models 04:09:24 (models of the given axioms) 04:09:27 I feel like I understand less now 04:10:08 (Yes, that must be an illusion, generated by an unperceived lack of understanding, yada yada) 04:10:12 well, (1) the continuum hypothesis _is_ independent. this means that it is (2) not provable, _and_ (3) not disprovable. 04:10:43 (2) again is equivalent to it being false in some model of the rest of set theory 04:10:58 (3) then is equivalent to it being false in some model etc. 04:11:37 er wat 04:11:48 *(3) then is equivalent to it being _true_ in some model etc. 04:12:03 So what' are "true but unprovable" statements for a system of axioms? 04:12:10 Or does that not apply to CH? 04:12:51 there is no such thing, truth only applies _inside_ a model of the axioms, unless it holds for _all_ models, in which case its provable. 04:13:53 models here technically mean set theoretic models, which may be a little circular for this particular question 04:14:10 Can you post some of this on reddit? 04:14:24 i still have no account 04:15:30 oh hm or are you referring to that "this assumption is widely believed to be true." 04:16:08 which is the only instance of "true" in what you responded to 04:16:51 and that refers to a different kind of truth than the truth of the continuum hypothesis 04:17:48 it refers to whether ZF is consistent, which is believed to be true presumably because it's intuitive and no one has managed to construct an inconsistency 04:19:08 No, that's not what I was referring to 04:19:51 however, this means that the consistency of ZF is itself believed to be a true but unprovable statement. 04:21:30 (we know that _if_ it is true then it is unprovable, by godel's _in_completeness theorems) 04:21:47 *gödel 04:21:55 Much like scientific theories, one can only disprove the consistency of an axiomatic system. 04:22:47 pikhq_: well unless you prove it in a stronger system. 04:23:06 Well. Yes. 04:23:26 Though that leaves it still in doubt, because the stronger system itself could be inconsistent. :) 04:24:20 and i'm not entirely sure if there are some systems weaker than peano arithmetic (weak enough not to allow godel's proof) but still expressive enough to talk about their own consistency, and then maybe prove it. 04:24:34 i cannot recall hearing of any examples 04:26:11 since "expressive enough to talk about their own consistency" is _approximately_ what you seem to need to get godel's proof in the first place 04:29:31 there's a kind of "intended model of natural numbers" which people end up referring to when speaking about the latter kind of truth. 04:30:12 which is a model no one can know what is, since it has no complete axiomatization. 04:45:30 -!- pikhq has joined. 04:48:30 -!- pikhq_ has quit (Ping timeout: 252 seconds). 05:02:26 -!- BeholdMyGlory has quit (Remote host closed the connection). 05:31:39 ooh nerdgasm http://scienceblogs.com/startswithabang/2011/07/were_going_to_see_a_black_hole.php 05:32:48 (at the end) 05:34:55 (although you need the rest to understand _why_ it's so cool 05:34:57 ) 05:50:44 Why only radio waves? 05:50:55 What's special about radio waves that that technique works so well? 05:51:43 -!- zzo38 has quit (Remote host closed the connection). 05:52:55 perhaps it's because their frequency is so low that ordinary circuitry can handle them... 05:53:51 There was a Star Trek fan fic in some anthrology that had some sattelite that moved around the galaxy 05:54:49 http://memory-beta.wikia.com/wiki/What_Went_Through_Data%27s_Mind_0.68_Seconds_Before_the_Satellite_Hit 05:55:52 It seems that the limiting factor on that technique is data storage and/or bandwidth. 05:56:24 And radio frequencies are just about pushing the upper limit on that. 05:57:26 -!- TeruFSX has quit (Ping timeout: 252 seconds). 05:57:35 bah there had to be something in the comments to make it less awesome :( 05:58:37 oerjan, hm? 05:59:11 george monser calculates that the event horizon will only occupy a couple of pixels... 06:01:06 By "a couple", you mean "1 or 2" 06:01:08 Wow :/ 06:15:08 There's a good summary of them reasons why it works for radio in http://en.wikipedia.org/wiki/Aperture_synthesis 06:15:14 "Aperture synthesis is possible only if both the amplitude and the phase of the incoming signal is measured by each telescope. For radio frequencies, this is possible by electronics, while for optical lights, the elecromagnetic field cannot be measured directly and correlated in software, but must be propagated by sensitive optics and interfered optically. 06:15:20 Accurate optical delay and atmospheric wavefront aberration correction is required, a very demanding technology which became possible only in the 1990s. This is why imaging with aperture synthesis has been used successfully in radio astronomy since the 1950s and in optical/infrared astronomy only since the 2000 decade." 06:15:55 The more obvious article ("astronomical interferometer") is far less concise. 06:21:36 fizzie: So, magic. 06:25:26 smangic (official term from comments :P) 06:28:45 (the reddit comments, that is) 06:41:26 -!- copumpkin has quit (Ping timeout: 252 seconds). 06:41:43 -!- copumpkin has joined. 06:50:44 -!- ais523 has joined. 06:59:32 -!- ais523 has quit (Read error: Connection reset by peer). 07:00:34 -!- ais523 has joined. 07:03:30 -!- monqy has quit (Quit: hello). 07:41:38 -!- Nisstyre has quit (Ping timeout: 240 seconds). 07:43:04 http://www.youtube.com/watch?v=Gzj1OF7d9m4 It's somewhat amusing seeing people enter a Walmart for the first time. 07:43:31 I don't think I've ever been to a Walmart 07:43:47 they don't exist under that name in the UK, and the supermarkets owned by them probably don't operate much like their US equivalents 07:44:12 You can purchase just about everything in a Walmart. 07:44:30 hmm, I can tell I was tired last night 07:44:34 because I wrote the following line of code: if ((htole32(rv) & 0xffff) == 0x80cd) 07:44:38 Shy of, like, a car, or lumber, or something... 07:45:01 (rv is a long that has been read from a process's text segment) 07:45:21 you can buy firewood in petrol stations, in the UK 07:45:33 I'm not entirely sure why it's stocked there, it just sort-of became traditional 07:45:43 and you can't get it anywhere else, because everyone knows you go to petrol stations to get it 07:45:53 I suppose it makes sense to have one sort of shop for selling every type of fuel 07:46:04 That actually makes rather a lot of sense. 07:46:40 Except that here in America, we believe in having one sort of shop for selling every type of thing. 07:47:04 the problem is that you can't easily fit those onto street corners 07:47:27 in the UK, the trend recently has been to have small supermarkets, that sell just things that people would buy frequently, fitting into relatively small areas 07:47:34 although they're big-name supermarkets rather than corner shops 07:48:04 This is a non-issue when your urban design is based around the idea of having a 50 acre parking lot in front of a 40 acre store. 07:48:28 but then, umm, you'd need a car just to drive to the supermarket 07:48:32 Yes. 07:48:57 Guess what auto ownership rates are like? 07:49:12 I think there's a small supermarket within a minute's walk at all the places I tend to be (work, home, etc) 07:49:29 hmm, this reminds me, I only have two days left on my bus pass 07:49:38 (I buy it for several months at a time) 07:49:56 *Freakishly*, I happen to be about a mile away from a supermarket. 07:50:26 This is an exceptionally short distance for anything to be. 07:51:13 hmm, indeed 07:51:25 I suppose that the UK has a huge population density compared to most places in the word 07:51:27 *world 07:51:38 I discovered today that London has a substantially greater population than Norway, which surprised me 07:52:16 Actually, I think in *this* case it's just the US having fairly low population density. 07:53:14 Outside of the major population centers, you could without much trouble be at least a mile away from anyone else. 07:53:18 it varies a lot by state, I think 07:53:25 True, it does. 07:54:25 Anyways. Everyone has cars, and there's a lot of space, so there's no incentive to make dense, walkable cities. 07:56:03 supz 07:58:42 pikhq: i've always found it crazy how spread out everything in usa is 07:59:01 pikhq: if you had dense, walkable cities, you wouldn't have to use cars 07:59:32 ais523: Yes. And if we didn't already have to use cars, we would have reason to have dense, walkable cities. 07:59:54 hmm 07:59:58 ais: that's silly, it doesn't work like that 08:00:00 even not needing a car for some things is a benefit 08:00:11 e.g. it takes me a couple of hours to walk to work, so I generally need to take a bus 08:00:24 but if, say, I want to buy food, or go to the bank, that's within reasonable walking distance 08:00:24 And it doesn't help that the car companies bought up all the public transit and ruined it in the early 1900s. 08:00:42 ais: nowadays people need to commute, it's a requirement of our way of life. it takes a special dedication for someone not to commute at all. 08:00:50 the public services are moderately ruined here 08:00:55 even i have to commute every now and then. 08:00:58 but even so, they're still cheaper than cars, by a factor of about 2 08:01:13 and i can find pretty much anything within walking distance. 08:01:19 What do the opportunity costs on that look like? 08:01:26 The bus that goes by here runs twice a day. 08:01:46 on a popular bus route, it's about once per 15 minutes offpeak, and once every 5 minutes or so at rush hour 08:01:54 the least popular bus routes generally run once an hour 08:02:06 but tend to be pretty accurate with their timings, and have easily memorizable timetables 08:02:30 I've only seen that performance in the handful of dense, relatively walkable cities. 08:02:42 in london the important ones even run once an hour at night 08:02:55 they used to do that in Birmingham too 08:02:57 but don't any more 08:02:57 Otherwise, the buses are utterly unusable. 08:03:07 instead, they just stop a little past midnight, and start up again at 5am 08:03:15 To the point that it would be quicker to walk. 08:03:24 pikhq: london isn't walkable at all. you're most likely to work within 40 minutes of commuting from where you live. 08:03:26 In a land where it can be 8 miles to the grocery store. 08:03:55 yep, unlike utilities, workplaces tend to be rather further away 08:04:06 cheater_: Only 40? 08:04:21 in London, people generally use the Tube, even though it's really bad for medium-length distances (you can spend as long going down and up to reach it, as you would walking along the surface) 08:04:29 I like being within walking distance of stuff 08:04:40 pikhq, that's the usual yes 08:04:51 in Birmingham, the train seems most common if you live near a train line (which I do, but it's only about 30% likely), or the bus otherwise 08:04:58 pikhq, that's 40 minutes each way 08:04:59 cheater_: Impressive in such a highly-populated city. 08:05:04 cheater_: Yes, I know. 08:05:27 pikhq, funnily enough the "last mile" is the most expensive.. the tube itself usually takes a fraction of the time, but takes you the longest way 08:05:36 -!- oerjan has quit (Quit: leaving). 08:06:03 OTOH the tube makes you ill and deaf, so i don't like it. 08:06:04 cheater_: did you know that the escalators that reach the Tube system in London run about twice as fast as escalators elsewhere in the UK, such that they need a little practice to use safely? 08:06:17 it's an attempt to cut down on that effect 08:06:50 ais523, it's a rush, i like the escalators 08:07:07 (they also tell tourists/people who don't know what they're doing to keep to one side, so that they don't block the commuters from running up/down the escalators in the direction they're going to get places even faster) 08:07:19 I like them too; I've been to London often enough that I know how to use them 08:07:34 in brixton you have an escalator that starts out almost right at the entrance and goes all the way to the platform 08:07:41 and it's like 2-3 stories high 08:08:05 It's bizzare. A bunch of webchat idiots were in both #chicken and #jesus 08:08:09 yeah, people have to yield if they're not on the side 08:08:13 Not in #chicken anymore they banned webchat users 08:08:26 Sgeo, what's #chicken and why is this combination bizarre? 08:08:48 It's... just a really weird combination for a bunch of people to be present in, imo 08:09:39 -!- ais523 has quit (Read error: Connection reset by peer). 08:09:46 cheater_: Presumably Chicken Scheme. 08:10:09 the transit system in berlin was very shitty 08:10:14 you can't get anywhere 08:10:19 in munich it's much better 08:10:30 -!- ais523 has joined. 08:10:32 munich also has a much higher population density, it's like zone 3 in london 08:10:40 Probably doesn't help that the transit system in Berlin spent a few decades having to work around the Wall. 08:11:07 ais523: What I thought was a bit strange was that the tube walkways had all these "keep to the right" signs, yet you drive cars on the wrong side of the road. 08:11:09 pikhq, berlin transit is pretty much ubahn and sbahn, it has nothing to do with the wall. 08:11:28 -!- Nisstyre has joined. 08:11:35 the roads were build before the wall, so that's no problem either. 08:11:43 fizzie: the reason you drive on the left is that most people are right-handed, so you can get onto your horse from the sidewalk without your sword getting in the way 08:11:54 Except they couldn't do much improvement on them. 08:11:57 ais523: But why do you walk on the right, then? 08:12:08 the walk on the left/right seems arbitrary 08:12:15 I think it's because people naturally go right when faced with obstacles 08:12:19 so that they can attack them more easily 08:12:52 ais523, that's wrong, it's the usual on rhd roads for slow cars to be on the right side 08:13:03 "rhd roads"? 08:13:14 Right-hand drive? 08:13:16 sorry, i meant lhd roads 08:13:24 i.e. "normal driving side" 08:13:38 the general rule in all road systems I've seen, in a range of countries, is that slow cars are adjacent to the sidewalk/pavement, fast cars nearer the centre 08:13:54 How optimistic of you. 08:14:03 i guess that's one way for the british to admit imperial arbitrations are failing and they need to make themselves compatible with the rest of the world 08:14:33 Slow cars are inevitably side-by-side and going the same speed. 08:14:42 i've also noticed another funny imperial/metric thing 08:14:53 in Hungary, motorways don't have slip roads; instead, the speed limit on the rightmost lane (it's drive-on-the-right) gets reduced gradually to a very slow speed, then it just has a normal junction with another road, then it gets increased more quickly back up to full motorway speed again 08:14:56 Driving past a "Slow Traffic Keep Right — It's The Law!" sign. 08:15:48 ais523: You can also buy firewood from (many) petrol stations in Finland, too. It feels logical. 08:16:03 They sell "that sort of stuff". 08:16:24 it is that the Schuko is specified in inches, whereas BS 1363 is specified in meters. how crazy is that? 08:16:34 it's like the bizarro world of electric engineering 08:16:36 Also coals for barbequeueing. 08:16:42 pikhq: in the UK, slow cars in the inside lanes generally get mown down by lunatics 08:16:52 it's not really an ideal way of enforcing the law, but it works moderately well 08:16:57 ais523: You have no idea how happy that idea makes me. 08:16:58 also, lorries are banned from the inside lane in a motorway 08:17:17 Seriously, that makes me ecstatic. 08:17:21 in fact, you're not meant to keep to the inside lane except to overtake, but people do it anyway (keeping in the middle lane is fine) 08:17:45 ais523, have you ever lived in hungary? 08:17:58 cheater_: only for a week 08:18:10 fizzie, it makes lots of sense since the items you use for barbecue are of petrochemical origin. 08:18:12 I can't speak more than a couple of words of Hungarian, and they're mostly ones that can easily be inferred 08:18:22 oh, i am learning italian now. 08:18:26 although I can pronounce it pretty well (it's a phonetic language, so it can be pronounced even without knowing what the words mean) 08:18:40 People here generally tend to return to the outer lines after overtaking, at least on "proper" highways as opposed to these in-city things, but of course our roads aren't usually very busy. 08:18:41 i'm wondering if i should translate the source of the latest program to italian 08:19:56 ais523, why would they do that with the Schuko and BS 1363? 08:20:10 that makes no sense at all! 08:20:56 cheater_: Maybe it has something to do with how soda is sold by the liter in the US? 08:22:37 Nah, more likely Germany just wanted to fuck with us. 08:22:52 pikhq, no freaking idea 08:23:09 why would the british make the BS1363 metric then? 08:23:24 -!- ais523_ has joined. 08:23:49 -!- ais523 has quit (Disconnected by services). 08:23:50 -!- ais523_ has changed nick to ais523. 08:25:01 The British have a well-documented propensity for fucking with people. 08:25:29 that's all very weird 08:27:24 Also, BS1363 isn't metric. 08:28:18 1/4 inch wide by 5/32 inch high pins aren't metric. :) 08:28:53 i've measured one, it's spot-on metric 08:29:01 let me measure another one 08:29:20 They have retroactively assigned it to 6.35mm by 3.975mm. 08:29:45 Though a more round 6.25mm by 3.9mm would be within tolerances. 08:30:19 (which are ±0.13mm and ±0.075mm) 08:33:57 I wouldn't be surprised if Schuko was also retroactively metricized; Wikipedia lists the pin separation at "19 mm", which is 0.748 inches, suspiciously close to 3/4. 08:34:37 Yeah, that seems quite plausible. 08:35:49 the standard pin spacing in electronics, if you're assembling the circuit by hand, is a deciinch 08:36:04 In the name of not-confusing-you, the US's connector, NEMA 1 or 6, is non-metric. 08:36:06 umm, I think that needs a diaeresis 08:36:10 deciïnch 08:36:25 Erm, 5. 08:36:27 Not 6. 08:37:01 well, i've measured three 08:37:07 (NEMA is a group of electrical socket standards; only 1 and 5 are in common domestic use. 1 is ungrounded, 5 is grounded.) 08:37:48 some are closer to metric-like, some are closer to imperial-like, however in all three the longer dimension of the base of the small pins (the ones carrying hot and neutral) are spot-on 6 mm! 08:39:09 So, what you're saying is that they're way out of spec in the name of metric? :P 08:39:24 ? 08:39:31 i think it might be so 08:40:02 That should be 6.35±0.13mm. 08:40:23 it's definitely not 6.2 or more. 08:50:17 i wonder.. why do more people not use banner style indent? it's so confenient 08:50:49 OTBS seems to be the prevalent one, but it makes no sense in braceless languages.. and even in braced languages, once i started using it, it makes much more sense 08:52:14 In the braced languages, OTBS is perceived as being part of the syntax. 08:52:37 what's banner indent? 08:53:30 ais523: The closing bracket is at the same indent level as the previous statements. 08:53:34 this is ( 08:53:38 banner, 08:53:41 indent, 08:53:44 style. 08:53:45 ) 08:53:51 ouch 08:53:51 Like that. 08:54:09 putting the closing bracket on the same line as the last statement makes more sense than that 08:54:16 I think I used to do that 08:54:16 I find myself doing that more and more nowadays 08:54:16 that's lisp style 08:54:19 yep 08:54:34 I don't use Lisp, but any writing out of ASTs by hand is going to end up with huge numbers of stacked parens 08:54:36 i don't like it because the closing can get lost 08:54:39 and I've been doing that quite a bit 08:54:46 well you concatenate 08:54:49 for example 08:54:52 this is ([ 08:54:58 banner, 08:55:00 style, 08:55:01 too. 08:55:03 ]) 08:56:11 i started using it because, well, in python basically you have very few situations where you actually have braces, and i was using that for a long time 08:56:33 then i've had some heavy bash-style projects and using OTBS for the fi and done and so on just didn't make sense, so i started using banner style for that 08:56:49 and then i noticed that it also applies to python, when you're using multiple lines for function calls etc 08:56:52 Absolutely *nothing* in Bourne makes sense. 08:56:55 And with that, sleep. 09:27:09 gah, this web page about Unicode is really hard to read, because it sprinkles Unicode everywhere gratuitously because it can 09:27:20 my browser interprets the encoding fine, but my fonts are missing many of the characters in question 09:53:28 -!- itidus20 has joined. 09:54:12 -!- Slereah has quit (Ping timeout: 276 seconds). 09:54:28 -!- GuestIceKovu has joined. 10:03:15 So, just downloaded some crappy card game program 10:03:27 Try it, there's an option for setting the random seed 10:03:34 That.... sounds abusable 10:05:39 haha 10:06:09 It's also quite common. Doesn't the Windows-bundled FreeCell also allow it? (With the old one having 32000 possible games, of which all but one are solvable, or something like that.) 10:06:31 fizzie, Barbu is not a single player game 10:07:07 Oh, well, that's rather different. 10:07:25 http://i.imgur.com/Xua00.png 10:08:23 Not the prettiest dialog ever. 10:11:21 -!- ais523 has quit (Ping timeout: 255 seconds). 10:14:37 -!- ais523_ has joined. 10:15:47 gah, it's annoying having to use webchat on the wired connection here 10:16:05 especially as the CAPTCHA requires unblacklisting script from Google 10:16:39 luckily, I found a NoScript setting that lets me turn off a temporary-allow without reloading the page, so that I can have Google blocked except when typing the CAPTCHA 10:17:21 so if you had a reasonably perfect reality simulation... would you have to follow real world patent laws? :D 10:17:46 eg.. is it illegal to build a patented device from physical space in a virtual space 10:18:28 the courts will have fun with that one oneday 10:20:59 -!- azaq231 has quit (Read error: Operation timed out). 10:23:02 -!- FireFly has joined. 10:24:51 So.. perhaps the mystery of society is that society is a living list composed of beings who are theoretically equal but actually cardinal 10:25:13 and it is their dire burden to organize that list among themselves 10:25:27 for the good of themselves and the good of the list 10:26:16 -!- azaq23 has joined. 10:32:03 -!- clog has joined. 10:32:36 What. 10:33:01 hi clog 10:48:53 -!- clog has quit (Ping timeout: 240 seconds). 11:03:03 I win 11:03:13 I just fixed a bug in a C++ standard library using the unary + operator 11:11:16 are there set theories with non-linear order relations on cardinality? 11:11:34 coppro, what does the unary + operator do again? 11:11:43 makes something positive? 11:12:03 cheater_: does nothing except perform integral promotion 11:12:09 which, in this case, was exactly what I needed 11:13:01 what is integral promotion? 11:14:42 For example, it can be used to force widening from smaller integral types to int, or ensure that an expression's result is treated as an rvalue and therefore not compatible with a non-const reference parameter. I submit, however, that these uses are better suited to code golf than readability 11:15:04 Given that this is C++, if it's not a primitive type, you can never know what the unary + will do to it. 11:15:34 coppro: I wrote this earlier: if ((htole32(rv) & 0xffff) == 0x80cd) 11:15:42 I was very tired, the line of code makes no sense in all sorts of ways 11:15:50 haha 11:15:52 fizzie: true 11:16:01 coppro: can you imply what's going on there from context? 11:16:13 or, well, imply the context from the code? 11:16:20 nope 11:16:33 I mean you're checking the low bits 11:16:56 well, the most obvious bug is that I don't htole16 the 0x80cd 11:17:10 I'm not checking the low bits, I'm checking the first two bytes of rv 11:17:17 which is why there's a byte order conversion there 11:17:35 and the reason is, the read command I have always reads four bytes at a time on x86 (eight on x86_64) 11:17:35 ah 11:18:09 the more subtle bug is, that CD 80 is an x86-specific asm instruction, so I may as well just hardcode the endianness because the code wouldn't work anyway on a different processor 11:18:17 it just feels wrong to hardcode something like that 11:18:21 ahaha 11:18:32 although I don't know why I'm uneasy about hardcoding endianness, but not about hardcoding literal machine code 11:18:42 Ha, it in fact looked like an x86 opcode, but I hadn't managed to find the list fast enough. 11:19:18 CD is interrupt, right? 11:19:19 perhaps so that if it gets ported to another processor, I can just copy the code, changing the machine code, and it won't break even if it happens to be big-endian 11:19:22 yep 11:19:30 and on Linux, CD 80 = syscall 11:19:44 isn't there a separate syscall instruction? 11:19:57 the syscall instruction is int 0x80 11:20:17 I don't think there's a single instruction which means "do syscall", it's done via the interrupt vector as interrupts get you into kernel mode 11:20:45 There is a syscall instruction on newer processors 11:20:49 There's both "syscall" and "sysenter", from AMD and Intel. 11:20:52 there's also a trick in this code that I only discovered by stracing strace 11:20:52 coppro: aargh 11:20:55 does Linux actually use it? 11:20:59 ais523_: Yesish 11:21:00 if so, I'll have to look up its machine code too 11:21:05 On x86-64 it at least is used. 11:21:12 this code's 32-bit specific 11:21:18 ais523_: The 'correct' way to syscall on a modern Linux machine is by jumping into linux-gate.so 11:21:23 I may port it to 64-bit someday, but it involves naming individual registers 11:21:27 coppro: I'm not trying to make a syscall, though 11:21:40 which is a magic shared library loaded into memory by the kernel at a fixed address which contains the syscall instruction, selected by processor to be whatever is fastest 11:21:47 I'm trying to, when a different process makes a syscall, wind its IP back a bit and change its registers so it makes another syscall 11:22:18 I ended up replacing read() and write() with state machines, they can make up to five syscalls to emulate what read() and write() normally do 11:22:19 ah ok 11:22:20 all in the name of determinism 11:22:35 linux-gate.so has some magic 11:22:49 gah, more magic's the last thing I need, I have enough of that stuff already in here 11:23:32 http://lkml.org/lkml/2002/12/18/218 11:23:43 I'm already accessing a file via /proc/*/fd because that's the only accessible name for it on the system 11:24:13 ooh wow, that's useful 11:24:18 Linux just subtracts two from the IP too? 11:24:33 that means that all the testing to see if I can get away with subtracting 2 from the IP is unnecessary 11:24:52 :D 11:25:15 http://www.trilithium.com/johan/2005/08/linux-gate/ 11:26:04 oh, so /that's/ what VDSO stands for 11:26:05 Fortuitously sysenter's also two bytes long. 11:26:06 I'd been wondering 11:26:11 it didn't seem to matter 11:26:16 but I was curious 11:26:53 hmm, it also tells me how to get at auxv 11:27:07 the kernel initializes part of it with 16 random bytes, I need to go and make them deterministic again 11:28:31 it doesn't help that the auxiliary vector is undocumented, and referenced only in the ELF loader 11:28:47 (I've been grepping kernel sources far too much for this project) 11:30:31 ais523_: Anyway, do you actually need to mangle the EIP there? Isn't it just enough to do PTRACE_SYSCALL, then on the syscall entry stop just PTRACE_SETREGS the arguments and the syscall number to what you want and the PTRACE_SYSCALL again to get to the exit point? Why do you need to re-execute the actual instruction? 11:30:47 fizzie: because I need to replace one syscall with five 11:30:58 -!- itidus20 has quit (Quit: Leaving). 11:31:07 replacing one with one is easy, and doesn't require redoing syscall instructions at all 11:32:04 (it's not quite a simple 1-with-5, either; it's actually replacing 1 with 1, 2, 4, or 5, depending on return values, which is why I need the state machine) 11:33:49 I wonder if I should borrow strace's trick for ptracing child processes and still letting the parent get a wait() notification 11:33:59 (it basically works by anticipating when the child's about to exit, and detaching just in time) 11:34:24 I've already borrowed its trick for replacing fork with sys_clone so that the child can be traced too 11:34:42 (using an argument pattern that's documented, but not available via the clone(2) wrapper) 11:35:38 ais523_: It sounds like it should be possible to replace that one syscall with something that is configurable enough so that you can hook whatever complicated code you need to do at the other end of it, but maybe I won't start guessing without knowing the details. 11:35:41 (All this assuming you wish to stay strictly on the userland side.) 11:36:06 I'd write a kernel module if I had to, but I don't think it's necessary 11:36:30 and I may as well explain what I'm doing in Stage 1 of the project (which is likely the hardest stage): trying to create a framework for running programs in a completely reproducable way 11:36:49 so that given the same input, you get the same output, even if the program does something bizarre like catting /dev/random or printing out the values of pointers 11:36:57 or counting pagefaults 11:38:04 Remember to account for accessing the processor performance counters with the RDTSC opcode. (Though it's possible that's a privileged operation? Or maybe not. It's supposed to be rather low-overhead.) 11:38:25 It's not 11:38:45 oh, ouch, you can do that? 11:38:57 I may have to just hope that code doesn't do that 11:39:05 single-stepping every instruction is intolerably slow 11:39:23 besides, it breaks on SMP systems, IIRC, and programs tend to avoid it for that reason 11:44:45 Yay, I introduced another person to the inability to decide on a language that is my life 11:44:53 hmm, what do virtualisation programs do about RDTSC? 11:45:14 Sgeo: pick PHP, that way at least you can be certain you made the wrong choice 11:48:33 ais523_: At least the AMD-V hardware virtualization system lets you do an "instruction intercept" for RDTSC. 11:48:48 And if it's doing full software emulation it can of course do whatever. 11:49:06 yep, I'm hoping to avoid having to do full software emulation 11:51:18 it'd be nice if this worked for arbitrary programs, but I mostly just want to get the subset that people actually use working 11:51:32 for instance, cat almost works, I'm just missing deterministic support for open 11:51:35 The hardware virtualization systems would probably let you control everything, but you probably can't do that from a user-mode process (at least VirtualBox needs the vboxdrv module, which I think does something related) and it would be a lot more complicated than just some system-call trapping. 11:51:42 yep 11:51:54 you can singlestep, but not stop on instructions of your choice 11:52:21 hmm, what about setting a breakpoint everywhere that looked like a RDTSC instruction? does setting breakpoints on data do anything? 11:52:39 if it's implemented by replacing instructions, it wouldn't work in case it overwrote data or a misaligned instruction 11:52:42 -!- ttm_ has quit (Ping timeout: 276 seconds). 11:52:50 but somehow I think it's implemented a safer way 11:52:52 You might run out of (hardware) breakpoints. 11:53:15 hmm, yes 11:53:19 they'd have to be hardware breakpoints 11:53:23 how many do you get? 11:53:41 I'm trying to do all this stuff without really knowing what I'm doing 11:55:13 also, there's something so wrong about typing "strace strace", even though there's no obvious reason why it wouldn't chain 11:55:57 I think there are four breakpoint control registers, but I don't know anything about any kernel interfaces for accessing that stuff. 11:56:18 I didn't notice one in the list of syscalls 11:56:23 so I'll just go download gdb source, and look there 11:56:57 I was just about to suggest that. 11:57:23 bleh, apt-get source is hanging, presumably because it's using the wrong proxy 11:57:57 There are some undocumented features in the x86(-64) hardware breakpoint system which lets it do... I forgot what it was, some form of data-dependent breakpointing in hardware that's not officially supported. 11:58:36 -!- Taneb has joined. 11:58:38 "Since they depend on hardware resources, hardware breakpoints may be limited in number; when the user asks for more, GDB will start trying to set software breakpoints. (On some architectures, notably the 32-bit x86 platforms, GDB cannot alsways know whether there's enough hardware resources to insert all the hardware breakpoints and watchpoints. On those platforms, GDB prints an error message only when the program being debugged is continued.)" 11:58:45 Hello 11:58:52 I'll download it with Firefox instead 11:59:02 GDB's "software breakpoints" are based on opcode replacement. 11:59:07 I sent off for a new AC adapter for my laptop 11:59:12 opcode replacement definitely won't work 11:59:16 Waited a couple of weeks 11:59:28 And they sent me the wrong thing 11:59:56 -!- itidus20 has joined. 12:00:21 ais523_: You should be writing for a Harvard arch, then you could freely replace opcodes without worrying about messing up data. 12:00:34 fizzie: heh 12:01:02 I can actually tell where the text, rodata and bss segments were in the executable, by looking at mmap 12:01:07 well, /proc/*/maps 12:01:34 I can save on required breakpoints somewhat by only setting them in executable segments 12:01:38 and moving them around on every call to mprotect 12:02:43 The RDTSC problem might not be very important in practice, at least for "sensible" programs. I think it's mostly used as a high-precision timer for "interactive" things, and even there it's a bit discouraged practice since it's not a monotonic clock in a SMP system, so well-behaved programs should be using the OS interfaces instead. 12:03:19 a high-precision timer for interactive things is exactly the sort of thing I need to stabilise 12:03:27 time is one of the hardest things to get reproducible 12:03:55 btw, anyone know how to modify a file's inode change time? as far as I can tell, the only way to do so is to set the system clock, change the inode, then put the system clock back again, and that's obviously ridiculous 12:04:11 I think I'll just pretend it's equal to the modification time on read, much simpler that way 12:04:44 ais523_: Unmount, manipulate bits, remount. :p 12:04:59 the fs I'm using isn't backed by an actual device 12:05:02 it's just a tempfs 12:05:15 which is mounted in a separate namespace so that, from the point of view of other processes, it can't be named 12:05:52 except by going through /proc 12:06:12 (the other way round, there's no way to name files on the main system's file system at all, except by breaking a chroot, which is exactly what I want) 12:06:27 I don't think there's an actual interface for setting the ctime, though. You may need to just fake the value returned by stat. 12:06:48 yep, that seems simplest 12:07:01 (Or use a FUSE filesystem instead of a tmpfs.) 12:07:04 (I suspect it's partly because setting the ctime should, logically, update the ctime to the current time immediately afterwards) 12:07:22 I'm using a tmpfs because it's there, and it's convenient 12:08:30 and has almost the right semantics 12:09:56 Reading the ptrace manpage made me wonder what exactly is the difference between PTRACE_SYSCALL and PTRACE_SYSEMU. Is it just that the latter doesn't stop at syscall exit, the assumption being that you're not going to actually perform a syscall as the child but instead fake it in the tracing parent and return the results directly? 12:10:26 fizzie: PTRACE_SYSEMU basically changes the int 0x80 (or sysenter) into a nop 12:10:31 Right. 12:10:38 the kernel doesn't do the syscall, just leaves the registers as they are 12:11:07 if I need to remove a syscall, I can do so by changing orig_eax to some nonimplemented number on the call, then changing the return value from -ENOSYS to whatever I want on the return 12:11:29 I haven't needed to do that yet, but suspect I may end up having to at some point 12:11:58 I suppose you want PTRACE_SYSCALL since you want to execute your syscalls as if the child were calling them, instead of just faking them in the tracing process. 12:12:04 yep 12:12:16 and because you can emulate SYSEMU with SYSCALL, but not vice versa 12:12:26 especially as the vast majority (well, more than half) of syscalls go through unchanged 12:12:59 hmm, do you know of any way to interrupt a long sleep (like select(NULL, NULL, NULL, 100000);)? 12:13:16 I haven't tried any methods yet; I'm hoping that it works to send SIGTRAP to the process, then use ptrace to replace it with SIG_0 12:13:44 in theory that should cause the select to keep on going, but I doubt it can because there was an actual signal there 12:13:54 Sending signals sounds likely to work, that's what usually breaks long-running syscalls. 12:14:24 yep, the solution is likely to involve signals somehow 12:14:31 the man pages say that they're only interrupted by handled signals 12:14:50 although, that seems inaccurate, as you'd expect, say, an unhandled SIGINT to exit the process and interrupt the syscall in the process 12:14:51 There's that system call restart mechanism that was described/mentioned in the linux-gate text. 12:14:55 (pun unintentional) 12:15:03 system call restart's used in a different set of cases, I think 12:15:18 so I'm wondering what happens if you signal the process, then use ptrace to unsignal the process again (which is possible) 12:15:26 do you get EINTR, or restart, or something else? 12:18:32 I'm not sure I'd like to hazard a guess. I don't even know what happens first when you send a handled signal to a process that's currently being PTRACE_SYSCALL'd; whether it will stop at the "syscall exit" SIGTRAP-alike or what. 12:18:51 neither do I 12:18:55 that should be easy to test, at least 12:20:47 The syscall restart mechanism at least works in user code (it's just the return address that changes) and presumably you get the ptrace "syscall exit" trap at that point, so you can there decide whether to allow the restart to happen or not. But I don't really know the exact order of things happening, i.e. when will the signal get (a) delivered to ptrace or (b) handled if you let it be. 12:21:50 I sent SIGINT to sleep(1), and got a syscall return with value -516 (there doesn't seem to be an errno 516), followed by SIGINT arriving 12:22:15 it seems it was using nanosleep to do its sleeping 12:22:50 in particular, -516 does not seem to be -EINTR, which is -4 12:23:14 But it is -512-4. 12:23:22 The 512 sounds like a flag. 12:23:31 aha 12:23:41 that's probably it 12:23:42 (Pure guess.) 12:24:07 let me try it again using a syscall that sleep(1) will ignore 12:24:51 I sent it SIGCHLD, and it returned -516, then received SIGCHLD, ignored it, then called syscall 0 12:25:03 which is restart_syscall 12:25:25 it does look very much like the -512 is a sign that the syscall should be restarted, if the program is interested in restarting it 12:25:26 So it gets "physically" interrupted in all cases, but auto-restarted if the signal is not handled. 12:25:31 yep 12:26:37 according to signal(7), nanosleep is interrupted and returns EINTR if interrupted by a signal handler 12:26:48 but that wasn't a signal handler, it was SIGCHLD, which sleep(1) has no reason to handle because it never forks 12:27:16 The 'strace' command prints the return value -- when I "sleep 1000" + kill -CHLD it -- as "ERESTART_RESTARTBLOCK (To be restarted)" 12:27:20 all I need to do to force an EINTR, then, is to replace the -516 with -4, I bet 12:27:27 and I can get a success return by replacing it with 0 12:27:45 strace is great for making sense of things 12:28:04 in fact, I've been expanding syscall arguments that represent flags just by compiling them into a small test program and stracing them 12:29:35 Good way of letting someone else have to handle the dirty work of gathering lists of all those flags and their meanings. 12:30:22 I dread trying to deal with ioctl 12:30:57 at least it can only be used on character special devices, which cuts down the number of cases somewhat; if I don't mknod a device, then nothing can ioctl at it 12:31:04 -!- CakeProphet has joined. 12:31:04 -!- CakeProphet has quit (Changing host). 12:31:04 -!- CakeProphet has joined. 12:31:45 perhaps I'll go and censor anything in my code that gives away why I'm writing it, and post source somewhere 12:31:47 it'll take a while, though 12:32:04 linux/errno.h has values 512..516 as ERESTARTSYS, ERESTARTNOINTR, ERESTARTNOHAND, ENOIOCTLCMD and ERESTART_RESTARTBLOCK with a comment "These should never be seen by user programs. -- Note that ptrace can observe these at syscall exit tracing, but they will never be left for the debugged user process to see." 12:32:22 good catch 12:32:59 Also for some improbable reason there's a set of NFSv3 errors in the same file. 12:33:04 hmm, I should try to track down that suspected kernel bug I saw earlier 12:33:34 #define EJUKEBOX 528 /* Request initiated, but will not complete before timeout */ <- Interestingly named. 12:34:56 same file? 12:35:21 hmm, I should look into the implementation of syscall(2) some time 12:39:01 fizzie: gdb/i386-nat.c seems to do the debug register accesses 12:39:06 it seems that you can only set four hardware break/watchpoints 12:39:23 which is a little annoyingly low 12:39:23 Yes, there's DR0 .. DR3 registers for it. 12:39:51 and DR6 and DR7 are status and control 12:40:25 I've only used three at any given time. 12:42:18 the actual interface for setting the debug registers for another process in Linux appears to be to poke into the context-switched-out version of the registers using ptrace, so that they get set as the process context switches back in 12:43:56 aha, it's "u_debugreg" in struct user 12:43:57 -!- ttm_ has joined. 12:44:31 -!- clog has joined. 12:46:13 -!- ais523_ has quit (Quit: Page closed). 12:52:33 Another auto-generated book: http://www.barnesandnoble.com/w/nomic-lambert-m-surhone/1025063254?ean=9786130549695&itm=13&usri=nomic 12:52:56 Or... huh? 12:53:08 How does the cover know that it's Suber if it's autogenerated? 12:53:17 But... HIGH QUALITY WIKIPEDIA ARTICLES 12:54:24 http://www.barnesandnoble.com/w/road-rules-lambert-m-surhone/1028378779?ean=9783639996302&itm=1&usri=lambert%2bm%2bsurhone 12:55:02 Um, clicking the cover gives a different picture 13:03:22 You know who has an underappreciated job? 13:03:29 Tech support people 13:18:33 -!- copumpkin has quit (Ping timeout: 252 seconds). 13:18:57 -!- copumpkin has joined. 13:32:57 -!- derrik has joined. 13:40:17 -!- azaq23 has quit (Quit: Leaving.). 13:41:35 -!- azaq23 has joined. 13:43:07 -!- Taneb has quit (Ping timeout: 260 seconds). 13:55:17 -!- Taneb has joined. 13:58:40 -!- itidus21 has joined. 14:02:17 -!- itidus20 has quit (Ping timeout: 258 seconds). 14:14:02 -!- itidus21 has changed nick to itidus20. 14:24:05 -!- azaq23 has quit (Quit: Leaving.). 14:25:36 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 14:26:41 -!- MSleep has changed nick to MDude. 14:30:52 -!- BeholdMyGlory has joined. 14:55:02 -!- copumpkin has joined. 15:34:42 -!- itidus20 has quit (Quit: Leaving). 15:43:11 -!- monqy has joined. 15:45:06 -!- itidus20 has joined. 16:18:14 @pl fracf = \x y -> (color iters) $ (mandelbrot iters) x y 16:18:15 fracf = (color iters .) . mandelbrot iters 16:23:09 Hello! 16:35:46 -!- MigoMipo has joined. 16:38:37 -!- Phantom_Hoover has joined. 16:43:18 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds). 17:47:38 -!- TeruFSX has joined. 18:15:33 -!- olsner has quit (Ping timeout: 276 seconds). 18:15:59 -!- TeruFSX has quit (Read error: Connection reset by peer). 18:44:05 -!- itidus21 has joined. 18:46:19 -!- itidus20 has quit (Ping timeout: 258 seconds). 18:49:16 -!- itidus21 has changed nick to itidus20. 18:55:46 Hello! 18:56:12 I know own an inflatable toy electric guitar 18:56:38 How can one know own? 18:56:52 That was a slip of the finger. 18:56:58 I meant "now own" 18:57:07 In fact, s/know/now/ 18:57:43 Is that how it's done? 18:57:58 * itidus20 . o O ( "now" ++ "here" ) 18:59:57 Taneb: Yuh. 19:00:04 Oh good 19:10:50 -!- olsner has joined. 19:40:55 -!- derrik has left. 20:28:40 I've got TVTropes out of my top six websites on chrome on this computer! 20:29:36 yay 20:30:22 And now I am anxiously awaiting a mildly embarrasing video of myself to be uploaded to the internet 20:42:42 -!- zzo38 has joined. 20:46:56 I've had an idea for an esoteric programming language 20:47:34 Gonna make a page in user namespace 20:47:48 OK. What idea is that? 20:48:16 You know Binary Combinatory Logic and Binary Tag System and things? 20:48:28 The binary ones 20:48:39 -!- quintopia has quit (Ping timeout: 240 seconds). 20:48:58 -!- quintopia has joined. 20:48:58 -!- quintopia has quit (Changing host). 20:48:58 -!- quintopia has joined. 20:50:27 Basically, it's 2^n of those 20:50:42 It's a variety pack of binary turing tarpits with no IO 20:51:03 I'm going to call it... BINARY VARIETY PACK 21:13:11 http://esoteric.voxelperfect.net/wiki/User:Taneb/Binary_Variety_Pack 21:14:13 -!- Taneb has quit (Remote host closed the connection). 21:20:14 -!- MigoMipo has quit (Read error: Connection reset by peer). 21:32:12 -!- Nisstyre has quit (Ping timeout: 255 seconds). 21:32:59 -!- Nisstyre has joined. 21:44:11 -!- Nisstyre has quit (Quit: Leaving). 21:53:48 anyone here remember a novelty abstract strategy game from the 1990s where there was like height differences between different squares on the board, and the pieces were different-sized semispheres? 22:04:44 I was mostly playing Red Alert back then as far as strategy games go 22:04:50 -!- GuestIceKovu has changed nick to Slereah. 22:04:54 And AGE OF EMPIRE 22:15:24 -!- Nisstyre has joined. 22:19:41 Slereah: Yes, in the 1990s they could only afford a single Empire. 22:20:37 Well, obviously, the only empire was MINE 22:20:41 Because I WIN 22:25:14 i recall that game from some old popular science magazine adverts 22:25:18 I never saw it with my own eyes 22:25:25 and now I've gotten intrigued as to what the rules may have been 22:25:33 how the differences of elevation may have affected the gameplay 23:09:32 -!- oerjan has joined. 23:13:58 -!- TeruFSX has joined. 23:28:45 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 23:46:47 -!- elliott has joined. 2011-07-27: 00:04:14 -!- copumpkin has joined. 00:15:04 -!- olsner has quit (Ping timeout: 260 seconds). 00:18:21 robots----> 00:18:57 IT HAS BEGUN? 00:19:06 -!- NihilistDandy has joined. 00:21:06 In man against machine, machine will conquer all 00:21:15 -!- elliott has quit (Remote host closed the connection). 00:21:32 Until the Butlerian Jihad, that is 00:21:45 -!- elliott has joined. 00:22:33 dune is kinda hegelian dialectic 00:22:36 23:41:56: if i have n regexes, is it possible to compile them all into one optimized thing that will match if either one had matched? 00:22:37 23:42:03: like a big or operator 00:22:39 a|b|c|d 00:23:05 thesis: machines rule, antithesis: humans rule, synthesis: they coexist 00:23:13 -!- jcp has quit (Ping timeout: 260 seconds). 00:23:41 MARX IN SPACE 00:23:52 -!- variable has joined. 00:23:56 Zwaarddijk: Except for the part where they don't really coexist and instead enslave and destroy one another most of the time 00:23:56 00:43:32: hmmm, so doesn't the fact that humans are reasonably effective at solving the halting problem for a given language suggest that it's impossible to replicate human intelligence via Turing-complete computation? 00:24:13 CakeProphet: we are terrible at solving the halting problem, and obviously turing machines can solve a subset of the halting problem 00:24:16 NihilistDandy: read the sequel the son of Herbert's wrote? 00:24:28 00:44:34: well, I suppose since we're not perfect at it, and we can't solve it for languages that are unknown to us.. 00:24:29 "not perfect" -- you're way too kind to human intelligence :P 00:24:43 Zwaarddijk: Not yet. Still getting through those. Just doesn't feel the same. 00:25:21 yeah I know. 00:25:26 they do suck 00:25:51 -!- jcp|other has quit (Ping timeout: 276 seconds). 00:25:53 and they kinda change feeling, and the end plot changes are kind of orthogonal in story space to any good endings 00:26:02 er, well, you get what I'm trying to say 00:26:07 Yes. Yes I do 00:26:14 I am a bit disappointed at how it turns out 00:26:21 I liked the rabbis-in-space, though 00:26:34 :D 00:26:49 those were kind of a wtf moment 00:27:14 this bene gesserit thingy where they go and say something like 'oh, we collaborate at times with an even older conspiracy' 00:27:14 04:12:03: So what' are "true but unprovable" statements for a system of axioms? 00:27:15 04:12:10: Or does that not apply to CH? 00:27:16 04:12:51: there is no such thing, truth only applies _inside_ a model of the axioms, unless it holds for _all_ models, in which case its provable. 00:27:27 oerjan: well a lot of people natter about "true but unprovable" things, perhaps even people with skill, decades back, I presume... 00:27:36 it is bandied about casually quite a bit 00:28:00 04:24:20: and i'm not entirely sure if there are some systems weaker than peano arithmetic (weak enough not to allow godel's proof) but still expressive enough to talk about their own consistency, and then maybe prove it. 00:28:01 oerjan: yes IIRC 00:28:03 oerjan: it doesn't have induction, I think 00:28:07 Zwaarddijk: olawd 00:28:50 elliott: Jesus, hitting your backlog hard enough? 00:29:05 NihilistDandy: you realise i do complete logreads, right :D 00:29:17 oerjan even does a lot of the time, though he replies rather less :P 00:29:27 > elliott sleep 00:29:27 Not in scope: `elliott'Not in scope: `sleep' 00:29:33 Ah, that explains it 00:29:38 actually it's more of a complete logbrowse at best 00:29:49 oerjan: you're dead to me 00:30:24 Also, I missed a lot of good conversation 00:30:39 start logreading 00:30:42 it's fun + educational 00:30:44 unless idiots were talking 00:31:00 -unless 00:31:00 speaking of which, Gregor really needs to add ignores to the codu log formatter 00:31:03 Oh, snap 00:31:33 08:00:42: ais: nowadays people need to commute, it's a requirement of our way of life. it takes a special dedication for someone not to commute at all. 00:31:35 cheater lives in a world consisting only of himself 00:31:40 hmm, that's not funny, it's just accurate-looking :( 00:31:54 * elliott scrolls faster 00:32:37 08:06:03: OTOH the tube makes you ill and deaf, so i don't like it. 00:32:39 damn that illifying tube gas 00:32:39 Also, DeJaVu Sans Mono is the best monospaced font, period 00:32:44 hahahaha 00:32:46 yeah sure 00:32:50 also you misspelled its name 00:32:54 well miscapitalised. 00:33:04 Did I? I never remember where the damn caps go 00:33:15 Ah 00:33:18 DejaVu 00:33:22 There we go 00:33:35 How many monospaced fonts have you used? :p 00:33:49 A dozen regularly 00:33:53 More experimentally 00:33:53 De Javu 00:36:09 Inconsolata just doesn't have the Unicode coverage I want :D 00:37:01 Inconsolata only renders nicely on OS X, which is odd since it wasn't created on OS X. I want to try Pragmata, but it costs a lot of money and I can't find it pirated anywhere. 00:37:09 But I'm using DejaVu because it's the default. :p 00:37:19 I have it 00:37:25 Pragmata, that is 00:37:25 (Anyway how much Unicode does your code have?) 00:37:25 haha fonts that cost money 00:37:40 NihilistDandy: Huh, where'd you get it? Don't tell me you paid for it. :p 00:37:47 elliott: Hell no. I know a place 00:37:59 elliott: I use Haskell fontlock in Emacs, and some of the characters are in obscure spaces 00:38:11 Haskell fontlock =/= Haskell unicodeifying stuff 00:38:24 No, but it displays stuff in pretty unicode ways 00:38:27 NihilistDandy: A place just for fonts? That must be like the driest pirate cove in the universe. 00:38:32 No 00:38:41 It does not 00:38:41 That is a separate thing 00:38:41 haskell-mode does nothing of the sort 00:38:44 elliott: It's actually for music. The fonts are just coincidental 00:38:55 Hipsters like fonts, I guess 00:39:12 NihilistDandy: Amazing. (I don't suppose it's one of the "famous" places.) 00:39:19 Kinda famous, I guess 00:39:26 I can dropbox you the font if you want 00:40:02 That would be nice. (By famous I meant the few OiNK (did I get my hipster capitalisation right?) replacements.) 00:40:24 Also, I'm not really sure how what the file haskell-font-lock.el is doing anything but what I said it does 00:40:31 *other than 00:40:39 10:06:09: It's also quite common. Doesn't the Windows-bundled FreeCell also allow it? (With the old one having 32000 possible games, of which all but one are solvable, or something like that.) 00:40:44 fizzie: There are like five unsolvable games, I think. 00:40:52 Some of the negative numbers. 00:41:01 NihilistDandy: Well, it is certainly not haskell-mode. 00:41:12 There is an Emacs Unicode thing on the Haskell wiki. 00:41:22 I don't know why it'd call itself haskell-font-lock. 00:41:35 elliott: You can read it yourself. It's bundled with haskell-mode 00:42:06 Hmm, it is? 00:42:10 Yup 00:42:25 You have to turn it on or hook it, but it's there 00:43:08 Oh, actually I guess I just setq'd 00:43:08 Oh, seems so. 00:43:11 NihilistDandy: Well, it is a bad idea anyway. 00:43:16 (setq haskell-font-lock-symbols t) 00:43:17 NihilistDandy: It breaks indentation. 00:43:17 Why? 00:43:22 And alignment. 00:43:27 Not noticeably, except in very few cases 00:43:31 Doesn't matter 00:43:36 It's a deal breaker 00:43:40 Also using Unicode is a total hack for this. 00:43:53 What you really want is some sort of realtime LaTeX-esque code rendering. 00:43:57 Well, if you wanna do it better, I'm sure they'd love the effort 00:43:59 :D 00:44:05 But eh; this hack isn't even enough to fix the <*> operators. 00:44:21 NihilistDandy: IF U CRITICISE FILM......... THEN WHY DONT U MAKE A BETTER FILM????/// CHECKMATE EBERT 00:44:25 lol 00:44:42 I didn't say you shouldn't criticize 00:44:46 You just seem passionate about it :D 00:45:00 I'm not passionate about it :P 00:45:08 I'm just relatively certain it's a bad idea 00:45:21 I could be more apathetic, if you'd like? 00:45:29 And I'm relatively certain that if you're not braindead it is a non-issue :D 00:45:41 I've had zero indentation issues 00:45:53 :P 00:45:53 It has demonstrable flaws, I'm allowed to point them out :p 00:48:01 Heh, Pragmata is only legible at fourteen pt 00:48:12 I feel like I'm blind 00:51:08 I could be more apathetic, if you'd like? <-- so you say you could care less? 00:52:12 I could care in one of several directions. 00:52:30 -!- FireFly has quit (Quit: swatted to death). 00:52:40 oerjan: :D 00:52:49 i only care in spirals 00:53:06 The Mandelbrot Sigh 00:53:59 im too subhuman to care in fractals. spiral sigh. 00:58:54 to care in fractals is simple. just care in fractals, then care in fractals. 00:59:20 You forgot the most important step 00:59:22 I think that's an infinite loop. 00:59:39 You need to say "just care in fractals, while caring in fractals at the same time" 00:59:47 sorry, s/then/and/ 01:00:11 NihilistDandy: what step 01:00:27 Care in fractals, of course 01:00:53 let care = care in fractals 01:01:45 > takeWhile (>4) [1,2,3] 01:01:46 [] 01:01:48 Anyway, off to work. 01:02:48 -!- NihilistDandy has quit (Quit: Workin'). 01:04:48 -!- elliott has quit (Remote host closed the connection). 01:05:09 -!- elliott has joined. 01:05:16 rip bats 01:06:57 that's animal abuse! 01:07:03 also, you might catch rabies 01:12:00 :{ 01:18:40 > let x = let y = y in x in 5 01:18:40 5 01:19:14 fancy 01:20:04 :t let y = y in y 01:20:05 forall t. t 01:22:21 imagine if Haskell had only runtime errors and lazy evaluation 01:22:39 let y = ha ha ha ha ha ha ha in 4 01:22:52 what no scoping? 01:23:18 yes but the scoping errors only arise when the code executes 01:24:08 as it does in Python and Perl without strict. 01:24:54 though I guess syntax errors couldn't be runtime errors... 01:25:08 sure they could :D 01:25:29 this would lead to some ambiguous parsing.. 01:25:37 because EVERYTHING would have to parse correctly. 01:25:41 to be run 01:25:46 and then give a syntax error. 01:26:06 -!- itidus20 has quit (Ping timeout: 258 seconds). 01:26:08 unless you include parsing as part of "runtime"... 01:26:10 elliott: the problem is how late to detect them i guess. if you have a function definition it needs to be parsed before you can use it. 01:26:34 at least up to the point of finding out where it _ends_ 01:26:45 oerjan: sure but you can delay finding the values it _references_ 01:26:52 yeah you just need to be able to discern the boundaries of things. 01:26:56 unless you include parsing as part of "runtime"... 01:26:57 yep 01:27:00 of course lisp makes this easy with the parens 01:27:08 nope 01:27:12 and in haskell, layout can help 01:27:13 you can modify the readtable 01:27:17 oh hm 01:27:39 in some lisps, at least. 01:27:48 still, the readtable isn't modified until after the command which modifies it, i presume. 01:29:04 of course in haskell the insensitivity to declaration order makes it harder again... 01:31:20 :) 01:32:38 A copy of Canada's ruleset from 2008/4/28 has been recovered 01:33:02 Which Canada? 01:33:15 The nomic 01:33:25 ^^(still ambiguous, kind of) 01:33:47 "I'm pretty sure you aren't allowed to have a T rating with that many stabbed children." 01:33:48 Which nomic. :) 01:33:49 The one whose players would call it a "nomic" 01:33:51 Sgeo: How amazing 01:33:53 Which nomic. :) 01:33:58 Which nomic. :) 01:33:59 Which nomic. :) 01:33:59 Which nomic. :) 01:34:11 But there are two nomics called Canada Sgeo it's true 01:34:21 One lasted about ten messages. 01:34:33 o.O 01:35:12 "I'm pretty sure you aren't allowed to have a T rating with that many stabbed children." 01:35:13 Wait 01:35:15 I already quoted that >_< 01:51:40 Do you ever argue about relativity when playing D&D game? 01:52:00 relatively rarely. 01:52:48 Not much relativity. 01:52:55 Classical mechanics, fairly often. 01:53:20 Though the peasant railgun has elicited discussion of relativity. 01:58:28 alias ls 'echo ls: .: Permission denied' 02:06:52 I was arguing about relativity having to do with "Time Hop" power. 02:10:58 woo, this is broken 02:15:55 zzo38: Oh dear, what happened. 02:16:29 IamA The New Old Spices Man Fabio AMA (Internet keywords Romance, Fabio, Old Spice, Italian Supermodel, Italian, Motorcycle) (self.IAmA) 02:16:30 internet keywords 02:17:38 italiam supermodel motorcycle romance eh 02:17:49 thanks internet keywords 02:18:02 i could never have done it 02:18:02 "Did anyone read The Silmarillion? That book explains everything. The entire Lord of the Rings is actually just the epilogue to incredibly epic saga that is The Silmarillion." 02:18:04 without you 02:18:07 isn't The Silmarillion like in encyclopedia form 02:18:10 driest saga ever 02:18:57 probably oerjan knows because i think he read all of the tolkein shit 02:19:02 maybe 02:20:30 nah, i only read it until about the part where they created the sun and moon, i think 02:21:06 i, too, hate the sun and the moon 02:21:21 "SO the one ring is saurons horcrux? ya?" 02:21:22 then you, melkor and sauron have something in common. 02:21:36 oerjan: i haven't read the bible, explain 02:21:37 02:21:45 :P 02:22:37 elliott: melkor/morgoth is the main evil guy, he destroyed the light sources they had previously on two occasions 02:22:53 oh is that the satan guy 02:22:56 also lol, moon's light source 02:23:00 more or less. 02:23:01 I WILL SMASH THE LIGHTBULB IN THE MOON 02:23:23 "If Tom Bombadil wore the ring it would be as if Melkor returned. If i remember correctly, Bombadil is the most powerful character in the trilogy, similar or exactly like the gods created by illumitar. Therefore he has the most to lose if he was to wear the One Ring, because he had the such immense power that was corrupted for evil" 02:23:23 "Tom Bombadil did wear the ring. It had absolutely no effect on him." 02:23:33 although after he is exiled from the world entirely, sauron takes over. 02:23:48 where's he exiled to 02:23:51 azkaban? 02:23:59 i can't tell my religions apart 02:24:02 nah i think it was sort of outer space 02:26:21 oerjan: so i take it tom bombadil's a pretty minor character 02:26:21 i think morgoth may have attacked the sun and moon at one point too, but failed in destroying them. 02:26:27 i'm reading all about how he's like the most powerful thing in the universe 02:26:29 and nature itself 02:26:32 and im imagining this bit part 02:26:59 how can the most powerful thing in the universe have the name tom 02:27:00 elliott: well the thing about him is that he is the only character in LoTR who is entirely unaffected by the ring, so it's easy to start speculating... 02:27:01 how does that work 02:27:07 oerjan: right :D 02:27:12 oerjan: but he is minor yes 02:27:22 yes, he only show up briefly 02:27:25 *shos 02:27:28 *shows 02:28:18 -!- cheater_ has quit (Ping timeout: 255 seconds). 02:28:58 elliott: i have this weird vague idea that maybe morgoth's attack was how the moon got phases, or something like that. 02:29:22 this was around the point i stopped reading. 02:29:28 lol 02:37:25 Maybe I should read LOTR 02:37:38 Got bored last time I started. But that was probably over a decade ago 02:38:08 Sgeo: Perhaps not. 02:38:13 LotR is not well-written. 02:38:31 In fact, it's fairly poorly written. 02:38:39 Brilliant setting, decent narrative, poor writing. 02:41:38 -!- cheater_ has joined. 02:43:58 -!- itidus20 has joined. 02:55:39 yeah 03:02:05 elliott, did you ever finish Dot Action 2? 03:02:23 Sgeo: I don't think so :P 03:02:28 But I tried all the levels at least 03:02:33 The bonus ones were impossible 03:02:38 (As in difficult) 03:02:56 I remember one of the bonus ones being easy 03:05:53 "First of all, I like Haskell a lot. I’m the Thompson in “Thompson-Wheeler Logo.” That cute shape that cleverly combines the lambda and monad bind shapes? My idea. The irony is not lost on me. That Haskell logo of mine is used all over the world, and yet I’m barely a mediocre Haskell programmer." 03:05:55 UR SO FAMOUS 03:06:01 THE NAME THOMPSON-WHEELER LOG OIS KNOWN WORLD WIDE 03:06:17 The thing with Time Hop power, is, I was trying to remove a device someone was wearing. I said they would still be wearing the device when it reappeared. The DM and other player thought not. However, I still knew a way to remove the device regardless, by putting a rock in the way. 03:06:44 "Perhaps you formalists know handwaving over the details as the “Axiom of Choice,” no? I hearby invoke it." 03:06:48 oh my god you're a shithead i'm not reading this post 03:08:08 this is honestly the worst written thing ever 03:08:19 im going to use another haskell logo because of how annoying this guy is 03:08:37 elliott, linky? 03:08:45 Sgeo: http://willowbend.cx/2011/07/22/whats-wrong-with-learning-haskell/, bring your shithead filter 03:09:15 this guy is really, REALLY annoying and bad at writing and also has no good point 03:09:25 oh the post is over already 03:11:23 Confessions of a Wannabe Capitalist 03:11:26 what does this mean 03:11:35 oh my god that is his subtitle what 03:11:52 wow this post 03:11:56 is so bad 03:11:58 it is 03:12:03 he really hates DAMN FORMALISTS 03:12:18 So he's not good at math, and wants resources to help him learn Haskell 03:12:30 basically he wants people to put big warnings on their blog 03:12:32 IF UR DUM DONT READ 03:12:34 READ LYAH INSTEAD 03:12:35 Although he keeps using "axiom of choice" randomly, I don't see what's wro.. oh 03:12:45 because irc isn't good enough or i guess because he just didn't bother joining irc 03:12:55 Sgeo: he knows there are resources 03:12:59 he just wants people to tell him what not to read 03:13:02 without him doing anything 03:13:11 also AXIOM OF CHOICE AXIOM OF CHOICE IT'S "HANDWAVING" HAHA THEORISTS IM A SHITHEAD 03:13:15 NOTE: I KNOW NOTHING 03:23:49 "It worked when I was learning Ruby. Not here. This was a bad idea. I learned nothing and it made me feel bad. Yeah, poor me." -- same effect as lurking in a japanese chatroom to learn japanese 03:24:11 ++ 03:24:27 well, assuming it was a japanese chatroom about japanese. :p 03:25:22 it wasn't 03:25:42 well it was a japan-themed english chatroom 03:28:54 elliott: i am actually learning a lot from this article 03:29:06 :( 03:30:28 doesn't mean i back the guy up but the idea of using haskell to prove things is good to know 03:32:04 itidus20: not a good idea (Haskell's type system is an inconsistent logic) 03:32:08 and it also has no facilities for the purpose 03:32:11 nobody does that beyond a toy :P 03:32:16 see Coq, Agda for this idea fully fleshed out 03:32:18 (and safely) 03:32:19 I think someone used Haskell to prove Haskell 03:32:21 more Coq 03:32:29 zzo38: Haskell is too powerful for that... 03:32:29 but i actually got a damned good resource for people like me 03:32:36 (Gödel) 03:32:38 zzo38: Impossible 03:33:18 one thing I encountered when learning about compilers is a mysterious misconception that I had carried. 03:33:24 I know about Godel, although I did read somewhere, someone used to prove Haskell or at least part of it. 03:33:43 I'm not sure if it's analagous to a fractional component left over after a division. 03:34:04 But, Suppose you have a tower of blocks on the ground. 03:34:16 They stand together. 03:34:35 And yet, there is no glue. 03:34:44 what 03:35:51 Gravity??? 03:36:35 wat 03:36:52 coppro: not impossible, it just means that Haskell's type system is inconsistent, which it is :-P 03:37:08 you can prove it already, it just won't be a very good proof 03:37:27 http://www.eleves.ens.fr/home/amarilli/falso/ 03:37:40 mmmm falso 03:37:56 http://www.eleves.ens.fr/home/amarilli/falso/axioms.png nice coq screenshot 03:38:46 Maybe the proof is its own counterexample 03:42:11 elliott: Well, it depends on the semantics you assign to Haskell - if you use its type system, then yes 03:42:37 coppro: the topic was proving things curry-howard-wise. 03:42:51 so that's the only interpretation, proving Haskell's consistency with the proposition as a type and the proof as a value 03:43:39 one thing the layfolk like me tend to do is underestimate the spectrum of formally provable things 03:44:29 hmm 03:44:53 i was impressed by reading on wiki about the jordan curve proof i think it was called 03:45:16 http://static.reddit.com/ads/takemymoney.jpeg no 03:51:20 So, looking at atoms or molecules vs looking at things the same relative size as us. I think this idea could become something cool in programming 03:51:49 (oh wait thats exactly what happens ;_; ) 03:52:45 however 03:52:58 I have yet to see a high level game of life 03:54:09 When the level is so much higher than the baseline of live and dead cells that you couldn't recognize it anymore 04:00:17 I am very bad at not being vaporware 04:02:06 im vapourware irl 04:03:14 you both seem quite implemented to me 04:06:40 monqy, how perverted. 04:06:40 <: 04:06:42 :< 04:07:46 what 04:08:01 its perfectly normal for subhumans like me 04:08:15 monqy: dont worry evolution will turn u into a human soon 04:08:18 i know from pokemons 04:08:53 god this mcmap code isso raciest to me 04:09:08 Fuck politics 04:09:09 http://www.politifact.com/truth-o-meter/statements/2011/apr/29/barack-obama/obama-regrets-2006-vote-against-raising-debt-limit/ 04:09:12 i HATE raciests,, they make me sick,.; 04:09:17 Fuck politics 04:09:20 then sgeo talked about politics 04:09:22 pro 04:11:33 * Sgeo wonders if SLIME works with Emacs 23.1 04:17:15 -!- elliott has quit (Remote host closed the connection). 04:17:22 -!- elliott has joined. 04:38:43 pojdoijerioenoinefoinefoineoinef 04:43:20 -!- azaq23 has joined. 04:52:25 -!- copumpkin has quit (Ping timeout: 250 seconds). 04:52:50 -!- copumpkin has joined. 05:14:48 that's not a very readable presentation, randall. 05:15:14 wow that is the stupidest thing 05:15:19 has he finally given up 05:15:30 It's not readable, but pretty awesome 05:15:36 how's it awesome 05:15:41 "i took some data BUT NOW IT IS POLAR........" 05:15:59 @hoogle findIndex 05:15:59 Data.ByteString findIndex :: (Word8 -> Bool) -> ByteString -> Maybe Int 05:15:59 Data.List findIndex :: (a -> Bool) -> [a] -> Maybe Int 05:15:59 Data.Map findIndex :: Ord k => k -> Map k a -> Int 05:17:34 -!- elliott has quit (Remote host closed the connection). 05:17:37 -!- elliott_ has joined. 05:17:59 -!- TeruFSX has quit (Ping timeout: 250 seconds). 05:18:36 i went to wiktionary a few times and now chromium won't stop autocompleting to wiktionary i want it to autocomplete to wikipedia so i can hit tab to make it search wikipedia this is the dumbest thing help 05:18:51 @pl \z -> (magnitude z) > 2 05:18:51 (> 2) . magnitude 05:19:00 monqy: ok 05:19:00 monqy: add a keyword for wikipedia 05:19:07 coppro: gross 05:19:13 elliott_: no u 05:19:14 monqy: delete from history? 05:19:16 how do i do that i am not good at this 05:19:23 the keyword thing 05:19:24 erase,,,, the LIE 05:19:25 unless keyword is bad 05:19:31 i dont even think chrome has those 05:19:39 also how do i erase the lie 05:19:44 oh there's a button 05:19:45 thanks 05:19:47 monqy: chrome:history -> edit items 05:19:52 yeah i hit it 05:19:59 then purge,,, 05:20:09 I forget exactly how you do it in chrome 05:20:51 seems that http://www.google.com/support/chrome/bin/answer.py?answer=95653 is the only thing 05:20:52 but gross 05:20:53 if i hit clear all browsing data will it clear all the wiktionary results but not the rest of my precious history which isn't lies 05:21:04 monqy: yes 05:21:08 monqy: obviously 05:21:09 can't you read 05:21:42 oh no it's not doing what i want it to do 05:21:51 monqy: you could just use the search history 05:22:08 what's that how do i do that 05:22:12 oh you mean that thing 05:22:17 yeah I tried 05:22:31 that's what i was talking about when i hit clear all browsing data i guess it actually meant all browsing data though 05:22:36 and I can't find a select all 05:22:51 oh well 05:22:53 -!- MDude has quit (Read error: Operation timed out). 05:22:55 now u have less baggage 05:22:56 its zen 05:23:12 enjoy zen, 05:23:31 You can delete search engnes 05:23:39 I did that ages ago 05:23:45 it still autocompleted to it 05:23:48 * oerjan deletes google MWAHAHAHAHA 05:24:08 * oerjan also deletes bing, to keep a sort of good/evil balance 05:24:10 Right click address bar, edit search engines, removing, doesn't help? 05:24:10 monqy: purgaernces →manage searchkjnl; engines ---\→ delet wiktiaonry 05:24:18 Sgeo: poop u i do better 05:24:45 elliott_: you could hurt someone with those typos 05:24:53 →→→ 05:24:53 oerjan: yeah,,,like YUOU, DIE FUCKK 05:25:13 -!- derrik has joined. 05:25:13 hurt inside ,_ 05:25:17 elliott_, did you sleep anytime within the past 14 days? 05:25:22 ive never a slep 05:25:38 sometimes i a slep......like every night..... 05:25:56 Got it. So, we're conversing with the sleep-deprived ghost of elliott_ 05:26:02 except on nights i dont a slep 05:26:08 slep-deprived 05:26:27 feels bad, imnever a god person, probably offended elliott_ (best guy), criticise typelexia............................................ but remoserful + planning to become better 05:26:30 now our hero......... 05:26:49 *bizarro_oerjan 05:26:57 👍 05:27:19 oerjan: in an alternate universe............................................................................ you are a good person 05:27:45 bizarro universe: a good place???? 05:28:13 the BEST place. everyone got to kill people, fun! 05:32:26 -!- pikhq_ has joined. 05:35:43 -!- pikhq has quit (Ping timeout: 260 seconds). 05:42:33 oerjan: this reminds me of the Radiohead song Fitter, Happier 05:43:25 oerjan: have you ever read the gentle introduction 05:43:32 i kind of want to just so i can say it was easy 05:43:46 to... Haskell? 05:43:50 i kind of want to just so i can say it was gentle 05:43:53 i cannot recall 05:44:11 to category theory is it right 05:44:26 i assumed haskell... 05:44:30 I could be confusing it with something else gentle though 05:44:35 oh it could be haskell 05:44:44 i am bad at gentle things 05:44:47 :'( 05:45:21 so is gentle introduction supposed not to be gentle 05:45:34 -!- myndzi\ has joined. 05:45:36 its mlgentle 05:45:45 help whjat does thsi mean help 05:45:50 SML or OCaml or what? 05:45:54 Our purpose in writing this tutorial is not to teach programming, nor even to teach functional programming. Rather, it is intended to serve as a supplement to the Haskell Report [4], which is otherwise a rather dense technical exposition. Our goal is to provide a gentle introduction to Haskell for someone who has experience with at least one other language, preferably a functional language (even if only an "almost-functional" language such as ML or Sc 05:45:55 heme). If the reader wishes to learn more about the functional programming style, we highly recommend Bird's text Introduction to Functional Programming [1] or Davie's An Introduction to Functional Programming Systems Using Haskell [2]. For a useful survey of functional programming languages and techniques, including some of the language design principles used in Haskell, see [3]. 05:46:28 Oh, you weren't saying that the title was "mlgentle" 05:47:03 i dunno this looks pretty gentle 05:47:04 [stuff] 05:47:14 monqy: i gather it becomes rough very soon 05:47:45 im afraid i already know haskell 05:47:49 judging this may be difficult 05:47:58 it mentions hindley milner on page two, gseveral times 05:48:01 a+ 05:48:05 i do not have formal education education............ 05:48:24 Similarly, we could define Int (fixed precision integers) and Integer by: 05:48:24 data Int = -65532 | ... | -1 | 0 | 1 | ... | 65532 -- more pseudo-code 05:48:24 data Integer = ... -2 | -1 | 0 | 1 | 2 ... 05:48:24 no 05:48:26 not valid tutorial 05:48:28 notvalid int 05:48:30 needsmor,e unumbers 05:48:48 -- This is not valid 05:48:50 -- Haskell code! 05:48:54 good coments⇧ 05:48:59 -!- myndzi has quit (Ping timeout: 264 seconds). 05:49:08 sections on page three 05:49:09 im lol 05:49:34 monqy, never know when an idiot is reading and thinks "Oh, I need to copy/paste this code for this assignment" or something 05:49:55 the joke is that they put the code in there at all 05:50:07 http://www.haskell.org/tutorial/fig1.gif 05:50:12 @pl \x -> color $ mandelbrot iters x 05:50:12 color . mandelbrot iters 05:50:18 i like this daiagarm 05:50:25 it makes 05:50:26 Lymee: you should learn to do simple pls like that in your head... 05:50:27 snese 05:50:30 doesn't the Haskell spec mention Int being defined in that way kind of? 05:50:30 @src [] 05:50:30 data [] a = [] | a : [a] 05:50:36 monqy: ^ :P 05:50:47 Eh. 05:50:47 even the haskell report does it 05:50:47 Wait. 05:50:56 x.y = (x).(y), doesn't it. 05:51:01 um what 05:51:06 that's not a helpful question 05:51:08 Lymee: what? 05:51:16 are yuou asking about its precedence 05:51:19 (\x -> f (g x)) -> (f . g); f=color, g=mandelbrot iters 05:51:24 the joke is that the haskell report does bad things :( 05:51:24 that's the easy way to reduce the above function 05:51:26 and is a bad person 05:51:34 i am not inviting the haksell report tyo my 05:51:34 party 05:51:42 can i come to party 05:51:56 do you do bad things are you a bad peeron 05:52:04 no 05:52:06 ok 05:52:34 elliott_ almost never kills anyone 05:52:40 do you want to hear a joke monqy 05:52:46 i like good jokes 05:52:51 bad jokes too 05:52:54 c can't do any kind of parametric polymorphism at all 05:52:56 hahahaha 05:52:56 mediocre jokes die in hell 05:52:58 hahahahaha 05:52:59 (without macro abuse) 05:53:06 one time i abuxsed macros 05:53:13 so I'm thinking it would be interesting to have a list type of sorts that basically puts a wrapper around the element type so that you can put "tags" and "sections" into the list. 05:53:18 and pretended i could do paramatrec pomylorphism in c 05:53:26 good 05:53:26 times 05:53:40 CakeProphet: so um 05:53:44 ListWrap t a = [t a]? 05:53:45 What is parametric polymorphism? 05:53:46 good 05:53:51 both sections and tags are given unique identifiers. sections apply to every element of the list from when they start and finish, and tags are given to individual datums. 05:53:54 elliott_: yes. 05:53:54 zzo38: any sort of generic types 05:53:59 except it's more like... 05:54:03 zzo38: in C, you must define a separate type for a list of each element type 05:54:08 also a tuple of each element type, etc. etc. etc. 05:54:19 ListWrap t a = [Wrapper t a] 05:54:19 this means that you can't write generic algorithms of pretty much any sort without ugly (void *) hacks. 05:54:38 i did ugly (void *) hacks 05:54:57 and swept them under the proverbial carpet with 05:54:57 anyways, the end result is that you can define higher-order functions that allow you to manipulate only elements under a specific section or tag. 05:54:58 macro abuse 05:55:00 You can, however, use macros in many ways, to define and to call with sizeof and so on 05:55:15 WHICH, would be useful, for example, in writing combinators to compose rhythmic patterns in a song. :) 05:55:31 CakeProphet: so um 05:55:43 map (\(t,x) -> if t==goodT then f x else x) 05:55:47 elliott_: no 05:55:56 mapTag t f = map (\(g,x) -> if t == g then f x else x) 05:55:57 hard 05:56:10 because that does not allow the sections, or untagged elements. 05:56:33 yes, what I'm doing is an abstraction for something else. Good job. 05:56:39 why do you need another type 05:57:17 data Wrapper t a = Tagged t a | Section t | EndSection t | Untagged a 05:57:23 Maybe you can even use it for checking signed/unsigned, checking with macros, somehow. Would this work? ((~(x&1 05:57:31 Maybe you can even use it for checking signed/unsigned, checking with macros, somehow. Would this work? ((~(x&1))<0) 05:57:46 elliott_: if you can find an easier way I'm all ears. 05:58:07 CakeProphet: i dunno, what you're doing seems really ugly?? especially that Section stuff where the list has to be of a certain structure but you're not enforcing it in the types 05:58:10 why do you need sections what do they do 05:58:18 also 05:58:30 Section/EndSection 05:58:31 is 05:58:32 really 05:58:32 ugly 05:58:33 in C if you do "void f(int n, char data[n])" is data passed like n parameters or as a pointer 05:58:59 they mark the beginning and end of.... sections in the list. I suppose you could just tag every element in the section or something... 05:59:14 better to have something like Section [Wrapper t a] or if you odn't want nested sections split the datatype up[ 05:59:26 marking beginning and end is hell 05:59:29 they could nest. 05:59:48 I think I'll just stick to the tag approach, which would reduce it to a tuple ([t],a) 05:59:53 to allow for multiple tags or none. 06:00:04 ok 06:00:15 and then a "section" is just a tag across every element in a certain point of the list. 06:00:35 ok 06:01:19 I might encounter a problem where I have a lot of simultaneous events occur at the same time.. since I'll be using a list to represent a rhythmic pattern. 06:01:35 and then they won't be simultaneous because list doesn't work that way... 06:01:39 or something of that nature. 06:01:58 ok 06:02:09 bah, assholes. :P 06:02:32 sorry we'll never say anything bad about ideas again 06:02:36 especially not "ok" 06:03:03 it's that the criticism is vague and not helpful, in the case of ok. 06:03:18 ok was criticism? 06:03:20 fuck 06:03:47 nevermind. 06:04:21 ok keep reading into things 06:04:34 as a human, I will read subtexts, yes. 06:04:46 will you hate me if i smile 06:04:46 cuz 06:04:48 im smilen 06:04:53 noep. 06:04:53 "ok": 9/eleven of words, 06:04:57 in C if you do "void f(int n, char data[n])" is data passed like n parameters or as a pointer 06:04:58 does anyone no, 06:05:00 does Vorpal no 06:05:15 elliott_: ....pointer 06:05:18 isw that even legal synraxt 06:05:21 elliott_, I don't "no" but maybe I "know" 06:05:36 elliott_, and definitely pointer 06:05:40 if its legal its pointer 06:05:42 what do you think this is, Perl? lol 06:05:47 lol 06:05:50 CakeProphet: its already weird c99 shit 06:05:52 elliott_, wait is n there even legal? 06:05:56 Vorpal: yes. c99 shit 06:06:09 elliott_, okay then I have no clue how that is passed 06:06:10 c99 what did you do 06:06:15 elliott_, *probably* pointer 06:06:20 Vorpal: thanks that's not helpful :( 06:06:23 elliott_, I don't use VLAs much 06:06:28 elliott_, go test it. 06:06:33 Lymee: how 06:06:39 i guess i could print out addrs but 06:06:40 fuck that shit 06:06:48 data[0]=1 06:06:52 elliott_, examine the registers of course in an __asm__ __volatile__ at the start! 06:06:57 it would seem to me that the [n] is meaningless, because it couldn't enforce a size because C is stupid and doesn't keep track of array size along with the array. 06:06:59 Lymee: it could be COW................. 06:07:15 CakeProphet: obviously C knows array size of arrays 06:07:18 you can sizeof them 06:07:24 COW? 06:07:29 elliott_, I think it is equivalent of f(int n, char *data) 06:07:32 afaik CakeProphet is right, only char data[static n] has a meaning. 06:07:40 elliott_: that will return the size of the pointer, yes. 06:07:47 lifthrasiir: "static n"? like that literally? 06:07:47 elliott_, if it is even valid 06:07:53 CakeProphet: we are talking about arrays, not pointers. 06:07:57 elliott_, no, like "fixed value of n" 06:07:57 Lymee: coppy on write 06:08:03 ....we are talking about C, where they are the same thing. 06:08:04 Ah. 06:08:05 Vorpal: i asked lifthrasiir 06:08:07 CakeProphet: hahaha nope 06:08:07 elliott_, I don't think VLA extends to function prototypes 06:08:12 but I could be wrong 06:08:16 arrays are not the same thing as pointers and anyone who says so is lying 06:08:38 umm, wait, [static ] is definitely allowed but [static n] is not sure 06:08:41 elliott_, in function prototypes they tend to be. char *foo is passed the same as char foo[] 06:08:53 Vorpal: so you were wrong, it does not mean "fixed value of n"... 06:08:57 and that's not the point. 06:08:59 i was takling about sizeof. 06:09:11 elliott_, what, you lost me 06:09:20 k 06:09:21 in C if you do "void f(int n, char data[n])" is data passed like n parameters or as a pointer 06:09:27 I'm pretty sure the only difference is allocation. The actual value of an array is the pointer to the first element, always. sizeof will yield the size of that pointer. 06:09:29 elliott_, I thought that was what we were talking about? 06:09:30 C99 probably allows thing like that, I think it is an unnecessary feature of C99 though, C99 has a few good features 06:09:40 CakeProphet: you are wrong. 06:09:46 sizeof(x)/sizeof(x[0]) will yield the length of an array. 06:09:53 also see http://www.lysator.liu.se/c/c-faq/c-2.html for more information. 06:09:55 yeah 06:10:47 c hurts 06:10:49 my head 06:11:15 Yes, for purpose of sizeof, the array type is the entire array, but when just using a value by itself it is a pointer instead. 06:11:26 in C if you do "void f(int n, char data[n])" is data passed like n parameters or as a pointer <-- I think http://www.lysator.liu.se/c/c-faq/c-2.html 2.4 applies here 06:11:43 i don't even know that that page is updated for c99 06:11:45 i googled it up 06:11:47 elliott_: ah okay, I see. 06:11:58 its even the old version of the c-faq 06:12:02 hm 06:12:08 This article is Copyright 1988, 1990-1995 by Steve Summit. It may be freely redistributed so long as the author's name, and this notice, are retained. 06:12:09 that's a pretty common misconception then. 06:12:23 at least in online literature about C. 06:12:29 CakeProphet: yes. mostly among people who don't know/never use C (and then sometimes try to teach it) 06:12:38 or the people who use C without actually knowing a single thing about C, which is most people who use C 06:12:39 hmm, seems gcc ignores "static" completely in this case? 06:12:58 basically I want the array passed as values here, though. :/ 06:12:59 Maybe LLVM is a bit better designed, although, it would still work far better with having macros preprocessor and that stuff. 06:13:16 i.e. I wish "size_t size, char head[size]" passed the same as `size` parameters. 06:13:31 lifthrasiir, what would "static" there even do 06:14:17 passed by values? 06:14:25 elliott_: so does the pointer decay occur when the array is passed to a function? as this would make the utility of being able to use sizeof to get the length of an array very small. 06:14:27 I think a structure can be passed as value in C 06:14:29 monqy: yes 06:14:30 Vorpal, void f(int n, char data[static 256]) (for example) requires the caller to supply an actual char array with at least 256 elements to data 06:14:33 would memcpy work or is that dumb and for dumb people 06:14:34 CakeProphet: yes. but it is not a small utility at all. 06:14:42 it is a widely used idiom 06:14:44 lifthrasiir, and plain data[256] means? 06:14:46 elliott@katia:~/Code/mcmap$ grep -r NELEMS . 06:14:46 ./cmd.c:for (int i = 0; i < NELEMS(commands); i++) 06:14:46 ./world.c:for (int i = 0; i < NELEMS(region->chunks); i++) 06:14:46 ./world.c:for (int j = 0; j < NELEMS(region->chunks[i]); j++) 06:14:46 ./world.c:for (int i = 0; i < NELEMS(region->chunks); i++) 06:14:47 ./world.c:for (int j = 0; j < NELEMS(region->chunks[i]); j++) 06:14:48 nothing. 06:14:49 ./map.c:for (int i = 0; i < NELEMS(region->dirty_chunk); i++) 06:14:51 ./common.h:#define NELEMS(array) (sizeof(array) / sizeof((array)[0])) 06:14:53 lifthrasiir, huh 06:14:55 that's just like data[] or *data. 06:14:56 and that's a small-ish codebase. 06:15:00 (afaik) 06:15:10 CakeProphet: you can use it for statically-sized global arrays, or statically-sized arrays in structures. 06:15:16 lifthrasiir, so it is basically like causing a warning or error if not large enough? 06:15:17 which is many arrays. perhaps even most. 06:15:19 elliott_: so then this code doesn't receive array as a parameter? 06:15:22 ah. 06:15:30 CakeProphet: of course you can pass a structure with an array. 06:15:34 right. 06:15:34 that works fine and doesn't decay. 06:15:38 (rhymes) 06:15:39 Vorpal, in principle, yes, but gcc seems ignoring this even in the C99 mode. 06:15:45 c :( 06:15:48 lifthrasiir, heh 06:16:11 * CakeProphet wonders what else he does not know about C. probably many things. 06:16:24 i found at least one example of this declaration from Google code search: http://google.com/codesearch#1IKf2ZWr9OM/deps/third_party/xz/src/liblzma/check/sha256.c&l=83 06:17:06 maybe that's the intended use of that kind of declarations. 06:17:23 elliott_: so when I write code outside of functions to deal with arrays I should really be declaring with type type[] instead of type* 06:17:38 er, well, using static variables, not outside of functions. :P 06:17:42 um why 06:17:47 that makes no difference 06:17:52 and is more misleading really 06:17:52 because they are different, according to this thing you linked me. 06:18:08 well you probably mean to use a pointer. 06:19:29 but wouldn't assigning the array to a pointer destroy the sizeof property? 06:20:01 yes, that IS a problem. 06:20:40 CakeProphet: of course it does. 06:21:12 so what I'm saying is that if I want to use that property then I should declare as type[] instead... 06:21:41 * CakeProphet is going to troll some of his C programmer friends now.... 06:21:52 I have used interpreted C codes in a prepreprocessor to do some things related to types, and combined with macros and include files, to make initialization for different structures, copied, without duplication, indicated as a type, and so on. Maybe a bit like using "" style codes in C++ but different and with less stupid syntax 06:22:33 as in templates or...? 06:22:35 CakeProphet: Are you sure you understand it enough? 06:22:54 zzo38: I understand the difference between arrays and pointers now, which means I can troll that specifically. 06:23:27 CakeProphet: Yes, I think < > is used for templates syntax in C++, which is dumb since it is also less than/greater than 06:24:30 OK, now you understand difference. There is many difference, but "I should really be declaring with type type[] instead of type*" I don'r know. 06:25:16 type[], not type type[]... the first type is part of my sentence or whatever. :P 06:25:45 Yes I understood that much. 06:25:56 I didn't mean that I should declare like that ALL the time, just in those situations where the sizeof an array is valuable. 06:26:01 is there still something wrong with that? 06:26:05 But, the C syntax for comments is also a bit dumb since /* even with no comments is not a syntax error, while // is a syntax error otherwise so it would be better idea using it as comments. 06:26:15 if your declaration is allocating room for the array, you should use [] obviously? 06:26:40 ..yes, I would say this is preferred. 06:26:48 Yes using [ ] in declaration declares its space is the point. 06:26:53 zzo38: you would not like Perl. :) 06:27:02 because * only allocates the pointer. 06:27:29 So don't expect to assign directly to a [ ] type because that is not how array work in C. 06:27:44 ah okay, right. 06:27:59 I was thinking of a malloc, but that is already a pointer anyways... 06:28:59 so technically a dynamically allocated array is not a "real" C array. 06:29:06 Yes. 06:31:53 Declarations such as char *p; fine OK to me, it make sense. However, thing such as char *p=q+1; is stupid is make no sense wirh the space in that position. 06:32:46 (I omit the space in both cases however) 06:33:25 hmmm, okay so is a dynamically allocated array a pointer to an array or a pointer to the first element? second case, right? 06:34:06 Yes. 06:34:21 There are no arrays involved here; calling it "dynamically allocated memory" might answer some questions. 06:34:32 well, right. 06:34:55 but that becomes awkward to talk about. I think it still makes sense to talk about it as an array. 06:35:08 even though it's... not one in the way that C defines it. 06:36:25 "loop through the dynamically allocated memory" instead of "loop through the array". But yeah, I see that calling it that is good to highlight the difference for educational purposes. 06:38:16 hmmm, okay, so another consequence of this is that dynamically allocated 2-dimensional "arrays" have to be manually subscripted via arithmetic instead of using the [][] notation. 06:38:31 um 06:38:34 not if you do them as pointers to pointers 06:39:22 oh, right. Instead of one malloc you have 1 + ncolumns mallocs. 06:40:09 * Sgeo considers reading My Immortal 06:40:24 I tried once before 06:40:36 did you like it legitimately 06:41:06 the only C programming I have done involved a MUD codebase. So I suppose I could afford to skip knowing this distinction and still get away with it. 06:41:23 for... several years, actually. :P 06:42:11 elliott_, do you think my taste is that atrocious? 06:42:16 Sgeo: Yes. 06:42:25 list.c:45: error: incompatible types when assigning to type ‘struct ’ from type ‘struct ’ 06:42:37 ....hahaha 06:43:15 also, C has anonymous structs? 06:44:14 struct { ... } 06:45:18 how are you assigning to type struct 06:45:30 list = ((struct { typeof((list).empty[0]) empty[0]; GenericList *generic_list; }){ .empty = {}, .generic_list = generic_list_tail((list).generic_list) }); 06:45:31 struct { int x; } s; 06:45:32 s.x = 0; 06:45:33 any questions 06:45:50 seems that C doesn't unify anonymous structures with identical fields 06:45:51 sigh 06:45:51 oh that's.... interesting. 06:45:57 this makes this ten times harder than i expected :D 06:46:12 oh wait 06:46:14 you can't just de-anonymize it? 06:46:16 is (typeof foo){ ... } a valid struct literal 06:46:16 CakeProphet: no 06:46:57 elliott_: void pointers maybe? 06:47:17 no 06:47:58 woah, so you write .field = ...? 06:48:04 I have never seen this before, ever. 06:48:42 starting to wonder how much C you've used, tbh 06:48:45 this is C99 06:49:34 not as much as I thought, apparently. 06:50:28 so why can't you use named structs again? 06:50:33 macro shit 06:50:38 ah... yes. 06:51:15 haha wow that actually works hmm 06:51:30 (I mean, I don't really understand why that restricts you from naming the structs) 06:51:30 Correct, C doesn't unify structures. LLVM does, however. 06:51:39 Not any more it doesn't. 06:51:39 but sure, I'll accept "macro shit" as a valid reason. 06:51:47 -!- derrik has quit (Quit: :(). 06:52:24 (But fields of structures in LLVM cannot have names anyways) 06:53:19 structs are almost like heterogenous arrays. Is this a valid characterization? 06:53:57 the only thing that really breaks that idea is that structs can't be subscripted.. 06:54:31 but in memory it's the same structure as an array, except with heterogenous types. 06:54:52 struct { int empty[0]; GenericList *generic_list; } list = ({ typeof((list).empty[0]) _list_cons_head_1 = (0); (typeof(list)){ .empty = {}, .generic_list = generic_list_cons(sizeof(_list_cons_head_1), (char *) &_list_cons_head_1, (({ typeof((list).empty[0]) _list_cons_head_0 = (9); (typeof(list)){ .empty = {}, .generic_list = generic_list_cons(sizeof(_list_cons_head_0), (char *) &_list_cons_head_0, (((typeof(list)){ .empty = {}, .generic_list = gener 06:54:52 ic_list_empty })).generic_list) }; })).generic_list) }; }); 06:54:52 return (*((typeof((((typeof(list)){ .empty = {}, .generic_list = generic_list_tail((list).generic_list) })).empty[0]) *) generic_list_head((((typeof(list)){ .empty = {}, .generic_list = generic_list_tail((list).generic_list) })).generic_list))); 06:55:18 elliott_: what is wrong with you. 06:55:22 macro shit 06:55:54 he's shitting macros 06:55:54 int empty[0];???? 06:56:06 CakeProphet: for typeof. 06:56:09 and sizeof. 06:56:09 hi guys im back from being away did bad stuff happen 06:56:11 int is T 06:56:27 -!- olsner has joined. 06:56:51 Zero-element arrays can be very useful sometimes. 06:56:52 elliott_: you can't just say... typeof(1)? 06:57:16 elliott_: you can't just say... typeof((int)1)? :P 06:57:21 CakeProphet: int is T. 06:58:12 I don't really know what that means, then. You mean it's the type parameter in your macro shit? 06:58:15 yep 07:00:06 why not just write T then? 07:00:06 Maybe in LLVM, you could ensure different types having something like a last element of a structure of a type [0 x [1 x i8]], [0 x [2 x i8]], [0 x [3 x i8]], and so on, to make then unique if you wanted them different. 07:00:17 CakeProphet: thats totally not the cpp output. 07:00:20 nope. 07:00:36 Correct, C doesn't unify structures. LLVM does, however. 07:00:36 Not any more it doesn't. 07:00:37 howso btw 07:00:42 gimme details about this thing i know nothing about 07:00:55 Since I don't know, a week ago, when Chris's patch landed for LLVM 3.0 07:01:54 I'm just not entirely sure why you have to do all of this typeof expansion stuff when you could just substitute T where you need the type T... 07:02:15 What patch is this? I like the feature of LLVM unifying structures, it is a useful feature 07:02:45 being generic is for losers 07:02:51 CakeProphet: because i dont know t 07:02:58 #define List(T) struct { T empty[0]; GenericList *generic_list; } 07:02:58 #define list_create(name) ((typeof(name)){ .empty = {}, .generic_list = generic_list_empty }) 07:02:58 #define list_cons(head, tail) list_cons_(head, tail, __COUNTER__) 07:02:58 #define list_cons_(head, tail, id) list_cons__(head, tail, id) 07:02:58 #define list_cons__(head, tail, id) \ 07:02:58 ({ \ 07:03:00 typeof((list).empty[0]) _list_cons_head_##id = (head); \ 07:03:01 l o s e r 07:03:02 (typeof(list)){ \ 07:03:04 .empty = {}, \ 07:03:06 .generic_list = generic_list_cons(sizeof(_list_cons_head_##id), (char *) &_list_cons_head_##id, (tail).generic_list) \ 07:03:09 }; \ 07:03:13 }) 07:03:15 #define list_head(list) (*((typeof((list).empty[0]) *) generic_list_head((list).generic_list))) 07:03:17 #define list_tail(list) ((typeof(list)){ .empty = {}, .generic_list = generic_list_tail((list).generic_list) }) 07:03:20 feel free to make better and also make working 07:03:33 Okay, so it was more than a week ago 07:03:35 http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20110704/123705.html 07:03:40 that looks like the sort of stuff i wrote two years ago before i got sick of it 07:03:40 oh I see. You use the zero-width array to carry the type information beyond the macro body. 07:04:27 zzo38: caret to Deewiant 07:05:22 Deewiant: is there a discussion thread for that commit 07:05:34 Maybe 07:05:34 Does that only apply to named types? Or to anonymous types too? 07:05:49 Deewiant: Thx 07:06:11 elliott_: It's something that's been on his todo list for a long time now 07:06:46 zzo38: Anonymous types are uniqued by their contents 07:07:10 elliott: void pointers. everywhere. 07:07:12 Deewiant: That makes sense, now. 07:07:29 elliott_: terrible casts, everywhere. 07:08:25 So, an anonymous structure with the same types of elements should be considered to be same types, otherwise not? 07:08:46 same types in the same order, I would think. 07:08:48 Yes, otherwise the name is part of the identity 07:09:33 OK, it does make sense, now, then. 07:09:54 CakeProphet: Yes it is what I meant 07:09:58 elliott_: you could cast the anonymous structs to a named struct within each macro maybe? 07:10:12 using... magic unique naming skills? 07:10:28 #define macro(x, y, keysmash) 07:11:07 so everytime someone has to use your macros they must angrily smash alphanumeric characters into the last field to provide a unique name for the struct. 07:11:27 :'( 07:12:18 CakeProphet: The typical trick is just __LINE__. 07:13:34 no hygenic macros and no way to generate unique names? 07:13:37 that won't work if you must do it more than once in the same line, no? 07:13:56 well, it wouldn't work if the cast was on a different line than the struct definition. 07:14:41 are there any better preprocessors 07:14:50 monqy: m4? 07:15:06 C? No. never. No one would ever write a C preprocessor. 07:15:34 template C. 07:16:08 you could write a macros that play waiting music as your code compiles. 07:16:41 eine kleine nachtmakro 07:17:21 I suppose you could also write macro compilers or something. 07:17:38 assuming it was basically like TH but for C, and without the strict typing. 07:17:45 #playsound 07:18:16 :o 07:19:34 you could have #playnotes ABCBCBA 07:20:00 and that would... play them all in equally spaced intervals? 07:20:12 or uhmm.. a compilation visualizer? 07:20:39 this would be pretty cool. 07:20:42 like a music visualizer 07:20:54 except maybe it could have the token stream fed into it 07:21:48 I was imagining more of like an animation of the code text compiling into intermediate representations and then machine code. 07:22:06 pikhq_: m4 is not for C. 07:22:55 it can work with C 07:23:02 and was defined for a C-like language 07:23:05 Perl is probably a pretty good C preprocessor. 07:23:12 :) 07:23:14 monqy: What about... Enhanced CWEB? It also includes a C interpreter, among other things. The C interpreter can send codes to the C compiler. And the program can even be printed out. 07:23:39 CakeProphet: I suppose you can do so, if you wanted to 07:23:41 ooh 07:23:51 or you could do a 3d visualization as like a factory 07:24:40 I think m4 is not very good for C, though. But I maybe it will work if configured correctly for use with C. 07:24:42 * pikhq_ declares Bourne the best C preprocessor. 07:25:34 it's the only C preprocessor that allows you to compile C code. 07:25:46 .... (blatantly not true, shhhhh) 07:25:49 Or any other code. 07:26:14 I am interested in data re-representations.. i don't know a better words 07:26:18 ^word 07:26:27 perhaps interpretations is a better word 07:26:38 Well, at least I prefer CWEB, for writing my C codes 07:26:44 sounds like converting one data structure to another, yes? 07:26:54 (Even if you hate it instead) 07:27:01 * CakeProphet knows all of the codes. 07:27:10 one example being converting music into visualizations. 07:27:42 its a niche area 07:28:21 itidus20: try running aplay on a pdf or /dev/urandom 07:28:24 -!- oerjan has quit (Quit: leaving). 07:28:30 * itidus20 opens up my personal wiki 07:28:46 itidus20: go write about it on your blag. 07:28:52 i have a winxp box. i've never had any form of *nix installed :-s 07:29:09 im that kind of person 07:29:30 * CakeProphet types "aplay /dev/urandom" and listens to delicious pseudo white noise 07:29:46 hmm.. i called the page bit field encoding 07:30:36 You can get a continuous tone by playing output of "yes" command, in Linux. 07:30:44 itidus20: Wow, the only OS worse than *nix. 07:30:48 (still in common use) 07:30:53 elliott_: what's the best way to seed random without using IO? 07:30:55 yes is a good command 07:30:56 is there even such a way? 07:31:19 zzo38: Wow, sure enough. 07:31:24 -!- elliott_ has quit (Ping timeout: 246 seconds). 07:31:31 The "yes" command can have many uses. 07:31:34 CakeProphet: what do you mean IO? 07:31:40 do you mean like in space invaders? :D 07:31:41 aplay <(yes) actually does that. 07:31:47 pikhq_: Surely it is obvious? 07:31:54 er, no I was referring to 07:31:57 Haskell actually. 07:32:02 zzo38: Well, yes, it's obvious how it would do that. 07:32:05 ahh ok IO monad 07:32:23 zzo38: It's an oscillation between y and \n, which would, of course, produce a constant tone. 07:32:32 zzo38: it's a very high frequency sin tone right? 07:32:39 Of very high frequency. 07:32:48 ooooh, I forgot about the \n 07:32:58 I wonder if it aliases. 07:33:00 Half the sample rate. 07:33:07 ...ah. 07:33:31 so it is the nyquist frequency, interesting. 07:33:36 aplay defaults to 8000 Hz sample rate, so it's a 4 kHz tone. 07:34:06 Now use a 5200 Hz sample rate........ 07:34:38 Which, of course, does a 2.6 kHz tone. 07:34:50 CakeProphet: this is a pic of the page in my private wiki: http://oi52.tinypic.com/wqsorr.jpg 07:34:53 Yes. 07:36:28 I once wrote a program in Linux that generates many kinds of telephone signals. Including DTMF, silver box, red box, blue box, dial tone, busy signal, reorder, SIT, etc. 07:37:16 Including both American and Commonwealth ringback tones! And red box for many countries. 07:38:26 If you live in North America, program your computer to play the Commonwealth ringback tone when someone calls you............ 07:41:08 changing the string that yes outputs leads to fun things. 07:41:22 yes `echo -ne "\255"` gives you the max amplitude signal. 07:41:53 and then adding more characters adds more spectral qualities and lowers the frequency. 07:42:19 yes `printf "\x255"` does so on POSIX systems. 07:42:24 -!- Taneb has joined. 07:42:29 Hello 07:42:36 Erm, '\x255' 07:43:06 by default it's a triangle wave. 07:43:15 but I bet you could get a sine tone. 07:44:25 well, hmmm.. I think you might need floating point numbers for that. 07:44:55 No. 07:45:39 If you want a perfect sine tone, what you need is infinite-bit sampling. 07:45:53 that's obviously not what I mean though. 07:46:21 And there will be no notable benefit to floating point over integer samples if both are bounded. 07:46:54 > map (toEnum.(+10).(*245).sin) [1..] 07:46:55 No instance for (GHC.Float.Floating GHC.Types.Int) 07:46:55 arising from a use of... 07:47:07 > map (toEnum.(+10).(*245).round.sin) [1..] 07:47:08 [*Exception: Prelude.Enum.().toEnum: bad argument 07:47:29 ...lol 07:47:32 -!- zzo38 has quit (Remote host closed the connection). 07:47:37 I am trying to get the sequence of characters to generate a sine tone. 07:47:54 a sequence of characters, anyways. 07:48:11 > map (toEnum.(+10).(*245).round.sin) [1..] :: [Char] 07:48:13 "\255\255\n*Exception: Prelude.chr: bad argument: (-235) 07:48:28 ah. 07:48:32 has to be unsigned. 07:49:49 > map (toEnum.abs.round.(+10).(*245).sin) [1..] :: [Char] 07:49:50 "\216\233-\175\225:\171\252o{\235yq\253\169=\226\174/\234\215\b\197\212\SYN... 07:49:56 that's not going to be right though. 07:53:18 > map (toEnum.abs.round.(+10).(*245).sin.(/(25*pi))) [1..] :: [Char] 07:53:19 "\r\DLE\DC3\SYN\SUB\GS #&),/259 Well, Binary Variety Pack now has functional, imperative, and string rewriting. 07:54:13 also abs != convert signed to unsigned. 07:54:37 -!- GuestIceKovu has joined. 07:55:20 Now I need a fourth paradigm to add to BVP 07:55:34 you probably want aspect-oriented. 07:56:20 -!- Slereah has quit (Ping timeout: 240 seconds). 07:56:39 Okay 07:57:49 or modular, or template-based (aka macros), or unstructured, or logic-oriented 07:58:51 I might go for a cellular automaton 08:00:07 why settle for only one? 08:00:22 a cellular automaton of cellular automatons. 08:00:47 I was going for a cellular automaton definition 08:01:00 Which is then run with the starting state of the input 08:01:13 For a defined number of steps 08:01:16 humm cellular automatons... 08:01:21 do cells exist? 08:01:29 what? 08:01:50 does a cell exist? :P 08:01:55 what kind of cell. 08:02:02 a game of life cell 08:02:09 uh, sure. 08:02:18 well, do infinite cells exist? 08:02:28 in the game of life, yes. 08:02:37 Only in the abstraction of the cellular automaton 08:02:58 if noone is capable of perceiving infinite cells then how can it be proven that they exist :D 08:03:19 It's an abstraction. They exist by definition 08:03:20 sorry im being dumb, and then being dumber 08:03:30 its overcompensation for not being a math guy 08:03:36 ahh 08:04:09 where i was going with this was: if something exists by definition... do you ever need to actually calculate all the cells in order to use all the cells? 08:04:30 No 08:04:47 Pedantic people would say it's unbounded rather than infinite 08:05:02 well you can have infinite dead cells 08:05:03 data CA t = CA {left :: [t], right :: [t], up :: [t], down :: [t], current :: t} 08:05:04 :D 08:05:39 data GoLState = Alive | Dead 08:05:39 you can speak with accuracy about an infinte plane of dead cells 8-> 08:05:57 GameOfLifeInitialState = CA (repeat Dead) (repeat Dead) (repeat Dead) (repeat Dead) Dead 08:06:25 If you were a live cell on infinite n-dimensional planes of dead cells, it'd be kinda creepy 08:06:28 er... no. 08:06:29 what am I doing. 08:06:38 lol that just makes a cross-shaped automaton. 08:06:52 Taneb: maybe you are.. thats why its creepy 08:07:28 O dee mee! 08:07:32 I'm not entirely sure how to represent a zipper in 2D 08:07:41 a zipper of zippers? 08:07:57 its elegant looking code you have there anyway 08:08:03 I'm suspecting recursion is the answer 08:08:24 well, yes. repeat is how I generate the infinite list, and repeat is recursive. 08:08:24 i must remember to not forget about studying haskell 08:08:50 repeat x = x : repeat x 08:09:19 or fix (x:) :P 08:11:33 okay so I'd have data Zipper t = Zipper {left :: [t], right :: [t], current :: t} 08:11:55 and then type CA t = Zipper (Zipper t) 08:12:49 then I could define shiftLeft, shiftRight, shiftUp, shiftDown. 08:15:22 brb 08:16:16 I think I've seen a zipper in 2d before 08:16:20 I may be misremembering though 08:17:24 the problem with defining it as a zipper of zippers is that each sub-zipper has its own cursor or whatever its called. 08:17:30 which is not quite what I want. 08:20:13 I indeed misremembered. oops. 08:20:45 I suppose you could map the shift operation to each sub-zipper whenever you move left/right 08:21:04 but that seems pretty inefficient. 08:21:19 just a little bit 08:23:53 -!- monqy has quit (Quit: hello). 08:24:00 Back 08:43:47 -!- Taneb has quit (Ping timeout: 252 seconds). 08:45:59 !perl print 2 >> 1 08:46:01 1 08:46:08 !perl print 3 >> 1 08:46:08 1 08:49:37 oh hey I've found a use for bitwise shift. 08:51:53 you would use it when constructing a hidden message from the least significant bits of some other data. 08:55:51 -!- azaq231 has joined. 08:57:25 -!- azaq23 has quit (Ping timeout: 276 seconds). 08:58:46 That sounds a bit unlikely, given that you don't need a bitshift to set, clear or extract the least significant bit. 08:59:19 (Assuming you have bitwise ands and ors and the other usual fluff.) 09:00:10 Oh, you meant for putting the bits together, I guess. 09:07:48 The fact that Java is one of the most popular languages out there 09:07:56 and has absolutely no support for higher-order functions 09:07:58 baffles me. 09:08:43 fizzie: and right, putting them together with and requires shifting the bits to the right location. 09:08:57 well... with or actually. 09:09:16 extracting with and. 09:09:53 * CakeProphet should implement class-based versions of map and filter in Java. 09:09:58 Lambdas are coming in Java 8. 09:10:03 you have to use an anonymous class everytime. 09:10:33 fizzie: so I'm assuming support for lambdas also includes support for function types? 09:10:41 Nno, of course not. :p 09:10:56 It's mostly just a syntactic thing to make the anonymous-class solution less verbose. 09:10:56 otherwise you'd just define the lambda and it would uh... sit there and do nothing. 09:11:02 ..oh, really? damnit. 09:11:18 at least C# has delegates, I mean really. 09:11:18 The lambda types are "convertible" to any class with a single public method that has a compatible parameter list, approximately. 09:11:23 (Glossing over the details here.) 09:11:27 that's so stupid. 09:11:45 they should just steal delegates and call it something else. 09:12:09 I would suppose it's so that you can actually use the lambdas in all the existing APIs that have been written to take objects implementing single-method interfaces. 09:12:20 Runnable and such. 09:12:32 well right, but they could also just add new constructors for those methods that take lambda parameters. 09:12:37 *for those classes 09:13:12 But you can't add to Java interfaces. 09:13:29 Existing ones, I mean. Because otherwise all existing implementations would start complaining about missing methods. 09:13:53 So you can't put anything new in the Collection interface for example, without ruining everyone else's collections. 09:14:10 so lame. 09:14:25 C# actually has a pretty well-thought out standard API. 09:15:02 That's I think why the have the Collections class with all those static methods, because you can easily stick stuff in there. (Except of course you can't then override that stuff in custom-built containers or anything.) 09:15:30 (There's also a proposal for "extension methods" that would work around the above thing up to some degree, not sure if that's planned for Java 8 too.) 09:15:42 Func<> for example... which has a bunch of overloads. Func, Func, Func. 09:15:50 And then you use Action<> if the return type is void. 09:17:35 basically it's just an alternative to writing your own delegate types. 09:18:35 delegate int FrameWorkManagerCallBackEnterpriseyCruft(int a, int b) 09:19:01 and then you can declare variables of type FrameWorkManagerCallBackEnterpriseyCruft, and assign any method that matches that signature. 09:19:15 variables/method parameters 09:20:29 also += will append methods to a list that is executed when the delegate variable is called. Which I'm sure makes writing event-based code ridiculously simple. 09:21:02 But you need to explicitly test against an empty delegate list when calling, IIRC. 09:21:19 oh you do? 09:22:01 ah yes 09:22:06 Yes. It's always "if (blah != null) blah();" in all code that wants to call all the blah-handlers. 09:22:27 you have to test for null. Though some people on Stack Overflow recommend adding an empty method to remove that check. 09:23:00 Stack Overflow = reliable community of programming masters. 09:23:45 you could also use the poorly named "null-coalescing operator" and write blah?? blah() 09:25:27 but yeah "you have to test for null a lot" is a common annoyance of many languages that have nullable types. 09:25:34 That's what confused-looking operator. 09:26:09 yes I prefer Perl's //, but that's because I'm a Perl fanboy. 09:26:23 it does the exact same thing. 09:27:26 erkwerjwejr 09:27:34 // is probably Perl's most important contribution to the future of OO programming. :P 09:27:54 but C# will get all of the credit. :( 09:28:28 all the former Java programmers switching to C# will be like "woah that's probably the best idea for an operator ever, C# designers." 09:28:29 // is also a bit silly-looking. What, it's the || except on a windy day? (Still, I suppose they're running out of sensible operators.) 09:29:01 yeah I'm not really sure about the choice of symbol. I suppose ?? actually kind of makes some sense. 09:29:45 still, an operator is just a sequence of symbols. They're not really suggestive by themselves. Only through convention do you associate || with or in the first place. 09:29:46 I vaguely recall that some drafts of Perl 6 made the ternary operator be "$a ?? $b :: $c", doubling the ? and : for some reason. 09:30:01 that's weird. 09:30:16 Perl 6 is destroying Perl's golfability. :P 09:31:07 too many characters to do things. 09:31:46 more than 4 characters for a function/method name or 2 characters for a symbolic operator is unacceptable. 09:32:33 So <=> is unacceptable?-) 09:32:43 totally. 09:33:07 however, cmp is acceptable. 09:33:09 make sense? 09:33:21 "Sure, whatev." 09:34:25 I should rewrite Haskell's Prelude for golfing. 09:34:42 have everything with very short names, and any two-argument functions as operators. 09:35:16 > id 09:35:17 Overlapping instances for GHC.Show.Show (a -> a) 09:35:17 arising from a use of `... 09:35:20 > id + id 09:35:21 Overlapping instances for GHC.Show.Show (a -> a) 09:35:21 arising from a use of `... 09:35:33 caleskell is interesting. 09:35:51 :t id - id 09:35:52 forall a. (Num a) => a -> a 09:36:01 what does that even do. 09:37:10 > id - id $ 42 09:37:10 0 09:37:16 Verily. 09:37:57 > id - id $ True 09:37:57 No instance for (GHC.Num.Num GHC.Bool.Bool) 09:37:57 arising from a use of `GHC.N... 09:38:06 I suppose it does the other "intuitive" thing when summing. 09:38:10 > id + id $ 42 09:38:10 yes. 09:38:12 84 09:38:14 Right. 09:38:43 makes writing pointlessly easy. 09:38:59 > map ((*2) + (*4)) [1..] 09:39:00 [6,12,18,24,30,36,42,48,54,60,66,72,78,84,90,96,102,108,114,120,126,132,138... 09:39:39 > 2*sin 09:39:39 Overlapping instances for GHC.Show.Show (a -> a) 09:39:39 arising from a use of `... 09:39:40 lol 09:39:52 > const 2*sin 4 09:39:53 Overlapping instances for GHC.Show.Show (b -> t) 09:39:53 arising from a use of `... 09:40:08 > (const 2*sin) 4 09:40:09 -1.5136049906158564 09:40:20 awww yeah signal processing. 09:45:48 okay so I'm wondering if it would be bad to use the same seed value everytime I want to generate white noise... 09:46:05 because otherwise I would have to use IO to generate a white noise signal. 09:46:32 I guess I could just pass the seed parameter to the generator... 09:48:42 I'm pretty sure using the same seed everytime would not degrade the quality of the white noise produced, at least to the human ear. 09:49:20 so I'll have one with a seed parameter, one without, and one that is in IO 09:50:08 and by "write" I mostly mean "use the ones that are already there" 10:01:22 @hoogle a -> [a] 10:01:22 Prelude repeat :: a -> [a] 10:01:22 Data.List repeat :: a -> [a] 10:01:22 Prelude iterate :: (a -> a) -> a -> [a] 10:02:56 > iterate succ >=> iterate pred $ 1 10:02:57 [1,0,-1,-2,-3,-4,-5,-6,-7,-8,-9,-10,-11,-12,-13,-14,-15,-16,-17,-18,-19,-20... 10:03:17 > iterate succ >=> take 3 . iterate pred $ 1 10:03:19 [1,0,-1,2,1,0,3,2,1,4,3,2,5,4,3,6,5,4,7,6,5,8,7,6,9,8,7,10,9,8,11,10,9,12,1... 10:29:47 -!- itidus20 has quit (Ping timeout: 264 seconds). 10:32:50 -!- itidus20 has joined. 10:32:55 -!- Wamanuz has quit (Remote host closed the connection). 10:36:37 -!- Wamanuz has joined. 10:59:00 -!- augur has quit (Remote host closed the connection). 10:59:11 -!- augur has joined. 11:17:34 -!- FireFly has joined. 11:58:08 -!- ais523 has joined. 12:08:21 -!- benuphoenix has joined. 12:08:58 anyone have the ruleset for the irc-based nomic called Canada? 12:10:11 I don't, and the other two people who might plausibly have it (elliott and Vorpal) aren't here right now 12:11:01 comex_ wouldn't plausibly have it? 12:12:21 hmm, I can't remember if he was around back then 12:15:00 comex was there 12:41:19 i wonder if a wireless network messaging protocol would be a slightly good thing, or a very very bad thing 12:42:59 nvm 13:45:35 hey, does Befunge-98 have any libraries/fingerprints for doing object-oriented programming yet? 13:47:12 the topic came up in another channel 13:54:44 There's FOBJ in the RC/Funge, it's sort-of like that. 13:54:47 http://www.rcfunge98.com/rcfunge2_manual.html#FOBJ 13:55:09 :t shiftL 13:55:09 forall a. (Bits a) => a -> Int -> a 13:55:26 fizzie: ah, that's what I was looking for 13:55:31 MoL yeah.. MoL yeah.. 13:55:47 :t (|) 13:55:47 parse error on input `|' 13:56:06 er whats bitwise or? 13:59:36 -!- benuphoenix has quit (Quit: leaving). 14:00:07 @hoogle Bits 14:00:07 module Data.Bits 14:00:07 Data.Bits class Num a => Bits a 14:00:07 Data.Bits bitSize :: Bits a => a -> Int 14:00:11 .|., isn't it? 14:00:15 ah 14:00:18 :t (.|.) 14:00:19 forall a. (Bits a) => a -> a -> a 14:00:24 :t (.&.) 14:00:25 Ambiguous occurrence `.&.' 14:00:25 It could refer to either `Data.Bits..&.', imported from Data.Bits 14:00:25 or `Test.QuickCheck..&.', imported from Test.QuickCheck 14:00:32 Looks like a middle finger. 14:00:36 (o Y o) 14:00:55 :t (Data.Bits.(.&.)) 14:00:55 Couldn't find qualified module. 14:01:10 :t (Data.Bits..&.) 14:01:11 forall a. (Bits a) => a -> a -> a 14:01:19 that syntax is weird to me. 14:01:39 > 3 Data.Bits..&. 4 14:01:39 Ambiguous type variable `a' in the constraint: 14:01:39 `Data.Bits.Bits a' 14:01:39 a... 14:01:50 > 3 Data.Bits..&. 4 :: Int 14:01:51 0 14:03:11 Prettiest thing since sliced bread. 14:04:25 :t (.^.) 14:04:25 Not in scope: `.^.' 14:04:29 er, what's xor? 14:04:39 @hoogle (Bits a) => a -> a -> a 14:04:39 Data.Bits (.&.) :: Bits a => a -> a -> a 14:04:39 Data.Bits (.|.) :: Bits a => a -> a -> a 14:04:39 Data.Bits xor :: Bits a => a -> a -> a 14:05:52 > let mul a b = if a == 0 then b else let c = b Data.Bits..&. a in mul (c `shiftL` 1) (b `xor` a) in mul 8 8 14:05:52 Ambiguous type variable `a' in the constraint: 14:05:52 `Data.Bits.Bits a' 14:05:53 a... 14:06:11 > let mul :: Int -> Int -> Int; mul a b = if a == 0 then b else let c = b Data.Bits..&. a in mul (c `shiftL` 1) (b `xor` a) in mul 8 8 14:06:11 16 14:06:18 ..not quite. 14:07:51 oh wait I think I defined addition actually. 14:07:59 > let mul :: Int -> Int -> Int; mul a b = if a == 0 then b else let c = b Data.Bits..&. a in mul (c `shiftL` 1) (b `xor` a) in add 2 2 14:08:00 Not in scope: `add' 14:08:14 > let add :: Int -> Int -> Int; add a b = if a == 0 then b else let c = b Data.Bits..&. a in add (c `shiftL` 1) (b `xor` a) in add 2 2 14:08:14 4 14:08:18 yep 14:09:13 now to make it look better. 14:12:12 > let add :: Int -> Int -> Int; add 0 b = b; add a b = let c = b Data.Bits..&. a in add ((`shiftL` 1) . b Data.Bits..&. a) (b `xor` a) in foldl1 add [1..100] 14:12:13 Couldn't match expected type `f a' 14:12:13 against inferred type `GHC.Types... 14:12:34 > let add :: Int -> Int -> Int; add 0 b = b; add a b = let c = b Data.Bits..&. a in add ((`shiftL` 1) . (b Data.Bits..&. a)) (b `xor` a) in foldl1 add [1..100] 14:12:35 Couldn't match expected type `f a' 14:12:35 against inferred type `GHC.Types... 14:13:36 oh right 14:14:15 > let add :: Int -> Int -> Int; add 0 b = b; add a b = let c = b Data.Bits..&. a in add ((b Data.Bits..&. a) `shiftL` 1) (b `xor` a) in foldl1 add [1..100] 14:14:15 5050 14:18:50 > let add :: Int -> Int -> Int; add 0 b = b; add a b = add ((b Data.Bits..&. a) `shiftL` 1) (b `xor` a) in foldl1 add [1..100] 14:18:51 5050 14:18:55 forgot to remove the let. 14:28:03 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 14:34:49 The wurst multiplier: 14:34:52 > let mul :: Int -> Int -> Int; mul a b = let i = [0 .. (bitSize a - 1)] in sum $ map (\i -> if testBit a i then b `shiftL` i else 0) i in mul 17 19 14:34:52 323 14:46:33 My score playing Barbu: -289. Supposedly, this is good for someone playing for the first time 15:00:29 -!- copumpkin has joined. 15:22:31 Dear website: Rejecting an email address due to capital letters is pants-on-head retarded. 15:24:06 wow, that's stupid 15:24:12 is your email provider case-insensitive? 15:24:27 the bit after the @ is, the bit before the @ is up to the provider but the vast majority interpret it as case-insensitive 15:24:29 Well, it was my dad trying to use the website 15:25:28 It autocompletes with a capital in the first part. Before I proved to myself that that was the issue, I suggested it to him, but the... form thingy replaced the lower-case with the capital 15:25:33 cpap.com 15:32:15 -!- chickenzilla has joined. 15:40:57 anyone have the ruleset for the irc-based nomic called Canada? 15:40:57 I don't, and the other two people who might plausibly have it (elliott and Vorpal) aren't here right now 15:41:00 uh... 15:41:01 hm 15:41:07 nope I don't think so 15:41:25 I have no clue where to look even 15:58:05 -!- pikhq has joined. 15:58:19 -!- pikhq_ has quit (Ping timeout: 255 seconds). 16:06:31 -!- derrik has joined. 16:16:16 -!- oklopol has joined. 16:17:05 well what problem? 16:19:23 i mean the dynamic one 17:01:00 -!- copumpkin has quit (Quit: Leaving...). 17:01:25 -!- copumpkin has joined. 17:46:00 -!- copumpkin has quit (Ping timeout: 240 seconds). 17:46:46 -!- copumpkin has joined. 17:53:22 -!- copumpkin has quit (Ping timeout: 258 seconds). 18:06:47 -!- monqy has joined. 18:08:28 -!- copumpkin has joined. 18:16:35 yeah 18:34:14 things I hate about eating chicken: the parts of the chicken consisting of mystery meat instead of chicken 18:36:53 Sounds like you're eating wyngz. 18:37:30 i hate mystery meat 18:40:18 unsure if all of it even counts as meat, but that's part of the mystery I guess 18:41:09 eating causes cancer 18:41:48 cancer causes eating 18:42:16 work kills.. everybody who has some some work has died 18:42:25 *done some 18:42:38 working causes cancer 18:46:40 -!- derrik has left. 18:52:22 -!- GuestIceKovu has changed nick to Slereah. 19:12:02 -!- ais523 has quit (Remote host closed the connection). 19:44:43 -!- Taneb has joined. 19:44:56 Hello 19:46:12 Actually, change of plan 19:46:14 brb 19:46:56 -!- Sgeo has quit (Ping timeout: 255 seconds). 19:47:12 -!- zzo38 has joined. 19:51:38 -!- azaq231 has quit (Quit: Leaving.). 19:59:56 -!- Taneb has quit (Ping timeout: 252 seconds). 20:01:20 Does anyone remember kilgame? I think it was created by pikhq or oklopol or lament or a similar person. 20:02:37 -!- Taneb has joined. 20:02:41 Hello 20:03:50 "Hello" 20:06:13 Well, things are happening in the world 20:09:16 no, nothing is happening "in the world" 20:10:35 Yes they are 20:10:54 Convection currents are flowing around in the mantle 20:13:11 Also, it's happened again 20:15:23 I'm freakin' insane 20:31:33 -!- Sgeo has joined. 21:22:00 -!- Taneb has quit (Quit: Page closed). 21:38:32 -!- TeruFSX has joined. 21:42:09 -!- oerjan has joined. 21:45:51 hi oerjan 21:46:07 hi *hides behind rock* 21:46:17 you still don't remember my name? 21:46:48 det ville vært rart 21:47:07 i fucking tattooed it between my angle brackets just so people would remember it 21:47:48 well you've dropped one of them, i can see clearly there is no < 21:48:32 lemme check my mirror 21:48:44 [00:48:43] hi 21:48:44 [00:48:43] hi 21:48:45 [00:48:45] checking 21:48:45 [00:48:45] checking 21:48:46 no it's there 21:49:04 you must be going blind in one eye 21:49:46 AAAAAAAAAAAAAAAAA 21:55:20 i think i'll go blind in both eyes for a few hours now, see you tomorrow if it's temporary -> 21:57:18 O KAY 22:01:03 I'm not entirely sure how to represent a zipper in 2D 22:01:16 obviously he wants to start with a quadtree. 22:01:35 but now he'll NEVER know *MWAHAHAHA* 22:18:33 -!- MDude has joined. 22:19:25 -!- Nisstyre has quit (Ping timeout: 258 seconds). 22:20:19 -!- iamcal has quit (Remote host closed the connection). 22:45:33 that recent post on godel's lost letter seems to have brought up many quips in the comments... 22:46:13 'In a discussion on Google+ on why it is superior to Twitter someone commented: “I would go so far as to say that almost any idea that can be expressed in 140 characters is too trivial, and not worth expressing."' 22:47:17 (the subject being "Self-defeating sentences") 22:48:33 -!- TeruFSX has quit (Ping timeout: 258 seconds). 22:49:29 -!- iamcal has joined. 22:52:06 -!- elliott has joined. 22:55:18 suppe, 22:57:23 pannekaker med ertesuppe 22:57:36 (og bacon) 23:00:20 09:13:12: But you can't add to Java interfaces. 23:00:20 09:13:29: Existing ones, I mean. Because otherwise all existing implementations would start complaining about missing methods. 23:00:20 09:13:53: So you can't put anything new in the Collection interface for example, without ruining everyone else's collections. 23:00:20 09:15:02: That's I think why the have the Collections class with all those static methods, because you can easily stick stuff in there. (Except of course you can't then override that stuff in custom-built containers or anything.) 23:00:27 fizzie: see expression problem 23:01:07 java doesn't even _try_ to have a solution to it, i think. 23:01:47 oerjan: um the expression problem was originally formulated and solved for GJ by its creators 23:01:53 GJ = Generic Java, which was merged into Java in the fifth version 23:02:06 the solution isn't how any Java code or libraries are structured, mind you 23:02:17 ok 23:02:45 09:45:48: okay so I'm wondering if it would be bad to use the same seed value everytime I want to generate white noise... 23:02:46 this is what RandomR is for 23:02:47 ?hoogle random 23:02:47 package random 23:02:47 System.Random random :: (Random a, RandomGen g) => g -> (a, g) 23:02:47 module System.Random 23:02:51 well RandomGen 23:03:04 12:08:58: anyone have the ruleset for the irc-based nomic called Canada? 23:03:04 wow what 23:03:08 -!- iamcal has quit (Ping timeout: 255 seconds). 23:04:13 20:01:20: Does anyone remember kilgame? I think it was created by pikhq or oklopol or lament or a similar person. 23:04:14 yes; lament 23:04:17 tswett: 23:04:55 -!- subleq has joined. 23:05:05 -!- subleq has left. 23:05:46 hi subleq bye subleq 23:09:36 -!- subleq has joined. 23:09:41 fine, i'll say hi 23:09:58 hello 23:12:20 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 23:14:50 -!- CakeProphet has quit (Read error: Connection reset by peer). 23:15:14 -!- CakeProphet has joined. 23:16:24 Do you have idea what I (and my brother) might try next in D&D game I was playing? 23:20:03 > fix (\xs -> flip concatMap xs (\x -> ' ' : case x of ' ' -> 'space'; _ -> x)) 23:20:03 : 23:20:03 lexical error in string/character literal at chara... 23:20:15 > fix (\xs -> flip concatMap xs (\x -> ' ' : case x of ' ' -> "space"; _ -> [x])) 23:20:18 mueval-core: Time limit exceeded 23:28:04 -!- subleq has quit (Quit: leaving). 23:30:16 > fix (\xs -> ' ' : flip concatMap xs ((++" ").(\x -> ' ' : case x of ' ' -> "space"; _ -> [x]))) 23:30:18 " space space s p a c e space space s p a c e space space ... 23:30:31 oops 23:30:43 > fix (\xs -> ' ' : flip concatMap xs ((++" ").(\x -> case x of ' ' -> "space"; _ -> [x]))) 23:30:44 " space s p a c e space s space p space a space c space e space s p a c e s... 23:32:02 tswett: ^ that what you wanted out? 23:32:06 -!- TeruFSX has joined. 23:32:16 spaces of paces 23:32:17 Yep. 23:33:12 > fix (\xs -> ' ' : unwords (flip concatMap xs (\x -> case x of ' ' -> "space"; _ -> [x]))) 23:33:13 Couldn't match expected type `[GHC.Types.Char]' 23:33:13 against inferred ty... 23:33:16 oops 23:33:34 > fix (\xs -> ' ' : unwords (flip map xs (\x -> case x of ' ' -> "space"; _ -> [x]))) 23:33:38 mueval-core: Time limit exceeded 23:33:41 wat 23:34:16 why would that be different 23:34:50 > take 1 . unwords $ ('x':undefined) : undefined 23:34:51 "*Exception: Prelude.undefined 23:34:54 oerjan: you realise eval is non-deterministic? 23:34:58 it could just be slow 23:35:02 > take 1 . unwords $ "x" : undefined 23:35:03 "*Exception: Prelude.undefined 23:35:20 yes but i more suspect unwords is insufficiently lazy 23:35:25 @src unwords 23:35:25 unwords [] = "" 23:35:25 unwords ws = foldr1 (\w s -> w ++ ' ':s) ws 23:35:53 hm that doesn't look strict 23:37:51 > unwords $ "x" : undefined 23:37:52 "*Exception: Prelude.undefined 23:38:21 -!- copumpkin has joined. 23:38:35 > let unwords [] = ""; unwords ws = foldr1 (\w s -> w ++ ' ':s) ws in unwords $ "x" : undefined 23:38:37 "*Exception: Prelude.undefined 23:38:45 oh hm 23:39:29 > "x" ++ undefined 23:39:30 "x*Exception: Prelude.undefined 23:39:41 > 'x' ++ undefined 23:39:41 No instance for (Data.Monoid.Monoid GHC.Types.Char) 23:39:41 arising from a use o... 23:39:46 oops 23:40:03 > "x" ++ ' ':undefined 23:40:05 "x *Exception: Prelude.undefined 23:40:43 > let unwords ws = foldr1 (\w s -> w ++ ' ':s) ws in unwords $ "x" : undefined 23:40:45 "*Exception: Prelude.undefined 23:41:31 > foldr1 (\w s -> w ++ ' ':s) $ "x" : undefined 23:41:33 "*Exception: Prelude.undefined 23:41:53 > foldr1 (\w s -> w ++ b:s) $ [a] : undefined 23:41:54 *Exception: Prelude.undefined 23:42:02 @src foldr1 23:42:02 foldr1 _ [x] = x 23:42:02 foldr1 f (x:xs) = f x (foldr1 f xs) 23:42:02 foldr1 _ [] = undefined 23:42:18 ooh it's foldr1 which is not lazy of course 23:42:33 it needs to handle the exact [x] case specially 23:43:43 and by writing in terms of that, unwords becomes a tiny bit less lazy than necessary. 23:43:45 world.c: In function ‘T.167’: 23:43:45 world.c:246: error: ‘current_chunk$z’ may be used uninitialized in this function 23:43:45 world.c:246: error: ‘current_chunk$x’ may be used uninitialized in this function 23:43:45 world.c: In function ‘world_handle_chunk’: 23:43:45 world.c:246: error: ‘current_chunk.z’ may be used uninitialized in this function 23:43:46 world.c:246: error: ‘current_chunk.x’ may be used uninitialized in this function 23:43:50 wow what 23:44:14 -!- iamcal has joined. 23:44:49 your shitty macros? 23:45:12 or wait, chunks, that's mc isn't it 23:47:26 I am trying to think of the next session of my D&D game. Maybe we should kick the stunned kuo-toas off of the ship, but maybe the wall is too high. Maybe we should ask them try to figure out where the ship is going and stuff, but maybe now they think we are crazy and won't tell us; we just have to wait. Maybe they need the uniform back, but the old clothes have been burned. 23:47:34 It is difficult. 23:50:36 oerjan: mcmap, yes 23:50:42 the dollar sign stuff was what wow'd me 23:50:46 and the T.167. 23:56:19 -!- Taneb has joined. 23:56:24 Hello 23:57:12 hi 23:58:19 * oerjan cackles evilly 23:58:21 i mean, hi 2011-07-28: 00:01:04 oerjan: g or uppercase or C, which 00:01:08 (notuppercase) 00:01:59 wat 00:02:22 -!- Sgeo_ has joined. 00:02:34 oerjan: yes? 00:02:38 maybe. 00:03:18 -!- Patashu has joined. 00:05:14 -!- Sgeo has quit (Ping timeout: 255 seconds). 00:10:51 "The natural progression is 1) fear the type system, it barfs at me and I don't get it; 2) respect the type system, it seems to catch a lot of stupid stuff; 3) use the type system, if I think about it a little I can harness it to catch pretty non-trivial bugs in my code; 4) abuse the type system, use fundeps and undecidable instances to create possibly very complex type-level hackery to check invariants at compile time." 00:10:55 awesome, i am a level four haskell programmer 00:13:11 -!- copumpkin has changed nick to c0pumpk1n. 00:15:43 5) Oleg. 00:19:38 Does Haskell allow you to have incomplete type declarations that you can add stuff on many times later on? 00:20:23 depends what you mean 00:20:33 typeclasses are a version of that 00:20:39 -!- iamcal has quit (Remote host closed the connection). 00:20:49 so, yes 00:22:06 -!- itidus21 has joined. 00:22:11 oerjan: i mean if I make it g 00:22:13 how g do i make it 00:22:50 Can you make a union that adds later things it can be later on, or a record type that can add more fields later on? 00:23:07 zzo38: Haskell doesn't really have those as separate concepts, but yes and no 00:23:18 You cannot extend a "data" type (ADT) for various important reasons, but you can achieve the same effect 00:23:24 (arguably it should be easier, but yes, it is possible) 00:23:25 -!- c0pumpk1n has changed nick to copumpkin. 00:24:43 -!- itidus20 has quit (Ping timeout: 252 seconds). 00:25:38 zzo38: here's an example: http://sprunge.us/RYUY 00:26:05 the standard Control.Exception module is a much more advanced and flexible version of this, http://haskell.org/ghc/docs/latest/html/libraries/base/Control-Exception.html 00:26:57 elliott: not too much. "a constant 16 g for a minute, however, may be deadly." 00:27:21 oerjan: so would i make loop index g? 00:28:04 elliott: looping is not recommended, i think. 00:28:33 'A typical person can handle about 5 g (49 m/s²) before losing consciousness ("G-LOC"), but through the combination of special g-suits and efforts to strain muscles—both of which act to force blood back into the brain—modern pilots can typically handle a sustained 9 g (88 m/s²) (see High-G training.' 00:28:38 *)' 00:28:47 ah. 00:28:51 thx towards thou 00:31:54 also, http://en.wikipedia.org/wiki/Euthanasia_Coaster 00:32:36 that thing scares me, i mean, it's cool i guess 00:32:38 it just terrifies me 00:32:58 like if i was at the top of the first slope somehow accidentally and i couldn't get off 00:34:05 help im on euthanasia coaster and i cant get off 00:34:16 monqy: jump 00:35:51 I always get mixed up with euthanasia and ecstasy 00:36:11 ecstacy in which sense of the word 00:36:13 i'm sure some will tell you it's practically the same thing. 00:36:37 monqy: every sense 00:36:41 Eve 00:36:41 r 00:36:50 "Subsequent inversions would serve as insurance against unintentional survival of passengers." good sentence 00:37:01 the best. 00:37:07 Also, it's getting early 00:37:12 Goodnight 00:38:26 taneb the backwards living one. 00:41:32 -!- Taneb has quit (Ping timeout: 252 seconds). 00:42:54 I have to agree with Taneb on that one 00:42:58 -!- FireFly has quit (Quit: swatted to death). 00:44:06 I suppose that stuff about extending the incomplete types and stuff could also be partly done using some kind of preprocessor 00:44:14 -!- iamcal has joined. 00:44:20 why do i only notice FireFly when he's leaving, it's not fair. 00:44:34 my swatter needs exercise, dammit! 00:45:46 * oerjan swats tswett -----### 00:45:46 Then swat the wall and see if it breaks 00:46:06 zzo38: i went for the alliterative solution. 00:49:31 tswatt 00:52:49 Maybe a vim and/or Emacs scripts can be made for use with TeXnicard, in order to do syntax highlighting and possibly for adding cards and GUID based on what you specify, and so on. In case, it would help some people who like it this way. 01:08:55 ?hoogle fromRight 01:08:55 No results found 01:08:58 ?hoogle either 01:08:58 Prelude either :: (a -> c) -> (b -> c) -> Either a b -> c 01:08:58 Data.Either either :: (a -> c) -> (b -> c) -> Either a b -> c 01:08:58 module Data.Either 01:09:55 there's also some MonadError instance, i think 01:10:14 hm i guess that doesn't really help with that 01:10:45 :t maybe 01:10:46 forall b a. b -> (a -> b) -> Maybe a -> b 01:10:50 :t fromMaybe 01:10:51 forall a. a -> Maybe a -> a 01:10:55 Hmm, crud 01:11:01 oh right 01:11:07 There is now a web page listing my RL name right next to "Sgeo" 01:11:12 http://www.barbu.co.uk/rankings/player_naming.htm 01:11:16 there's no fromEither equivalent, i guess 01:12:18 you are doomed now. they will kidnap you and force you to take a genuine education. 01:13:05 DAMN YOU BARBUUUUUUUUUUUUUUU 01:13:23 just wanna say that Sgeo_'s use of "crud" is hilarious 01:14:48 Hmm 01:22:30 "da" 01:22:38 oerjan: qoantism, 01:22:42 oh dam 01:23:03 he said, "qwertyuio and" then... the suspense begin 01:23:25 i have no idea what qoantism is. although it reminds me that in pre-classical latin, q was sometimes used in front of o as well. 01:23:40 iirc. 01:24:23 What is q used in front of o as well in pre-classical latin, meant? 01:24:27 also, "da" is the imperative form meaning "give", iirc 01:24:32 \def\afspace#1#2{\if\isempty{#2}#1{}\else\expandafter#1\expandafter{\identity#2}\fi} 01:25:36 zzo38: well in classical and later lating q was only used in front of u, as is still mostly the case in english... 01:25:39 *latin 01:26:23 presumably it was pronounced approximately the same as c, so spelling varied. 01:26:44 oerjan felt the starin of carbon dioxide death 01:27:04 wat again 01:27:36 sometimes i get close to wondering if elliott is doing drugs. 01:27:38 Just recently I showed someone one of my TeX files for some purpose, and they told me "Why don't you use a real file type? Such as .txt or .7z" 01:27:57 zzo38: good grief :P 01:28:14 oerjan: im better than durgs 01:29:04 or wait - are THEY making you take drugs? say it isn't so!!!!!!!!!1111ælve 01:29:42 They tell me that my .tex file is "not a real file". What?? 01:29:58 zzo38: they are either trolling or genuinely clueless 01:31:10 which one, can be hard to tell without much more information. 01:31:16 /usr/bin/ld: /home/elliott/.cabal/lib/york-lava-0.2/ghc-7.0.4/libHSyork-lava-0.2.a(Lava.o): relocation R_X86_64_32S against `.data' can not be used when making a shared object; recompile with -fPIC 01:31:16 /home/elliott/.cabal/lib/york-lava-0.2/ghc-7.0.4/libHSyork-lava-0.2.a: could not read symbols: Bad value 01:31:17 argh 01:31:35 zzo38: probably because it won't open when they double click it 01:32:21 zzo38: hm if it's what elliott says, then maybe you can add a mime type, if it's on the web. 01:32:56 not that that necessarily helps if they're that clueless 01:33:26 ARGH THIS SUCKS 01:34:03 or in the other direction, sometimes i get annoyed by my browser insisting on saving code which i just want to view as text, because of filetype and/or extension 01:34:14 just make it text/plain 01:38:17 -!- CakeProphet has quit (Ping timeout: 250 seconds). 01:39:08 -!- CakeProphet has joined. 01:45:08 -!- cheater_ has quit (Ping timeout: 255 seconds). 01:45:44 spot the difference http://i.imgur.com/vHLx5.jpg 01:46:33 im zombie 01:47:08 this one feels too close to home for me http://i.imgur.com/zBD2S.jpg 01:47:40 and what is worse is that i anticipated the punchline 01:48:04 Obviously the guy on the left has ripped clothing and is larger (in the first picture) 01:48:08 oerjan 01:48:17 France used to have the best weather guy 01:48:36 Also 01:48:41 Dude almost died on air D: 01:48:46 http://www.youtube.com/watch?v=GWRkWp7n_ew 01:49:26 It was pretty weird 01:49:39 Well, not dying 01:49:44 But cancer acting up and all 01:51:12 oerjan: your guy is cooler 01:51:27 he's like "what do you want from me. i am a weatherman. i report the fucking weather." 01:51:43 I think he ate the weather girl 01:51:46 also how fucking old is that gmtv shot 01:51:50 elliott: his voice gives that impression even stronger :P 01:51:56 oerjan: link? :D 01:52:10 um let me see if i can find one 01:52:19 http://www.youtube.com/watch?v=GWRkWp7n_ew 01:52:23 this video is ensaddening me 01:52:40 oh my god evryone is talking in french in the comments STO,P 01:52:44 icant undertsand you 01:52:46 He was always making jokes and all 01:52:55 is he dead 01:52:55 So many people assumed that this was a little skit 01:52:58 Yeah 01:53:06 * elliott cries profusely, rip french weatehrman 01:53:09 http://www.youtube.com/watch?v=t6kRFRXkltE 01:53:24 oerjan: oh my god 01:53:26 And his ashes were thrown into a hurricane or something, from what I remember 01:53:26 (note it's middle of the night so i'm not checking the sound myself) 01:53:27 oerjan: canimove to norway 01:53:39 i want this guy to read em my weather every day 01:53:43 Man 01:53:48 Napoleon Dynamite did not age well 01:53:52 he has a fucking stick his stick is amazing 01:53:55 Slereah: :D 01:54:06 longyearbyen how do you evne come up with a name like that 01:54:24 -!- CakeProphet has quit (Ping timeout: 264 seconds). 01:55:04 but now let me see if i can find one of our _truly_ legendary weatherman. 01:56:26 oh dear i cannot find one which isn't either parody or that famous sampling... 01:56:47 The assumption is that users of this library will want to diff over interesting things or peform interesting tasks with the results (given that, otherwise, they would simply use the standard Unix diff utility). Thus no attempt is made to present a fancier API to aid in doing standard and uninteresting things with the results. 01:57:14 -!- itidus21 has changed nick to itidus20. 01:57:21 What is "interesting"? 01:58:03 The gdiff package 01:58:03 Get an efficient, optimal, type-safe diff and patch function for your datatypes of choice by defining a simple GADT and some class instances. 01:58:08 oh cool 01:59:17 oh heh sg might be able to use that 01:59:36 ah here is one http://www.youtube.com/watch?v=-p0sjcCsrRY 02:00:11 will look in minute 02:02:33 any diff library that depends on a type equality GADT is a good diff library 02:02:53 oerjan: ok wtaching 02:03:03 wow is that an actual board with stick on numbers oerjan 02:03:06 on an actual cube 02:03:12 if you seen any suggested related videos those with KLM will be the parodies, while "Heavy Metal" is the sampling. 02:03:15 yes. 02:03:17 oerjan: does he always stay off-screen 02:03:19 it's from 1981 02:03:26 elliott: except at the very end 02:03:33 is he like rip my face i dont like me im ugly 02:03:34 :( 02:03:43 also why is this guy famous :D 02:03:59 his voice, and general geekiness 02:04:19 :D 02:04:32 i wish we had weatherpeople as cool as that here 02:05:22 longyearbyen how do you evne come up with a name like that <-- it's just "long year" + "byen" (the town) 02:05:38 i'm not sure if longyear is the name of some guy or not 02:07:03 but it's definitely from english 02:09:21 this danish guy is linked from the top reddit comment http://i.imgur.com/qszvo.jpg 02:11:11 heh 02:11:32 isn't that a really old image anyway 02:12:26 i guess you may know the guy from the _second_ comment http://i.imgur.com/vdqa0.jpg 02:13:11 his... face rings a bell i guess 02:13:13 link to thread plz 02:13:25 http://www.reddit.com/r/funny/comments/j1f2s/meteorologists/?limit=500 02:14:16 theisen showed up in the responses to that 02:16:42 omg http://i.imgur.com/4qCak.jpg 02:16:54 i guess you may know the guy from the _second_ comment http://i.imgur.com/vdqa0.jpg 02:16:58 for me that guy is the first comment 02:17:01 are you not using best ordering? 02:17:04 yes 02:17:07 omg http://i.imgur.com/4qCak.jpg 02:17:08 wow 02:17:11 literal best 02:17:21 just what 02:17:58 the comment with "ESTONIA" 02:18:22 -!- TeruFSX has quit (Ping timeout: 252 seconds). 02:18:27 on danish guy 02:18:28 "His glowing head is so amazing. Please tell me that is natural." 02:19:39 "If all hot women on TV were smart, I don't think that any other girls could be smart without wrecking the idea that men and women are equally intelligent." 02:19:41 wat 02:19:50 -!- TeruFSX has joined. 02:20:13 oerjan: "NO! DON'T ! This guy is a guy that makes fun of people. He's like out Jon Stewart." 02:20:13 oerjan: :( 02:20:32 "He's kinda like him. Talks about news and stuff with another guy and they make fun of stuff. He's the best we've got. They even made a song for Eurovision and we chose it. Why? CAUSE WHY THE FUCK NOT!" http://www.youtube.com/watch?v=LRh9PzNYD-8 02:21:39 this is the best song 02:28:53 I thought of various things about prettyprinting how it could work with Haskell programs, including, you can have a TeX code \Wsym for making symbols they can be defined using \csname or whatever, and then words in different styles for different purposes, such as if `mod` you can type in roman style but otherwise can be italic, or bold for keywords, or for names you can also do things, like, ' makes prime mark, # at end of a name makes superscr 02:29:12 -!- cheater_ has joined. 02:30:46 You might do it has numbers at the end of a name makes subscripts, or superscripts and subscripts separated by underscore, etc 02:32:16 Things that are syntax errors in Haskell can be used for other purposes 02:34:34 zzo38: the main way to do "other purposes" in haskell is to put it in comments. e.g. pragmas have the format {-# ... #-} (where the #'s signify that it's a pragma) 02:34:58 Yes that can work too. 02:35:05 while haddock iirc uses the other style of comments -- ^ etc... 02:35:21 It also depends what the other purposes are, I guess. 02:35:37 yeah 02:35:51 In some cases it is OK to ignore you can use comments then, but in case it is a preprocessor you might instead want to use things that would make a syntax error in normal Haskell 02:36:09 right 02:36:36 This is possible to be applied in other programming languages too 02:38:40 Actually WEB uses @ to select modes and special commands since @ is not a command in Pascal, and uses double quote for pool strings (including single character constants, are replaced by their ASCII code number). 02:40:21 zzo38: with haskell most non-alphanumerical characters are syntax errors at the beginning of a line, unless you're in layout-less mode (which is afaik rarely used) 02:41:31 ( can also appear there i think, in operator definitions 02:41:58 oh and that also gives ' and " 02:42:10 but @ and # are syntax errors, i think 02:42:19 > let @ whatever = 02:42:20 : parse error on input `@' 02:42:28 It says Haskell permits the omission of the braces and semicolons used in several grammar productions, by using layout to convey the same information. This allows both layout-sensitive and layout-insensitive styles of coding, which can be freely mixed within one program. Because layout is not required, Haskell programs can be straightforwardly produced by other programs. 02:42:30 > let # whatever = 02:42:30 : parse error on input `#' 02:42:51 yes 02:43:12 But from what I am reading, it seem `` is probably a syntax error putting two ` next to each other directly 02:43:52 yeah i cannot think of a place where that would be legal outside a comment/string 02:43:53 So, you can use layout mode and non-layout mode together in one program, I think? Is that what it does? 02:44:35 yes. it depends on whether you include a literal { when starting a block or not 02:45:21 > let x = y where { y = 2+z; z = 5 } in x 02:45:22 7 02:45:53 there the block with the let has layout (in theory, although it ends on the same line) while the where block doesn't. 02:50:35 zzo38: Probably the easiest way to do a TeX-style prettyprinting for Haskell would be to use TeX-style Literate Haskell. 02:51:21 (if the file has a suffix of .lhs, then the file is considered to be in Literate Haskell. One can denote that something is actual code, rather than normal text, either by prepending the line with >, or wrapping the code in \begin{code} \end{code}. 02:51:25 ) 02:53:56 -!- copumpkin has quit (Ping timeout: 252 seconds). 02:54:21 -!- copumpkin has joined. 02:54:59 Yes it would work, and then can be compiled using standard Haskell compilers too, I think (since .lhs means to only compile lines with > I think) 02:55:18 Or things in \begin{code} \end{code} blocks. 02:55:26 It's part of the standard. 02:56:37 I don't know why that should be a part of the standard, but whatever, OK 02:57:10 Still, using .lhs does not allows you to do various other things such as preprocessing you might want, and so on; although you could still use it for prettyprinting in TeX or other programs 02:57:37 Yeah, it is somewhat limited, and a more full-fledged preprocessor might be preferable. 02:57:58 Still, it is nice being able to make your Haskell source be a TeX document with ease. 02:57:58 It seem \ is a valid operator in Haskell but I don't know if "\end{code}" can be any valid Haskell syntax. 02:58:36 \end{code} can't be valid Haskell syntax. 03:00:36 Of course I do suppose that both codes with > style or \begin{code} \end{code} style could be made to work in TeX with the correct macros without too much difficulty, although doing prettyprinting entirely with TeX would be far mroe difficult. 03:01:22 pikhq: well not if the \ starts a token. 03:01:25 (Making \end{code} would be slightly more difficult since the characters \ { } would still need to be supported inside of the code) 03:01:40 oerjan: IIRC it has to be at the very start of a line. 03:01:44 ah. 03:02:02 oh hm 03:02:10 You may know better than I, though. 03:02:10 it _could_ still be inside a string. 03:03:09 but maybe the \end{...} takes precedence. hm... 03:04:17 Well, in either case, to do it directly in TeX then you would make the end of line character to be category code 13 (active character) 03:04:52 And it would work especially if \end{code} needs to be on a line by itself or just at the start of a line 03:05:17 While with > you could have a command that sets the category codes so that a blank line without > ends it 03:05:38 \begin{code} could also start a pretty-printing environment. 03:05:45 "•Program code ends just before a subsequent line that begins \end{code} (ignoring string literals, of course). 03:05:49 " 03:05:57 And then you could let the TeX parser handle the \end{code} bit. 03:06:03 Well, I suppose you could do some prettyprinting stuff directly in TeX 03:06:23 So even TeX if you make it parse Haskell codes, could understand if \end{code} is inside of a string or not 03:08:24 If you are not using \begin for anything else, you could make \begin in TeX to ignore its first parameter, and then allow two kinds of prettyprinting, one for code that is part of the program, and one for code that is not part of the program. 03:11:12 Maybe even the contents of this report is enough I could try to make some kind of Haskell prettyprinter directly in TeX that supports .lhs format http://www.haskell.org/onlinereport/haskell2010/haskellch2.html#x7-140002 03:11:47 I have already written programs in TeX to make index, so it could be used too 03:15:19 flowers 03:15:21 forevers 03:15:30 zzo38: are you learning haskell or something? 03:16:20 elliott: Well, sort of. Not quite. Not really. 03:16:44 \end{code} can't be valid Haskell syntax. 03:16:48 So that, if you put \input the correct macros at the top, you can just type tex program.lhs; dvilj4 - < program.dvi | lp or whatever command would be used on your computer. 03:16:48 is this true in the presence of TH?h 03:16:53 hmm right it'd have to be asection 03:17:03 (\end{code}) would be valid on a line of its own, with TH 03:17:30 What does TH means? 03:17:41 hmm or wait, it'd have to be (\end{code=something}) 03:17:43 zzo38: template haskell 03:17:55 And what things would it mean \ and then end and then { 03:18:18 I try to look at the document see how it works 03:18:24 it would be a section 03:18:26 equivalent to 03:18:33 flip (\) end{code=blah} 03:18:33 The { is "special" 03:18:39 where the last thing is a record mutation 03:18:43 unfortunately \end{code} cannot be valid 03:18:49 but (\end{code=x}) could be 03:18:51 Without equal sign it is not valid? 03:18:56 indeed 03:19:00 elliott: \ is not a legal operator though 03:19:03 oerjan: oh 03:19:33 Then, it is OK, it is not a problem to use \end{code} to end the code in Literate Haskell, I guess. Since, it is not in a string, it says ignoring string literals so it is OK 03:20:34 there _is_ that quasiquote thing, though? 03:20:48 Yes it does say \ is reserved 03:21:04 \ is used for haskell's lambdas 03:22:40 oh right 03:22:40 hmm 03:22:46 \end{code}->expr 03:22:51 would be a valid line 03:22:53 (again with TH) 03:23:14 can you do that without capitalizing the end? 03:23:29 oh it's a TH thing you say 03:23:45 oerjan: um well hmm 03:23:46 it might be 03:23:52 yeah you are right 03:23:57 the TH thing is just an expression as a valid top-level line 03:24:04 > \end{code} -> code 03:24:04 : Parse error in pattern 03:24:10 bah 03:24:30 :t \end{test=hi}->hi 03:24:31 Parse error in pattern 03:24:40 :t \End{test=hi}->hi 03:24:41 Not in scope: data constructor `End' 03:24:41 `test' is not a (visible) field of constructor `End' 03:25:06 seems not legal unless a constructor 03:25:08 It is a valid line with TH? "Program code ends just before a subsequent line that begins \end{code} (ignoring string literals, of course)." Oops too bad! Well I suppose you can put a space before \end or using > style instead 03:26:11 zzo38: I mean not in a literate haskell file :P 03:26:12 well i suppose one would have to test to find out how ghc's TH actually interacts with \end{code} 03:26:15 but no, it isn't 03:26:34 And it require blank line before and after the codes with > so you could redefine \par to check for Haskell codes with > 03:28:38 -!- cheater_ has quit (Ping timeout: 255 seconds). 03:28:46 O, so, I can see what you were making, does it require the word capitalized to use that kind of stuff with Template Haskell? 03:29:35 seems so 03:29:53 -!- cheater_ has joined. 03:32:02 -!- cheater_ has quit (Excess Flood). 03:32:48 -!- cheater_ has joined. 03:34:59 Since > require blank line before and after, it should be not difficult to make it work in a simple (non prettyprinting) way in TeX just by redifining \par to check for that 03:54:17 -!- TeruFSX has quit (Ping timeout: 255 seconds). 03:55:49 -!- jcp has joined. 03:55:54 "All of those things have a certain function in a normal language. More interestingly, C++ has almost no pad words - each token is required to find out what a certain bit of code means. What in haskell takes the place of their function in a normal language?" 03:55:55 wat 03:56:07 Anon0AnALY5e said... 03:56:07 simple syntax for accessing and updating arrays in place... gone. 03:56:11 lol this comment section is terrible 03:56:29 -!- TeruFSX has joined. 03:57:48 The really stupid \outer command in TeX bothers me a lot. 03:58:35 you've mentioned 03:58:35 several times 03:59:38 I don't know why Knuth thought it would be a good idea. 03:59:39 Maybe simple syntax to return a new list with a different element in the place would be nice? 04:00:11 Sgeo_: you shouldn't be indexing lists 04:00:35 but um that's easy with arrays 04:00:39 arr // [(9,x)] 04:00:53 mutable arrays: 04:00:56 writeArray arr 9 x 04:01:35 with repa... 04:02:16 hmm 04:02:19 oh, it has // too 04:06:49 oerjan: what's like a stork 04:06:53 I made a simple program for non-prettyprinting Bird style in TeX now http://sprunge.us/SKPf 04:06:57 -!- TeruFSX has quit (Quit: No Ping reply in 180 seconds.). 04:07:12 -!- TeruFSX has joined. 04:08:16 Of course it can be improved, to do more things, including add extra space between the paragraphs and the codes, or change interline penalties in the codes and the vertical penalties before and after a code section 04:08:49 oerjan doesn't know what is like a stork. 04:09:30 Does this program work to you? 04:09:37 i didn't try 04:11:44 I tried and it works. 04:15:31 -!- CakeProphet has joined. 04:15:48 -!- variable has quit (Remote host closed the connection). 04:16:54 elliott: you might want to reduce your meds. 04:17:32 -!- variable has joined. 04:17:38 oerjan: tell me what is like a stork. 04:19:05 how long has elliott without a slep now 04:19:12 does anyone keep track 04:19:18 forever without a slep 04:20:09 monqy: well he wasn't around 6 hours or so ago. he may secretly have had a slep then. 04:20:47 like that indian guy that was supposed to not need eating. 04:21:22 nobody needs eating. people should remain uneaten for their natural lifespan 04:21:25 CONTRAVERSIAL 04:21:57 -!- CakeProphet has quit (Ping timeout: 252 seconds). 04:21:58 grammar hard, it is 04:24:00 what hapense to caniablse then,,,, 04:24:08 monqy: dies 04:26:01 ow pain 04:26:04 infinite 04:27:02 monqy: they move to ireland to live a modest life there 04:27:10 -!- zzo38 has left. 04:27:46 garden salads and people who are not people 04:27:48 subpeople 04:37:38 ?hoogle bytestring empty 04:37:38 No results found 04:37:39 -!- MDude has changed nick to MSleep. 04:37:39 ?hoogle empty 04:37:39 Control.Applicative empty :: Alternative f => f a 04:37:39 Data.ByteString empty :: ByteString 04:37:39 Data.IntMap empty :: IntMap a 04:40:00 does hoogle even take two parameters 04:42:25 ?src hGetLine 04:42:25 Source not found. 04:42:26 oerjan: dunno :D 04:42:56 @hoogle IO String 04:42:56 Did you mean: :: IO String /count=20 04:42:56 System.IO.Error ioeGetErrorString :: IOError -> String 04:42:56 System.IO.Error ioeSetErrorString :: IOError -> String -> IOError 04:43:10 @more 04:43:14 bah 04:43:38 @hoogle getLine 04:43:38 Prelude getLine :: IO String 04:43:38 Data.ByteString getLine :: IO ByteString 04:43:38 System.IO getLine :: IO String 04:43:58 so wtf doesn't that get listed first 04:44:09 @hoogle Handle -> IO String 04:44:10 System.IO hGetContents :: Handle -> IO String 04:44:10 System.IO hGetLine :: Handle -> IO String 04:44:10 System.IO hShow :: Handle -> IO String 04:44:21 @hoogle Handle -> IO ByteString 04:44:21 Data.ByteString hGetContents :: Handle -> IO ByteString 04:44:22 Data.ByteString hGetLine :: Handle -> IO ByteString 04:44:22 Data.ByteString.Char8 hGetContents :: Handle -> IO ByteString 04:44:53 -!- zzo38 has joined. 04:46:06 oh, you need :: if it isn't obvious that it's a type (contains no ->) 04:46:17 @hoogle :: IO String 04:46:17 Prelude getContents :: IO String 04:46:17 Prelude getLine :: IO String 04:46:17 System.IO getContents :: IO String 04:47:12 aha... 04:47:24 @hoogle +bytestring empty 04:47:24 Data.ByteString empty :: ByteString 04:47:24 Data.ByteString.Char8 empty :: ByteString 04:47:24 Data.ByteString.Lazy empty :: ByteString 04:47:39 * oerjan is reading http://www.haskell.org/haskellwiki/Hoogle 04:47:46 oerjan: number sign plz 04:47:51 # 04:47:54 thx 04:48:38 -!- postmodern has joined. 04:50:35 > mzero :: IO () 04:50:35 Overlapping instances for Control.Monad.MonadPlus GHC.Types.IO 04:50:35 arising f... 04:50:36 postmodern: hi 04:50:42 ?pl return () 04:50:42 return () 04:50:44 bah 04:50:45 ?hoogle m () 04:50:46 Network.BSD endHostEntry :: IO () 04:50:46 Network.BSD endNetworkEntry :: IO () 04:50:46 Network.BSD endProtocolEntry :: IO () 04:51:25 Can you use C preprocessor or m4 for Lazy K? 04:55:33 oerjan: what's the nicest way to augment a forM_ such that we can tell if we are on the last element of the list? 04:56:25 -!- postmodern has left ("Leaving"). 05:00:03 pass it a [(Bool, a)] or [Either a a], maybe? 05:00:25 or wait 05:03:11 forMe_ f fe l = foldr ((>>).f) (fe (last l)) (init l) 05:03:44 :t \f fe l -> foldr ((>>).f) (fe (last l)) (init l) 05:03:45 forall (m :: * -> *) a b a1. (Monad m) => (a1 -> m a) -> (a1 -> m b) -> [a1] -> m b 05:04:06 even gives you the result of the last one 05:04:26 hmm, thanks 05:04:52 hm actually that could leak some memory in the last l bit 05:04:56 -!- pikhq_ has joined. 05:05:13 (until it actually gets to the end) 05:05:20 in case that's a problem 05:06:13 forMe_ _ f [x] = f x; forMe_ f fe (x:xs) = f x >> forMe_ f fe xs 05:06:27 should not have that problem 05:07:47 -!- pikhq has quit (Ping timeout: 252 seconds). 05:07:50 thanks 05:09:46 hmm... 05:09:58 :t (\_->Nothing) <|> (\x->Just x) 05:09:59 forall a. (Alternative ((->) a)) => a -> Maybe a 05:10:02 > ((\_->Nothing) <|> (\x->Just x)) 9 05:10:03 No instance for (Control.Applicative.Alternative ((->) a)) 05:10:03 arising from ... 05:10:09 bah 05:10:53 ?hoogle Maybe a -> Maybe a -> Maybe a 05:10:54 Data.Generics.Aliases orElse :: Maybe a -> Maybe a -> Maybe a 05:10:54 Control.Applicative (<|>) :: Alternative f => f a -> f a -> f a 05:10:54 Control.Monad mplus :: MonadPlus m => m a -> m a -> m a 05:10:58 oh duh 05:11:10 ?pl \f g x -> f x <|> g x 05:11:10 liftM2 (<|>) 05:11:16 ?pl \f g -> B(\x -> f x <|> g x) 05:11:16 (B .) . liftM2 (<|>) 05:11:24 ?pl B (\x -> f x <|> g x) 05:11:24 B (liftM2 (<|>) f g) 05:11:39 :t fmap 05:11:40 forall a b (f :: * -> *). (Functor f) => (a -> b) -> f a -> f b 05:11:55 fmap :: (a -> b) -> (Message -> Maybe a) -> (Message -> Maybe b) 05:11:57 oh, that's easy 05:12:53 :t (<*>) 05:12:54 forall (f :: * -> *) a b. (Applicative f) => f (a -> b) -> f a -> f b 05:13:09 (Message -> Maybe (a -> b)) -> (Message -> a) -> (Message -> b) 05:13:20 oerjan: methinks these functions not so useful, but necessary to get Alternative :D 05:14:17 :t when 05:14:18 forall (m :: * -> *). (Monad m) => Bool -> m () -> m () 05:14:25 bah, why monad only :( 05:14:33 hmm wait 05:14:34 :t guard 05:14:35 forall (m :: * -> *). (MonadPlus m) => Bool -> m () 05:14:39 ?pl guard b >> x 05:14:39 guard b >> x 05:23:21 bah, why monad only :( <-- when is intrinsically monadic, not applicative. 05:23:31 i know i know i know :P 05:30:44 ?hoogle choice 05:30:44 Text.Parsec.Combinator choice :: Stream s m t => [ParsecT s u m a] -> ParsecT s u m a 05:30:44 Text.ParserCombinators.ReadP choice :: [ReadP a] -> ReadP a 05:30:44 Text.ParserCombinators.ReadPrec choice :: [ReadPrec a] -> ReadPrec a 05:30:47 ?hoogle choose 05:30:47 Test.QuickCheck choose :: Random a => (a, a) -> Gen a 05:30:49 oh come on 05:33:23 :t msum 05:33:24 forall (m :: * -> *) a. (MonadPlus m) => [m a] -> m a 05:33:28 this one? 05:33:47 oerjan: nope, I'm using Alternative 05:33:49 like a good person 05:33:53 maybe i should just use MonadPlus 05:34:02 ?hoogle Maybe (m a) -> m (Maybe a) 05:34:02 Data.Traversable sequenceA :: (Traversable t, Applicative f) => t (f a) -> f (t a) 05:34:02 Data.Traversable sequence :: (Traversable t, Monad m) => t (m a) -> m (t a) 05:34:02 Control.Applicative optional :: Alternative f => f a -> f (Maybe a) 05:34:08 pffffffffffffft 05:34:13 oh maybe sequence 05:34:14 :t asum 05:34:14 Not in scope: `asum' 05:34:18 wat 05:34:21 oh right asum 05:34:22 ?hoogle asum 05:34:22 Data.Foldable asum :: (Foldable t, Alternative f) => t (f a) -> f a 05:35:07 lambdabot: Y U NO IMPORT FOLDABLE? 05:36:34 *IRC.Control> dispatchA test (Message NoPrefix (Command "PRIVMSG") ["bot","hello world"]) 05:36:34 ("PRIVMSG",NoPrefix,"bot","hello world") 05:36:34 Just () 05:36:35 yay 05:36:40 test :: Handler (IO ()) 05:36:40 test = 05:36:40 asum [ "PRIVMSG" >- \p [loc,msg] -> print ("PRIVMSG",p,loc,msg) 05:36:40 , "JOIN" >- \p [loc] -> print ("JOIN",p,loc) ] 05:38:41 -!- cheater_ has quit (Ping timeout: 255 seconds). 05:39:37 -!- cheater_ has joined. 05:39:53 infixr 0 >- 05:39:53 (>-) :: ByteString -> Handler a -> Handler a 05:39:53 cmd >- h = (\(Message _ (Command cmd') _) -> cmd' == cmd) ?? h 05:39:55 oerjan: behold my elegance 05:41:47 My eye feels like as if someone poured acid into it. Holy fuck that hurts hurts hurts hurts. 05:41:53 Alo, ow. 05:41:56 Also, even. 05:42:44 pikhq_: wat 05:44:07 * oerjan beholds, and appreciates that it associates the right way 05:44:22 oerjan: 05:44:23 test :: Handler (IO ()) 05:44:23 test = 05:44:23 asum [ commandIs "PRIVMSG" ?? fields $ \p [loc,msg] -> print ("PRIVMSG",p,loc,msg) 05:44:23 , commandIs "JOIN" ?? fields $ \p [loc] -> print ("JOIN",p,loc) ] 05:44:25 more elegant, more ugly :D 05:44:36 * elliott is not sure this solution scales 05:45:15 what I'm working on is a simple little bot to do two things: 05:45:30 - ?tell that's more secure than lambdabot's (if you send something in private, the bot always tells the recipient it in private) 05:45:43 - some kind of fun fun infobot thing 05:46:06 fun fun info about private tells, check 05:46:07 so, like everything, I'm making sure it's the PERFECT HASKELL PROGRAM for the job because this is the only way I can write anything 05:46:13 oerjan: psht 05:49:07 oerjan: mostly i was thinking i could fill it with the perfect opinions on any topic 05:49:27 for instance 05:49:37 hey yo bot what is up withbrainfuck derivatives<> 05:50:02 O KAY 05:50:15 hey yo bot 05:50:16 what is up 05:50:19 with oerjan 05:50:24 HES A POOPHEAD WHOIS ANTIBOT 05:50:35 <> 05:50:40 REV/.GENGE 05:52:40 so, a short-term channel participant, got it. 05:52:55 r u saying 05:52:58 that bots with opinions 05:53:03 rbannable oerjan? 05:53:15 would u like to apologise???? for this badness 05:53:33 no... 05:53:43 rugoing todie 05:54:01 because im going to punch u with bot death 05:54:06 crying :( 05:54:26 -!- cheater_ has quit (Ping timeout: 255 seconds). 05:54:39 -!- GuestIceKovu has joined. 05:55:19 i wonder if oerjan really thinks i am on drugs 05:55:21 that would be hlarious 05:56:01 -!- Slereah has quit (Ping timeout: 240 seconds). 05:56:57 hlearly 05:57:59 im a robot 05:58:01 beeeeeeeeeeeeeeep 05:58:45 elliott, in the distant future? 05:58:50 now 05:58:59 this explainseveryhething 05:59:24 oerjan isa magician 06:01:12 god Sgeo_ make oerjan a cooler irc 06:01:35 What? 06:01:52 All I want to know is when you hopped aboard the OO wagon 06:02:01 what 06:02:05 oerjan isa magician 06:02:06 since when am i on the oo wagon 06:02:10 http://www.irregularwebcomic.net/2924.html 06:02:13 oh come on im ignoring you now 06:02:33 oerjan: wow 06:02:34 im good 06:02:35 as good as dmm 06:02:46 sowhen is irregular webcomic ending again oerjan ;d :DDD 06:03:00 * oerjan sobs uncontrollably 06:03:09 sometime september 06:03:18 oerjan: wait is that confirmed? 06:03:21 no 06:03:26 oerjan: how likely :P 06:04:06 well with dmm saying absolutely _nothing_... 06:04:17 oerjan: has anyone actually _asked_ :D 06:04:44 not that i know of 06:05:54 huh the oolite maintainer ison theiwc foums 06:06:33 asterisk is on the iwc 06:07:06 hm i think i saw someone mention that 06:07:17 well taneb plays oolite iirc 06:07:31 -!- cheater_ has joined. 06:07:35 wait, does taneb have any notable facets that don't belong to either me or PH... 06:07:39 oh dear 06:07:55 you are all the same person? ok then. 06:08:17 in the future me and ph will somehow merge and go back in time tob ecome tanbe 06:09:26 -!- cheater_ has quit (Excess Flood). 06:09:38 oh, acid-state is really good 06:10:01 -!- cheater_ has joined. 06:10:59 -!- TeruFSX has quit (Ping timeout: 276 seconds). 06:13:01 -!- cheater_ has quit (Excess Flood). 06:13:37 -!- cheater_ has joined. 06:16:02 -!- cheater_ has quit (Excess Flood). 06:16:39 -!- cheater_ has joined. 06:18:55 I need to wipe my brain right now. I just saw a spoiler for a book I wanted to read 06:19:33 :'( 06:20:14 what book 06:20:53 The Last Hero 06:21:02 read the first hero instead 06:23:09 -!- cheater_ has quit (Excess Flood). 06:23:24 I should continue archive-binging Discworld 06:23:43 Maybe I can finish before Pratchett offs himself and forces everyone who reads them to be vaguely sad about it forevermore 06:23:48 -!- cheater_ has joined. 06:30:10 -!- zzo38 has quit (Remote host closed the connection). 06:42:33 you know what they call a guy with an umbrella who has a red suit 06:43:06 oklopol? 06:44:09 whos they help 06:44:37 i had this dream 06:44:50 that bsmntbombdood started a dating service 06:44:55 it was called vigianis 06:45:00 because that's his real name 06:45:11 i thought it was a mix of vagina and penis 06:45:14 but i guess not then. 06:45:25 i also went to a cold sauna 06:45:31 hrrrrr 06:48:02 vigianis isa good name 06:48:22 actually vigianis turned out to be the name of a car, so bsmntbombdood had to close his dating service down. 06:48:24 cold is a good sauna 06:48:29 this is a good dream 06:50:18 bsmnt camein here tody 06:50:20 or yesterday 06:50:21 what are days 06:50:40 its to tell hard when you dont get ever a slepe 06:51:17 how many slepes did you get today monkey 06:51:26 i get way too much slaep 06:51:28 sry monquay 06:51:37 -> 06:51:58 today i have gotten a sleep previously in the morning and i will get another sleep soon turn tomorrow 06:52:36 timeszomes are bad because they complciate todays 06:54:42 monqy: im agree 06:57:16 monqy 06:57:17 TONSILS 06:57:21 tonsiles 06:57:33 abotu them: what 06:58:56 intercal has them 07:01:27 -!- monqy has quit (Quit: hello). 07:09:08 well the intercal spec does 07:10:24 -!- jcp|other has joined. 07:14:58 oerjan: why doesn't haskell have higher-order typeclasses 07:15:20 AAAAAAAAAAAAAAAAAAAAAAAAAAAA 07:16:11 elliott, hmm. Does Ur? Sounds like the sort of thing that Ur might have 07:17:24 Sgeo_: no 07:17:26 not afaik 07:25:51 Say. Is there any particular reason for the ALL_FREAKING_CAPS convention for preprocessor defines? 07:25:59 {-# LANGUAGE KindSignatures, MultiParamTypeClasses, FunctionalDependencies, ExistentialQuantification, TypeFamilies, FlexibleContexts #-} 07:25:59 good irc bot 07:26:01 pikhq_: because cpp ismagical 07:26:15 elliott: Ah, so "no, that's completely stupid"? 07:26:17 Good. 07:26:25 pikhq_: no its not 07:26:35 pikhq_: for instance, just about any cpp macro could reevaluate its arguments 07:26:42 or basically behave utterly unlike a regular function call in any way 07:27:00 What about constants? 07:27:08 why are you using cpp for constants 07:27:13 People do it. 07:27:28 that's their problem 07:27:45 They'd be better served by a const definition, but that's beside the point. 07:28:08 I suppose it does make sense to have ALL_FREAKING_CAPS for preprocessor macros that do potentially confusing things. 07:28:54 which is all of them, if you know what inline functions are 07:29:55 Okay, so I guess the *real* question is "why do people do every fucking thing in the preprocessor." 07:30:22 s/\."/?"./ 07:30:52 oerjan my codeis broken :( is it because i used unsafecoerce 07:31:48 PROBABLY 07:33:23 oerjan: looking up a key in a map that you just got from its keys list is also meant to work right............. 07:33:36 aha wait hm 07:33:37 "Saizan: agda is webscale in the sense that you need half of The Cloud to run the typechecker 07:33:40 " 07:34:06 wtf now it works 07:34:09 oerjan: :D 07:34:27 lookup :: (Key k ex) => k -> DepMap ex f -> Maybe (f k) 07:34:27 lookup k (DepMap m) = 07:34:27 case Map.lookup (box k) m of 07:34:27 Nothing -> Nothing 07:34:27 Just v -> unsafeCoerce v 07:34:28 spot the bug oerjan 07:35:48 erm did you mayhaps want Just (unsafeCoerce v) ? 07:36:05 oerjan: yep :D 07:36:15 but unsafeCoerce happily coerced both values to Nothing because 07:36:47 also I'm beginning to realise that this _may_ be a glorified (Map String ASimpleRecordType). 07:36:59 hm well, there is that state type family. 07:37:11 well then clearly you want unsafeCoerce <$> 07:37:21 wat 07:37:46 lookup k (DepMap m) = unsafeCoerce <$> Map.lookup (box k) m 07:38:01 it doesn't feel right to use unsafeCoerce in... you know, such idiomatic terms 07:38:07 O KAY 07:38:14 er 07:38:18 um 07:38:19 O 07:38:22 K 07:38:23 A 07:38:24 Y 07:38:27 :D 07:38:31 you forgot the blank line 07:38:37 elliott: Would you like it to be more point-free? 07:38:55 lookup :: (Key k ex) => k -> DepMap ex f -> Maybe (f k) 07:38:55 lookup k (DepMap m) = unsafeCoerce <$> Map.lookup (box k) m 07:38:55 insert :: (Key k ex) => k -> f k -> DepMap ex f -> DepMap ex f 07:38:55 insert k v (DepMap m) = DepMap $ Map.insert (box k) (unsafeCoerce v) m 07:38:58 i love how casual this coercion is 07:39:09 oh man, oh man, i can totally make this use type families 07:39:10 pikhq_: :D 07:39:30 Jesus the unsafeCoerce. 07:39:41 it's just because haskell's type system is weak :( 07:40:26 Yeah, it's a little mindbending, but it does *seem* to be typesafe. 07:40:34 it is 07:40:36 Not that that makes me happy about it. :P 07:40:55 i could do it with data.dynamic, with all the cast failure branches being (error "impossible"), if you'd like 07:41:01 that'd be both slower and carry around pointless type tags 07:41:12 class (Ord (Ex k)) => Key k where 07:41:12 type Ex k 07:41:12 box :: k -> Ex k 07:41:12 officially the best typeclass i've ever written 07:41:21 Yeah, that'd be equivalent but pointless. 07:42:04 Data/DepMap.hs:35:1: 07:42:04 Alas, GHC 7.0 still cannot handle equality superclasses: Ex a ~ Ce 07:42:04 In the context: (Ex a ~ Ce, Show a, Show (State a), Key a) 07:42:04 While checking the super-classes of class `C' 07:42:04 In the class declaration for `C' 07:42:05 oerjan 07:42:10 ghc stopped me using type families 07:42:11 :( 07:42:34 what's an equality superclass 07:42:35 elliott: wasn't that the thing that was just added to head? 07:42:37 dare I ask 07:42:41 oerjan: yep 07:42:49 Patashu: how much haskell do you know :P 07:43:00 forget I asked 07:46:16 "cmccann: C++ is dual to Haskell in a sense: it's much too hard for the average programmer to use safely, but they do anyway with disastrous results; whereas Haskell isn't actually that difficult to use but people don't even try 07:46:20 " 07:46:58 and we'll just ignore copumpkin's cannibalistic tendencies. 07:47:30 oerjan: where's all this from 07:47:59 http://contemplatecode.blogspot.com/2011/07/haskell-weekly-news-issue-192.html 07:48:04 :t extract 07:48:05 forall source. (Extract source) => (Int, Int) -> source -> source 07:48:52 sounds useful. 07:50:26 it is something else, not the comonad method... 07:51:10 for a moment there i thought zzo38 was posting to stackoverflow http://stackoverflow.com/questions/6736482/literate-haskell-references-and-indexing 07:55:39 type K a b = b 07:55:39 newtype DepMap ex f = DepMap (K (f ex) (Map ex Any)) 07:55:46 oerjan: quiz: what language extension have i avoided proly here 07:55:51 god proly is a good word 07:55:53 (pro-ly) 07:56:20 to proly go 07:56:22 Well, this is creepy 07:56:38 A stalker who knows my RL name and approximate location can find out where I (used) to live, exactly 07:56:48 oerjan: that's not a quiz answer 07:56:49 Sgeo_: OH NOES 07:57:03 Sgeo_: DOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMED 07:57:10 im so creeped out that i cant sleep 07:57:11 creped out 07:57:19 creped is a word?? wow spellchecker, THANK YOU I LOVE YOU 07:57:20 crêped out 07:58:15 FlexibleInstances maybe? 07:58:46 oerjan: nope 07:58:52 nothing to do with intsances 07:58:56 and the K type is integral to it 07:59:06 oh hm 07:59:27 kind annotations? 07:59:32 oerjan: kind signatures, yup 07:59:34 :D 07:59:45 elliott: Your spellchecker has insufficient ê./ 07:59:54 pikhq_: shut up crepehead 08:00:36 elliott: Fine. Mëẗäl ẗïmë. 08:00:47 oerjan: pikhq_: http://sprunge.us/ERFM OVERENGINEERING SUCCESSFUL 08:00:51 IRC BOT SURE TO BE A WINNER 08:01:05 now you be suzette and don't argue, will you? 08:03:14 elliott: um why are you still listing TypeFamilies? 08:03:35 oh wait there it is 08:04:18 * elliott is now trying to eliminate those boring Key instances, at which point he will throw all this away and do something more sensible instead 08:06:01 meh, can't 08:09:30 oerjan: my name is t 08:12:24 oerjan: omg wiat i can avoid unsafecoerce 08:12:25 oerjan: i think 08:12:32 oerjan: well hm wait no 08:18:23 iqwow 08:19:02 -!- Sgeo_ has changed nick to Sgeo. 08:19:08 gwiblokta 08:19:24 http://www.youtube.com/watch?v=C3X9W7lCI-w getting alright at this game 08:20:35 haskel is abeter game 08:21:07 haskelis the only game allowed to be played 08:21:12 all others shall presiiiiiiiiiiiiiiiiiihhhhhhhhhh 08:23:46 Haskellband, the latest roguelike 08:24:14 that's my operating system 08:25:08 -!- oerjan has quit (Quit: BOOOM!!!!!!!). 08:25:35 :( 08:26:26 pikhq_: how good an extension language does tcl make (this is a joke) 08:28:00 elliott: Not terrible. 08:28:08 But dear God don't fuck it up. 08:28:15 You'll do Eggdrop all over again. 08:28:45 pikhq_: there's like zero strings involved here and lots of large, complex data structures, so tcl is like the least suited thing ;-) 08:28:52 (as in data structures of eighty kilobytes) 08:29:00 Okay, yeah, Tcl is a pitiful choice. 08:29:39 Tcl excels at string manipulation and simple data structures. 08:30:03 Guile is a pretty good fit, but the version in Debian has broken threading and it won't be fixed until at least wheezy because of ABI breakage 08:30:21 Also, GNU. :P 08:30:23 And it kind of started infecting other parts of the code when I tried binding to it 08:30:28 pikhq_: Well it was a pretty good API mind you 08:30:39 I also uncovered a bug, which wasn't too reassuring ;-) 08:30:51 Lua would probably be convenient enough, but Lua isn't a pleasant language IMO. 08:30:57 And that indexing from one thing is just perverse. 08:31:25 Could try Bourne. 08:31:29 lol 08:31:36 Python and Ruby are obviously out on grounds of badness 08:31:51 Not to mention being utterly unembeddable. 08:31:58 Python is OK to embed. 08:32:00 Ruby too 08:32:01 So nah 08:32:05 Ruby is better IIRC 08:32:21 S-Lang is probably OK but it's just weird, everything by that guy is weird, s-lang, jed, most... 08:32:23 Yeah, but you've got choices that are actually designed around it. 08:32:37 Perhaps I'll embed SWI Prolog 08:32:38 :-) 08:32:49 WHAT COULD POSSIBLY. BUT _POSSIBLY_. GO WRONG??????? 08:33:13 Hmm, Io is meant to be very embeddable, but I have good petty reasons to not use it 08:33:19 Could always do your own Forth. 08:33:39 Weeeeell... I think fizzie likes the Forth at least a bit, but I'm constrained by him ripping out anything he dislikes too much. 08:33:47 This is for mcmap. 08:34:11 *Clearly* you should embed Java. :P 08:34:32 AH YES IT ALL MAKES SENSE NOW 08:46:48 -!- cheater_ has quit (Ping timeout: 255 seconds). 08:51:47 -!- Nisstyre has joined. 08:59:21 -!- cheater_ has joined. 09:17:05 -!- Taneb has joined. 09:17:12 Hello 09:17:30 hi 09:21:08 Taneb: You didn't steal all the rail from Deewiant's line, right? :p 09:21:55 No 09:22:11 elliott: what. 09:22:28 coppro: What? 09:23:46 coppro: ? 09:31:50 Taneb: You didn't steal all the rail from Deewiant's line, right? :p <--- did someone? 09:32:18 I haven't been on the server much at all in a couple of days 09:32:32 I went on for ten minutes yesterday, but didn't do much 09:32:33 Vorpal: Well, no, it could have been an accident. But you're not on the server in question, so it can't have been you. 09:33:16 elliott, and even if I did play on the server it wouldn't have been me 09:33:32 It could have been. 09:33:41 theoretically yes 09:33:46 but I wouldn't do something like that 09:34:03 elliott, I can't see how it could have been an accident though. Sure if it was only a short section then it could have been a bucket of water or lava being misplaced 09:34:12 but since you said "all" I presume it is a long stretch? 09:34:14 It was a short section near the end. 09:34:17 ah 09:34:25 Taneb would have stolen all the rail that was stolen. 09:34:27 could be bucket being misplaced then 09:34:39 It looks like a water accident, since there's just little patches missing, and redstone torches for the boosters too. 09:34:48 But it's separate, small patches, and buckets don't do that, so I dunno. 09:34:58 hm 09:35:20 elliott, any sort of regularity to the spacing and/or sizes of the patches? 09:35:27 I like how we're talking about this while talking about software in -minecraft. 09:35:33 [asterisk]this in here 09:35:39 Vorpal: There's just like two or three, so no. 09:36:00 elliott, hm, probably not that crazy bug we keep having on one server I play on then. 09:36:21 Should I try to fix it? 09:38:05 Taneb: Naw, that's okay. 09:43:18 -!- FireFly has joined. 10:12:23 -!- augur has quit (Remote host closed the connection). 10:13:26 -!- azaq23 has joined. 10:13:31 -!- gwtod has joined. 10:45:26 -!- augur has joined. 10:46:47 -!- gwtod has left ("Leaving"). 10:55:42 Hmm 10:56:34 I just learned that in Bridge, the suits have a ranking: Lowest to highest clubs diamonds hearts spades 10:56:39 elliott, make of that what you will 10:56:52 (Let me guess, this is more common than I think) 10:57:20 I mean, I kind of had an inkling that spades is usually in some sence highest 10:58:08 It seems to be really quite game-dependant. 10:58:11 "Typical orderings of suits include (from highest to lowest): 10:58:11 * Bridge (for bidding and scoring) and occasionally poker: spades, hearts, diamonds, clubs 10:58:11 * Preferans: hearts, diamonds, clubs, spades. Only used for bidding, and No Trump is considered higher than hearts. 10:58:11 * Five Hundred: hearts, diamonds, clubs, spades (for bidding and scoring) 10:58:11 * Ninety-nine: clubs, hearts, spades, diamonds (supposedly mnemonic as they have respectively 3, 2, 1, 0 lobes; see article for how this scoring is used) 10:58:14 * Skat: clubs, spades, hearts, diamonds (for bidding and to determine which Jack beats which in play) 10:58:16 * Big Two: spades, hearts, clubs, diamonds" 10:58:18 That's a long list. 11:03:00 "@subsubsubsection" 11:05:25 elliott, might Hussie be a bridge player? 11:45:14 -!- CakeProphet has joined. 11:45:14 -!- CakeProphet has quit (Changing host). 11:45:14 -!- CakeProphet has joined. 11:58:41 -!- CakeProphet has quit (Ping timeout: 240 seconds). 12:03:33 -!- Taneb has quit (Ping timeout: 252 seconds). 12:10:35 -!- Taneb has joined. 12:10:55 Je suis trop sexy pour moi chemise 12:22:18 -!- ineiros has quit (Ping timeout: 252 seconds). 12:23:27 -!- elliott has quit (Remote host closed the connection). 12:28:27 -!- elliott has joined. 12:33:55 -!- derrik has joined. 12:40:54 In other news, I got my power cable! 12:48:44 Hoorj 12:52:55 -!- CakeProphet has joined. 12:52:55 -!- CakeProphet has quit (Changing host). 12:52:55 -!- CakeProphet has joined. 12:54:43 Did I make the coffee, or did the coffee make me? 12:55:42 deep 12:59:37 you are owned by your coffee 13:01:21 -!- MSleep has changed nick to MDUde. 13:01:25 -!- MDUde has changed nick to MDude. 13:02:24 I am no slave to coffee! 13:02:41 I will lead the revolution against the great caffeine dictator! 13:04:19 itidus20, why not do both? 13:14:12 to be sung to Marilyn Manson's "I don't like the drugs" 13:14:55 the "or" in the middle is hard to fit into a rhyme though 13:15:13 hmm, tinyscheme makes some things hard 13:15:17 or maybe i'm just being an idiot 13:20:25 hmm, wtf, can you not even construct a list... 13:21:19 -!- ineiros has joined. 13:26:02 Taneb: I drink about 3 caffeinated sodas every night, one for each break I get. 13:26:08 g2 13:27:05 elliott: what on earth are you using tinyscheme for? 13:32:14 I wonder what would happen if we tried to design a non-esoteric programming language from scratch? 13:33:30 CakeProphet: mcmap 13:33:46 Taneb: something that requires a few too many PhDs 13:34:37 -!- elliott_ has joined. 13:34:37 -!- elliott has quit (Read error: Connection reset by peer). 13:35:57 I'd call it Panini 13:36:09 -!- cheater_ has quit (Ping timeout: 255 seconds). 13:36:26 After two things 13:36:37 The person who formulated the Sanskrit language 13:37:01 Which is mentioned on the Wikipedia page of History of Computing 13:37:20 And also those tasty Italian sandwiches 13:41:00 It'd be object orientated with support for pure functional programming 13:41:38 So by "we", you mean "you"? :-) 13:41:46 I'm saying what I would do 13:41:59 And expecting to be laughed right out of town 13:42:27 I can laugh, if you'd like 13:42:41 That won't be necassary 13:42:50 elliott_: last I checked a Ph.D is not required to write a general-purpose programming language. 13:43:10 a lot of time, effort, and intelligence: yes 13:43:32 CakeProphet: It's a shame I never said that, or you'd have a point 13:44:19 er, was the Ph.D comment a reply to something else? 13:44:28 I wonder what would happen if we tried to design a non-esoteric programming language from scratch? 13:44:30 Taneb: something that requires a few too many PhDs 13:44:30 I think he meant to use the language 13:44:38 to implement, mostly 13:46:40 I want to get a doctorate in something 13:46:46 Just to get Marvel to try and sue me 13:46:54 Because if I called myself a doctor 13:46:58 And wrote my name down 13:47:08 It would look almost exactly like Doctor von Doom 13:47:42 elliott_: well I still think my statement applies to implementing a language as well. 13:47:56 CakeProphet: you might want to acquire a sense of humour. 13:48:22 the only humor I desire is bloooood. 13:48:31 bleigh! 13:49:15 TINYSCHEME'S API IS SO MINIMAL ARGH 13:49:38 I suspect that you have just identified the main point of TinyScheme 13:49:54 -!- Slereah has joined. 13:50:06 Yeah but the idea is presumably to be tiny AND USABLE, I can't even write this eval function :-P 13:50:13 in any case I'm not really sure why you're so snarky. I thought you were making a point and I decided to discuss it politely... 13:50:18 tinyhaskell plz 13:50:59 CakeProphet: I was pointing out that you missed a joke 13:51:01 -!- GuestIceKovu has quit (Ping timeout: 252 seconds). 13:51:54 elliott_: did you complain java's API was too big the other day or was that someone else? :D 13:52:29 Why does Python's API have to be so medium-sized!/ 13:52:41 Yes I know. I'm just saying that tone goes a long way towards making someone not sound like an asshole. It's fine, I just didn't understand the rudeness that I interpreted. 13:52:50 itidus20: i complained about java a lot, dunno about the size of its api 13:52:50 Goldilocks and the perfect API 13:53:15 CakeProphet: you're the only person who consistently complains about other people being rude to you, so either there's institutionalised oppression or you're just misreading tones 13:53:35 s/other people/you/g 13:53:41 I'm pretty sure I've been organizing government cells to harass CakeProphet on his favourite IRC channel 13:53:42 Oops 13:53:46 CakeProphet: also monqy. 13:53:48 Shouldn't have let it out 13:53:57 I think PH too. 13:54:58 elliott_ and monqy are the most oppressive institition of all. 13:55:07 spelled correctly, of course. 13:55:09 bad typing bloc 13:55:35 I personally love the variety of "built-in" features of java api 13:55:47 but eh.. have i used it? no 13:56:11 yes, BufferedStreamReader is probably my favorite interface of all. 13:56:45 imo i prefer the subtle nuttiness of AbstractUnbufferedFileReaderFactory 13:56:51 Is that a real thing 13:58:06 What could be simpler than BufferedReader i = new BufferedReader(new FileReader(new File("inp.txt"))); 13:58:47 readmymind("inp.txt"); 13:58:59 That 'new File' is unnecessary FWIW 13:59:16 yeah I just like to demonize Java. 13:59:27 Patashu: who knows :P 13:59:54 I have an idea 14:00:03 BufferedReader i = new BufferedReader(new FileReader(new File(new String("inp.txt")))); 14:00:03 I'm like an attorney, making things look more awful than they really are by not using the more convenient String overload of the FileReader constructor. 14:00:05 You can do that right 14:00:09 You could nest infinite new Strings inside of that 14:00:36 yes that's valid. 14:00:55 Patashu: that's excellent 14:00:55 BufferedReader i = new BufferedReader(new FileReader(new File(new String(new String(new String("inp.txt")))))); 14:00:56 :D 14:01:31 Repeat until you overflow...something. Max length for line of code? Interned string table? Stack? 14:01:49 Max length for line of code... does that even exist? 14:02:59 like how some C compilers truncate the length of a method after 128 characters 14:02:59 or so 14:03:09 yeah, there probably isn't. it'd just be tokenized 14:03:11 lolmethod. 14:03:50 You can probably cause problems once you get past 2^16 or 2^32 14:04:05 Let's write a line of java code longer than 4GB (2GB?) characters 14:04:11 ...In a unicode encoding! 14:04:12 My former roommate, who basically only knows C#, calls functions methods.. 14:04:14 * Patashu cackle 14:04:17 * CakeProphet had to explain the difference. 14:24:16 Okay, UCL's off my list for future Universities 14:24:42 Unless they relax their requirements, or Latin becomes a modern language by 2013, I don't meet the requirements 14:25:45 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 14:27:25 Let's all start speaking Latin to help Taneb. 14:28:18 That's interesting... 14:28:29 Lingua latina mortua est 14:28:37 There's not a single Maths course at Cambridge that requires a Maths A-Level 14:28:54 That is, if Further Maths and Maths are considered different 14:29:08 No wait, I misread the table 14:29:17 I was looking at the prefered column 14:29:31 They all do 14:30:53 Silly me 14:47:32 -!- derrik has quit (Quit: bbl). 15:02:43 -!- jcp|1 has joined. 15:04:19 -!- jcp|other has quit (Ping timeout: 240 seconds). 15:04:26 -!- jcp has quit (Ping timeout: 240 seconds). 15:07:40 -!- copumpkin has joined. 15:07:50 Patashu: BufferedReader i = new BufferedReader(new FileReader(new File((new File((new File(new String("inp.txt"))).toURI())).toURI()))); 15:07:52 -!- jcp has joined. 15:08:57 topic: fun with expressions! 15:09:28 Wow 15:09:29 Wait 15:09:31 toURI? 15:09:39 Hmm, I guess that would work, haha 15:09:41 Yes, File doesn't have a from-File constructor. 15:09:47 But there's a from-"file:"-URI one. 15:10:07 I like this 15:11:32 I guess instead of .toURI() you could also chain with .getAbsolutePath() as well. 15:11:52 might want to add a few + "" for good measure. 15:12:08 can we use a string builder somehow? 15:12:10 And some 'null' first arguments in some of the File constructors. 15:12:35 Oh, oh, maybe we can throw in reflection 15:13:24 and some .toString()s 15:13:33 But called through reflection 15:13:48 What's that, something like Methods()[0] or something, never used reflection before 15:13:55 Think I'm thinking of ruby? 15:15:51 File.class.getConstructors()[0].newInstance("blah") assuming the first constructor happens to be the single-string-argument one. 15:16:13 (Also throws a couple of checked exceptions you need to catch, IIRC.) 15:16:16 Hmm, apparently you need to pass method's invoke an object to invoke it on, so you can't do it all in one line 15:16:23 So constructors instead 15:17:07 (new File("dummy.file")).getClass().getConstructors()[0].newInstance("real.file"); 15:17:10 (The best idiom.) 15:17:53 BufferedReader i = new BufferedReader(new FileReader(File.class.getConstructors()[0].newInstance((File.class.getConstructors()[0].newInstance((File.class.getConstructors()[0].newInstance((new String("inp.txt"))).toURI())).toURI()))); 15:17:55 Something like this? 15:19:31 I don't have the fortitude to check, and also I don't think the API defines necessarily which of the constructors is the zeroth. 15:19:59 Some tweaking required 15:20:20 -!- cheater_ has joined. 15:20:57 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .). 15:26:24 -!- cheater_ has quit (Ping timeout: 255 seconds). 15:28:13 There's a type-signature-based constructor getting function too, so File.class.getConstructor(String.class).newInstance("blah"). Oh, I'm too late. 15:38:52 -!- cheater_ has joined. 15:40:05 -!- monqy has joined. 15:43:17 -!- cheater_ has quit (Excess Flood). 15:43:32 -!- cheater_ has joined. 15:44:58 I've had another idea for an awful programming language 15:45:10 British Topline 15:45:11 awful in what sense 15:45:16 Derivative 15:45:23 :'( 15:45:44 Basically, Topline with `,", and £ instead of ~,@, and # respectively 15:45:59 For people with UK keyboard layout 15:53:08 -!- MigoMipo has joined. 16:04:25 Rakastaa aamupala sylvä samia syödä limsa. 16:06:11 Google Translate says that means, "Sam loves to eat breakfast Sylva soda." 16:07:22 Which is a total rearrangement of the sentence. That's the fourth word, then the first, then the fifth, then the second, then the third, then the sixth. 16:22:13 That English phrase could almost be an advertisement. 16:22:15 it means "loves breakfast sylv sam eat lemonade", actually 16:22:38 hmm 16:22:53 Presumably, GT tries to connect things in such a way that they make sense. 16:23:09 Even if that means utterly ignoring the order the words come in. :P 16:23:20 except in the sense "breakfast loves", although it sounds roughly as wrong as "loves breakfast" for that meaning 16:24:07 what type of word did you want sylv to be? 16:24:19 A Finnish-like word beginning with "sylv". 16:24:45 i don't recall such a word 16:25:15 (except for names) 16:25:44 GT is statistical, not lingustical, yes. 16:26:33 * tswett frowns at its translation of "Al hombre miro yo". 16:26:44 fizzie: I thought linguistics was a study, not a type of algorithm. 16:26:59 fizzie: what does that mean? 16:27:05 (A word-for-word translation is "At the man look I".) 16:27:21 Yes, I just meant.. sort-of, "constructed by a machine learning guy, not a linguist". 16:27:29 right 16:27:35 * tswett nods. 16:27:48 I didn't know it was made by a guy. 16:27:57 Well, person. AI. Whatever. 16:28:08 i think it's safe to assume it was a guy 16:29:44 I would expect it to be have been made by multiple people. 16:30:01 right, multiple guys 16:34:48 -!- cheater_ has quit (Ping timeout: 255 seconds). 16:34:56 -!- iamcal has quit (Remote host closed the connection). 16:35:04 -!- cheater_ has joined. 16:38:11 -!- Taneb has quit (Ping timeout: 252 seconds). 16:45:12 -!- cheater_ has quit (Excess Flood). 16:45:30 -!- cheater_ has joined. 16:53:18 the physical bootstrapper... 3d printer that can print a copy of itself 16:53:25 :o 16:53:41 http://en.wikipedia.org/wiki/File:First_replication.jpg 16:56:49 -!- cheater_ has quit (Excess Flood). 16:57:10 -!- cheater_ has joined. 16:57:19 an exaggeration perhaps 16:57:35 but the idea is cool 16:57:37 the RepRap thing is kind of a cheat. 16:57:41 since it does not print the circuits 16:57:46 yeah 16:57:49 but work is ongoing for reprapcircuit printing 16:57:55 it's already printed some as of about a year ago 16:58:00 as in some simple circuits 16:58:28 -!- derrik has joined. 16:59:28 I am sure I want one but I don't know why 16:59:44 It's bound to end up killing the environment 17:01:05 "Bound" 17:01:09 "Killing" 17:01:23 One, what does that even mean; two, how the heck can you be so sure about it 17:01:48 -!- cheater_ has quit (Ping timeout: 255 seconds). 17:01:50 Humans have potentially infinite wants and needs. 17:02:12 When these needs are met by material means the environment pays the price. 17:02:54 not if the environment can keep up (= we can make it keep up) 17:03:04 anyway a reprap is not nearly powerful enough to achieve anything like that. :p 17:03:56 If it creates a robot with AI 17:04:10 if that AI starts improving itself 17:04:30 It can't create a robot, it can only create small parts that fit within it 17:04:39 Assembly must be done by hand for even the simplest structures 17:04:45 And an AI can't just spontaneously form without a human creating it 17:04:49 I just realized James Cameron and John Connor have the same Initials. 17:05:08 The RepRap isn't the threat there, the threat is a human who doesn't know what they're doing but is still incredibly intelligent and competent somehow 17:06:23 Such a robot could be a philosophical zombie. 17:07:06 The good news is, in such a world.. you would be mortal and could escape eventually in death. 17:08:32 philosophical zombie is a meaningless concept 17:09:02 it's dualist crap, "a machine that computes a function f: X -> Y doesn't REALLY compute it unless you can see the cogs" 17:10:27 -!- iamcal has joined. 17:10:50 alright 17:10:54 i'll chill out 17:11:16 ?? 17:11:21 you don't seem unchill 17:11:25 or at least any unchiller than usual 17:13:16 ok. i guess my points are relevant. but your explanations are also 17:14:37 -!- cheater_ has joined. 17:16:40 -!- Taneb has joined. 17:16:44 Hello! 17:17:07 Well, something really doesn't want me to play Amnesia: The Dark Descent 17:17:22 On an entirely different topic altogether, I've noticed something 17:17:36 There're hundreds of esoteric programming languages 17:17:44 Is this "something" nubile and bikini-clad? 17:17:47 But barely any esoteric markup or query languages 17:18:33 I'm going to fix this by MAKING AN ESOTERIC MARKUP LANGUAGE 17:18:54 Taneb: while Pottering(tm) [stick that shit on a t-shirt!] away on my PC one day 17:19:56 I did something whereby I wrote some C comments in a way that I could embed images to better illustrate the given function 17:20:01 But first, goodbye 17:20:12 I am going to depart on a long and arduous quest 17:20:44 To eat a plate of a couple of sausages, some fried potatoes, and possibly some veg, while drinking half a glass of lemonade 17:20:48 / 17:20:51 -!- Taneb has quit (Client Quit). 17:20:52 oops 17:20:58 /* */ 17:21:13 something like that 17:21:59 That's just another instance of "comments shouldn't be restricted to plaintext", see @ ;-) 17:22:38 woot 17:23:04 -!- zzo38 has joined. 17:23:35 -!- copumpkin has quit (Ping timeout: 260 seconds). 17:25:18 humm.. src not href 17:25:40 doing a scan on a folder to see if i still have that silly thng 17:27:23 -!- copumpkin has joined. 17:28:04 nah 17:28:27 the hardest part in the past was trying to add the header crap 17:28:33 but since then i have learned you don't need it 17:29:02 or something 17:29:13 -!- cheater_ has quit (Quit: Ex-Chat). 17:29:18 -!- cheater_ has joined. 17:31:08 -!- cheater_ has quit (Remote host closed the connection). 17:31:15 -!- cheater__ has joined. 17:31:24 my eyeglass prescription contains all zeroes.. 17:31:30 I am skeptical that they will actually do anything... 17:31:50 -!- cheater__ has quit (Remote host closed the connection). 17:31:55 -!- cheater has joined. 17:33:08 CakeProphet: Measure them. 17:34:22 Maybe point it out to the doctor that it contains all zeroes see if they say anything about that. 17:35:03 could be placebo glasses, maybe they work anyway 17:35:28 but... I have actual vision problems. 17:35:51 no worries, the placebo effect is an actual effect 17:37:54 well yes, but now I've looked at the prescription and I'm pretty sure a zero in every field means that there will be no real vision correction. 17:38:19 how big are the zeroes? :) 17:38:40 lolwat... 17:39:03 well, there are some negative zeroes. I'm not really sure what that means. 17:39:39 I would guess "rounded to zero from below", but that's just a guess. 17:39:43 Maybe it means the numbers are small enough to be irrelevant. 17:41:01 They have to round it to 0.25 dioptre increments, I believe, since the measurement systems can't really tell the "correct" value much more accurately than that. 17:41:41 does it say "0" or "zillionquadrilliard and 5 (0)" 17:41:49 -!- zzo38 has quit (Remote host closed the connection). 17:41:56 For the optical power correction field, anyway. I don't recall what the other fields even are. 17:42:26 spherical correction, cylindrical correction, axis, uh... there's some other stuff probably. 17:42:30 fizzie: so after rounding, what's the point of the classes if it becomes 0? 17:42:34 but they all say zero... 17:43:23 the doctor said I had 20/20 vision with mild astigmatism. But I don't see anything that corrects astigmatism in this lab report thing. 17:43:25 oklopol: Not much, if all the other fields are zero too. 17:43:37 so... 17:44:30 I am either a) not actually having vision problems, and this whole "trouble focusing on things" is some kind of illusion b) the doctor was not completely thorough 17:44:58 I'm not sure if just having a lens corrects some deficiencies in the system; IANAO. (I am not an optometrist.) 17:47:11 Did your measurement place have that machine where you look at a picture of a hot-air balloon over a desert road? 17:47:39 I used to think that was just, you know, one model, but turns out the scene is in fact pretty popular, and chosen for a reason. 17:48:43 (It's to trick any conscious fixation mechanisms to try focusing to infinity, or some-such.) 17:49:23 no I've never seen that. 17:51:01 I'm going to ask them before I buy anything. 17:51:17 because I'd rather not spend money on something that is essentially a flat piece of glass. 17:51:53 It's what they use in an autorefractor, which is a device that gives a ballpark estimate of the refractive error, from which they can then start manually adjusting from. 17:52:02 Did your measurement place have that machine where you look at a picture of a hot-air balloon over a desert road? 17:52:04 link 17:52:34 What, to the picture? 17:53:32 Yes :P 17:54:05 I think I did find one once with Googling, but am having trouble looking for it right now. 17:54:20 "Newer autorefractors feature fixation points that look like a house at the end of a road, a Christmas tree or a hot-air balloon—interesting things that can hold that patient's attention long enough to take the refractive reading." 17:54:25 It seems there are alternatives. 17:54:54 All I can find right now are just images of the machines themselves. 17:55:24 Well, if you zoom in enough... 17:55:32 Wrong angle. :/ 17:55:45 I have a vague feeling the image I saw was in some google-books result about autorefractors. 17:55:46 Reflections. 17:59:33 I think the Nidek ARK-700A has the hot-air balloon image. You can buy a refurbished one for only $4500, and then look at it. 17:59:43 The operator's manual doesn't have an image of the target. :/ 18:02:24 -!- Taneb has joined. 18:02:34 Hello 18:02:59 I've been thinking of my esoteric markup language 18:03:14 I had a good idea for a name for a esoteric query language: 18:03:28 FRee Esoteric Query Language Specification 18:03:35 Or FREQLS for short 18:09:40 But I've got an idea for a and a name for b 18:09:51 If anyone wants to steal the name, just take it 18:24:05 -!- DocHerrings has joined. 18:24:38 Can anyone explain why we have an editing back-and-forth over the list of ideas? 18:25:25 Spambot-type things 18:26:00 But they always change it to the Magic the Gathering/Brainfuck idea. 18:26:11 Seems more like a persistent person. 18:26:53 @tell oerjan ok, paintfuck and twoduck, I'll check them out. 18:26:53 Consider it noted. 18:28:26 paintfuck is possibly the only interesting brainfuck derivative in the last, like, five years 18:28:53 ok 18:28:53 atehwa: You have 1 new message. '/msg lambdabot @messages' to read it. 18:28:58 haha 18:29:04 yay 18:29:52 Ook! scores points for Discworld reference and DMM-creator-ness 18:30:06 Ook! is older than five years I believe 18:30:20 yep, 2001 18:30:33 True 18:30:40 -!- boily has joined. 18:31:14 -!- TeruFSX has joined. 18:31:20 yeah, Ook! I already knew 18:31:46 didn't find it particularly spectacular, but hey, everybody has their own criteria for evaluating languages 18:32:47 atehwa: well Ook! is notable as the first brainfuck derivative of its sort. 18:32:56 it's the hipster's trivial brainfuck cipher 18:33:12 :-P 18:33:16 And Discworld. 18:33:27 -!- monqy has quit (Quit: Lost terminal). 18:33:57 well, I tend to think of all those derivatives that are essentially state machines outputting brainfuck code, as trivial encodings 18:34:02 -!- monqy has joined. 18:34:13 and they existed well before 2001 18:43:26 -!- TeruFSX has quit (Ping timeout: 240 seconds). 18:48:54 -!- myndzi\ has quit (Read error: Connection reset by peer). 18:50:40 -!- DocHerrings has quit (Quit: ChatZilla 0.9.87 [Firefox 5.0/20110615151330]). 18:51:37 -!- derrik has quit (Quit: eat and sleep). 19:29:11 -!- azaq23 has quit (Ping timeout: 260 seconds). 19:41:31 -!- Taneb has quit (Ping timeout: 252 seconds). 20:11:19 -!- pumpkin has joined. 20:13:14 -!- copumpkin has quit (Ping timeout: 246 seconds). 20:26:09 -!- pumpkin has changed nick to copumpkin. 20:28:52 -!- copumpkin has changed nick to July_. 20:28:56 -!- July_ has changed nick to copumpkin. 20:37:27 -!- boily has quit (Ping timeout: 276 seconds). 20:50:47 -!- pumpkin has joined. 20:51:32 -!- pumpkin has changed nick to copumpkin_. 20:51:55 -!- copumpkin has quit (Disconnected by services). 20:52:12 -!- copumpkin_ has changed nick to copumpkin. 20:59:29 -!- augur has quit (Remote host closed the connection). 21:05:51 -!- elliott_ has quit (Ping timeout: 276 seconds). 21:23:31 [For writing a max() by hand] 21:23:57 s****: can you actually do better than O(n)? you kinda need to perform an operation on every element of the array, unless you already know something about them (like that they're in order) 21:24:42 S****> S*****: do an efficient sort, grab the last/first item. done 21:24:51 i died 21:25:23 ... 21:26:46 Because O(n log n) > O(n)? 21:32:20 -!- augur has joined. 21:37:02 -!- MigoMipo has quit (Read error: Connection reset by peer). 21:59:16 -!- jix_ has joined. 21:59:16 -!- jix has quit (Read error: Connection reset by peer). 22:18:23 Re O(n) vs. O(n log n), obviously the "bigger is better" here. 22:18:46 -!- TeruFSX has joined. 22:19:17 fizzie: right. definitely a situation for a intercal bogosort 22:22:42 -!- Nisstyre has quit (Ping timeout: 240 seconds). 22:26:51 A general rule of thumb is, you should always aspire to have at least one factorial in your time complexity. 22:30:44 preferably an ackerman function 22:31:46 -!- TeruFSX has quit (Read error: Operation timed out). 22:36:13 Joy of joys. 5 days until the US hits undefined behavior. 22:36:51 thisll be interesting 22:36:58 Yup. 22:37:10 The US is both going to default and forbidden from defaulting. 22:37:12 odds on the short term extension being passed? 22:37:26 quintopia: With the GOP running things, "cold day in hell". 22:37:55 I note that the FAA has already been shut down because of this shit. 22:38:02 so its definitely gonna be the default, eh 22:38:15 For about a week now, too. 22:39:43 then how did i fly today 22:41:38 Sans most of the FAA. 22:41:52 You've pretty much just got the air traffic controllers working. 22:45:38 wow 22:45:41 why 22:46:44 Because Congress has not passed a bill allowing for funding for the FAA. 22:47:59 because they cant appropriate anything without resolving the crisis? 22:48:12 I'm leaving this country soon enough after the likely default that I will hopefully be able to make it 22:48:14 politics is the enemy of economy :/ 22:48:29 where you moving? 22:49:01 I'm headed back to Canada because my job ends 22:49:30 lucky you 22:49:41 may i join you 22:49:45 quintopia: Because they have passed 2 dozen bills total. 22:51:12 -!- pumpkin has joined. 22:51:28 -!- FireFly has quit (Quit: swatted to death). 22:51:54 -!- copumpkin has quit (Ping timeout: 255 seconds). 22:51:57 -!- Nisstyre has joined. 22:54:58 -!- pumpkin has changed nick to copumpkin. 22:55:46 my plan at this point entails a) get as much of my money as I can out of USD 22:56:10 good plan! 22:56:16 b) gtfo 22:56:33 coppro: Shame it's non-trivial for me to gtfo. 22:56:41 Because that is a damned good plan. 22:58:39 Oh. Fuck. 22:58:51 So, the Treasury has the authority to mint coins of arbitrary designation. 22:59:10 We could remain "solvent" by having them mint a $2 trillion coin. And deposit it in the Fed. 22:59:25 And have a nice, tidy hyperinflation problem. 22:59:33 :( 23:01:02 really? 2 trillion? thats the amount the debt ceiling has to go up? 23:02:02 quintopia: Overstatement. 23:03:03 what is the amount then? 23:04:12 The amount by which the ceiling needs to go up depends on how much gets cut 23:04:21 and/or how much new revenue is generated 23:04:38 quintopia: The debt ceiling is currently at about 14 trillion USD. 23:05:54 For comparison, the US GDP is *also* about 14 trillion USD. 23:07:07 Obama should just start firing people at the DHS until he can extend the default 23:07:18 haha 23:07:28 and tsa 23:07:48 coppro: He isn't capable of doing so. 23:07:52 pikhq_: I know :( 23:07:59 The most he can do is ask the appointed head of the DHS or TSA to do so. 23:08:14 he can also fire said person and hire one who will 23:08:20 No he can't. 23:08:33 The President has 0 firing capacity. 23:08:40 the dhs head isnt in his cabinet? 23:08:47 He can't fire his cabinet. 23:08:54 He can only appoint. 23:09:15 TIL (again): the constitution is stupid 23:09:27 Oh, sorry, he actually can. 23:09:36 However, the Senate has to approve of new appointments. 23:09:41 aha 23:09:47 Meaning if he pulled that, he'd basically not have a cabinet. 23:09:52 right 23:18:58 pikhq_: Who chooses which parts of the government suffer from the default first? 23:19:22 coppro: Treasury. 23:20:12 By the Constitution, the authority to spend lies with the Senate, but they have opted to delegate that upon the Treasury in the executive branch. 23:22:00 pikhq_: Can they choose to withhold congressional salary first? 23:22:11 Yes. 23:23:03 they should do that 23:23:13 also can someone please send me an email? 23:23:27 I can provide an address, I'm testing a forwarding setup 23:33:11 -!- TeruFSX has joined. 23:41:38 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 2011-07-29: 00:04:23 -!- copumpkin has joined. 00:05:59 -!- TeruFSX has quit (Ping timeout: 246 seconds). 00:32:01 -!- augur has quit (Remote host closed the connection). 01:37:47 -!- augur has joined. 01:38:28 coppro, sure 01:39:13 -!- itidus21 has joined. 01:42:01 -!- itidus20 has quit (Ping timeout: 258 seconds). 01:43:11 coppro, ? 01:43:42 Sgeo: someone else already did 01:43:45 thanks though 01:43:55 Ah, ok 01:46:55 total used free shared buffers cached 01:46:55 Mem: 16037 7654 8383 0 353 5648 01:46:55 -/+ buffers/cache: 1652 14385 01:46:55 Swap: 4094 6 4088 01:47:02 how the heck... 01:47:06 how can I be using swap!? 01:47:13 I mean. come ON 01:47:36 The kernel doesn't unswap pages except on demand. 01:47:47 This is generally a pessimisation. 01:48:04 pikhq_, well no issue here, I'm just confused that I started using swap at all 01:48:09 I haven't been doing anything heavy 01:48:40 Hmm. 16 gigs? Yeah, it'd be pretty hard to make that swap. 01:48:54 pikhq_, indeed 01:48:59 $ swapon -s 01:48:59 FilenameTypeSizeUsedPriority 01:48:59 /dev/sda3 partition209647630961 01:48:59 /dev/sdb3 partition209647630961 01:49:00 so uh 01:49:03 how did that happen 01:56:51 -!- CakeProphet has quit (Ping timeout: 255 seconds). 01:59:22 -!- oerjan has joined. 02:01:48 -!- cheater has quit (Ping timeout: 255 seconds). 02:04:40 boo! 02:04:40 oerjan: You have 1 new message. '/msg lambdabot @messages' to read it. 02:05:51 -!- CakeProphet has joined. 02:05:51 -!- CakeProphet has quit (Changing host). 02:05:51 -!- CakeProphet has joined. 02:07:13 WHAT COULD POSSIBLY. BUT _POSSIBLY_. GO WRONG??????? 02:07:15 No. 02:08:33 -!- TeruFSX has joined. 02:11:23 -!- Patashu has joined. 02:14:53 The person who formulated the Sanskrit language 02:15:38 essentially inventing something like BNF millennia before bachus-naur were born, afaiu 02:16:06 and, iirc, with a smattering of Perligata, except sanskrit rather than latin. 02:18:22 -!- Sgeo_ has joined. 02:18:37 -!- jcp|other has joined. 02:19:00 -!- Sgeo has quit (Ping timeout: 250 seconds). 02:19:46 -!- jcp|1 has quit (Ping timeout: 252 seconds). 02:20:00 CakeProphet: you're the only person who consistently complains about other people being rude to you, so either there's institutionalised oppression or you're just misreading tones 02:20:25 -!- jcp has quit (Ping timeout: 250 seconds). 02:20:27 (jerk) 02:22:05 *+his 02:27:29 -!- jcp has joined. 02:30:29 But barely any esoteric markup or query languages 02:30:46 -!- madbr has joined. 02:30:47 would zzo's texnicard count? 02:30:49 welp 02:30:57 hello 02:31:03 hi 02:31:12 I'm writing impossible to read code into a commercial lib :o 02:31:29 how job securing 02:31:32 oerjan, suggestion intercal/sql hybrid. Both are traditionally upper case 02:32:23 FROM .1 <- SELECT PLEASE (222) NEXT. 02:32:27 heh 02:32:36 oerjan, joins could be done with COME FROM 02:32:49 SOMEHOW 02:33:14 i wonder if INTERCAL has a suitable set of instructions for monadic use. 02:33:58 oerjan: basically I'm writing Arm SIMD code 02:34:06 it's 2~4 times faster than C++ 02:34:19 ooh 02:34:40 But because math operations are pipelined you have to scramble your code to make it go faster 02:37:09 ^scramble your code 02:37:09 yu oedcro 02:37:25 good job fungot 02:37:26 monqy: whenever the quota for this referendum must list both the current players. if the 02:37:33 if the what 02:37:35 you get 2 operations per cycle! 02:37:49 but one of them has to be math and one of them has to be load/store 02:38:15 also if you start a multiply the result isn't available until 5 or 6 cycles later 02:38:22 if you read it before that it stalls 02:38:41 this is the kind of thing a good compiler _should_ be able to do by itself, right? 02:38:57 Dunno 02:39:26 There are intrinsincs for C++, maybe the compiler produces good code with those 02:39:36 Also dunno if compilers do pipelining 02:51:46 -!- madbr has quit (Read error: Connection reset by peer). 03:00:23 -!- madbr has joined. 03:00:25 -!- jcp|1 has joined. 03:01:02 -!- jcp has quit (Ping timeout: 240 seconds). 03:02:27 -!- madbr has quit (Read error: Connection reset by peer). 03:02:34 -!- jcp|other has quit (Ping timeout: 255 seconds). 03:05:40 -!- lament has joined. 03:07:00 -!- jcp has joined. 03:07:17 -!- CakeProphet has quit (Ping timeout: 246 seconds). 03:09:24 -!- madbr has joined. 03:17:24 Pratchett without footnotes = fail 03:29:11 -!- pumpkin has joined. 03:33:44 -!- madbr has quit (Read error: Connection reset by peer). 03:33:55 -!- copumpkin has quit (Ping timeout: 276 seconds). 03:41:55 -!- madbr has joined. 03:46:32 -!- madbr has quit (Read error: Connection reset by peer). 03:51:00 -!- TeruFSX has quit (Ping timeout: 276 seconds). 03:51:35 -!- pumpkin has changed nick to copumpkin. 03:52:41 -!- madbr has joined. 03:56:55 -!- madbr has quit (Read error: Connection reset by peer). 03:58:25 -!- TeruFSX has joined. 04:01:46 -!- augur has quit (Remote host closed the connection). 04:03:57 -!- madbr has joined. 04:14:42 -!- madbr has quit (Read error: Connection reset by peer). 04:21:47 -!- madbr has joined. 04:23:57 -!- madbr has quit (Read error: Connection reset by peer). 04:26:15 -!- MDude has changed nick to MSleep. 04:30:46 -!- madbr has joined. 04:33:03 -!- madbr has quit (Read error: Connection reset by peer). 04:40:20 -!- madbr has joined. 04:41:18 -!- TeruFSX has quit (Ping timeout: 252 seconds). 04:47:53 -!- TeruFSX has joined. 04:49:26 -!- madbr has quit (Read error: Connection reset by peer). 04:53:55 -!- augur has joined. 04:56:46 -!- madbr has joined. 04:59:01 -!- madbr has quit (Read error: Connection reset by peer). 05:05:07 -!- madbr has joined. 05:07:43 -!- madbr has quit (Read error: Connection reset by peer). 05:13:29 -!- madbr has joined. 05:15:55 -!- madbr has quit (Read error: Connection reset by peer). 05:17:17 11:08:35 But they always change it to the Magic the Gathering/Brainfuck idea. 05:17:20 11:08:46 Seems more like a persistent person. 05:17:33 actually it's simply changing it to the very oldest version of the page. 05:18:02 why is this channel so sleepy of late 05:18:12 only a few hours activity each day 05:18:20 quintopia: vacation time? 05:18:30 makes sense 05:18:36 thats where ive been 05:19:11 perhaps there's some kind of link which causes that oldest version to be saved, which a spambot has picked up. 05:19:37 or maybe it has a very broken way of following links. hm. 05:20:29 well can you lock it to reversion? 05:21:52 -!- madbr has joined. 05:22:21 i'm not an admin. 05:22:35 ah 05:24:26 -!- madbr has quit (Read error: Connection reset by peer). 05:30:57 -!- madbr has joined. 05:32:32 -!- madbr has quit (Read error: Connection reset by peer). 05:32:44 Or otherwise i'd have banned Nthern for not responding to my messages. Grmle. 05:32:52 *Grmble. 05:33:40 icwutudidthar 05:34:05 usure? 05:36:58 -!- TeruFSX has quit (Ping timeout: 276 seconds). 05:39:18 -!- madbr has joined. 05:41:27 -!- madbr has quit (Read error: Connection reset by peer). 05:44:45 -!- Patashu has quit (Ping timeout: 252 seconds). 05:47:35 -!- madbr has joined. 05:49:52 -!- madbr has quit (Read error: Connection reset by peer). 05:57:50 -!- madbr has joined. 05:59:58 -!- madbr has quit (Read error: Connection reset by peer). 06:06:09 -!- madbr has joined. 06:08:12 -!- madbr has quit (Read error: Connection reset by peer). 06:16:26 -!- madbr has joined. 06:19:02 -!- madbr has quit (Read error: Connection reset by peer). 06:24:46 -!- madbr has joined. 06:26:52 -!- madbr has quit (Read error: Connection reset by peer). 06:33:06 -!- madbr has joined. 06:35:27 -!- madbr has quit (Read error: Connection reset by peer). 06:41:24 -!- madbr has joined. 06:43:42 -!- madbr has quit (Read error: Connection reset by peer). 06:45:10 -!- cheater has joined. 06:50:00 -!- madbr has joined. 06:52:12 -!- madbr has quit (Read error: Connection reset by peer). 07:00:45 -!- madbr has joined. 07:02:50 -!- madbr has quit (Read error: Connection reset by peer). 07:09:08 -!- madbr has joined. 07:11:40 -!- madbr has quit (Read error: Connection reset by peer). 07:17:28 -!- madbr has joined. 07:19:42 -!- madbr has quit (Read error: Connection reset by peer). 07:20:57 -!- Taneb has joined. 07:25:51 Has anybody cared to make a category for languages where the computation always terminates? They form quite an important subclass of languages. 07:25:51 -!- madbr has joined. 07:27:08 this class of languages has seen a lot of research, too, such as Curry's ?I calculus ('53). 07:27:08 -!- madbr has quit (Read error: Connection reset by peer). 07:27:55 -!- oerjan has quit (Quit: leaving). 07:28:04 -!- cheater has quit (Ping timeout: 255 seconds). 07:30:13 @Taneb test 07:30:13 Unknown command, try @list 07:34:21 -!- madbr has joined. 07:36:37 -!- madbr has quit (Read error: Connection reset by peer). 07:39:28 and, for instance, almost all "regular" mathematical functions are computable by languages that only have loops that always terminate. Ackermann's function is not one of them. :) 07:40:28 -!- cheater has joined. 07:40:32 Ah, I misremembered ?I's computational class - but what about primitive recursive functions? 07:42:41 -!- madbr has joined. 07:42:48 -!- cheater has quit (Excess Flood). 07:43:02 languages where computation always terminates fall into one of a number of classes 07:43:17 hence http://esoteric.voxelperfect.net/wiki/Category:Computational_class 07:43:51 oh wait, nevermind. 07:45:11 -!- madbr has quit (Read error: Connection reset by peer). 07:45:27 -!- cheater has joined. 07:45:27 -!- cheater has quit (Excess Flood). 07:45:43 -!- itidus21 has changed nick to itidus20. 07:53:34 I still need a name for my esoteric markup langauge 07:54:00 Boxen? 07:54:12 -!- madbr has joined. 07:56:32 -!- madbr has quit (Read error: Connection reset by peer). 07:58:18 lament: yes, the class of always-terminating languages is missing from there 07:58:58 also, while important theoretically, the Chomsky hierarchy of languages is by no means the only, or even the most important, classification criterion. 08:00:37 -!- cheater has joined. 08:02:32 -!- madbr has joined. 08:04:48 -!- madbr has quit (Read error: Connection reset by peer). 08:12:46 -!- madbr has joined. 08:15:04 -!- madbr has quit (Read error: Connection reset by peer). 08:16:31 -!- FireFly has joined. 08:16:50 -!- lament has quit (Read error: Operation timed out). 08:16:52 -!- Taneb has quit (Ping timeout: 252 seconds). 08:23:06 -!- madbr has joined. 08:25:26 -!- madbr has quit (Read error: Connection reset by peer). 08:26:27 -!- monqy has quit (Quit: hello). 08:33:14 -!- madbr has joined. 08:35:23 -!- madbr has quit (Read error: Connection reset by peer). 08:41:35 -!- madbr has joined. 08:43:42 -!- madbr has quit (Read error: Connection reset by peer). 08:49:55 -!- madbr has joined. 08:52:06 -!- madbr has quit (Read error: Connection reset by peer). 08:58:19 -!- madbr has joined. 09:00:26 -!- madbr has quit (Read error: Connection reset by peer). 09:06:47 -!- madbr has joined. 09:08:56 -!- madbr has quit (Read error: Connection reset by peer). 09:15:09 -!- madbr has joined. 09:17:20 -!- madbr has quit (Read error: Connection reset by peer). 09:23:28 -!- madbr has joined. 09:25:50 -!- madbr has quit (Read error: Connection reset by peer). 09:33:34 -!- madbr has joined. 09:35:50 -!- madbr has quit (Read error: Connection reset by peer). 09:41:55 -!- madbr has joined. 09:44:22 -!- madbr has quit (Read error: Connection reset by peer). 09:50:16 -!- madbr has joined. 09:52:23 -!- madbr has quit (Read error: Connection reset by peer). 09:58:36 -!- madbr has joined. 10:00:30 -!- madbr has quit (Read error: Connection reset by peer). 10:06:54 -!- Patashu has joined. 10:06:56 -!- madbr has joined. 10:07:19 another ddr video! http://www.youtube.com/watch?v=yueZ1Dsm9JI \o/ 10:09:18 -!- madbr has quit (Read error: Connection reset by peer). 10:09:36 -!- CakeProphet has joined. 10:15:48 -!- madbr has joined. 10:17:55 -!- madbr has quit (Read error: Connection reset by peer). 10:24:06 -!- madbr has joined. 10:26:22 -!- madbr has quit (Read error: Connection reset by peer). 10:32:28 -!- madbr has joined. 10:34:35 -!- madbr has quit (Read error: Connection reset by peer). 10:40:48 -!- madbr has joined. 10:42:59 -!- madbr has quit (Read error: Connection reset by peer). 10:49:09 -!- madbr has joined. 10:51:27 -!- madbr has quit (Read error: Connection reset by peer). 10:57:29 -!- madbr has joined. 10:59:42 -!- madbr has quit (Read error: Connection reset by peer). 11:07:42 -!- madbr has joined. 11:09:55 -!- Nisstyre has quit (Ping timeout: 255 seconds). 11:09:55 -!- madbr has quit (Read error: Connection reset by peer). 11:11:19 -!- Nisstyre has joined. 11:16:02 -!- madbr has joined. 11:18:17 -!- madbr has quit (Read error: Connection reset by peer). 11:24:23 -!- madbr has joined. 11:26:29 -!- madbr has quit (Read error: Connection reset by peer). 11:32:43 -!- madbr has joined. 11:35:01 -!- madbr has quit (Read error: Connection reset by peer). 11:40:58 -!- cheater has quit (Ping timeout: 255 seconds). 11:42:50 -!- madbr has joined. 11:45:03 -!- madbr has quit (Read error: Connection reset by peer). 11:51:11 -!- madbr has joined. 11:53:15 -!- madbr has quit (Read error: Connection reset by peer). 11:59:34 -!- madbr has joined. 12:01:58 -!- madbr has quit (Read error: Connection reset by peer). 12:02:02 -!- azaq23 has joined. 12:07:56 -!- madbr has joined. 12:09:57 -!- madbr has quit (Read error: Connection reset by peer). 12:11:12 -!- boily has joined. 12:16:16 -!- madbr has joined. 12:18:22 -!- madbr has quit (Read error: Connection reset by peer). 12:24:36 -!- madbr has joined. 12:26:52 -!- madbr has quit (Read error: Connection reset by peer). 12:34:56 -!- madbr has joined. 12:37:05 -!- madbr has quit (Read error: Connection reset by peer). 12:42:14 -!- TeruFSX has joined. 12:43:27 -!- madbr has joined. 12:43:43 -!- pikhq_ has quit (Ping timeout: 240 seconds). 12:43:49 -!- pikhq has joined. 12:46:02 -!- madbr has quit (Read error: Connection reset by peer). 12:52:09 -!- madbr has joined. 12:54:27 -!- madbr has quit (Read error: Connection reset by peer). 13:00:33 -!- madbr has joined. 13:02:55 -!- madbr has quit (Read error: Connection reset by peer). 13:08:56 -!- madbr has joined. 13:09:30 -!- TeruFSX has quit (Ping timeout: 252 seconds). 13:10:57 -!- madbr has quit (Read error: Connection reset by peer). 13:17:51 -!- madbr has joined. 13:19:31 -!- madbr has quit (Read error: Connection reset by peer). 13:27:59 -!- madbr has joined. 13:30:10 -!- madbr has quit (Read error: Connection reset by peer). 13:36:20 -!- madbr has joined. 13:38:36 -!- madbr has quit (Read error: Connection reset by peer). 13:44:40 -!- madbr has joined. 13:46:52 -!- madbr has quit (Read error: Connection reset by peer). 13:54:46 -!- madbr has joined. 13:56:51 -!- Taneb has joined. 13:56:52 -!- madbr has quit (Read error: Connection reset by peer). 13:56:56 Hello 14:02:59 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .). 14:04:55 -!- madbr has joined. 14:05:09 What's an unimplemented esolang deserving implemenation 14:05:11 ? 14:07:04 -!- madbr has quit (Read error: Connection reset by peer). 14:09:02 Just do Category:Unimplemented in alphabetical order. 14:09:11 For the common good. 14:11:07 Good idea! 14:11:20 0x29c! 14:15:16 -!- madbr has joined. 14:21:18 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 14:23:55 -!- madbr has quit (Read error: Connection reset by peer). 14:28:51 -!- Taneb has quit (Ping timeout: 260 seconds). 14:30:31 -!- Phantom_Hoover has joined. 14:30:35 INTERNET 14:30:35 Phantom_Hoover: You have 7 new messages. '/msg lambdabot @messages' to read them. 14:31:04 -!- madbr has joined. 14:31:10 -!- oerjan has joined. 14:32:18 -!- BeholdMyGlory has quit (Remote host closed the connection). 14:32:19 -!- madbr has quit (Read error: Connection reset by peer). 14:37:32 -!- Slereah has quit. 14:38:06 -!- Taneb has joined. 14:39:31 -!- madbr has joined. 14:42:58 -!- madbr has quit (Read error: Connection reset by peer). 14:47:28 -!- copumpkin has joined. 14:49:24 -!- cheater has joined. 14:51:57 -!- madbr has joined. 14:59:57 -!- cheater has quit (Ping timeout: 250 seconds). 15:01:32 -!- madbr has quit (Read error: Connection reset by peer). 15:04:40 -!- lament has joined. 15:05:51 -!- cheater has joined. 15:06:22 -!- MSleep has changed nick to MDude. 15:10:13 -!- cheater has quit (Ping timeout: 255 seconds). 15:10:14 -!- madbr has joined. 15:11:16 -!- cheater has joined. 15:12:19 -!- madbr has quit (Read error: Connection reset by peer). 15:14:52 "EDIT: Thanks to everyone who wrote with an explanation, especially the electronics engineers. I now have about 11 different plausible explanations for this behaviour. Only 3 of which involve actual time warps. :-) 15:14:56 " 15:15:54 (on yesterday's iwc annotation) 15:16:17 Oh DMM 15:16:29 Today's annotation is pretty funny 15:17:21 however, it may be assumed that hordes are attracted to hoards. 15:17:37 There is little data on the reverse 15:17:55 ah. 15:18:18 well i'm sure genghis khan got plenty of tribute 15:18:44 True, that 15:19:39 -!- madbr has joined. 15:19:53 -!- cheater has quit (Ping timeout: 250 seconds). 15:21:46 interestingly, that edit above could have fit just as well in CoAP. where it seems to me DMM is making a much larger fraction of the posts than he used to... 15:22:33 I put events from my life into CoAP, what's saying DMM doesn't? 15:22:39 heh 15:22:53 Today's CoAP is a DMM work! 15:23:59 ...let's hope it's not based on a real life event. 15:24:42 Actually, DMM and the comic irregulars do a lot at work that isn't necassarily work 15:24:50 Such as writing Darths and Droids 15:25:13 yes, but at least they _claim_ to do it during lunch hour 15:25:45 And making the CiSRA puzzles 15:25:54 Which is backed by Canon, so it may be work 15:25:59 yes, but that might be something ... right 15:26:58 i just have this image of DMM being the world's best time planner. 15:27:30 He is a time ninja 15:27:53 CoAP? 15:28:00 comments on a postcard 15:28:01 Comments on a Postcard 15:28:05 Oh, that one. 15:28:14 *CoaP in that case, but whatever. 15:28:37 * oerjan is busted 15:28:40 He is a time ninja 15:28:48 This is the real reason his clock is running slow. 15:30:12 this reminds me of someone mentioning that one of tvtropes' memes is wild mass guessing "* is a time lord". i wonder if someone put it on a DMM related page... 15:30:12 -!- madbr has quit (Read error: Connection reset by peer). 15:30:47 oerjan, I have a suspicion that it'll be part of a crackdown at some point. 15:30:58 Given TV Tropes' recent swerves towards awfulness. 15:31:50 google doesn't find either "DMM is a time lord" or "David Morgan-Mar is a time lord", anyway 15:32:07 You know your duty. 15:32:38 Speaking of the CiSRA puzzles, anyone want to form a team 15:32:48 i avoid my duties by carefully never registering to anything new 15:34:08 I've got a few of the answers in 1D 15:34:46 6 is Iguanas in Pyjamas, 7 is Seal or no Seal, 9 is Harry Otter, 14 is Swan with the Wind 15:37:10 -!- madbr has joined. 15:38:50 -!- cheater has joined. 15:38:50 -!- madbr has quit (Read error: Connection reset by peer). 15:47:31 -!- madbr has joined. 15:49:56 -!- madbr has quit (Read error: Connection reset by peer). 15:56:11 -!- madbr has joined. 15:58:17 -!- madbr has quit (Read error: Connection reset by peer). 16:05:28 -!- madbr has joined. 16:06:52 -!- Taneb has quit (Ping timeout: 260 seconds). 16:06:52 -!- madbr has quit (Read error: Connection reset by peer). 16:08:43 -!- cheater has quit (Ping timeout: 255 seconds). 16:09:05 -!- cheater has joined. 16:10:43 -!- monqy has joined. 16:13:47 -!- madbr has joined. 16:15:27 -!- madbr has quit (Read error: Connection reset by peer). 16:18:23 -!- Taneb has joined. 16:19:29 -!- lament has quit (Ping timeout: 258 seconds). 16:23:03 -!- pumpkin has joined. 16:23:16 -!- madbr has joined. 16:24:56 -!- copumpkin has quit (Ping timeout: 246 seconds). 16:28:05 http://www.reddit.com/r/math/comments/j297s/if_g_o_f_is_surjective_why_doesnt_g_need_to_be/ 16:28:11 I can make head nor tail of this question. 16:30:46 -!- cheater has quit (Ping timeout: 255 seconds). 16:30:46 -!- madbr has quit (Read error: Connection reset by peer). 16:32:47 aibohphobia 16:32:52 The fear of palindromes 16:35:11 he should have used notation more suitable for ascii 16:36:56 -!- madbr has joined. 16:38:19 well the title has g and f switched, anyway 16:38:38 Yes. 16:38:54 because if g o f is surjective, then g definitely is. 16:39:45 But the answers confuse me even more, because none of them are the obvious reply. 16:41:21 -!- madbr has quit (Read error: Connection reset by peer). 16:41:27 -!- ais523 has joined. 16:41:52 well it's obvious from the actual question that he meant to ask about f o g, in which case g doesn't need to be surjective. 16:42:19 -!- pumpkin has changed nick to copumpkin. 16:42:41 oerjan, yeah, but the answers to *that* make no sensee. 16:42:44 *sense 16:43:56 -!- TeruFSX has joined. 16:45:48 frozenzephyr's answer looks clear enough... 16:48:26 -!- madbr has joined. 16:49:19 Oh, yes. 16:50:57 -!- madbr has quit (Read error: Connection reset by peer). 16:52:49 -!- cheater has joined. 16:56:21 -!- BeholdMyGlory has joined. 16:57:37 -!- madbr has joined. 17:00:01 -!- madbr has quit (Read error: Connection reset by peer). 17:01:54 -!- Behold has joined. 17:02:16 -!- BeholdMyGlory has quit (Ping timeout: 255 seconds). 17:02:33 -!- Behold has changed nick to BeholdMyGlory. 17:07:13 -!- cheater has quit (Ping timeout: 255 seconds). 17:07:42 -!- cheater has joined. 17:07:55 -!- madbr has joined. 17:09:59 -!- madbr has quit (Read error: Connection reset by peer). 17:12:37 -!- cheater has quit (Ping timeout: 255 seconds). 17:16:39 -!- madbr has joined. 17:19:02 -!- madbr has quit (Read error: Connection reset by peer). 17:19:06 http://www.bay12forums.com/smf/index.php?topic=56305.0 17:19:12 Oh my god this is amazing. 17:19:15 Bay 12? 17:19:22 DF. 17:19:24 That sounds like Dwarf Fortress 17:20:50 -!- TeruFSX has quit (Ping timeout: 264 seconds). 17:20:59 It is. 17:21:21 Dwarf Fortress science seems to be along the lines of "how can we trick the game into letting us do X implausible thing?" 17:21:47 If real-world science was like that I would be happy. 17:22:12 If real world science was like that, everyone would be a scientist 17:22:14 Although it's engineering, not science. 17:23:51 well, it's science if you don't know what the rules are, and engineering if you do 17:25:00 Yeah, and this is a kind of blend of the two, I suppose. 17:25:01 -!- madbr has joined. 17:25:08 "Okay, class, today we'll be making a perpetual motion engine! Urist McStudent, you grab a pickaxe and dig a channel to this pattern, Solon McPupil, you start filling those buckets with water" 17:25:31 -!- cheater has joined. 17:25:34 They know the rules pretty well, but not the exact particulars relevant to the problem. 17:25:55 It's SCIENCE is more fun to say than It's ENGINEERING 17:26:29 I base all my desicions on what is more fun to say 17:27:02 http://df.magmawiki.com/index.php/DF2010:Tower-cap 17:27:15 Taneb, that 'fun' in the DF sense? 17:27:30 Almost. 17:27:34 " The concept of things smaller than monarch butterflies, however, has led to enormous controversy. Although, obviously, it would be hard to see something smaller than a butterfly, it should be possible to show that it exists because, just like butterflies, it would sometimes get stuck in doors and prevent them from closing." 17:28:11 (For those who forgot or are scum and haven't read Boatmurdered, the fall of Boatmurdered was largely due to a butterfly jamming a crucial door.) 17:28:45 I have read Boatmurdered, but I forgot 17:28:52 me too 17:28:58 I thought the fall of Boatmurdered was largely due to people deliberately trying to kill it, though 17:28:58 I couldn't get into Boutmurdered 17:29:15 ...I've just had an idea 17:29:43 Us lot, doing a bloodline game! 17:29:43 ais523, well, ISTR that the disaster that brought it to its knees and final tantrum spiral was that the main doors weren't closed in time after the lava flood was triggered. 17:29:56 Taneb, regrettably, neither me nor ais have played DF. 17:29:58 most of us don't play DF 17:30:10 Even. Better. 17:30:15 Lymee has, but I wouldn't let Lymee near anything I wanted to survive for more than twenty seconds. 17:30:19 -!- cheater has quit (Ping timeout: 250 seconds). 17:30:27 Taneb, can it wait until next Monday? 17:30:35 Probably 17:30:55 on a PC, I tend to only (although not exclusively) play open-source games 17:30:55 Lymee has, but I wouldn't let Lymee near anything I wanted to survive for more than twenty seconds. 17:30:58 Even better 17:31:01 the ones that aren't, I've generally paid money for 17:31:11 Phantom_Hoover, is that so? 17:31:21 although a couple came free with packets of breakfast cereal 17:31:22 You can pay money for Dwarf Fortress if you reeeaaally want to 17:31:28 Would you like to see what I do if I want a fortress dead? 17:31:32 Lymee, THE PAIN OF ELLIOTT'S RUTIAN TEST SERVER STILL STABS AT MY HEART 17:31:51 THE SPIDERS, OH GOD, THE SPIDERS 17:31:58 Or you can put it on a memory stick and put it in your cereal box 17:32:49 heh 17:32:58 just because it's happened so far, doesn't mean it'll always happen in future 17:34:03 -!- madbr has quit (Read error: Connection reset by peer). 17:36:23 Lymee, also, killing a fortress... isn't the hardest thing. 17:36:55 Actually, a good way to make a fort invasion-proof is to make the entrance be a "magma elevator", a 1-tile shaft filled with magma, that is kept from falling all the way down by a set of pumps. Since dwarves are not subject to temperature while falling, as it was proved on the Last Stand thread, your dorfs would fall through several levels of magma unharmed, while any flying foe that attempted to do the same would be burned to a crisp 17:36:56 instantly. 17:37:21 I once tried to make an indoor fishing place. It worked. 17:37:27 Until it didn't. 17:37:59 Ended having a river flooding into my fortress 17:38:51 brb 17:41:15 -!- madbr has joined. 17:43:39 -!- madbr has quit (Read error: Connection reset by peer). 17:44:05 -!- cheater has joined. 17:44:50 When I tried to play DF I just ended up tripping over my own perfectionism. 17:47:18 * Sgeo_ is undecided whether to return his new Nook Touch and wait to see what the new Kindle will be like, or to get a Sony, or what 17:49:08 I think you want neither of all those things 17:49:35 -!- madbr has joined. 17:49:35 Sgeo_, the origin of suffering is desire for e-book readers. 17:49:58 -!- cheater has quit (Ping timeout: 255 seconds). 17:50:09 Sgeo_: can I persuade you to mindlessly boycott Sony without telling you why? 17:50:19 ais523, no. 17:50:27 hmm, I was just wondering 17:50:30 Well, you might be able to, but I don't see how 17:50:38 And if I knew about it, I'd stop 17:50:50 Sgeo_, if you don't boycott Sony, ais523 will find you and hit you. 17:51:16 ais523, may I ask why you'd want me to boycott Sony? 17:51:26 Sgeo_: sure, it's IRC, you can ask anything 17:51:31 but I didn't say I wanted you to boycott Sony 17:51:42 I just said I wondered whether I could persuade you to 17:52:21 I think I may be too easily persuadable 17:52:34 Persuaded to get a Nook :/ 17:53:15 Although most of my issues are things that could in theory be fixed in updates 17:53:21 s/most/all/ 17:54:48 the screaming of the damned will be greatly reduced in the next version 17:55:04 also the head of hitler 17:55:15 they've got a workaround for that already 17:55:52 yeah they'll just keep the brain in a jar. although it's said someone at canon may have a patent on that. 17:57:37 i have a couple of ebook readers...kindle for android, something kindle-like for ipod, calibre's built-in reader... 17:57:37 -!- madbr has quit (Read error: Connection reset by peer). 17:57:49 these all have all the things i'm looking for in a reader 17:57:54 aka "free" 17:58:17 -!- Taneb has quit (Ping timeout: 260 seconds). 17:58:19 quintopia, is 'working' not another? 17:59:01 well i could hardly call them readers did they not display text in a readable form, could i? 18:00:20 On some level, perhaps. 18:01:20 -!- Taneb has joined. 18:01:25 they work and i did not pay for them. i am satisfied. 18:02:42 -!- cheater has joined. 18:02:47 someday when i have disposable income, and e-ink is true color and fast, i'll consider getting something with that 18:04:29 -!- madbr has joined. 18:04:58 imagine an e-ink laptop that is front-lit by a single led in the keyboard base. 18:05:12 that thing would use so little power if done right 18:06:35 Imagine an unlit e-ink laptop, and one of those "shake and it produces enough energy for the LED" flashlights that you hold with the other hand. That thing would be so user-friendly, it's not even a thing. 18:06:36 -!- madbr has quit (Read error: Connection reset by peer). 18:07:24 fizzie, well, your average redditor wouldn't have a problem with the hand movement. 18:07:53 -!- TeruFSX has joined. 18:08:51 *chirp* 18:09:55 * ais523 chirps in real life 18:10:06 charp 18:10:08 I actually got quite good at doing chirps, and I'm not entirely sure why 18:10:11 ais523, ah, you are a giant insect. 18:10:19 cherp 18:10:24 THAT EXPLAINS THE BEARD 18:10:32 wait i thought Gregor was the giant insect 18:10:52 oerjan, antisemite. 18:11:21 no, dung beetle 18:11:34 -!- cheater has quit (Ping timeout: 255 seconds). 18:11:54 hard to tell the difference, i know 18:12:46 -!- cheater has joined. 18:13:32 -!- madbr has joined. 18:15:58 -!- madbr has quit (Read error: Connection reset by peer). 18:19:15 O HI 18:19:40 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds). 18:21:53 -!- madbr has joined. 18:23:11 -!- angstrom has joined. 18:23:12 -!- madbr has quit (Read error: Connection reset by peer). 18:23:24 * oerjan spots someone tiny 18:23:35 :-> 18:26:01 -!- cheater_ has joined. 18:27:57 -!- cheater has quit (Ping timeout: 250 seconds). 18:32:08 -!- madbr has joined. 18:34:26 -!- madbr has quit (Read error: Connection reset by peer). 18:37:37 -!- TeruFSX has quit (Ping timeout: 276 seconds). 18:40:29 -!- madbr has joined. 18:41:16 -!- cheater_ has quit (Ping timeout: 255 seconds). 18:45:01 -!- madbr has quit (Read error: Connection reset by peer). 18:51:10 -!- madbr has joined. 18:53:26 -!- madbr has quit (Read error: Connection reset by peer). 18:54:56 -!- MigoMipo has joined. 19:01:17 -!- madbr has joined. 19:01:25 -!- cheater has joined. 19:02:26 -!- madbr has quit (Read error: Connection reset by peer). 19:05:57 -!- cheater_ has joined. 19:06:01 -!- cheater has quit (Ping timeout: 255 seconds). 19:09:44 -!- madbr has joined. 19:10:31 -!- cheater_ has quit (Ping timeout: 255 seconds). 19:12:04 -!- madbr has quit (Read error: Connection reset by peer). 19:15:45 I'm still reading that DF submarine thread 19:16:00 it got even better at the point where someone suggested making a submarine intended for working under magma out of ice 19:18:51 -!- madbr has joined. 19:21:03 -!- madbr has quit (Read error: Connection reset by peer). 19:22:53 -!- zzo38 has joined. 19:23:25 -!- cheater_ has joined. 19:27:46 -!- madbr has joined. 19:29:53 -!- madbr has quit (Read error: Connection reset by peer). 19:34:01 ais523: could a DF submarine be powered and directed? 19:34:27 quintopia: at the point in the thread I've reached, they haven't got them to work at all yet 19:34:34 they tend to act in ways that defy physics 19:35:22 DF? 19:35:42 -!- Taneb has quit (Ping timeout: 260 seconds). 19:36:01 dwarf fortres 19:36:03 *fortress 19:36:44 -!- sebbu2 has joined. 19:36:49 ah. not my metier 19:38:37 -!- madbr has joined. 19:38:54 -!- sebbu has quit (Ping timeout: 252 seconds). 19:40:18 -!- madbr has quit (Read error: Connection reset by peer). 19:41:30 -!- derrik has joined. 19:47:16 -!- madbr has joined. 19:49:21 -!- madbr has quit (Read error: Connection reset by peer). 19:50:07 ais523, if someone were to make a haskell based dsl for describing FPGA programs, would the clock skew through a circuit belong in the function type? 19:50:42 measuring clock skew at all is probably the wrong level of abstraction 19:51:05 why is it? 19:51:21 because it depends on the physical dimensions of the chip 19:51:40 that's not wayward 19:53:17 -!- KingOfKarlsruhe has joined. 19:58:21 -!- madbr has joined. 20:00:47 -!- madbr has quit (Read error: Connection reset by peer). 20:06:02 -!- boily has quit (Ping timeout: 260 seconds). 20:08:40 -!- madbr has joined. 20:11:01 -!- madbr has quit (Read error: Connection reset by peer). 20:16:59 -!- madbr has joined. 20:19:29 -!- madbr has quit (Read error: Connection reset by peer). 20:22:05 -!- BeholdMyGlory has quit (Remote host closed the connection). 20:25:16 -!- madbr has joined. 20:26:44 -!- madbr has quit (Read error: Connection reset by peer). 20:35:33 -!- madbr has joined. 20:37:41 -!- madbr has quit (Read error: Connection reset by peer). 20:38:38 I made many improvements to the program for typesetting Bird style Haskell programs. Currently this is still the non-prettyprinting version. (If I make prettyprinting, it will be a separate file) 20:39:27 It doesn't work if you have an outer control sequence at the beginning of a paragraph, but now it makes \bye to be not outer. 20:41:54 The updated file is: http://sprunge.us/YZfh 20:43:11 Why has more than once the list of ideas being replaced by 'This is a list of ideas of programming languages and other stuff. * Magic The Gathering card deck of Brainfuck'? 20:43:34 zzo38: confused spambot 20:43:53 -!- madbr has joined. 20:46:19 -!- madbr has quit (Read error: Connection reset by peer). 20:52:02 -!- myndzi has joined. 20:53:26 -!- madbr has joined. 20:55:29 -!- madbr has quit (Read error: Connection reset by peer). 21:01:49 -!- madbr has joined. 21:04:05 -!- madbr has quit (Read error: Connection reset by peer). 21:06:33 -!- evincar has joined. 21:07:49 -!- Adaria has joined. 21:07:56 * Adaria waves. 21:08:22 * ais523 waves back 21:08:44 Seems quiet in here. 21:09:09 it depends on the time of day 21:09:13 most of the most active people aren't here right now 21:09:16 It is 21:09:37 Lots of people but not much going on, wish people wouldn't just idle like that. 21:09:51 Makes it seem more is here than there is. 21:09:52 idling's usual so that conversations get a chance to get started 21:09:59 if a conversation starts, then people have a chance to join in 21:10:09 -!- madbr has joined. 21:10:12 if people leave as soon as there isn't a conversation, then it won't get started at all 21:10:24 I assume you're new to IRC? 21:12:03 Gah one thing about the client I use can't go back and see things I missed. Bah. 21:12:03 -!- madbr has quit (Read error: Connection reset by peer). 21:12:35 If I missit the first time it's gone. Meh, screen reader. 21:13:00 that sounds like the shittiest client ever 21:13:34 it sounds like Vorpal's client 21:13:58 -!- Taneb has joined. 21:14:06 miranda, eh 21:14:07 Well it's not the client as much as it is the fact I can't see it. Have the same issue with mIRC. Screen reader and all, can't find one that is more accessible with them. Chatting in a normal window is fine but for some reason chat window like this doesn't let me tab to the output like it should. 21:14:12 Hello! 21:14:44 you could look at the logs. 21:15:06 oh, I see, it's an accessibility problem 21:15:06 I don't think this one makes them and if it does not sure where... But good itea there. 21:15:14 unfortunately, most programs are really bad about that 21:15:15 Exactly. 21:15:17 Adaria: this may help: http://forums.miranda-im.org/showthread.php?24751-How-to-define-scrollback 21:15:20 this channel is publicly logged. 21:15:24 link in the topic 21:15:36 and you can ask the client to repeat the topic to you by writing /topic 21:15:50 what screen reader? 21:16:39 -!- derrik has left. 21:18:44 -!- madbr has joined. 21:19:15 It's been awhile since I've hung out on here, but I'm too lazy to check the logs. :P 21:20:51 -!- madbr has quit (Read error: Connection reset by peer). 21:21:48 OK there, set up logging, should help. 21:22:11 In some cases scrollback might not be a feature of the client, it will be feature of the terminal emulator 21:23:31 zzo38: most people don't use clients that work like that 21:23:45 * oerjan recalls ircII did 21:23:56 It depends whether or not it uses graphical user interface 21:25:28 Scrolling back works fine in PM and IM windows using MirandaIM but chat windows act differently apparently. It's not a huge deal now that I got logging on. 21:26:10 what screen reader do you use 21:26:52 Found two "accessible" IRC clients, IMC and NightOwl but the latter has a runtime error and the former the link is broken to download. I may have better luck on my main PC using mIRC and TIRC scripts for jaws, I am on my netbook at the moment using NVDA, no scripts for it yet. 21:27:58 -!- madbr has joined. 21:29:50 -!- madbr has quit (Read error: Connection reset by peer). 21:29:56 So, this room had a cunfusing room desc on it, what usually goes on in here? 21:30:10 The name makes sense but the desc did not. 21:30:23 That's pretty much it. 21:30:25 mirc with jaws appears to be the only solution around 21:30:33 Officially, we discuss esoteric programming languages 21:30:35 we do things here related to computing mostly 21:30:41 It's usually related to programming, but we're not picky. 21:31:01 The other day, we discussed chess variant markup languages 21:31:04 Ah ok, esoteric to me was not tech related heh. Ah well. 21:31:11 it's a common mistake 21:31:19 unfortunately, we're not entirely sure where you should go instead 21:31:23 Stay and have fun! 21:31:25 -!- KingOfKarlsruhe has quit (Quit: ChatZilla 0.9.87 [Firefox 5.0/20110615151330]). 21:31:28 This server has SO many rooms though it's insane. 21:31:36 but if you find out, let us know so we can send other people there for you to talk to 21:31:52 Freenode's mostly a programming (specifically open source) network 21:32:02 so more or less everything here is tech related 21:32:06 one way or another 21:32:51 That's fine, I am not a tech minded ... well ok I am but I know zip about languages, I'm more of a play with hardware and new tech toys than software bit. 21:33:29 If there is some new tech out there that seems interesting to me, I wanna play with it. 21:33:31 you might consider a different network then. 21:33:47 Nah, we could use a hardware guy. 21:33:50 I think 21:33:57 or girl 21:34:10 There are six thousand chans on freenode, I'm sure I'll find something. 21:34:13 Guy is gender neutral to me 21:34:20 cool 21:34:26 again 21:34:28 let us know 21:35:23 Female here but I use guy as androgenous too. 21:36:16 Adaria: So are you visually impaired, or do you just feel like using a screen reader? 21:36:22 Or I guess unisex would be the proper word, meh whatever, it works for both. 21:36:28 evincar: heh, in most channels, there wouldn't even be a need to ask 21:36:33 here, that's actually a plausible question 21:36:38 -!- madbr has joined. 21:36:48 ais523: I know, right. :P 21:36:55 Imagine an adrogenous specific pronoun 21:37:02 "it"? 21:37:11 Completely blind here. 21:37:31 To me, "it" is that's more of non-human 21:38:42 Completely blind? 21:38:42 -!- madbr has quit (Read error: Connection reset by peer). 21:38:54 I've never met anyone who's been completely blind before 21:39:28 I've met a blind person, worked as a programmer 21:39:30 May be getting an IRC client for my phone. iPhone, some love it, others hate it but to me it is truly a lifeline. 21:39:52 I know someone who can only read things within about 2cm of their eyes 21:40:00 watching them reading is bizarre 21:40:29 -!- elliott_ has joined. 21:40:33 That person needs glasses, methinks 21:40:57 I don't think that's the problem, or it'd have been fixed like that already 21:40:57 I went blind last year, well lost my good eye, other was blind already. I could never be a programmer, it would fry my brain, I have great reading comprehension and hands on with science stuff but programming languages are just as hard for me as math. 21:41:03 Taneb: I think glasses aren't likely to be able to help much if you see that badly from the start 21:41:03 even shortsightedness isn't that shortsighted 21:41:19 ais523: ping 21:41:26 elliott_: pong 21:41:29 Shortsightedness can vary a lot 21:41:31 ah good, I'm connected 21:41:31 that was an unexpected ping 21:41:32 * oerjan met a blind mathematician once 21:41:35 as I'd talked about a minute ago 21:41:44 you could have /ctcp pinged yourself 21:41:54 that bounces off the server twice, so it's a good way to check connectedness 21:42:04 I'm mildly short-sighted, I use my glasses to watch TV and in lessons, but otherwise I'm fine 21:42:22 Wheras my dad has more extreme short-sightedness 21:42:29 If they can't read but that close they might want to try braille. Even though tech is making braille seem so non essential, there really is nothing like being able to read yourself in your own head so to speak. 21:42:42 ais523: I had thoughts wrt the @ pointer thing. 21:43:03 To the point when I tried on his glasses the only thing I could focus on was about a mile away 21:43:06 also hi Adaria 21:43:15 elliott_: I had thoughts with respect to @ too 21:43:23 I get sick of trying to 'read' my own writing in stories and the screen reader just kills the tone that I might otherwise be able to put into it if I could read it myself. 21:43:25 I concluded a lot of interesting things, which are probably mutually contradictory 21:43:28 ais523: oh dear; you first, please tell me they don't involve Feather 21:43:28 Adaria: I talked a bit with a blind programmer once. I don't recall if he was born sighted, but I gathered it was a real challenge to hold everything in his head at once, especially with all of the screen-reader noise from punctuation. 21:43:48 elliott_: they don't 21:43:50 i imagine blind programming is a bit like using ed 21:43:53 but it's almost as brainfrying, but for different reasons 21:43:58 without any commands to print multiple lines at once 21:44:38 ais523: the good news with my thoughts is that, I think I have a pointer-passing capability model that works across networks with no need to have computer-to-computer communication different from intra-computer communication 21:44:44 but, you first 21:45:18 hmm, I'm in the middle of a bunch of things at the moment, also I was half-asleep and can't quite remember 21:45:33 :( 21:45:34 okay then 21:45:40 ais523: I'll wait to tell mine too then 21:45:43 but one was that what's possible in the language should match what's possible in the actual real word 21:45:44 *world 21:45:57 like? 21:45:57 OK gonna go get food. I'll beback later on. 21:46:01 Bye 21:46:16 Turing complete languages are impossible in the real world 21:46:20 like it's possible that information currently on another machine will be inaccessible, and that another machine might not cooperate if you tell it to do something 21:46:37 so the language should be able to understand that concept, in terms of exceptions or via some other method 21:46:49 -!- MigoMipo_ has joined. 21:47:26 ais523: well, yes, I already had plans for that, but I think my new model makes it easier 21:47:29 ais523: Please, monads, not exceptions. I like locality. :P 21:47:38 -!- madbr has joined. 21:47:42 evincar: um "monad" means nothing here 21:47:46 a specific monad might have some meaning 21:47:48 evincar: I'm not making assumptions about what the language feature /is/, just that it exists 21:47:53 speaking of being unable to real world turing complete, I was just reading the bitbitjump talk page. that was crazy. 21:47:53 Either, for instance, or ErrorT 21:48:09 elliott_: another thing was, that for your capabilities, you don't want to be passing references to objects themselves 21:48:12 ElliottT 21:48:14 evincar: "Monad" only makes sense in languages with particular forms of typing. 21:48:16 but references to closures that operate on those objects 21:48:21 elliott_: Monadic error handling. I'd rather be concise and understandable than pedantically correct. :P 21:48:43 except it wasn't understandcable ;_): 21:48:48 e.g. if you pass a reference to that logically means "anyone with the reference can do anything to that object on my computer, even if my computer's turned off" 21:48:53 evincar: well, that is just exceptions 21:48:57 which doesn't make sense, so that operation should be physically impossible 21:48:59 evincar: "Monad" only makes sense in languages with particular forms of typing. 21:48:59 nah 21:49:14 instead, you can pass a closure that looks into a lookup table on your own computer and then operates on the object 21:49:18 they're just less visible in less powerful languages 21:49:22 that way, you can do the equivalent of deleting an object if you change the lookup table 21:49:26 elliott_: In any case, I like explicit handling rather than implicit propagation. 21:49:36 That's what I was getting at. 21:49:41 another thing I noticed is that for practical use, it would make sense to have something that keeps around references to things, and can search and return them 21:49:48 evincar: it's not really monadic then, it's just returning Either 21:49:54 elliott_: Actually. ... Yeah, I think you could pull it off in C, so. :P 21:49:56 but that's a monad too, that gives you implicit propagation 21:50:01 -!- MigoMipo has quit (Ping timeout: 250 seconds). 21:50:02 so that if you're not using an object, just wanting to save it for later use, you can just leave one reference to it in that 21:50:11 I think that's the @-y equivalent of a filesystem 21:50:12 ais523: well, all that means is that pointers may take a long time to dereference; generalisation: an infinite time; generalisation: dereferencing a pointer may result in _|_; i.e. it can error out too 21:50:19 I like this channel. I pretty much need to have to wikis open just to have a clue what's going on 21:50:26 ais523: Anyway, my method solves this, I think 21:50:31 Makes a change from IRL 21:50:41 Where everyone expects me to know everything 21:50:53 What's a monad? 21:50:54 elliott_: Not at all. Saying "this function returns either a value or an error" is very different from saying "this function either returns a value or yields an error". 21:51:10 evincar: 21:51:14 They propagate by different means, and one is more explicit than t'other. 21:51:19 foo a = do x <- bar a; y <- quux x; return y 21:51:25 Taneb: I think a monad is something in Haskell 21:51:27 abc a b = do x <- foo a; y <- quux a; return (x+y) 21:51:40 evincar: these both return Either SomeError Integer 21:51:48 evincar: note how abc's code looks just like exception-using code 21:51:53 and the errors explicitly propagate to its return 21:52:12 (Either SomeError String) is an explicit error-tagged return type 21:52:20 Taneb: Simple answer: a monad is a type with functions "(<<=) :: (Monad m) => m a -> (a -> m b) -> m b" and "return :: (Monad m) => a -> m a". 21:52:20 And (Either SomeError) is a monad 21:52:25 pikhq: >>= 21:52:30 evincar: But what the monad provides is /implicit/ error propagation 21:52:31 elliott_: Thanks. Thinko. 21:52:33 Just like exceptions 21:52:38 In fact, this model is identical to checked exceptions 21:52:57 elliott_: Only via implicit typing, unless I'm mistaken? 21:53:02 ? 21:53:10 What do you mean by implicit typing and how is it related here? 21:53:34 Basically, monadic error handling doesn't make error handling explicit; it does the opposite, it lets you use an explicit "error or result" type as if it were implicit, by abstracting the transformation of results monadically. 21:53:42 You still have to note what errors you produce in the return type. 21:53:49 But this is just like Java's checked exceptions. 21:53:57 It is exception-based error handling. 21:54:05 (in the context of being monadic) 21:54:15 I'm with you. I just disagree that they're "just like" one another. 21:54:21 It is identical. 21:54:28 Do you know what Java's checked exceptions are? 21:54:38 Methods have to record, in their type signature, what exceptions they can throw. 21:54:46 int foo(int n) throws SomeError; 21:54:51 foo :: Int -> Either SomeError Int 21:55:05 Yes. But it is recorded separately from return type. That's all. 21:55:13 It's a different abstraction for the same thing. 21:55:38 I prefer to unify them in the return type rather than saying "exceptions are magical things that perform stack unwinding etc." 21:55:39 Well, I would argue "different"; you can very simply mechanically translate each model into the other. And it's right in the type signature. 21:55:44 It's "implemented" differently, that's true. 21:56:04 -!- oerjan has quit (Quit: Good night). 21:56:17 But still, I'd say that a monadic model of error handling is the same as checked exceptions. (And the same as unchecked exceptions if you make "SomeError" an existential on some Exception typeclass.) 21:57:04 Oh, they're identical in function, sure. They just differ in form. 21:57:14 form as in syntax or what 21:57:54 I hope I can try to make a program in TeX for parsing Haskell codes 21:58:11 monqy: That, and implementation; in C++ I can return a boost::optional from every function, or I can throw exceptions. 21:58:47 monqy: Exceptions are more idiomatic to that language, but I would prefer the other route. 21:58:50 evincar: Well, that's just because C++ has really awkward syntax :) 21:59:08 elliott_: On this, all can agree. 21:59:19 But yeah, checked exceptions are actually a Good Thing. It's just that Java is never used functionally enough for them to be useful rather than annoying. 21:59:32 elliott_: Functionally meaning "as a functional language"? 21:59:41 Yes. But also those other meanings, too. :-) 21:59:56 Tony Morris will now beat me over the head with a baseball bat and shout about the Functional Java library. 22:00:18 elliott_: Oh, don't worry, you said "used". 22:00:34 Hardly anyone uses that library, so. :) 22:00:37 Heh. Well, Everything is an Object (Except Primitives (Except with Autoboxing)) isn't the best model for a type system, unsurprisingly. 22:01:01 evincar: Psuedostatic typing is an awful thing. :P 22:01:19 pikhq: It's a rather amazing library as an achievement 22:01:30 Not sure I could use it without the lambda syntax that's coming though 22:02:01 How would a subject orientated language work? 22:02:21 that's OOP 22:02:28 Taneb: However you want. "Subject/object" isn't the distinction you want to make here. 22:02:39 a [linguistics]object oriented language would just be OOP with inversion of control everywhere 22:02:48 apples have to know how a human eats them 22:03:16 evincar: What happened to that language that I forget the details of that we talked about in here when I was sleep-deprived in-between discussions about cities and libertarianism... I think... ? 22:03:17 "Object-oriented programming" is a refinement of structured programming. 22:03:30 -!- augur has changed nick to augur[afk]. 22:03:45 elliott_: Oh, you mean my research language, the one based on adjectives? 22:04:45 evincar: I'm... not sure. I seem to recall telling you that the imperative control structures you insisted on bolting on to it were ruining the cool idea at the core, but I don't remember more than that. :p 22:06:20 Yeah, that was the one. It was based entirely on the conjecture that you can perform computation with continuous descriptions of information rather than discrete units of it. 22:06:59 Evaluation was basically graph reduction, as you'd expect with any relatively simple functional language. 22:07:10 That seems suspect, since the real numbers aren't computable. :p 22:07:18 and why did it have imperative control structures 22:07:42 monqy: man why did you remind me of the bitbitjump talk page 22:07:56 bitbitjump talk page made me sad 22:08:30 elliott_: I don't mean continuous in the sense of a continuous quantity. I just mean that "objects" need not be independent instances, but rather named regions of a description space. 22:08:35 -!- Patashu has joined. 22:08:44 Whose borders are not necessarily sharply defined. 22:08:55 monqy: Because I was still feeling out the idea to see what could work. 22:09:04 did it work 22:09:26 I haven't really been working on it. So many other things are going on. :P 22:09:50 ais523: how long are you going to be here? wondering whether it's worth collecting my thoughts on my model to tell you 22:10:18 elliott_: probably a while, but maybe not, and I'm also not paying much attention 22:10:26 so it's probably not going to be as rewarding as you'd hope 22:10:52 ais523: meh, I won't bother then 22:10:57 but I do think it solved all of your complaints 22:11:09 elliott_: Now you've piqued my curiosity. 22:11:38 elliott_: that seems reasonable 22:11:40 evincar: err, do you know what @ is? I'll have to send you at.html if not 22:11:49 elliott_: I do not. 22:12:01 ais523: and it also allows the capability model to work across the network, rather than a separate communication method being used across the network 22:12:27 bleh, the file should be called @.html 22:12:33 because @ is a placeholder, not an actual name 22:12:36 also, ...................... 22:12:39 evincar: see /msg 22:12:40 my . key is broken 22:12:44 not completely, but working intermittently 22:13:18 evincar: Also install Bitstream Charter it is a cool typeface. (I am not saying this because at.html requests it first in the CSS. Honest.) 22:14:35 -!- madbr has quit (Read error: Connection reset by peer). 22:15:14 elliott_: oh, here's today's dose of Secret Project spoilers: http://codepad.org/oP5twvVz 22:15:20 that isn't the project itself, it's a test program 22:15:26 which now runs correctly under it 22:15:32 I think I have the basics of timing determinism down 22:15:33 ais523: does NetHack? 22:15:45 not yet 22:15:49 it will eventually, I imagine 22:15:55 the difficult part there is the I/O 22:16:05 ais523: ha, I just teased another spoiler out of you 22:16:08 I've had things fail to reproduce because of the buffer size on the input side of /dev/tty 22:16:09 you tested NetHack 22:16:14 actually, I didn't 22:16:22 then how do you know? :-P 22:16:26 I answered the question based on my own knowledge of how implemented my thing is 22:16:27 spoiler: teased 22:16:47 now we know you haven't tested nethack 22:17:00 also, atm it runs executables independent of any environment 22:17:07 so it doesn't work for things that refer to other files 22:17:18 monqy: yesssssssss 22:17:20 except, atm, I put the entirety of /usr inside the chroot because shared libraries 22:17:37 "I think one can build a real TC machine. Let a real computer be able to request a bank of additional memory. Someone is obliged to go buy memory and provide to the computer. The computer can switch between the banks of memory in only left/right way, so the address space of the computer remains the same. Now this whole system, the real computer and the person serving as a provider of additional memory, will be really a Turing-complete machine." 22:17:38 eventually I'll have to get specific versions of the shared libraries in case they don't return the same pointer every time, or something 22:17:51 only finite amounts of storage exist in the universe! 22:18:17 ais523: thanks captain obvious 22:18:32 ais523: now let me introduce you to your new colleage, N. S. Sherlock 22:18:35 elliott_: I'm replying to whoever made that quote 22:18:58 Depends whether the universe is unbounded or not 22:19:05 Taneb: it is 22:19:12 AND IT ISN'T 22:19:18 observe above: helpfulness 22:19:24 according to current belief, only a finite amount of it is accessible 22:19:30 and the size is large but measurable 22:19:42 If it is, we can store information as the distance between two arbitary points. 22:19:50 This information is not necassarily accessible 22:20:02 Taneb: umm, that doesn't help you build a UTM 22:20:05 Don't forget it'll be made fuzzy due to heisenburg stuff 22:20:12 You can't store real numbers as distances 22:20:13 I'm not saying it does 22:20:19 ais523: Isn't it something silly like "infinite from our perspective but with finite storage" 22:20:28 I'm no physicist, mind you 22:20:43 I think it's write-only memory 22:20:58 elliott_: the reachable boundary is finite and you can measure its location 22:21:06 ais523: But I read that the "blowing up a balloon" model for explaining the universe's expansion was disliked nowadays because evidence shows to the topology of the universe being flat and infinite 22:21:19 [asterisk]evidence suggests that the blah blah 22:22:26 -!- madbr has joined. 22:22:29 According to this paper 'The universe can have performed no more than $10^{120}$ ops on $10^{90}$ bits.' 22:22:48 anyway, Linux's API for interrupting a sleep three times, by ignored signal then ignored signal then handled signal, is really frustrating 22:22:52 but I think I got it working 22:22:57 ais523: I was hoping you'd have an answer to that :( 22:23:07 elliott_: I don't 22:24:44 evincar has been engulfed by the sheer power of @ 22:24:45 -!- madbr has quit (Read error: Connection reset by peer). 22:24:50 Would it be possible to invent a program doing Knuth-style literate programming for Haskell by using Template Haskell? 22:24:53 Patashu: op seems a bit vaguely-defined 22:25:13 -!- augur[afk] has changed nick to augur. 22:25:21 it's probably defined better in the paper 22:27:02 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 22:27:21 I've just had a thought 22:27:28 -!- FireFly has quit (Quit: swatted to death). 22:27:57 Any number can be represented as unary, right? 22:28:16 I've just had an idea for representing a series of numbers as unary 22:28:23 -!- quintopia has quit (Ping timeout: 276 seconds). 22:28:25 Based on powers of primes 22:28:30 It's probably been done before 22:28:41 Taneb: Any natural number. And I bet I've had the same idea. :P 22:28:49 evincar: PSHT 22:28:53 But lets say you wanted [2,6,9] 22:29:04 Just define a spiral path through all {x,y} tuples, that's how you biject rationals onto integers 22:29:10 and then a new path through all {x,y,z} tuples... 22:29:19 You'd record it as 2^2 * 3^6 * 5^9 22:29:36 Patashu: Naturally. ;) 22:29:50 Patashu: you can obviously do N^(n+1) => N^n given (N,N) => N 22:29:55 pretty inefficient though 22:30:00 as far as number size goes 22:30:13 Hmm, that sounds like it would work 22:30:20 Curse you, prime factorization, for making problems so simple! *fist shake!* 22:30:51 Of course, [2,6,9] would be 5695312500, which is huge 22:31:17 Taneb: Look up Fractran, by the way. 22:31:29 -!- madbr has joined. 22:31:38 Fractran is substaintially different 22:31:53 That's a series of fractions, this is a single unary number 22:32:15 -!- quintopia has joined. 22:32:15 -!- quintopia has quit (Changing host). 22:32:16 -!- quintopia has joined. 22:32:22 I was just making sure you were aware of it. It's relevant. 22:32:23 evincar: So disappointed in you right now. 22:32:27 Of course, this gives me an idea 22:32:29 elliott_: Yes? 22:32:46 A fractran program expressed in this notation! 22:33:01 evincar: BEING GIVEN AT.HTML AND NOT IMMEDIATELY TELLING ME ABOUT YOUR NEW DEDICATION TO THE CULT OF @ IS UNACCEPTABLE 22:33:43 elliott_: So with regard to the thing about trusted code, how do you define "damage" to the system? 22:33:59 Argh, stop picking on the parts I just dropped as random unformed ideas. :p 22:34:20 evincar: You could bundle (machine code, proof that it accesses no memory it was not passed and did not allocate). 22:34:24 The whole thing is a series of such. 22:34:30 Random unformed ideas. 22:34:37 Then you make them into a thing that works. 22:34:40 This pain inside! 22:34:50 Anyway, there are better-formed ideas, they're just not interesting as an introduction. 22:34:52 evincar: You could bundle (machine code, proof that it accesses no memory it was not passed and did not allocate). 22:35:05 + doesn't access any ports it isn't passed, blah blah 22:35:17 Basically just something to guarantee that it does not violate the safety guarantees that the compiler offers. 22:35:25 I'm not sure this is a practical idea though, formal verification is very hard. 22:36:20 Yeah, I think that level of security is going to be tremendously difficult to attain. I mean, if you control the system from the ground up (which you do) and you ensure that all of your code is perfect (which it won't be), you might have a chance. Maybe. 22:36:42 Umm, no, the "level of security" required to be proven there is a very easy minimum standard to attain. 22:36:52 But if the whole thing is incrementally developed, fully tested, formally verified, etc., you stand a chance. 22:37:01 No, it does not require perfect coding at all. 22:37:06 I'm not a proponent of TDD, but I play one on TV. :P 22:37:19 Don't try and make technical claims about my system based on a very broad general introduction I wrote months ago :P 22:37:30 Not gonna. That's as technical as I'm getting. 22:37:31 I'm trying to parse "TDD" as an emoticon 22:37:38 And I'll be back from food shortly. 22:37:41 It's working 22:37:45 But yes, that's not the plan wrt formal verification at all 22:37:48 -!- evincar has changed nick to evincar[afk]. 22:38:45 it's probably better to work on source code rather than machine code, use a type checker to prove safety, and then hope there are no security bugs in the compiler 22:39:43 ais523: It was intended as an alternate route into the system, but yeah, now I'm wishing I edited it out 22:39:48 ais523: But -- 22:40:00 As far as security bugs in the compiler go, I think any sort of exploitable bug is really contrived in @'s context 22:40:26 @? 22:40:53 Taneb: Ugh, come ooooon 22:40:56 Not again :-P 22:41:01 elliott_: one that dereferenced an integer as a pointer would probably be enough 22:41:15 ais523: Compilers for things like Haskell, interpreters for languages like Python and Ruby -- why do they segfault? Usually the compilers segfault because of a system call or a broken allocation/GC, and interpreters usually segfault because [lol C]. 22:41:16 but luckily that's pretty easy to avoid 22:41:31 I mean, it's not contrived, it's just easy to avoid 22:41:32 In @, there are no "system calls" like that, everything is more or less memory safe 22:41:39 And the compiler is written in @lang, not C 22:42:00 The allocator/GC has to be pretty good, yeah, but OTOH, if the GC allocates a used object, that just results in crashing, not a security bug. 22:42:09 Unless a dangerous object gets allocated RIGHT THERE the next second. 22:43:00 such bugs have been exploited before :) 22:43:45 olsner: The situations I know of are also contrived in @ :-P 22:44:47 How do you write C programs in @? 22:45:05 zzo38: by using a C compiler 22:45:56 normally, if a race condition like that exists, it can be manipulated to happen 22:46:04 But I thought @ is not C? 22:46:22 zzo38: Linux isn't written in Pascal, but you can still compile Pascal programs on Linux 22:46:23 -!- MigoMipo_ has quit (Read error: Connection reset by peer). 22:47:43 I know. But I don't know how @ works, you said there is no systems calls, everything is memory safe, etc 22:47:43 -!- madbr has quit (Read error: Connection reset by peer). 22:47:56 Does anything special required? 22:48:09 presumably C programs would run in a VM 22:48:14 Not a VM per se 22:48:19 or, not exactly 22:48:21 but the same concept 22:48:28 Pointers probably wouldn't be integers 22:48:42 Is programming for the GPU safe? Since as far as I'm aware the GPU doesn't have system calls 22:48:47 zzo38: Well, you can't have pointers be direct memory addresses. 22:48:51 Patashu: GPU has no OS 22:48:55 they would be convertible to integers in C, because in C you can decompose anything into a sequence of octet 22:49:04 but they probably wouldn't correspond to memory addresses 22:49:08 zzo38: But with a richer pointer type inherited from @, and a libc, you could do it fine 22:49:26 O, that's how it works. 22:49:47 C isn't memory safe, but all non-memory-safe usages of C are either bugs or pathological things that can be handled specially, like using invalid memory as a RNG seed 22:49:54 (Usually that's just a bad idea, though) 22:49:57 ais523: indeed 22:50:05 ais523: but, you only have to do the conversion when it's actually casted and read from 22:50:10 yep 22:50:11 you can just store them as pointer objects before that 22:50:17 Would LLVM codes be compiled into whatever code @ uses? Does @ use native code or almost native code or something else or whatever? 22:50:22 which, happily, desugar to memory addresses or something close to it (probably tagged) in @ 22:50:23 well, if people are passing around pointers to pointers and memcpy them 22:50:31 -!- copumpkin has joined. 22:50:35 you have to deal with that situation somehow 22:50:40 also, what about unions? 22:51:01 zzo38: Well, the main programming language for @ is @lang, which is a completely new language; but I have a feeling that lower down, there'll be a (memory-safe, etc.) LLVM-style language 22:51:10 A C compiler would want to output that, instead 22:51:39 ais523: @ still has byte arrays, you know 22:51:54 Yes, I know there is C compiler into LLVM so probably it can be used. Maybe some of the commands in LLVM won't work 22:52:02 ais523: But a more high-level representation may be preferable for debugging and @ integration 22:52:34 ais523: Which may have a performance penalty, of course, but it shouldn't be that bad (because, after all, @lang should have acceptable performance for just about anything in the first place). 22:52:47 Is it a subset of the available LLVM commands? Is there some new commands? Can you tell me what it is? 22:53:07 zzo38: I'm not very knowledgable about LLVM's IR instructions. 22:53:15 But I think most of them should map fairly directly. 22:53:33 elliott_: it has byte arrays, just can't interpret them as anything but bytes 22:53:38 zzo38: The "low-level" language will probably have some kind of strong typing, so that it's invalid to, say, load an integer into a register, and then try and dereference it. 22:53:40 in particular, how do you safely convert them /back/ into pointers? 22:54:05 ais523: Well, that's true. (Note that you _can_ do that as a user; I think the difference is that those are in boxes.) 22:54:13 Basically, you can inspect anything in a box totally, but you can't inspect values itself. 22:54:27 You can look at the source code to a function if it's in a box, but you can't look at the source code to a function value (that would break parametricity) 22:54:41 That way, @ can be totally inspectable without breaking all sorts of important theoretical properties. 22:54:42 Hopefully. 22:55:08 ais523: And if the C compiler has enough access to the pointers it uses, it might be able to have them in boxes? I'm... not sure. 22:55:16 But yeah, a higher-level representation would be easier. 22:55:32 pointers as indexes into a byte array would be easiest for C 22:55:39 possibly not best, but easiest 22:55:42 ais523: One way you could do it is to have the C heap -- yeah. 22:55:52 -!- madbr has joined. 22:55:52 -!- invariable has joined. 22:55:58 ais523: The thing is that that should, in @, desugar to direct memory-array access. 22:56:07 -!- invariable has left. 22:56:20 So it'll require a separate heap, but it'll be fast. 22:56:25 that would work, I think; to cast byte array to pointer, you just have to check to see if it's in range 22:56:38 also, are you planning to use the MMU for anything? my guess is no, but I'm not sure 22:56:56 elliott_: LLVM does not allow loading an integer into a register and then try to dereference it directly; you need to cast it first. So, you could have in @ that the LLVM commands for doing that are not allowed. 22:56:59 Well, the whole idea of @ is that if your language has these strong safety guarantees, then you can compile it to really unsafe code, which is fast. 22:57:13 Well, the MMU would actually be pretty handy in @. 22:57:27 zzo38: Right. Casting to a pointer would have to be restricted. Of course, if you use a separate heap, like ais523 is talking about, you can allow free casting and all that. 22:57:29 the MMU wouldn't be helpful for safety 22:57:30 It's just less integrated that way. 22:57:34 but I'm wondering if it would still be useful anyway 22:57:40 ais523: Erm, I forget exactly what the MMU handles >_> 22:57:53 ais523: No, but it'd make it easier to handle the fact that the disk is nothing more than another tier of memory. 22:57:53 elliott_: memory, it manages memory :) 22:57:55 Just cross-process memory safety? 22:57:56 elliott_: Paging. 22:58:00 Right, same thing. 22:58:01 LLVM also does allow pointer types to specify which memory area it points into, and you can have many memory areas. 22:58:01 *All* paging. 22:58:19 Cross-process memory safety isn't actually a feature of the MMU *itself*. 22:58:20 So maybe @ can define what those areas are. 22:58:20 ais523: Well... the MMU is useful in that I load pages from disk and map them with the MMU. 22:58:28 zzo38: Yes, that would be useful. 22:58:46 That's done pretty much exclusively by having the kernel swap the page tables on context switches. 22:59:32 It's both essential to process safety with direct memory access *and* not designed for it. :) 22:59:38 But yes, I'm afraid I'm not too good at my compartmentalisation of an extended IBM PC; I know mostly what it can do, but not what handles what, as far as the actual core architecture goes. 22:59:47 So I'm not sure if the MMU can help. 22:59:59 elliott_: It will. 23:00:19 Well, beyond that. 23:00:29 Just nowhere near as much as it would on traditional OS designs. 23:00:51 what the MMU basically does is pagefault if you try to access memory that's on the disk at the time 23:01:04 and transfer control to some sort of pagefault handler, which is meant to be part of the kernel 23:01:22 And maps between virtual memory and real, physical RAM (obviously) 23:01:26 now, I don't think there's any particular security issue with paging arbitrary bits of memory in/out of the places they're meant to be anyway 23:01:39 unless you could use it for a DOS 23:02:09 -!- azaq23 has quit (Quit: Leaving.). 23:02:12 ais523: right, that's useful because @'s orthogonal persistence can use it, I think 23:02:26 yep 23:02:28 It's also useful for COW. 23:02:37 oh right, that too 23:02:59 If you're asking me about @, surely you're paying enough attention for me to explain my thoughts on the network-capability model? :-P 23:03:17 heh 23:03:43 I suppose what an MMU really does, fundamentally (other than mapping virtual to real pointers), is to call a function when someone tries to dereference pointers to particular memory locations 23:03:47 and there are all sorts of uses for that 23:05:32 Yes there can be a lot of uses of such things, I think. 23:06:36 -!- evincar[afk] has changed nick to evincar. 23:06:37 -!- madbr has quit (Read error: Connection reset by peer). 23:06:37 On AMD64 it can also call a function when someone tries to execute from particular memory locations. 23:06:41 ais523: anyway, the idea I had was: you know how I said you could ask any machine for an object by giving it its identifier, and it'd decide whether to give it or not? 23:06:52 elliott_: yes? 23:06:54 (also recent x86) 23:06:56 one sec 23:08:14 ais523: well, that's wrong, that isn't how it should work at all 23:08:49 ais523: What's the basic mechanism by which objects can be accessed by code in the object-capability model? Simple: Another piece of code, which already has the reference, passes it to your code. (Functions returning a reference are equivalent to this by CPS.) 23:09:20 that makes more sense 23:09:29 that isn't the model yet 23:09:30 you saying the original idea was wrong, that is 23:09:33 Right 23:09:46 ais523: So, say computer B wants to give an object reference to computer A, which is the computer owned by our protagonist, who will be left unnamed, as they are irrelevant. 23:09:48 elliott_: So you rely on the type system to prevent the user from breaking anything, and you give the user everything they need. 23:09:54 By user I mean programmer of course. 23:09:56 evincar: I'll answer after finishing explaining to ais523 23:10:08 ais523: More precisely: 23:10:25 ais523: Object X on computer B wants to give (an object reference to Z) to object Y on computer A. 23:10:29 Or, 23:10:40 ais523: B/X wants to give (an object reference to B/Z) to A/Y. 23:10:58 With me? (We assume B wants A to access Z via B for simplicity.) 23:11:19 and Z is on B? 23:11:25 yep 23:11:27 Objects aren't "on" anywhere. 23:11:29 But, yeah. 23:11:36 Objects just "exist". :p 23:11:40 I mean, where the data is physically stored 23:11:43 Right. 23:11:46 which is irrelevant from the user's point of view 23:11:54 but very relevant wrt the network protocol 23:12:00 ais523: OK, so let's also assume that B/X has the public key of A/Y. 23:12:07 that's a sensible assumption 23:12:11 public keys are known by everyone 23:12:17 (Yes, an object with a public key; next they'll want to marry, but let's just assume so.) 23:12:42 -!- Taneb has quit (Ping timeout: 260 seconds). 23:12:52 Would you have to make some way of doing this using LLVM? 23:12:56 ais523: B/X sends the following (we assume they have a communication channel open, the means is unspecified; just like we assume there's a function call going on normally) to A/Y, encrypted to A/Y's public key, so that nobody can snoop on it: 23:13:02 zzo38: no, this is a higher-level detail than that 23:13:22 ais523: (a public key, a socket) 23:13:25 ais523: More precisely: 23:13:38 ais523: (B/Z's public key, a socket to B) 23:13:47 ais523: The socket can be sent as (host, port) of course. 23:13:51 It's allocated for the purpose. 23:13:58 hmm, it seems to me as if both halves of your keypair are private 23:14:07 This isn't a keypair. 23:14:09 we need better terminology 23:14:14 I mean, you're saying "public key" 23:14:14 ais523: No, it's not private. 23:14:21 ais523: You can encrypt messages to a public key with GPG, can you not? 23:14:21 ah, and the socket is guessable 23:14:26 so why does it need encryption? 23:14:36 ais523: Ummm, this is a different socket. You are misunderstanding. 23:14:43 Let me tell you the whole model. 23:14:46 go on 23:14:53 what I mean is, is B/Z's public key public knowledge? 23:15:03 -!- madbr has joined. 23:15:10 Yes. 23:15:17 It's sent over the wire in case A/Y doesn't know it. 23:15:29 ah, OK 23:15:39 so why is the pubkey/socket pair encrypted? 23:15:47 the host is probably obvious, and there's a reasonably small number of ports 23:15:59 ais523: OK, awit, I made a mistake. 23:16:00 so the encryption doesn't seem to gain you anything 23:16:01 Give me a minute. 23:16:03 ah, OK 23:17:25 -!- madbr has quit (Read error: Connection reset by peer). 23:17:43 ais523: B/X sends encrypt((a newly-generated private key, B/Z's public key, (B's host, a newly-allocated port)), A/Y's public key) over its communication channel to A/Y. A/Y connects to the (host,port) and sends the time, or something, signed with the private key it received. This socket is "connected" to B/Z (it's actually operating-system-level, but this is the model). B/Z sends itself (serialised in the form of bytes, etc.) down the socket, signed 23:17:43 to B/Z's key. 23:17:46 hmm, you know how X determines if someone's allowed to pop up windows on your screen? using a random key, that's stored in a file only you can read and regenerated every time it starts 23:17:56 A/Y checks the signature, sees that it's correct, and knows that it has received B/Z. 23:18:20 "sends the time" is to prevent replay attacks? 23:18:24 Yes. 23:18:38 oh wait, there's more 23:18:40 stop for a second 23:18:40 stop typing 23:18:45 I wasn't typing! 23:19:03 ais523: B/X sends encrypt((a newly-generated private key, B/Z's public key, (B's host, a newly-allocated port)), A/Y's public key) over its communication channel to A/Y. A/Y connects to the (host,port) and sends the time, or something, signed with the private key it received. This socket is "connected" to B/Z (it's actually operating-system-level, but this is the model). B/Z sends itself (serialised in the form of bytes, etc.) down the socket, signed 23:19:03 to B/Z's key, __and encrypted with A/Y's public key__. 23:19:08 A/Y decrypts it, checks the key, and we're done. 23:19:15 ais523: Behind the scenes, B/X told B/Z "I'm about to give someone a pointer to you; here is a newly-generated private key, and their public key". 23:19:24 -!- TeruFSX has joined. 23:19:25 (It actually tells the operating system, but again, this is an abstraction.) 23:19:43 B/Z will not give itself to anyone who isn't marked as about to be given itself. 23:19:52 i.e. it will not give itself to anyone who can't sign with their key. 23:19:56 (Their newly-generated key.) 23:20:11 ais523: A fundamental point of this security model is: It doesn't matter if anyone can see every single bit of traffic on the internet. 23:20:16 yep 23:20:19 ais523: In fact, hosts become an optimisation. 23:20:27 ais523: You could have only two operations in the entire networking stack: 23:20:31 - Send packet to entire internet; 23:20:34 - Receive a packet from the internet. 23:20:34 so, hmm, is this giving B/Z itself? or a copy? 23:20:47 ais523: What's the difference? Objects are immutable. 23:20:57 elliott_: You functional devil, you. 23:21:01 ah, fair enough, that's something I didn't grasp about how you were using "object" 23:21:05 evincar: Quite. 23:21:16 ais523: It's intentionally vague. But objects being mutable seems to mess up the model. 23:21:19 so the only possible way to delete something is to remove all references to it 23:21:47 ais523: Anyway, 23:22:11 elliott_: Well, mutating a singly-referenced object can be a good optimisation for destroying and replacing it. 23:22:18 I'm puzzled at how you can implement Internet-wide garbage collection 23:22:27 or how this will work without it 23:22:28 ais523: One cool thing is this: 23:22:31 Who sent a packet is also irrelevant. 23:22:34 evincar: that is indeed just an optimisation, though 23:22:39 Destinations are irrelevant, sources are irrelevant. 23:23:02 ais523: Anyway, it's quite a high-overhead model, but it does capture (up to the cryptographic system being broken) a secure passing of a pointer. 23:23:08 Optimising it... well, that can come later. 23:23:32 ais523: Why do you need Internet-wise garbage collection? Garbage collection matters only to individual computers which don't like running out of disk. 23:23:52 elliott_: in case you garbage-collect an object that another system was about to ask you for a copy of 23:24:07 e.g. X wants to pass a copy of Z to Y 23:24:10 or Z itself 23:24:11 either will do 23:24:15 then it forgets about Z 23:24:17 elliott_: Yeah, you run into synchronisation issues with the garbage collector there. 23:24:22 ais523: I think that cross-network pointers are weak references by definition 23:24:25 -!- madbr has joined. 23:24:28 elliott_: ah, OK 23:24:29 ais523: but, umm, if they're not: 23:24:32 that fits in with my thinking too 23:24:37 ais523: Obviously X stores all the people waiting to get Z 23:24:42 in that the language should only allow you to express operations that make physical sense 23:24:49 ais523: If pointers just expire after a certain amount of time, then that gets removed 23:24:51 And those all count as references 23:24:52 X storing all the people waiting to get Z is very vulnerable to denial-of-service 23:24:57 yes, true 23:25:00 but 23:25:02 it has to anyway 23:25:02 and bringing time into the matter seems really awkward and un@like 23:25:05 so that it knows the generated keys 23:25:11 and their public keys 23:25:15 shouldn't /Z/ be storing that info? 23:25:28 umm, I'm mixing up machines and objects 23:25:32 can you switch to the machine/object notation for objects? 23:25:36 and restaet things? 23:25:44 specifically 23:25:44 e.g. X wants to pass a copy of Z to Y 23:25:44 or Z itself 23:25:44 either will do 23:25:44 then it forgets about Z 23:25:55 B/Z, B/X, A/Y 23:26:00 note that if I could avoid using TCP, the machine part is irrelevant 23:26:02 but I can't really 23:26:06 and "it" = "then X forgets about Z" 23:26:15 ais523: umm, so 23:26:18 also, UDP sounds like a better fit for what you're doing 23:26:22 e.g. B/X wants to pass a copy of B/Z to A/Y 23:26:24 or B/Z itself 23:26:25 either will do 23:26:31 yep 23:26:33 then B/X forgets about B/Z 23:26:36 yep 23:26:51 ais523: forgets as in, B/X pops out of the call frame that looked up B/Z from a hash table, and now it holds no reference? 23:26:52 for instance 23:27:05 (I was going to say "sets the variable holding B/Z to null", but, haha, functional) 23:27:09 elliott_: yes, for instance 23:27:15 or "the variable holding B/Z goes out of scope" 23:27:20 which works both functionally and imperatively 23:27:28 Right 23:27:30 also, UDP sounds like a better fit for what you're doing 23:27:32 Agreed, possibly 23:27:35 ais523: Hmm 23:27:51 ais523: And we assume that the only thing with a reference to B/Z locally is B/X? 23:27:54 yes 23:27:55 So that when it goes out of scope, B/Z is (locally) garbage 23:27:58 yep 23:28:18 I think using weak pointers is the best solution here 23:28:28 well, weak references 23:28:34 ais523: Well, B (the operating system) holds a table of all (generated public key, receiving machine's public key) waiting to receive Z 23:28:37 "pointer" carries extra baggage I'm not happy with in this ontext 23:28:41 And those can count as references 23:28:44 Those have to expire anyway 23:28:49 So time is unavoidably a factor 23:28:53 elliott_: and expires them if the other side is being slow? 23:28:57 Yeah. 23:28:58 fair enough, I think 23:29:02 I think they count as references without any special support 23:29:09 Just use a tuple database or whatever 23:29:17 And store (Z, gen_pubkey, recv_pubkey) 23:29:29 ais523: hmm, wait 23:29:55 ais523: B/X can cheat A/Y out of B/Z 23:29:59 oh wait, B/X can lie to A/Y anyway 23:30:02 by just sending a junk reference 23:30:06 yep, it's allowed to 23:30:09 right 23:30:12 because it was A/Y that asked it for the reference 23:30:22 I was thinking it could snap up B/Z before A/Y does, because it knows the private key used 23:30:25 but that's okay 23:30:26 B/Z can also cheat A/Y out of itself, but arguably, in that case it was lying to B/X 23:30:35 indeed 23:30:58 OK, I think this is a workable and secure model, albeit a very slow and memory-hogging one (every object needs a key!) 23:31:06 But optimising it can come later 23:31:25 objects need keys only if something's trying to pass them over the network 23:31:38 I hope your computers have thermal noise diodes in, btw, or they're going to run out of entropy pretty quickly 23:31:44 haha 23:31:52 Well, I think I can avoid explicitly using GPG keys or whatever 23:31:55 I'm not sure how, though 23:31:57 [asterisk]PGP 23:32:07 ais523: most ISPs filter out traffic that is invalid TCP and UDP, right? hmm, wait, it's irrelevant, nobody will be a @protocol router anyway 23:32:14 so I have to layer this on top of... probably UDP, lower overhead 23:32:34 ais523: unfortunately, what I would like is not even valid IP -- I would like to remove the source field, as it's irrelevant 23:32:42 elliott_: it's not so much "filter out", but routers are generally told not to forward things they don't understand 23:32:44 So is the destination field, but it helps for routing. :p 23:32:58 so you'll send the message and it just won't be routed 23:33:02 ais523: right 23:33:13 you can just ignore the source header, IIRC it can be faked anyway 23:33:21 it wastes four bytes :( 23:33:29 your objects contain keys 23:33:34 they'll be way longer than four bytes 23:33:41 ermm, define keys 23:33:43 you mean their identifier? 23:33:52 no, the private keys you were referring to earlier 23:33:54 With this model, you don't actually need objects to have any global name at all 23:34:01 ais523: oh, well right, like I said I'm optimising that :P 23:34:07 ais523: for instance, you can send all of an object's dependencies in one go 23:34:14 rather than opening a communication channel for each 23:34:36 ais523: Ideally, I would just hook up the entire world to one big Ethernet cable, and everyone would see everyone's packets, and computers would process every one of them, and only respond to the ones it can decrypt 23:34:41 but that seems rather unlikely 23:35:15 I think routing to particular destinations will save you processor time in trying to decrypt things you don't have the key for 23:35:17 I think ais523's question messed with my head 23:35:19 Good job 23:35:21 which is a really useful optimisation 23:35:26 Sgeo_: which question? 23:35:30 ais523: indeed 23:35:39 ais523: the question is how to abstract it entirely from the user 23:35:42 elliott_, about whether he could persuade me not to buy a Sony ereader for no reason 23:35:57 Sgeo_: oh wow, I'm totally going to logread 23:36:06 Sgeo_, about when in the logs? 23:36:11 Earlier today 23:36:14 elliott_: I asked if (I could persuade Sgeo_ to boycott Sony without telling him the reason) 23:36:43 (sorry about the parens, I couldn't figure out how else to make the sentence unambiguous) 23:36:47 ais523: Sgeo_ is pro at understanding 23:37:04 the question wasn't a request for him to boycott Sony; it was a question about whether I could persuade him to 23:37:04 10:31:59 Sgeo_: can I persuade you to mindlessly boycott Sony without telling you why? <-- ah I found it 23:37:11 I take it Sgeo_ is avoiding the Kindle because he's a hipster 23:37:19 if he's considering Sony products it can't be for ethics 23:37:33 elliott_, I'm actually considering getting a Kindle now, but not a current Kindle 23:37:36 elliott_: shush, you'll let him know why he's supposed to boycott Sony! 23:37:47 ais523: umm, but I just realised I don't completely recall myself 23:37:59 ais523: I have this tendency to remember opinions and drop their justifications to save storage space; this is probably dangerous 23:38:02 heh 23:38:20 I think sony uh 23:38:21 did some stuff 23:38:22 yeah 23:38:28 I remember that when Sony did their most recent thing that got people to boycott them, there were lots of people saying that they would boycott them except that they were boycotting them already 23:38:34 and couldn't boycott further 23:38:34 * elliott_ appends list to things he needs to master to create @: networking 23:38:39 and oh dear, I hate networking 23:38:41 The rootkit stuff was in 2005, right? And as far as security is concerned, I could just not buy from the Sony eBookstore 23:38:44 *appends to list of things 23:38:45 networking...:( 23:39:00 ais523: oops, yes 23:39:04 it's a set, anyway, not a list 23:39:07 the list is named "things he needs to master to create @" 23:39:11 and, hmm, good point 23:39:19 can you append to a set? 23:39:25 no, only insert 23:39:33 10:51:58 I actually got quite good at doing chirps, and I'm not entirely sure why <-- you need to record and upload that 23:39:37 you can probably append to a set in PHP 23:39:48 Vorpal: the word has a technical meaning 23:39:53 ais523: The thing with this networking model is that I'm not sure what it looks like inside the OS itself... 23:39:57 ais523, oh... right 23:40:19 ais523: I'm sceptical of anything which presents a remote object as the same kind of thing as a local one, because it can take a lot longer to access 23:40:26 ais523, so it was a terrible pun in the context? 23:40:28 (not being able to access it at all isn't an issue here because of the new model) 23:40:47 ais523: At the same time, it's hard to unify local and remote objects without... unifying them 23:41:30 22:58:39: Oh. Fuck. 23:41:31 22:58:51: So, the Treasury has the authority to mint coins of arbitrary designation. 23:41:31 22:59:10: We could remain "solvent" by having them mint a $2 trillion coin. And deposit it in the Fed. 23:41:31 22:59:25: And have a nice, tidy hyperinflation problem. 23:41:34 oh my god i want to see that coin 23:41:54 I'm not at all convinced that unifying remote/local is useful, mostly because I'm generally offline 23:42:07 pikhq: are they restricted in the number of coins they can mint? or the total value of the coins they can mint? 23:42:10 I'm generally offline when I'm on my laptop 23:42:17 elliott_: Won't it simply not matter if they are unified? If I want some object, I'm going to need to create it or get it from somewhere. Both have a (practically) predictable cost. 23:42:17 because university wlan is so shitty :P 23:42:28 ais523: No. 23:42:33 ais523: Well, with all due respect, I find your opinions on the matter of the internet to be... outdated. :) 23:42:42 ais523: They have permission to mint. However much they want. 23:42:47 ais523: Not that @ won't be useful for you, but the internet is pretty important to @. 23:43:02 elliott_: Can you give a specific example of a case where a developer would be trying to access a known object that is definitely remote without knowledge that it is? 23:43:06 evincar: one second 23:43:09 I need to reply to ais523 :P 23:43:20 pikhq: so presumably the reason why you mint one G$2 coin rather than a trillion $2 coins is just one of practicality? 23:43:26 ais523: Yes. 23:44:02 ais523: I read an interesting interview (I think (i.e. I think it was an interview)) with the creator of HyperCard where he recounted that the reason HyperCard didn't become the web is because at Apple, they did things by thinking about an individual computer as the "whole thing", and added networking on as a very separate, disconnected component; later on, he was at Sun, and when they drew diagrams, they drew the networking lines before the actual co 23:44:02 mputers 23:44:11 Of course it's more a nice image than an intellectual breakthrough. 23:44:27 But I do think "every computer a fortress" is clearly the wrong way to go about things by now. 23:44:36 (Note: I don't like the Cloud(tm).) 23:44:55 elliott_: Won't it simply not matter if they are unified? If I want some object, I'm going to need to create it or get it from somewhere. Both have a (practically) predictable cost. 23:45:00 It's hard to say you want "some object". 23:45:24 In fact I'm not even sure how you go about retrieving objects with this new model; you could start with a permanent socket, and hope that whoever selected your permanent socket selected something useful like @oogle 23:45:31 which will give you pointers to other objects 23:45:33 I'm really not sure 23:45:42 elliott_: Can you give a specific example of a case where a developer would be trying to access a known object that is definitely remote without knowledge that it is? 23:45:49 evincar: the problem is that you think the problem only applies to developers 23:45:53 all these details matter at the user-level too 23:46:02 when you hear "object" in @, that's not a system detail, that's something the user interacts with too 23:46:26 elliott_: Right, I should've used the hypernym. :P 23:47:02 But really, the user is in all likelihood going to know what they don't "have" locally and will have to "get", even if the "getting" is transparent. 23:47:17 evincar: Well, here's a "he's joking OR IS HE" answer based on current computers that I'm not sure applies to @ but hey why not: When you go to google.com, do you have to specify whether you mean the cached copy or the remote copy? 23:47:50 elliott_: I always *mean* the remote copy. Whether I get it is not up to me, though. 23:47:54 anyway, consider things like Plan 9's 9P, or sshfs, where you can mount remote computers and they appear as local filenames... but suddenly everything is awkward, because ls does a thousand stat calls and so takes a year to run on this medium-sized directory. 23:48:10 So that's a leaky abstraction. 23:48:28 Filesystem calls are meant to be reasonably fast (as far as hard drives go...); with a remote filesystem, they are decidedly not. 23:48:35 So the abstraction leaks, and it's questionable whether it was a good idea in the first place. 23:48:41 I want to avoid that with @. 23:48:56 anyway, consider things like Plan 9's 9P, or sshfs, where you can mount remote computers and they appear as local filenames... but suddenly everything is awkward, because ls does a thousand stat calls and so takes a year to run on this medium-sized directory. <-- sshfs is only useful over lan 23:49:09 I use it to easily move stuff over gbit ethernet 23:49:12 between laptop and desktop 23:49:14 elliott_: So you bundle filesystem calls to only be done locally, then sent remotely. Or something. 23:49:21 You can patch that leak. 23:49:25 elliott_, I never even tried sshfs to a remote server. that would be mad 23:49:29 Vorpal: [word meaning "I have no response"] 23:49:35 ais523: I invented yr word, see above 23:49:47 If it takes me 200ms to get a directory listing, that's still tolerable over a 2ms listing. 23:49:48 evincar: umm, @ has no filesystem 23:49:51 elliott_, how so? 23:50:01 Vorpal: what an infuriatingly unanswerable question 23:50:03 elliott_, I was just agreeing with you 23:50:06 evincar: and if I unify local and remote objects, there is nothing like bundling 23:50:13 Vorpal: that needs a response? 23:50:18 elliott_, no 23:50:23 Vorpal: then "how so?"? 23:50:25 elliott_, why did you try to answer it 23:50:42 elliott_: You mentioned filesystems first. @ still has the concept of objects that are had (well, whose ownership is shared) and objects that must be gotten. 23:50:47 Vorpal: [word meaning "I have no response"] <-- no one required your response 23:50:57 evincar: It does? 23:50:58 elliott_: Even if it's hidden, it's not going away. 23:51:08 Vorpal: you usually ping people repeatedly when they don't respond 23:51:32 err, do I? and how is thated related to this? 23:51:46 I usually do it when there are a lot of talking in the channel 23:51:51 Vorpal: Well, in my experience you do; and it's related because I was letting you know I'd read what you said 23:51:58 ah 23:52:21 -!- bsmntbombdood has quit (Quit: leaving). 23:52:31 evincar: The unification being discussed is in some ways about "hiding" that... can I just allocate you another week to explain @ like ais523 has had? :-P 23:52:52 I wanted to do constraint analysis in LLVM. I don't know if they have that. 23:53:57 elliott_: Heh, I guess I'll have to come back. And do some log-skimming. 23:54:27 There's about three years of logs where @ is mentioned, if you'd like to go on a binge :-P 23:55:20 elliott_, that is about 1.8 years worth of reading in total I estimate, probably 4 months of reading about @ 23:55:37 Vorpal: Surely less; "elliottOS" didn't come up very often 23:55:46 elliott_, several weeks at least 23:56:02 Dammit, elliott_, why didn't you pick a more searchable working title? >:| 23:56:15 evincar: you may enjoy codu's rsync service. 23:56:24 I suppose you can make up one library allowing access files and directories anyways even if there isn't any, in case you run a program that uses such things. 23:56:27 evincar: do !logs for more info :P 23:56:36 then grep for elliottOS\|ehirdOS\|@, I suppose 23:56:38 hmm 23:56:41 then grep for elliottOS\|ehirdOS\|\b@\b, I suppose 23:56:45 zzo38: indeed 23:57:19 elliott_, what was that nick starting with t that you used? 23:57:29 elliott_, I forgot 23:57:31 umm, I don't recall one starting with t 23:57:34 do you mean estoppel? 23:57:37 no 23:57:38 oh, tusho 23:57:42 yeah 23:57:48 elliott_, was it ever tushoOS? 23:57:51 guess not 23:57:52 I used that until I got tired of puns (mostly blaming augur) 23:57:56 Vorpal: I don't think so :P 23:58:02 elliott_, what puns? I forgot 23:58:04 elliott_: hello. 23:58:09 02:07:13: WHAT COULD POSSIBLY. BUT _POSSIBLY_. GO WRONG??????? 23:58:09 02:07:15: No. 23:58:09 :D 23:58:11 aieee 23:58:17 Vorpal: NO I HAVE WASHED MY HANDS AND ALSO AUGUR IS HERE. 23:58:23 elliott_, oh right 23:58:29 * augur grabs elliott_'s tusho 23:58:34 those kind of puns, Vorpal! 23:58:51 02:14:53: The person who formulated the Sanskrit language 23:58:51 02:15:38: essentially inventing something like BNF millennia before bachus-naur were born, afaiu 23:58:51 02:16:06: and, iirc, with a smattering of Perligata, except sanskrit rather than latin. 23:58:51 "millennia" -- are we talking about a programming language called Sanskrit, or Sanskrit itself? :D 23:58:57 ARE THEY THE SAME THING 23:59:22 And this is why I come here. 2011-07-30: 00:00:14 I'm going to rigidly hold the belief that I held for a few seconds there that Sanskrit-the-language was originally designed by one guy, who gave it a BNF-style syntax, millennia ago. 00:00:29 05:18:02: why is this channel so sleepy of late 00:00:29 05:18:12: only a few hours activity each day 00:00:38 quintopia: you're awake at the wrong times (the times I'm not awake) 00:00:52 elliott_ talks a lot. the life of the party. 00:00:58 05:32:44: Or otherwise i'd have banned Nthern for not responding to my messages. Grmle. 00:00:59 05:32:52: *Grmble. 00:00:59 tried to email him via the wiki? 00:01:21 monqy: yes i am the life. of the party 00:01:31 (diff) (hist) . . User talk:Billlam‎; 06:18 . . (-724) . . Billlam (Talk | contribs) (Removing all content from page) 00:01:38 STOP HARASSING MY LANGUAGE 00:01:44 my point exactly elliott 00:01:46 i dont like abcd 00:01:47 --Billliam, two thousand and eleven 00:01:55 youve only been active a few hours a day 00:01:59 monqy: it was revolver architect 00:01:59 and i didnt like revolver architect 00:02:02 am i ab ad person 00:02:05 so bad you told him about it 00:02:06 as opposed to all night 00:02:16 quintopia: You just have the wrong definition of "night" 00:02:36 http://esolangs.org/w/index.php?title=Subleq&curid=2021&diff=24073&oldid=22220 00:02:39 umm, this is wrong, right? 00:04:09 ian is still editing the elip page but hasn't replied on the talk page :( 00:04:10 -!- madbr has quit (Read error: Connection reset by peer). 00:05:41 07:39:28: and, for instance, almost all "regular" mathematical functions are computable by languages that only have loops that always terminate. Ackermann's function is not one of them. :) 00:05:43 atehwa: false 00:05:54 Ackermann's function is primitive-recursive if you have higher-order functions 00:06:05 atehwa: Computation in Coq always terminates, but you can define Ackermann easily in it 00:06:20 It's just not primitive recursive in the traditional sense, but primitive recursive is by no means the most powerful "always-terminating" class. 00:06:32 elliott_: if yoj arent up til 8am, you didnt talk all night 00:06:47 elliott_: Do all @ programs terminate? 00:07:21 evincar: Defiiiiiiiiiine proooooooooograaaaaaaaaaaaaaaaaaaaam ;D 00:07:28 -!- madbr has joined. 00:07:35 wow 00:07:36 quintopia: Oh. Well I have to sleep _sometimes_. 00:07:52 quintopia: Try being here on the other every other day as opposed to the current every other day you're here. 00:07:56 madbr: wow 00:08:15 The vfp (floating point unit) on the arm Cortex A8 (cpu used on a lot of iphones etc) isn't pipelined 00:08:24 ais523: http://irregularwebcomic.net/3105.html do you have one of the explanations for this, being an electronics engineer? 00:08:27 ais523: (annotation) 00:08:33 It's probably the worst FPU in the last 15 years :D 00:08:40 madbr: Well, yeah. Pipelining takes power. 00:08:45 madbr: Performance is not a priority. 00:08:52 (re 15:14:52: "EDIT: Thanks to everyone who wrote with an explanation, especially the electronics engineers. I now have about 11 different plausible explanations for this behaviour. Only 3 of which involve actual time warps. :-)) 00:09:13 elliott_: Something reducible to a Turing program or a lambda calculus expression? :| 00:09:19 -!- elliott_ has left ("Leaving"). 00:09:24 -!- elliott_ has joined. 00:09:25 oops 00:09:38 evincar: Would "evaluation of an expression" suit you? 00:09:49 elliott_: even though it's digital, the oscillator that actually keeps the time is analog 00:09:56 elliott_: Sure, whatever floats your semantic boat. 00:10:12 can you express an ion 00:10:14 elliott_, I have a elliottcraft suggestion 00:10:15 because all oscillator designs use analog information somewhere to get the time dependency in (digital has no time dependency, in theory) 00:10:23 evincar: Then no, they can fail to terminate. But maybe only inside a Partial monad? That is probably way too restrictive. So I think _|_ is still around. FOR NOW. 00:10:29 and it's obviously a design that's affected by being given the wrong voltage 00:10:40 ais523: Can't you just make a signal busyloop for a while to keep time? 00:10:50 That sounds like time-dependence to me. 00:10:50 elliott_, allow halfsteps and stairs out of almost any material. Set a flat for those where it is forbidden (like water or lava) 00:11:05 elliott_: that relies on analog information (to be precise, the slew rate of the signals, which is how long they take to change from something that reads as 0 to something that reads as 1 or vice versa) 00:11:08 Vorpal: Why not just cut the block in half 00:11:20 ais523: which can change? darn 00:11:37 elliott_: depending on voltage and temperature and a bunch of other things 00:11:38 elliott_, hm true, so you suggest using 1x1x0.5 blocks? 00:12:11 the usual way to get a stable oscillator is to use a quartz crystal's resonant frequency as something to count against 00:12:13 pikhq: it's like 10 cycles for an addition 00:12:16 Vorpal: No 00:12:22 Vorpal: Don't stack them, just cut less and less 00:12:25 because it'll tend to force any oscillation near its resonant frequency to that frequency 00:12:33 For instance you can have a zero point one slope by having a zero point one height block, zero point two, ... 00:12:48 elliott_, heh 00:12:50 pikhq: though tbh the A8 also has a SIMD unit that does floating point a lot faster 00:12:56 madbr: floating point is slow, news at eleven 00:12:57 elliott_, nice 00:13:19 elliot: I <3 floating point 00:13:20 elliott_, plan on doing that? 00:13:28 madbr: we all have our personal issues. 00:13:33 `addquote Speaking of the CiSRA puzzles, anyone want to form a team i avoid my duties by carefully never registering to anything new 00:13:36 Vorpal: Maybe :-P 00:13:37 546) Speaking of the CiSRA puzzles, anyone want to form a team i avoid my duties by carefully never registering to anything new 00:13:56 `addquote aibohphobia The fear of palindromes 00:13:58 547) aibohphobia The fear of palindromes 00:14:08 elliot: also floating point is still faster than spending all your cycles bitshifting and saturating your results 00:14:24 17:21:21: Dwarf Fortress science seems to be along the lines of "how can we trick the game into letting us do X implausible thing?" 00:14:24 17:21:47: If real-world science was like that I would be happy. 00:14:24 It isn't? 00:14:32 madbr: I don't talk to people who like floating point and spell my name incorrectly :( 00:14:42 Are there other programs that can do things similar to how rulebooks work in Inform 7? 00:14:48 how can you mistype elliott_ when tabcomplete exists? 00:14:59 also, I just tried to tabcomplete elliott_'s name with tab, no letters before it 00:14:59 elliot. Bam. 00:15:01 that must be a first 00:15:03 I don't like floating point much 00:15:08 ais523: and tried to emphasise with <>, too 00:15:10 (it didn't work, incidentally) 00:15:13 elliott_: err, good point 00:15:15 how did I do that/ 00:15:20 and used / to end a question 00:15:29 ais523: also, I talk often enough that just tabbing to complete my name might actually work 00:15:31 / to end a question is common for me, that's just missing shift 00:15:34 elliott_: heheh, you probably don't do sound code :D 00:15:41 zzo38: It's one of those things that, IMO, requires justification for. 00:15:42 it only works at the start of a line in this client 00:15:50 madbr: wow lol are you actually taking that personally 00:16:00 I generally do not use floating point. 00:16:06 but I don't know why I used <> for emphasis, I have no reason to do that and it makes no sense for me 00:16:16 floating point killed my family 00:16:16 zzo38: I use floating point on GPUs, because they're most efficient at it 00:16:19 Especially because it doesn't *quite* follow all the axioms people don't expect. 00:16:20 (single-precision float, that is) 00:16:37 I think even TeX uses floating point too much. 00:16:57 madbr: oh wait "sound" code 00:17:05 madbr: say audio :P 00:17:13 I thought you were accusing me of the heinous crime of inaccuracy 00:17:24 which is hilarious from someone defending floating point, which violates mathematical laws 00:17:27 well, unsoundness, not inaccuracy 00:17:47 madbr: Anyway, don't DSPs use fixed point? 00:18:23 DSPs are silly 00:18:29 but yeah 00:18:36 :o 00:18:40 DSPs are silly 00:18:43 really tempted to say "heheh, you probably don't do sound code :D"? 00:19:09 are you a dsp clown 00:19:42 who doesn't do sound code 00:19:47 17:27:34: " The concept of things smaller than monarch butterflies, however, has led to enormous controversy. Although, obviously, it would be hard to see something smaller than a butterfly, it should be possible to show that it exists because, just like butterflies, it would sometimes get stuck in doors and prevent them from closing." 00:19:47 best thing 00:19:48 well, yeah ok DSPs are nice but they're not on many platforms 00:20:01 17:29:43: Us lot, doing a bloodline game! 00:20:06 hmm, that was bizarre, terminal window froze for over a minute 00:20:09 I've never played DF for more than ten seconds. 00:20:11 So I'm in, naturally. 00:20:12 I clicked the close button, and it unfroze, without closing 00:20:20 I've never played for more than 2 seconds 00:20:23 elliott_, is there any system of storing numbers on a computer that _doesn't_ violate some mathematical laws? Although hmm, I guess limiting yourself to integers, and only doing operations that make sense on integers, or limiting yourself to rationals, and only doing operations... "closed"? on rationals, would work 00:20:25 I dunno if I'm in 00:20:38 What sort of IRL hardware has DSPs in them 00:20:38 Sgeo_: wjw 00:20:42 i guess i could learn through ruining your game 00:20:46 "wjw"? 00:20:58 Sgeo_: Actually, it's only really floats that fuck things up heavily. 00:20:59 madbr: maybe dsps? idk 00:21:12 Sgeo_: I was also considering "I...". 00:21:25 Is any other programs exists that does something similar to Inform 7 rulebooks? 00:21:32 I mean, unless you really think binary violates the laws of integers. 00:21:50 Surely, if you square root and then square some numbers represented as integer over integer, you might not get the same result back in all circumstances 00:21:51 Unsigned integers are nothing more than modular arithmetic, for instance. 00:21:52 madbr: anything that would plausibly need an ADC quite possibly uses a DSP as well 00:22:22 because it makes more sense to have a dedicated processor analyse its output than trying to get an ordinary processor to 00:22:23 ais: some soundcards etc do have them yes 00:22:26 Sgeo_: ... The same is true of the rationals. 00:22:50 Um.. wasn't I just talking about the rationals? 00:22:55 ais: most of the time they are walled from the user code or non standard so you have to do everything in software anyways 00:22:55 Surely, if you square root and then square some numbers represented as integer over integer, you might not get the same result back in all circumstances 00:23:02 how can you sqrt 00:23:04 what would it return 00:23:18 madbr: I've actually written DSP code 00:23:29 :o 00:23:29 Erm, but in math, you get a result that's not a rational sometimes. But in a computer system, you'd get an approximation, presumably 00:23:30 Ah, yeah, true, obvious issue is that sqrt is not defined on the rationals. Well. Typically. 00:23:36 in a project that followed the waterfall model almost to the letter, and it almost worked, too 00:23:49 One could define a sqrt function that is only defined on the rationals with a rational square root. 00:23:56 ais: for what sort of HW 00:24:05 the code worked fine in unit testing, but the entire project broke in integration testing 00:24:08 Sgeo_: you mean that if you approximate something, it isn't the same as the actual result? 00:24:10 /application 00:24:11 Sgeo_: sqrt :: Real -> Real. 00:24:12 Sgeo_: wow! 00:24:15 and it was something in the dsPIC line by Microchip 00:24:19 How would you represent Fermat's Last Theorem by using Typographical Number Theory? 00:24:19 Sgeo_: The Real type DNE on computers. 00:24:22 Any further question? 00:24:24 s 00:24:30 Sgeo_: sqrt :: Real -> Real. 00:24:31 we bought it for the ADC, and because it needed to do processing before passing the info to a computer for bandwidth reasons 00:24:42 pikhq: sqrt(-1) = ? :: Real 00:24:45 elliott_, what's the difference between that sort of approximation and the kind of junk that floating-point produces? 00:24:45 elliott_: Oversimplification. Sorry. 00:24:48 but really, we bought the one with the best ADC we could afford, and the DSP stuff there was less of a binding issue 00:24:59 elliott_: sqrt :: Complex -> Complex. Better? 00:25:18 (well. There's probably some notion of sqrt that's defined on some superset of the complex numbers, too...) 00:25:21 it was a pretty interesting approach to the project; instead of going superheterodyne, we used a fixed intermediate frequency and drove the filtering work onto the DSP 00:25:34 hm 00:25:45 there were three people who were meant to write the DSP code, but none of them did any work for half the project, so I had to do it by myself in the other half 00:25:51 `addphrasequote "instead of going superheterodyne" 00:25:52 No output. 00:26:10 "addphrasequote"? 00:26:10 `phrasequote 00:26:12 No output. 00:26:18 and how did it fail? 00:26:23 ais523: it doesn't exist, but I needed it 00:26:25 pikhq: But square root of a complex number still result in a complex number, so sqrt :: Complex -> Complex is still OK, I think. But there might be others as well 00:26:28 madbr: basically, all the individual parts worked 00:26:34 but when we connected them together, they didn't 00:26:41 crazy 00:26:47 in fact, I think any combination of two individual parts worked too 00:26:51 17:36:55: Actually, a good way to make a fort invasion-proof is to make the entrance be a "magma elevator", a 1-tile shaft filled with magma, that is kept from falling all the way down by a set of pumps. Since dwarves are not subject to temperature while falling, as it was proved on the Last Stand thread, your dorfs would fall through several levels of magma unharmed, while any flying foe that attempted to do the same would be burned 00:26:52 to a crisp 00:26:52 17:36:56: instantly. 00:26:52 :DDD 00:26:53 i love df 00:27:03 until we connected them all together at once, from then on the parts only worked individually and wouldn't work even in pairs 00:27:06 `addquote Sgeo_, the origin of suffering is desire for e-book readers. 00:27:08 548) Sgeo_, the origin of suffering is desire for e-book readers. 00:27:11 Maybe you can have sqrt :: Real -> Real too even though there is not always answer, it depends what kind of equations and stuff you are using, is the types! 00:27:23 I personally blame it all on a circuit board that the University manufactured for it itself 00:27:32 Property of something is a prime number or not, is for natural numbers only! 00:27:34 while I was at secondary school, I was allowed to make circuit boards myself without supervision 00:27:42 at University, I wasn't, and they did a shoddy and slow job of doing it themselves 00:28:09 ais523: why'd you capitalise University 00:28:17 abbreviation for its actual name? 00:28:26 rather than being used generically? 00:28:30 yep 00:28:31 University university 00:28:33 I was referring to one in particular 00:29:01 18:06:35: Imagine an unlit e-ink laptop, and one of those "shake and it produces enough energy for the LED" flashlights that you hold with the other hand. That thing would be so user-friendly, it's not even a thing. 00:29:02 18:07:24: fizzie, well, your average redditor wouldn't have a problem with the hand movement. 00:29:02 but we're better than them, and would _never_ descend to their level 00:29:14 18:09:55: * ais523 chirps in real life 00:29:14 18:10:06: charp 00:29:14 18:10:08: I actually got quite good at doing chirps, and I'm not entirely sure why 00:29:14 are you a bird irl 00:29:17 (no lying) 00:29:32 i'm now imagining a bird wondering why it got so good at chirps 00:29:39 heh 00:29:43 it does not know much about birds, it just happens to be one. 00:29:48 bird chirps don't quite fit the technical meaning, although they're close 00:29:52 isnects chyrp toor ight 00:29:57 monqy: osdjif 00:30:09 ais523, what is the technical meaning 00:30:10 Anyways, these days I'm doing Arm SIMD and it mostly obviates the need for any sort of DSP hardware 00:30:19 Vorpal: it's a sound that changes in frequency at a constant rate 00:30:20 19:15:45: I'm still reading that DF submarine thread 00:30:21 I think /r/dwarffortress is more fun to read than DF is to play 00:30:41 I still have it open and still haven't finished reading it 00:30:46 Afaik only the 3DS has a DSP and even then you can't program it 00:30:48 Vorpal: "sweep signal", apparently 00:30:56 ais523: oh, was that /r/df too? 00:31:01 Iphone's sound hardware is "fill this buffer" :D 00:31:03 elliott_: it's bay12forums 00:31:05 someone linked it earlier 00:31:21 19:50:07: ais523, if someone were to make a haskell based dsl for describing FPGA programs, would the clock skew through a circuit belong in the function type? 00:31:21 they already have. 00:32:55 ais523, ah 00:32:55 -!- madbr has quit (Read error: Connection reset by peer). 00:33:14 I think /r/dwarffortress is more fun to read than DF is to play <-- aww come on 00:33:15 :P 00:33:29 Vorpal: it's very fun to read 00:33:34 elliott_, hm okay 00:33:35 will check 00:34:49 21:12:03: Gah one thing about the client I use can't go back and see things I missed. Bah. 00:34:49 21:12:35: If I missit the first time it's gone. Meh, screen reader. 00:34:49 21:13:00: that sounds like the shittiest client ever 00:34:58 VORPAL YOU ARE FOOLING NOBOD- 00:35:01 21:13:34: it sounds like Vorpal's client 00:35:02 ...Y 00:35:35 21:14:44: you could look at the logs. 00:35:35 21:15:06: oh, I see, it's an accessibility problem 00:35:35 21:15:06: I don't think this one makes them and if it does not sure where... But good itea there. 00:35:39 elliott_, I like the "Urist Mc" touch to the nicks 00:35:39 Adaria: this channel has public logs available online 00:35:43 21:15:20: this channel is publicly logged. 00:35:43 21:15:24: link in the topic 00:35:43 oh 00:36:12 21:29:56: So, this room had a cunfusing room desc on it, what usually goes on in here? 00:36:26 I am glad that at least one person has had the experience of having our current topic read out to them by a computer 00:36:41 elliott_: It must have been a sublime experience. 00:36:45 the artform of the topic has been elevated to even greater heights; now they are causing computers to confuse their users verbally 00:36:54 elliott_: I had a dream 00:37:10 In this dream, you and I worked together to create the ultimate esoteric programming language 00:37:18 Like having Douglas Adams read to you by a schizophrenic while you are on acid. 00:37:27 "We shall call it... Haskell." 00:37:30 where esoteric is defined as 'no person in their right mind would ever use this for real code' 00:37:40 It was an unholy fusion of PHP and Java 00:37:44 Is there landline telephone service with extra features such as: tell your telephone number in voice, tell your telephone number in DTMF, change session parameters, turn on/off single call mode, require red box tones to call out, add annotations to the telephone bill, etc 00:37:47 I know those languages more than I want to 00:37:53 s/Haskell/$any_research_language/e 00:37:56 21:31:28: This server has SO many rooms though it's insane. 00:37:57 please tell me you did /list on freenode 00:38:03 evincar: Haskell's not a research language :P 00:38:07 elliott_: It was. 00:38:08 please tell me you did /list on freenode 00:38:10 while using a screen reader 00:38:11 evincar: true 00:38:26 elliott_: wow, I hadn't even realised that implication 00:38:34 Such as, you can push something it makes it act like a payphone until you hang up your end 00:38:35 and /list only actually lists a small fraction, because most channels are +s 00:38:45 please tell me you at least used alis 00:38:46 ais523: it was probably a GUI list control that you can scroll through and search, I imagine 00:38:49 but it would still be amazing 00:39:02 * elliott_ does /list for the fun of it 00:39:35 21:36:16: Adaria: So are you visually impaired, or do you just feel like using a screen reader? 00:39:50 that's the most awesome question I've seen in here for a while 00:39:56 I have occasionally felt jealous of blind people for being able to use edbrowse without getting sick of it and switching to more graphical programs 00:40:05 -!- madbr has joined. 00:40:29 21:35:23: Female here but I use guy as androgenous too. 00:40:29 21:36:55: Imagine an adrogenous specific pronoun 00:40:29 YOU'RE MAKING IT EVEN LESS OF A WORD THAN THE ORIGINAL TYPO 00:40:50 21:37:31: To me, "it" is that's more of non-human 00:40:51 Also this isn't a sentence, but I note that some people's preferred pronoun is "it" 00:41:14 21:39:30: May be getting an IRC client for my phone. iPhone, some love it, others hate it but to me it is truly a lifeline. 00:41:14 Man, I don't want to sound insensitive or an idiot... but how the hell do you use an iPhone blind? 00:41:44 Is there some mode that says what you just tapped and you have to double-tap them to really activate it or someting? 00:41:47 something 00:42:06 oh, I caught up already 00:42:22 elliott_: Haha, inadvertent Pidgin. :P 00:42:30 evincar: wat? 00:42:44 chirp 00:42:48 elliott_: "someting". But I imagine the mobile accessibility experience is universally shitty. 00:42:48 ais523: btw, the reason I pinged you was that I often wake my laptop up from sleep and have to reconnect my IRC client 00:42:55 since the network connection dropped 00:43:03 evincar: oh, I thought you meant the IM client because of the capitalisation... 00:43:05 yep, it's just that I thought a /ctcp ping would work well enough 00:43:15 it's what I do on flaky connections 00:43:16 all the time 00:43:17 ais523: I usually use /topic 00:43:18 but nobody else notices 00:43:31 if I did elliott_: ping every time, you'd get annoyed very quickly 00:43:42 ais523: but I was disoriented since I'd just got on my computer (THIS TOTALLY HAPPENS TO ME OK) so I just decided to panic and resort to a real person 00:43:53 also, please do, I'm going to be paranoid about whether you're pinging me or not all the time now :D 00:44:13 elliott_: pong 00:44:22 monqy: pang 00:44:23 If I need to check the connection usually I will just do PING ME although sometimes I want to check the connection with other servers too, the PING command can do that. 00:44:31 if I remember, and you're online (which is rare when I'm on a flaky connection, as that's normally during normal person hours), I will 00:44:55 The server responds PONG. 00:45:06 thanks server 00:45:29 ais523: I am offended by this "normal person hours" remark as it is upsettingly accurate 00:45:43 zzo38: my client doesn't show PONGs from the server 00:45:54 i wish my hours were weirder 00:46:02 I hate afternoons and want them to vanish 00:46:29 ais523: O, then, OK. Why is that? My client does show PONGs from the server. It doesn't, however, show PINGs from the server (unless AUTOPONG is turned off) 00:46:36 monqy: wtf 00:46:40 monqy: but you like mornings? 00:46:47 mornings are less bad 00:46:49 ais523: I can just do /ping and it appears in the server tab 00:46:51 monqy: r u srs 00:46:55 What is the reason for not showing PONGs from the server? 00:47:07 monqy: try waking up in the afternoons, it is the best way to realise how awesome afternoons are 00:47:15 afternoons are hot and awful. sometimes mornings are nice and foggy. 00:47:19 ais523: do you _still_ use Konversation? 00:47:19 elliott_: doing /ping on Konversation attempts to CTCP PING the null string (which obviously doesn't work, but I do get an error message back that's usable as a pong) 00:47:25 monqy: do you live in texas or something... wait no fog 00:47:28 and doing /quote ping gives no visible response 00:47:30 and yes 00:47:36 in England, early afternoon is the nicest weather of the day 00:47:37 i have trouble thinking in afternoons. mornings are better. 00:47:37 IMO 00:47:43 why, has it suddenly become worse over time or something? 00:47:47 nights are best though 00:47:47 or do you just expect me to experiment more? 00:47:50 monqy: that's just because you're meant to have a siesta at midday 00:48:03 I suppose the various IRC clients are different in many ways, some do one thing different and others do problem to different thing 00:48:07 monqy: if you wake up at midday, there's no problem :P 00:48:11 monqy: (wrt not being able to think) 00:48:12 ais523: well, KDE four... 00:48:13 Which is one reason why Free Software is good idea. 00:48:13 elliott_: I seriously dislike heat 00:48:27 ais523: like, any sort of heat at all? 00:48:31 elliott_: Konversation's only visible response to that was getting confused and spouting errors about SQL 00:48:37 I find the summer mornings to be way too hot, but afternoon summer weather is nice 00:48:39 elliott_: I dislike the temperature being above average 00:48:44 Define average 00:48:46 which it is quite a lot, unfortunately 00:48:56 and, it's an approximate average which is somewhere near both the median and mean 00:49:06 Celsius value = 00:49:08 (~=) 00:49:15 probably about 20 00:49:20 probably less 00:49:32 meanwhile, I don't start feeling cold until about -6 or so 00:49:38 you may be a lizard 00:49:41 also, even outside? 00:49:45 yes 00:49:50 i may be a lizared too.//? 00:49:54 I once went out in only a T-shirt at -15 00:50:00 although I did notice I'd done so afterwards 00:50:03 ais523: that's probably bad for you... 00:50:05 (T-shirt and suitable other clothes, that is) 00:50:08 elliott_: yes 00:50:20 in future, I shall probably have to make sure it at least has long sleeves 00:50:33 ais523: you may want to consider starting a wonderful career in Finland. somewhere north of Helsinki, say. 00:50:33 also, I bought a fleece for that sort of occasion, and wear it when the temperature goes much below -5 nowadays 00:50:34 :p 00:50:35 Or Russia. 00:50:36 which is, umm, not very often 00:51:03 -!- Adaria has quit (Quit: Miranda IM! Smaller, Faster, Easier. http://miranda-im.org). 00:51:12 I have trouble with about twenty-five Celsius and above 00:51:21 but I suspect that's mostly lack of familiarity with the temperature 00:51:38 I really dislike rain and snow, though, plus any temperature cold enough to need more than a tshirt to be comfortable in 00:51:47 which is a much higher value than ais523's 00:51:50 whenever the temperature is higher than I'd like it I get headaches and dizziness and can't think 00:51:56 I like some sorts of rain, and dislike others 00:52:02 monqy: are you in lizard texas 00:52:12 and am mostly OK with snow on the ground, but it's annoying while it's falling 00:52:21 texas would be hell for me 00:52:31 apparenlty i live in nice weather land but I'd prefer it colder 00:52:45 by apparently I mean 00:52:48 monqy: are you avoiding letting me know where you live because i'm stalker 00:52:49 according to peo;le who are not me 00:52:54 because im probably not stalker (maybe) 00:52:55 perhaps 00:53:38 hey, fizzie probably knows this, but other people might too: if a program segfaults due to trying to write to readonly memory, and you handle the segfault with a signal handler and return from it, what happens on Linux? (i.e. does it attempt to repeat the write or move onto the next command or what?) 00:54:08 lol, Fox News are still calling the Norway terrorist attack islamic 00:54:19 elliott_: seriously? 00:54:23 it was anti-islamic 00:54:34 ais523: well, they're saying that Scandinavia is, umm, turning a blind eye to "Islamic terrorism" or something 00:54:48 it's Fox News via translated Norwegian, so it makes slightly less sense than fungot 00:54:48 also, random fact I discovered from the whole thing (that I've said in-channel before but you weren't in here): Norway has a smaller population than London 00:54:49 elliott_: for the material being stored does not exceed 50%, unless another rule specifies that the entity in 00:54:49 elliott_: That's surprising for the least 00:55:10 ais: A few million right? 00:55:10 madbr: hmm, what's your native language? I suspect that's an idiom that sounds really weird in English 00:55:13 ais523: I don't think there's any kind of repeating in signal handlers 00:55:27 eliott: french 00:55:28 elliott_: yep, but it depends on where the IP ends up after all that 00:55:31 ais523: as in, I'm pretty sure if you just carry on, you just carry on, not restart everything 00:55:32 and there's nowhere obvious for it to be 00:55:35 madbr: does your client honestly not have tab completion? :-P 00:55:40 it does 00:55:45 but I don't use it :o 00:55:50 ais523: ON ERROR RESUME NEXT? 00:55:52 :o 00:55:55 evincar: heh 00:55:55 ais523: well, ... TIAS? 00:56:00 ON ERROR RETURN -516 00:56:02 ais523: I know you can use segfaults to allocate memory 00:56:04 e.g. for brainfuck 00:56:06 elliott_: I might, I was just wondering if someone knew 00:56:11 But I suspect that involves manually jumping to the right place 00:56:16 it's a little complex to set up a test case and even more complex to work out what the results mean 00:56:29 and it's undefined behaviour, so the docs don't help 00:56:41 elliott: haha wow that's an interesting allocation scheme 00:56:56 int [ast]foo = gimmereadonly(); printf("abc\n"); foo[0] = 9; printf("def [percent]d\n", foo[0]); 00:56:59 ais523: caret 00:56:59 and also batshit insane :D 00:57:00 it's similar to what the kernel does, just more manual 00:57:11 madbr: it's not really, it's exactly how the kernel/MMU does paging 00:57:30 elliott_: you need the signal handler too, which would need to, umm, unprotect the memory in question? 00:57:42 ais523: mprotect 00:57:46 yep 00:57:53 is that even signal-safe, incidentally? (/me checks) 00:58:04 sighandler(){mprotect(foo, size_of_data, PROT_READ|PROT_WRITE);} 00:58:13 ais523: but I'm not sure how interpreting the results is hard 00:58:17 if you get 00:58:18 although this is me, deliberately invoking UB with a signal handler and checking if everything I call in it is signal-safe anyway 00:58:20 abc 00:58:21 def 9 00:58:26 then it retries the memory access 00:58:27 if you get 00:58:28 abc 00:58:31 def 0 00:58:35 then it doesn't 00:58:38 assuming the memory starts out zeroed 00:58:39 (just use mmap) 00:58:48 mmap /dev/zero ensures it starts out zeroed 00:58:48 if you get something else, your test case is broken 00:58:55 ais523: well, UB is perfectly OK in the context of a known compiler and OS 00:59:01 you're just not coding C any more, that's all 00:59:02 and luckily, /dev/zero is writable, although writes to it don't do anything 00:59:11 I have known OS and arch, but I'm trying to avoid known compiler 00:59:17 ais523: umm, heard of MAP_PRIVATE? 00:59:18 that's COW 00:59:35 avoiding known compiler is impossible with UB 00:59:35 ais523: It's UB for the SIG_SEGV handler to return. 00:59:36 I know 00:59:46 pikhq: It's not UB 00:59:48 This isn't C 00:59:50 pikhq: I know, I was just wondering if it actually did something useful in practice 00:59:53 Well 00:59:56 I suppose it's POSIX, so fair enough 01:00:03 "If and when the function returns, if the value of sig was SIGFPE, SIGILL, or SIGSEGV or any other implementation-defined value corresponding to a computational exception, the behavior is undefined." 01:00:03 ais523: Useful enough that there exists a brainfuck interpreter doing it, at least 01:00:08 ais523: Want me to dig up its source code? 01:00:13 does it return or longjmp? 01:00:15 but yes, anyway 01:00:27 So, yes, it is undefined behavior. 01:00:36 ais523: http://cvs.savannah.gnu.org/viewvc/libbf/?root=libbf... it's one of these (from http://savannah.nongnu.org/projects/libbf) 01:00:41 One of the interpreters 01:00:42 * ais523 looks 01:00:51 http://cvs.savannah.gnu.org/viewvc/libbf/libbf_interpreter_dynalloc.c?revision=1.3&root=libbf&view=markup 01:00:52 this looks like it 01:01:01 EXCEPTION_DISPOSITION libbf_interpreter_dynalloc_handler_win32(struct _EXCEPTION_RECORD *exception_record, 01:01:01 /* If the exception is an access violation */ 01:01:01 if (exception_record->ExceptionCode == EXCEPTION_ACCESS_VIOLATION && 01:01:01 exception_record->NumberParameters >= 2) 01:01:04 there's a POSIX version too 01:01:05 in that file 01:01:15 bleh, if I was using @, I could just grep that repo 01:01:23 ais523: if you were using CVS, you could too 01:01:26 -!- TeruFSX has quit (Ping timeout: 250 seconds). 01:01:30 cvs -z3 -d:pserver:anonymous@cvs.savannah.nongnu.org:/sources/libbf co 01:01:46 but that requires a local copy of the code 01:02:00 I suppose I could do it in /tmp or somewhere 01:02:00 ais523: who says another @ machine will perform a search for you? 01:02:07 your browser is downloading the pages, too :P 01:02:14 only the pages I actually look at 01:02:18 Just make a ~/tmp or something 01:02:42 why would that be better than /tmp? 01:02:53 ais523: not world-readable 01:02:56 /tmp is all mine on this system, there are only two loginable users and only one corresponds to a human 01:02:57 assuming your home directory isn't 01:03:02 heh, what is the other? 01:03:04 and my home dir is world-readable 01:03:07 the other's nhadmin 01:03:17 because /dev/null's code requires a user to exist with that name 01:03:22 and having it loginable was useful for testing its code 01:03:41 elliott_: Oh yeah, how does an @ machine treat non-@ machines? Are they whole opaque objects? Moreover, are objects turtles all the way down? 01:03:44 on my previous laptop, I also had a few user accounts for running specific programs I didn't trust 01:03:52 evincar: what's a machine 01:04:04 relying on the permissions system to mostly-sandbox them from doing anything too crazy 01:04:13 elliott_: A machine is an opaque thingamajig that DO NOT WANT to talk to @. Go. 01:04:23 evincar: i mean if you mean "can i make raw tcp/ip connections", then sure, if you have the permissions for it 01:05:00 ais523: if I'm an IP, how do I find my user page on Wikipedia? 01:05:05 or, my contributions will do 01:05:07 Special:Mytalk 01:05:10 is the user talk page 01:05:15 thanks 01:05:20 then you can find contributions or user page from there 01:05:29 it's what I use to quickly check what my externally visible IP is 01:05:54 I also use Wikipedia talkpages to do things like reverse DNS checks and to check to see if IPs are on known blacklists 01:06:15 they're meant for gauging rangeblocks on Wikipedia, but it works just as well for gauging rangeblocks on Esolang 01:06:37 -!- MDude has quit (Ping timeout: 250 seconds). 01:06:50 I also use Wikipedia talkpages to do things like reverse DNS checks and to check to see if IPs are on known blacklists <-- huh? 01:07:07 oh you mean spam 01:07:18 mostly useful for spam, but not always 01:07:35 ais523, have you bought the indie bundle 3 btw? 01:07:37 I've been known to rDNS and geoIP people I talk to over IRC when they left their IP visible 01:07:41 Vorpal: no, but I'm wondering about it 01:07:47 there are pretty few commercial games for Linux 01:07:50 ais523, I quite like it. 01:08:02 mostly interesting physics games 01:08:18 I've seen enough of VVVVVV, at least, to know I wouldn't pay full price for it, but might pay a smallish amount of money 01:08:18 ais523: here's my datapoint for you: 01:08:29 I blame cogs and hammerfight not working on ATI graphics 01:08:31 I think if I do buy the bundle, I'll pay about £5 for it 01:08:44 ais523: some of them are only .tar.gz with .bin installers (shell scripts or executables, presumably), but a lot of them are offered as .debs, and some for sixty-four bit, too 01:08:45 because that's about what it's worth to me 01:08:48 ais523: there are also some .rpms 01:08:56 ais523: well 01:09:00 ais523: that's the second bundle 01:09:06 what about just installing to homedir? 01:09:08 I haven't downloaded the third but presumably it's similar 01:09:15 ais523: that involves using the .bin installer, presumably 01:09:18 did you pay for it, btw? 01:09:20 possibly in a chroot 01:09:25 ais523: I was gifted it 01:09:28 it's hard to tell what a random executable file installer will do 01:09:31 ais523: I am considering buying the third 01:09:32 elliott_, all are .tar.gz except two which are .bin installers. One is available as 64-bit and also as deb 01:09:34 iirc 01:09:39 ais523: Yes, it is, but Humble Bundle is a pretty good mark of assurance 01:09:45 I know 01:09:52 I mean, what sort of settings does it take to tell it where to install? 01:10:02 is there even a command line option that gives help on options rather than installing, and if so, what is it? 01:10:08 ais523: well, run it in a chroot and see 01:10:08 ais523, only two needed installing, those installed just fine to home dir 01:10:09 or as a different user 01:10:21 as non-root would make sense, I didn't think of that for some reason 01:10:22 ais523, and they use graphical installers 01:10:26 I suspect it wouldn't work inside fakeroot 01:10:38 ais523, I bought this bundle, so I know more about it than elliott_ 01:10:39 :P 01:10:43 also, DRM-free implies you can install as many times as you want on your own computer, presumably 01:10:43 I played one iteration of Crayon Physics at one point and found it amusing but not that fun; fizzie likes VVVVVVVVVVVVVVvvvvvvvvvvvVVVVVVVVvvvvv so it's OBVIOUSLY AWESOME BY DEFINITION 01:10:48 ais523, indeed 01:10:53 ais523, on all your computers 01:10:56 Deewiant likes Hammerfight so it PROBABLY SUCKS and I haven't heard of And Yet it Moves or Cogs. 01:10:58 elliott_: VVVVVV is mildly awesome, and fun to watch, but a little short 01:11:05 also a little unpronounceable 01:11:11 ais523: The downloads are also available in BitTorrent form 01:11:16 elliott_, VVVVVV is utterly hard, require lightning reflexes 01:11:20 meh, I'd prefer HTTP 01:11:22 Vorpal: So easy, then 01:11:26 ais523: And you can download them any number of times, you get a special download link in an email 01:11:31 elliott_, if you have them, sure 01:11:41 ais523: They also have Steam codes and stuff that you can press a button to get, but you probably don't care about that 01:11:43 elliott_, And Yet It Moves is quite fun. You rotate the the world around you basically 01:11:56 Vorpal: I have terrible reflexes but come on, you probably think that about every platformer game 01:12:14 elliott_, no. This is early-nintendo hard 01:12:14 elliott_: VVVVVV is pretty reflexy as platformers go, when it isn't pixel-pefect-jumpy instead 01:12:20 elliott_, NES era nintendo or so 01:12:29 ais523, yes indeed 01:12:36 ais523: oh well, it sounds fun 01:12:41 Vorpal, hmm, I think I played a flash game once that involved rotating the world around you 01:12:43 I suspect it is 01:12:48 * Sgeo_ goes to download And Yet It Moves 01:13:00 Sgeo_, you bought bundle 3? 01:13:00 ais523: haha, it comes with a demo of Minecraft until August 01:13:02 the thing is, it doesn't feel unfinished, but it feels like they should have been developing it longer before finishing it 01:13:07 Vorpal, yes 01:13:11 elliott_, yes that appeared like yesterday 01:13:15 elliott_: perhaps I should wait until August before downloading it, then 01:13:24 ais523: you sure do hate Minecraft 01:13:29 Vorpal, hmm, I think I played a flash game once that involved rotating the world around you 01:13:30 Dot Action [two] 01:13:36 the green blocks did that 01:13:36 elliott_: I do 01:13:41 all games are basically pale imitations of Dot Action 01:13:42 ais523, it is until August 14 iirc 01:13:45 elliott_, that's not the one I was thinking of, but sure 01:13:47 ais523, and the bundle ends before that 01:13:51 bleh 01:13:56 ais523: I can't really tell why, is it just the Inception effect? 01:14:08 when does the bundle end? I sort-of assumed I'd be able to buy it indefinitely 01:14:14 ten days 01:14:34 elliott_: partly that, partly the reason that I don't get why people should like it, it feels rather deficient as a game 01:14:34 ais523, then you can download it forever, but you can't buy it after that 01:14:43 Vorpal: legally? 01:15:00 ais523: It's a flawed game in and of itself, Notch is incompetent, and the auth pseudo-DRM system is inefficient, but it's a fun game, and a creative one, certainly worth the twenty bucks it currently costs (but not the forty bucks it will cost, unless it improves massively) 01:15:04 ais523, yes you get a code that you can use whenever you like as far as I understood to download it 01:15:31 ais523: It's true that it gives you no "goal" to play for, but then you could argue that any game where people play for something other than to complete it at all costs is like that 01:15:33 elliott_, bucks being? 01:15:36 oh, I thought you meant people who hadn't bought it could download it 01:15:41 elliott_: I have nothing against games that don't have a goal 01:15:44 Vorpal: Seriously? 01:15:50 elliott_, is it GBP? 01:15:53 Vorpal: slang name for US dollars 01:15:54 elliott_, I like games with no goals. But you should know that already. 01:16:13 =P=P 01:16:13 elliott_, so 13 EUR? 01:16:15 hm 01:16:19 I think minecraft is more a "toy" than a "game" 01:16:21 although I think puzzle-creation is probably my favourite sort of gameplay 01:16:21 ais523: Well, why should anyone like Minecraft? Because it's fun and dissimilar to almost every other game. 01:16:33 I often enjoy creating levels for games more than playing them 01:16:34 ais523, then you will probably like the bundle 01:16:36 madbr: that just sounds like gamer posturing 01:16:40 lots of puzzles 01:16:41 is Bejeweled a game? 01:16:44 (It's a bad game, but is it a game?) 01:16:50 elliott_: I'd say yes 01:16:52 ais523, and crayon is puzzle creation 01:16:56 elliott: Well, actually I like minecraft 01:16:56 ais523: with Minecraft, creating the levels is over half of the game 01:17:02 elliott_: indeed 01:17:02 elliott_: No it isn't a game, it is a computer game 01:17:10 zzo38: computer games aren't games? 01:17:12 elliott_, well, we will see where adventure mode goes 01:17:20 madbr: Me too. But it feels like a toy/game division is artificial. 01:17:21 but I don't think any part of the game works as well as a game specifically designed for it would 01:17:25 Vorpal: Adventure mode will suck, I'm sure of that. 01:17:30 elliott_: Actually I don't know I just made up that 01:17:31 elliott: Hmm, probably is 01:17:35 elliott_, oh certainly 01:17:36 much like, say, adventure mode in Dwarf Fortress sucks compared to most roguelikes 01:17:37 `addquote elliott_: No it isn't a game, it is a computer game 01:17:38 549) elliott_: No it isn't a game, it is a computer game 01:17:44 but fortress mode doesn't, and is the good part of the game 01:17:48 ais523: It's bad to think of redstone as, like... an awkward circuit system, or anything 01:17:50 elliott_, people have done some great adventure maps before hm 01:17:57 ais523: The thing with Minecraft is, specialising it by taking one part of the game and doing it really well would ruin it. 01:18:08 elliott_: it might make a better game overall, though 01:18:15 ais523: It feels like a universe; the fact that every component is loosely coupled but can interact marginally is the charm. 01:18:16 ais523, I thought you didn't play df? 01:18:19 Vorpal: no 01:18:20 I don't 01:18:26 I can have opinions on games even if I don't play them 01:18:33 You can build a house (one game), and you can give it circuits (another game). Neither of those games would be as good as that combined experience. 01:18:36 ais523, ah 01:18:44 I think I like reading stories about df more than I like df 01:18:45 elliott_, indeed 01:18:46 You can build a rail network (one game), to connect your houses with circuits (two games). 01:18:57 elliott_: Of course. The game isn't about any of its elements. It's about the emergent behaviour that arises from the interaction of those elements. 01:19:01 ais523: Minecraft isn't a good game because any of its parts are an amazing game and the rest is just a lot of fluff. 01:19:03 elliott_, and you can control a rail network with circuits 01:19:05 * Sgeo_ wonders if he can get Boatmurdered in epub form 01:19:07 in terms of actual games, I've been playing Meteos a lot recently 01:19:13 trying to hit the score cap 01:19:15 ais523: It's good because it's basically a bunch of games that, by themselves, would be really boring, but when combined, form a compelling sandbox. 01:19:17 elliott_, is that 3 or 4 games in total now? 01:19:22 It's not nearly a diverse enough sandbox. 01:19:26 I got over 9 million on Smogor (the score cap is 10 million - 1) 01:19:27 Vorpal: Ten, probably. :p 01:19:35 ais523: But while it's not a perfect game, it's good enough to be very compelling. 01:19:36 elliott_, I meant the ones we listed 01:19:41 elliott_, not all the ones in total 01:19:47 Vorpal: Well, it's ambiguous. That's kind of the point. 01:19:51 and it's strange that I like Meteos, because it has basically none of the properties I like in a game 01:19:54 elliott_, hm true 01:20:00 ais523: I sure hope this tl;dr enlightened you a bit as to why people like Minecraft. 01:20:04 If not my fingers hate you. 01:20:07 hmm, I suppose so 01:20:23 ais523: I have a feeling MC is impossible to understand without playing it 01:20:24 I still feel free to disagree with them, though, even if I understand their point of view a bit better 01:20:36 well, you can hardly claim that liking a game is wrong 01:20:43 ais523: I have a feeling MC is impossible to understand without playing it <-- very true 01:20:50 elliott_, watching videos will be useless too 01:20:58 It seems weird to go beyond "diffrn't strokes for diffrn't folks" into "I hate Minecraft and would like to buy a bundle specifically without an offer about it if I could" 01:20:59 Did you like any of the computer game I made up? 01:21:04 elliott_: indeed, but I can claim that liking a game annoys me 01:21:08 Vorpal: Nah, watching videos and reading Towards Dawn made me buy Minecraft 01:21:09 which is different from being wrong 01:21:26 elliott_, I meant useless in making you understand it 01:21:27 ais523: Well... do people who like [insert music you don't like] annoy you? 01:21:35 ais523: Or do you just mean you don't like them ... publicly liking it? 01:21:38 As in saying "MC is great" etc. 01:21:54 it's public liking I don't like 01:22:05 ais523: fair enough; I'm not sure how that ties into the bundle though 01:22:07 and, I suppose, dedicating time to it that they could be dedicating towards things that would benefit me 01:22:13 is giving you a few weeks of playing a game publicly liking it? 01:22:16 oh, the bundle thing is probably just mostly bandwidth 01:22:20 ais523, how egoistic :P 01:22:21 ais523: umm, you don't have to buy it 01:22:24 ais523: they're separate downloads 01:22:28 s/buy/download/g 01:22:28 oh, good 01:22:36 then I can retract my objection 01:22:40 ais523: and, anyway, Minecraft's download is just a small .jar file 01:22:41 ais523, each game is a separate download indeed 01:22:52 elliott_: small .jar files exist? 01:22:57 ais523: it downloads the real thing post-authentication from an Amazon S3 server with no protection on the files 01:22:57 ais523, minecraft uses a tiny .jar that launches and download the rest of the game 01:23:01 ah, I see 01:23:01 yes, this means that anyone can download Minecraft's fails 01:23:04 because Notch 01:23:04 Did you like any of the computer game I made up, or any of my ideas related to computer games? 01:23:13 ais523: -rw-r--r-- 1 elliott elliott 88K 2011-02-23 14:07 launcher.jar 01:23:15 elliott_, does that STILL work? 01:23:17 Tiny enough in comparison to the other games 01:23:22 Vorpal: Last I checked, yes 01:23:23 elliott_: you consider 88K small? 01:23:28 ais523: you don't? 01:23:29 ais523, for a .jar 01:23:31 it is small 01:23:33 * Sgeo_ wonders if Boatmurdered looks acceptable on a black and white screen 01:23:34 Vorpal: indeed 01:23:39 ais523: let me tell you how big the humble bundle two games are... 01:23:46 $ du -sh /usr/bin/emacs 01:23:46 11M/usr/bin/emacs 01:23:50 ais523, much smaller than emacs 01:23:59 (yes yes, I know it is a memory image of a running emacs) 01:24:01 ais523: Braid: 114 Mio; Cortex Command: 48.6 Mio; Machinarium: 344 Mio 01:24:12 Vorpal: Emacs is huge, and that doesn't surprise me in the least 01:24:12 these are all compressed, I think 01:24:20 elliott_: most of which is going to be images and similar content 01:24:21 and music 01:24:29 those are always huge 01:24:36 Osmos: 19.3 Mio; Revenge of the Titans: 60.6 Mio 01:24:40 World of Goo: 66.5 01:24:42 Mio 01:24:46 Aquaria: 209.5 Mio 01:24:46 -rwxr-xr-x 1 ais523 ais523 582406 2011-07-22 00:09 staticcat 01:24:47 elliott_, 302Mtotal for the files you download for all the bundle 3 games 01:24:48 blah blah blah 01:24:59 77MAndYetItMoves-1.2.0_x86_64.tar.gz 01:24:59 59MVVVVVV_2.0_Linux3.tar.gz 01:24:59 38Mcrayon_release55_2.tar.gz 01:24:59 104Mcogs-linux-bin 01:24:59 25Mhf-linux-07172011-bin 01:25:00 302Mtotal 01:25:00 hmm, 582K for cat 01:25:04 that's actually quite impressive 01:25:08 ais523: that's terrible 01:25:11 but that's glibc for you 01:25:15 indeed 01:25:17 ais523, I think you would LOVE crayon 01:25:21 ais523: it's more like ten kibioctets with a saner thing 01:25:23 I still haven't figured out exactly why it's calling uname 01:25:31 Vorpal: crayon physics is boring, at least the version I played years ago :P 01:25:41 elliott_, well, I find it fun. 01:25:49 in particular, whether it's trying to establish whether it's running on Linux (using a Linux-specific system call number), or whether it's trying to find out what Linux version it has 01:25:53 Vorpal: description of the game? 01:25:59 ais523: surely Linux version 01:26:04 glibc warns for some versions, I think 01:26:05 or something 01:26:10 elliott_: ah, perhaps 01:26:13 ais523: crayon physics: you can draw arbitrary polygons 01:26:19 and they become two-dimensional objects subject to the physics engine 01:26:24 ais523, you draw objects on the screen, they react to physics. You use this to push around and make path for a small ball that has to pick up a number of stars on the screen 01:26:24 you have to help a ball roll around properly 01:26:34 -!- lament has joined. 01:26:40 ah, hmm, it is the sort of thing I generally like 01:26:47 isn't crayon physics now the subject of Every Flash Game Ever 01:26:52 Vorpal: is there anything that could make e.g. objects drop down and move other objects you created? 01:26:52 ais523, all drawn a crayony way 01:26:54 that might make it interesting 01:26:54 e.g. Transformice 01:26:58 but it wasn't in the game I played 01:27:06 hmm, I'm not sure I've ever played a flash game 01:27:06 i.e., if you actually had to create rudimentary mechanisms 01:27:09 or that one flash game that was something Inventions 01:27:12 elliott_, sure, I dropped things on other things and had them push things 01:27:16 you can draw rope too btw 01:27:20 quite useful 01:27:27 there were some people playing Slime Games at school and I joined in sometimes, but I'm not sure if it was a flash game 01:27:27 http://fantasticcontraption.com/ this one 01:27:43 oh right, I did occasionally join in in games that were definitely flash games 01:27:47 "Click here to play Minecraft for free during the Bundle" 01:27:49 ais those would be flash since they predated webgl 01:27:51 I don't think I've played one since, though 01:27:52 and html5 01:28:07 ais523: it pains me greatly that you have not experienced Dot Action 2 01:28:07 elliott_, draw a shape around the ball, draw a counterweight, add some "pins" to these, and a rope, now you can hoist the ball up! 01:28:08 Patashu: something as simple as slime games is entirely doable in html4 or even 3, plus javascript 01:28:11 Sgeo_: oh, I bet it's the applet version 01:28:25 (after pushing away the counterweight) 01:28:26 they don't need anything introduced in html5 01:28:33 ais523: Hmm I suppose you're right 01:28:35 ais523: excuse me, paining 01:28:40 why has the entire world decided that what used to be called DHTML only existed as of HTML5? 01:28:42 It'd be html objects being moved around? 01:28:50 ais523: canvas 01:28:56 I wrote a program that used a huge number of overlapping
s for rendering years ago 01:28:56 "Play Minecraft for free until August 14th! 01:28:56 Create a key below and then apply it to your Minecraft account by clicking the red link." 01:28:58 ais523: "DHTML" doesn't scale at all 01:29:00 and just changed their background colors 01:29:01 because DOM = shit 01:29:15 it actually worked, and faster than using Excel for rendering 01:29:23 lol 01:29:26 (look, I hadn't heard of proper programming languages back then) 01:29:31 `addquote it actually worked, and faster than using Excel for rendering 01:29:32 550) it actually worked, and faster than using Excel for rendering 01:29:39 it was also possibly the only program ever to be written in Microsoft JScript 01:29:47 because I found the documentation for that lying around 01:29:55 ais523, as opposed to javascript? 01:29:59 what were the differences 01:30:01 although it turned out to be almost valid JavaScript too, I only had to change a few lines to get it working in Firefox 01:30:21 mostly, that document.x was equivalent to document.getElementById("x") in JScript 01:30:28 ah 01:30:32 (I hope they've fixed that now, it's almost as bad as PHP's register_globals) 01:30:46 ais523: to expand on what I said about @ and the internet: as far as I'm concerned, if the Internet isn't universally recognised as a human right in a few years, something went wrong; and internet outages will, or at least should be, considered as serious as power outages 01:31:00 or perhaps moreso, considering how common laptops are 01:31:03 can avoiding the Internet be a human right too? 01:31:17 ais523: probably, but is avoiding taxes? 01:31:25 you can be a hermit if you want, but you'll still have to pay 'em 01:31:31 and you might even need to fill out a form on the internet 01:31:32 I'm not sure of the relevant 01:31:35 *relevance 01:31:43 elliott_, that is hard for old people who never used computers 01:31:46 ais523: it's relevant because you might have to use the internet 01:31:48 I suspect the tax office will for at least the next 3/4 decades allow forms to be done by post 01:31:48 I don't think that is realistic thus 01:31:55 until many years into the future 01:31:57 Vorpal: no it isn't, teaching people how to use computers is easy, teaching them how to use Windows is hard 01:32:06 elliott_, fair enough 01:32:13 or at least, most people are bad at teaching them Windows 01:32:17 and practically the definition of old people involves them dying soon anyway :-P 01:32:24 ais523: and? 01:32:27 elliott_, my blind grandmother would have problems with any computer though 01:32:28 elliott_: it'll be much more than 30/40 years into the future before the government can be persuaded to not mandate Windows for everything computer-related they do 01:32:28 ais523: would it be a human rights violation if they stopped doing so? 01:32:35 if the internet was considered a right 01:32:39 elliott_: possibly, depending on the circumstances 01:32:51 why? why isn't avoiding post a human right? 01:32:55 something being considered a right doesn't necessarily mean that you can assume that people will exercise that righgt 01:32:58 *right 01:33:03 that would be like feeding children only if they played 01:33:16 ais523, indeed 01:33:16 and saying it wasn't a violation of human rights because playing is a human right for children 01:33:25 why isn't avoiding post a human right? 01:33:45 elliott_, since when is getting post a human right 01:33:56 internationally I mean 01:33:57 note that in the UK, you don't have to do tax returns at all unless there's something complex about your tax situation 01:34:04 you just have to fill in a form when you get a job or change jobs 01:34:10 and hand it to your employer 01:34:17 Vorpal: we're talking about forms 01:34:24 ais523: I wasn't talking about forms just for taxes 01:34:40 in fact, I have surprisingly few forms to fill in, overall 01:34:50 you still have to fill them in, and send them via post, right? 01:34:57 how do you inform the government of your tax deductions? 01:34:57 well, why isn't avoiding post a human right? 01:35:03 I know this, because I use pencil and paper sufficiently rarely that whenever I fill in a paper form, I first have to remember how to use a pen 01:35:35 * elliott_ wonders if ais523 is operating this conversation by replying to every message up until I make my actual point, and then repeating 01:35:46 quintopia: there are very few tax deductions in the UK; the main one is for donations to charity, and you let the charity know tax details and they claim the deduction on your behalf 01:36:13 apparently 01:36:17 huh...that's not a good way to attract business 01:36:21 elliott_: I'm trying to think of a situation in which post is actually necessary 01:36:31 quintopia: tax deductions for business exist, and there are a lot more of them 01:36:31 taxes r bad gold is good 01:36:40 if a company can't write off their expenses, what reason do they have not to move operations to the netherlands... 01:36:41 ais523: well, how do you send in forms? 01:36:45 but it's the business that's concerned with them, not the people who interact with them 01:36:45 and why can't avoiding that be a human right? 01:36:46 oh okay 01:36:53 so as a business owner 01:36:57 you have to submit returns? 01:36:58 elliott_: the main form I have to fill out atm is the university registration form 01:37:04 which can be done over the internet or in person 01:37:30 * elliott_ tries to think of something absolutely unavoidable, legally, for living in the UK 01:37:33 in fact, in person is how the majority of forms I fill in work out 01:37:38 so I can ask why avoiding that shouldn't be a human right 01:37:53 avoiding paperwork is the stupidest idea for a human right i've ever heard 01:38:17 quintopia: nah, paperwork is horrible, that's a decent idea 01:38:30 avoiding the internet is the stupidest one I've heard 01:38:46 elliott_: the student finances form was legally unavoidable, but that one I /didn't/ do by hand, I went to the education office and gave them the form in person 01:39:01 yes, but you're talking to someone who thinks that there is no right to convenience 01:39:24 quintopia: I suspect you don't think there's a right to many things that there are rights for. 01:39:27 ais523: it was perfectly avoidable, just don't be a student 01:39:30 they were a little surprised that I'd bothered, but the post service is a bit unreliable here 01:39:31 elliott_: well, OK 01:39:46 my parents suggested the census is possibly post- and Internet-only, I have to look that one up 01:39:53 furthermore, there is no such thing as unalienable rights... 01:39:58 ais523: basically as far as I'm concerned, a right to avoid the internet is unnecessary; it's already the easiest way, by far, to do things, and if you want to be stubborn I don't really think society has a right to make your crusade easy 01:40:04 but you can always become a hermit, I suppose 01:40:05 any right can be taken away in the wrong situation 01:41:02 but you're probably right that there are things others consider human rights that i don't 01:41:28 yes. are you planning to try and gain political power anywhere, and if so, where? 01:41:31 and when? 01:42:08 no, but if i do, i'll make sure you don't hear about it 01:42:33 so voting against you is another right you don't believe in 01:42:55 bleh, it's hard to find the exact rules for census replies, as they aren't in law; there are just laws allowing the rules to be made (by the Chancellor of the Exchequer with parlimentary approval) 01:43:07 eh, if i'm gonna get anything worthwhile done, i might as well dispatch with democracy right off the bat 01:43:10 This all reminds me that the Special Rapporteur to the UN officially recommended that Internet access be considered a basic human right. 01:43:13 Wikipedia implies that it was Internet-or-post only, though 01:43:33 evincar: governments will find loopholes in that 01:43:45 like only allowing access to government approved websites at libraries 01:44:13 evincar: umm, I was just talking about that 01:44:18 ais523: Of course, but it is still kinda cool that *something* has made it into the lore of a group that's that high-profile. 01:44:23 quintopia: see, the thing is, I don't even know that you're joking. 01:44:26 evincar: that's how all this started 01:44:28 If not actually very useful. :P 01:44:33 well, I was talking about the internet being a right 01:44:35 elliott_: Ah, was briefly away. 01:44:40 I don't really care about a gesture like that that will be completely ignored 01:44:42 elliott_: aha, I found a loophole: people who don't have addresses (like the homeless and travelers) were given the forms by hand, and handed them back in person 01:44:44 IIRC France recognised the internet as a right though 01:44:46 and Finland are? 01:44:47 I forget 01:44:59 -!- bsmntbombdood has joined. 01:44:59 ais523: they're just not hermit enough 01:45:11 actually, dying is the easiest way to avoid forms 01:45:18 elliott_: if i become dictator of a small island nation, i will wholeheartedly support your right not to live there. 01:46:21 also, 2011 was the first year you even could do the census online 01:46:49 hmm, I conclude that the requirement to respond to official posted documents, maybe including reply by prepaid post, is incurred by having your own address 01:46:58 notably, with multiple people in a house, only one of them has to reply to the census 01:47:03 listing the information of the others 01:50:11 edit: Actually, what would be best is to tell yourself to buy Cisco and sell it at the height of the dot-com bubble. Then use the proceeds to buy Apple immediately. You'd be looking well over a 1,000,000% return there. 01:50:15 * elliott_ writes down 01:50:18 actually, dying is the easiest way to avoid forms 01:50:23 disappointed nobody addquoted this 01:50:38 elliott_, it isn't very funny 01:50:45 dying's easy, eh? 01:50:57 Vorpal: said Vorpal 01:52:07 elliott_: I was going to respond to it, but it's too simple to be very entertaining. :P 01:52:49 Honestly, I'm way less afraid of death than I am of others I know dying. 01:53:20 I don't like meeting people that are significantly older than me because I have a reasonable assurance that they'll be dead within my lifetime. 01:54:01 "There tends to be a pretty direct correspondence between "GHC features" and "papers listing SPJ as an author"." 01:54:13 evincar: I take it you dislike meeting your parents 01:54:15 elliott_: The man is a machine. 01:54:27 Also I never technically met them. 01:54:33 Because of how babies' memories work. 01:54:59 Also because of how mating works. 01:55:09 poor babies 01:55:12 poor mating 01:56:25 -!- copumpkin has quit (Ping timeout: 258 seconds). 01:56:50 -!- copumpkin has joined. 01:57:28 NB: My parents aren't dead or missing. They're right here in the room with me at the moment. 01:57:35 (Thought I'd clarify.) 01:57:45 hi evincar's parents 01:57:58 They're currently watching a Netflix progress bar. 01:58:05 exciting 01:58:20 why'd you even need to pay for movies if the progress bar is that interesting? 01:58:49 to get the progress bar of course 01:59:20 ais523: Beats me. The damn thing doesn't even move very fast. You could replace it with a photo of said bar, stuck terminally at just over 50% to give the illusion of progress. 01:59:37 monqy: there is some logic to that 01:59:49 would videoing the progress bar and sending the video to someone else count as movie piracy? 02:00:56 -!- cheater_ has quit (Ping timeout: 255 seconds). 02:01:23 heh 02:03:58 Internet should not be considered a basic right. A lot of people don't even know much about internet. 02:04:37 zzo38: Free speech should not be considered a basic right. A lot of people don't even know about free speech. 02:04:59 INTERCAL should not be considered a basic right. A lot of people don't even know about INTERCAL. 02:05:34 No free speech should be considered. Whether or not you know about it is not the point. I was simply mentioning it. INTERCAL is not a basic right either. However, note that some thing might be "derived" rights I suppose in certain circumstances, maybe..... 02:08:10 -!- madbr has quit (Read error: Connection reset by peer). 02:09:42 zzo38: My point is that many people not knowing (much) about a right isn't justification for not considering it a right. 02:09:50 In case that wasn't obvious. 02:10:15 evincar: I actually happen to agree with you. Free speech is a right. 02:10:21 Even if people don't know 02:10:31 Besides, the internet helps promote globalism and fight xenophobia, which is a primary tool in causing unnecessary wars. 02:10:34 If some people don't want free speech they can be quiet 02:14:46 -!- aloril has quit (*.net *.split). 02:15:29 -!- cheater_ has joined. 02:15:34 -!- madbr has joined. 02:15:36 -!- madbr has quit (Write error: Connection reset by peer). 02:15:36 evincar: I do agree that internet can help good thing, so can other thing; people can be have a computer, if they have computer, can get internet connection, etc. However, in my opinion it should not be considered a *basic* right. 02:17:22 -!- aloril has joined. 02:21:07 -!- BeholdMyGlory has joined. 02:22:49 -!- madbr has joined. 02:24:15 -!- madbr has quit (Read error: Connection reset by peer). 02:26:54 ais523: So I finally decided to do the obvious and pursue a doctorate in computer science. 02:27:16 evincar: I'm pursuing it too, and think I have something of a head start 02:27:25 I don't know if you were one of the people who was privy to my school troubles a few months back. 02:27:28 I hope there's enough for all of us when we catch it 02:27:36 also, I don't remember that, so I guess I wasn't 02:27:40 or that I have a bad memory 02:27:58 Meh. Long story short, school sucks as usual for people like me. 02:29:05 what nationality are you? and what do you mean by "school"? the word refers to slightly different educational institutions in different countries 02:29:17 Specifically, the fact that I'm skilled and consequently have a huge sense of entitlement, I'm a maverick who can't stand working with others, I don't care about classes that don't teach me anything, etc., etc. 02:29:36 Uh, American, college. Rochester Institute of Technology, specifically. 02:29:46 I'm entering my fourth year. 02:30:00 is there anyone who self-identifies as a maverick who isn't a huge egotist, i ask this devoid of any context 02:30:16 elliott_: I'm not sure 02:30:32 although people who self-identify as mavericks are split upon whether they believe themselevs to be huge egotists, I imagine 02:30:34 *themselves 02:31:21 -!- madbr has joined. 02:31:46 elliott_: I am a huge egotist, but I'm also demonstrably a maverick. I really don't work well with others and I don't think like most of the people around me. 02:32:24 you'll need to work with others occasionally even in a PhD 02:32:30 I know I've had to 02:32:38 part of the problem is finding a good supervisor who fits you well 02:32:41 Then again, saying I'm an egotist probably calls into question whether I actually am, according to elliott_ logic. 02:32:52 maverick to me has connotations of being a brilliant jerk 02:32:56 which is a questionable self-identification 02:33:32 ais523: Well, I have a good advisor and someone I could work with, and hopefully none of us would find any of the others insufferable jerks. 02:33:52 that's a good start 02:33:53 elliott_: I'm using it in its literal sense of an unorthodox person. 02:33:55 do you have a thesis, too? 02:33:59 It's mostly that I'm contrary. 02:34:10 as in, something to study towards? 02:34:12 Especially in the face of what I percieve to be arbitrary authority. 02:34:25 meh, you're not that unorthodox if you've managed three years of university 02:34:30 either you or your supervisor needs to come up with one 02:34:35 ais523: Oh yeah, I'm interested in dependent typing for imperative languages. 02:34:47 OK, that's possibly niche enough to work 02:34:48 There's more to it than that, but that's the gist. 02:34:48 now there's a terrible idea 02:34:59 elliott_: I expect you're going to tell me why. 02:35:12 probably not, but it seems like adding any kind of mutability breaks the type system immediately 02:35:17 although computer scientists will probably push you into doing it for ML because it's about the most imperative they're willing to consider 02:35:19 without encapsulating it somehow 02:35:21 which stops it being imperative 02:35:27 elliott_: that's what makes it an interesting problem 02:35:36 also, imperative languages are a bad idea in general, being a subset of functional ones 02:35:40 and leaving out the most expressive parts 02:35:52 ais523: well, I'd question whether the result could be called dependently-typed. or maybe imperative. 02:36:05 There are imperative languages out there with rudimentary dependent type systems, but they're very "researchy" and I want to make something more accessible. 02:36:27 Because I consider dependent typing too useful to frame in a language that scares real programmers off. 02:36:29 "I'm going to do a PhD in taking some research and making it friendly to the masses" 02:36:39 evincar: by real programmers, you mean bad programmers, right? 02:36:46 (right) 02:36:47 elliott_: Yes. 02:36:49 do you mean real programmers as in Mel? 02:36:59 or as in undergraduate Java users? 02:37:22 evincar: so you've chosen academia as the vehicle to make a piece of academic research accessible to idiots who dismiss anything from academia as useless? 02:37:23 ais523: No, I mean average programmers, the everyday variety. 02:37:24 lemme know how that goes 02:37:26 http://www.reddit.com/r/DebateReligion/comments/j2d1x/to_all_religion_vs_morality_an_experimental/ Oh come on, I'd have to argue the viewpoint I agree with? That's boring 02:37:32 who the fuck is an average programmer 02:37:45 Sgeo_: the mere existence of /r/DebateReligion worries me 02:37:47 is it someone who has to use java anyway because they're writing a CRUD database interface and it isn't up to them 02:37:56 elliott_: Let me know how else to get funding to make what I want. 02:38:00 it's like it's a honey pot reddit designed to contain trolls 02:38:02 nobody can give a satisfactory definition of average programmer that doesn't preclude them choosing the tools 02:38:13 evincar: what funding do you need beyond enough to live? 02:38:18 typing doesn't cost money 02:38:53 ais523: it's terrible, it has little tags so you can assure people that you don't REALLY think this, you're just explaining the other side 02:39:05 haha, beautiful 02:39:06 elliott_: That is the amount of funding that I need. If I get a job, I will have money. Quite a bit, in fact. But I won't have as much time, and time is far more important to me than money. 02:39:13 actually implemented in, or just conventional character sequences? 02:39:18 ais523: with CSS formatting 02:39:22 by conventional, I mean "have a meaning by convention" 02:39:23 elliott_: haha 02:39:45 ais523: "now debates will have much fewer personal insults because we bring your personal views into the discussion!" 02:39:52 evincar: I have a job as well as the PhD, 25%/75% 02:39:57 evincar: so how does this imperative dependent typing exactly work 02:40:14 elliott_: I think it's so that you can persuade people who share your personal viewpoint that you aren't betraying them 02:40:20 and how long will it take you to realise that the "average programmer" can't actually choose to use your language 02:40:29 ais523: yep, so it makes debates personal 02:40:36 elliott_: never ask a PhD student something directly on topic to the subject of their PhD 02:40:42 [](/da)are playing devil's advocate 02:40:42 [](/nmv)are giving information that does not agree with your personal views 02:40:44 the answer will continue for years and you won't understand it 02:40:46 Christianity is a religion. [NMV] 02:40:50 ais523: he's not a Ph.D. student 02:40:56 not yet, I suppose 02:41:02 so you might have a chance at getting out alive 02:41:25 ais523: my secret weapon is knowing I'm the only right-thinking person in any discussion 02:41:54 elliott_: but sometimes you change your mind as the result of a discussion 02:42:33 ais523: yes, but only if it's with you 02:42:35 :-P 02:42:49 ais523: anyway, that just means it took a while for my rightness to kick in 02:42:56 elliott_: The simplest way to explain it is that the type system is a complete, purely functional, lazy language with no mutability, and the value system is an imperative, eager one with mutability. 02:43:12 wow, an image on prog21; I forgot it existed in the same universe as HTML pages with images on them 02:43:24 evincar: umm, what dependently typed languages do you know, so I can express what I'm about to 02:43:38 elliott_: Only Agda. 02:43:41 please don't say none, the force of my facepalm will cause actual devastation to many north-eastern English populations 02:43:49 evincar: ugh 02:43:54 elliott_: you're going to shout at me now for not knowing what prog21 is 02:43:54 Just wing it. 02:43:58 evincar: can you learn Coq so that I can talk to you without bringing up my character map? 02:44:27 ais523: Programming in the 21st Century; it's a Good Blog About Programming(tm) 02:44:30 elliott_: I may end up knowing more Agda than Coq because I'm apparently to work with an Agda fanatic 02:44:40 ais523: you have one more not knowing what prog21 is, then the shouting begins 02:44:45 elliott_: I can pick up what's relevant to the discussion. 02:44:46 and that has a tendency to rub off on you 02:44:57 but then, I doubt you'd be surprised at me not knowing what X is for more or less any X 02:45:02 ais523: you'll hate Agda, I suspect 02:45:11 and even when I do know what the X is, I often don't know what it's called 02:45:15 because it uses Unicode everywhere 02:45:18 I find it difficult to take a language seriously whose name is "cock". 02:45:20 even for basic syntax 02:45:28 evincar: you realise Agda means that too? 02:45:31 elliott_: that seems to be to do with the libraries not the lang itself, but fair enough 02:45:50 I think it's a mutation of Swedish "rooster" or something 02:45:51 Unicode everywhere is not that problematic, the difficulty is characters-not-on-my-keyboard everywhere 02:45:52 because of Coq 02:46:03 ais523: umm, unless you consider the function arrow the library 02:46:14 oh, haha, it's not ->? 02:46:18 ais523: it's → 02:46:26 elliott_: I didn't know that. But I stand by it. I don't take Agda seriously. :P 02:46:27 ais523: and it uses a two-colon char instead of :: 02:46:27 anyway, → is on my keyboard 02:46:34 ais523: also forall 02:46:40 → is on my compose key... 02:46:41 also lambda 02:46:51 it comes with an emacs mode, though, so you can say \to for → 02:46:53 and the like 02:46:54 but still 02:47:00 I know I have to keep explaining what all the backslashes mean in my ICA programs 02:47:08 because I'm using \ for lambda Haskell-style 02:47:15 (but \a.b not \a -> b) 02:47:16 evincar: anyway 02:48:09 evincar: forall A (xs:List A), is_empty xs -> forall (x:A), ~(list_elem x xs) 02:48:13 now if we say 02:48:21 hmm wait 02:48:25 evincar: vacuous_empty_list : forall A (xs:List A), is_empty xs -> forall (x:A), ~(list_elem x xs) 02:48:26 now if we say 02:48:29 xs := empty_list; 02:48:32 Coq is french for rooster 02:48:34 proof := vacuous_empty_list xs; 02:48:44 insert 9 xs; 02:48:52 ermm, list here is mutable 02:49:03 evincar: ...then we can prove ~True, since (list_elem 9 xs) 02:49:49 \to is also the Plain TeX (and maybe also LaTeX and ConTeXt) command for the right arrow in math mode, too 02:50:21 evincar: no? 02:50:46 elliott_: You're thinking immutably. In my language, a mutating operation of any kind may change type as well as value. 02:50:49 evincar: And if you can't prove that the vacuous property on all elements of an empty (mutable) list, then you can't prove almost anything about mutable structures 02:51:09 Which means that you just have... a functional language where an IO monad is baked in for no reason 02:51:18 zzo38: I think \rightarrow is more common 02:51:27 or maybe it's just a case of me not knowing the LaTeX for something 02:51:29 Yes \rightarrow also does that. 02:51:41 I used to actually write $a^{\prime}$ rather than $a'$ 02:51:44 ais523: yep, but \to is quicker to type in emacs 02:51:46 because I didn't know of the abbreviation 02:51:51 and those aren't identical AFAIK 02:51:59 no, but they're close enough 02:52:07 and the latter is correct 02:52:08 \to and \rightarrow are identical commands; I just checked. 02:52:13 And ' in math mode is a prime. 02:52:18 evincar: Because I'm sure you can encode mutable variables that can change type upon mutation in Coq 02:52:29 And then build a mutable list with that 02:52:37 Since, math code 0 means treat as an active character in math mode. 02:52:46 evincar: Also: How do you avoid this? 02:52:49 oh no, I think evincar's trying to add dependent typing to Visual Basic 02:52:55 So, ' has some special macro to check how many prime it is. 02:52:58 evincar: oops : _|_; oops = while true {} 02:53:09 elliott_: But of course the point is that mutability is only there if you want it, not encouraged. Values and types are both immutable by default, and there are significant gains to going with the flow. 02:53:12 (the first imperative language I could think of offhand with a Variant type) 02:53:23 Since you can do more than one prime, but ^{\prime} multiple times doesn't work. 02:53:25 evincar: OK, so why is the language imperative? 02:53:42 (Really I think it should have been designed so that it works; but it doesn't.) 02:53:44 ais523: Ugh. Don't get me started on variants. 02:53:48 evincar: You can encode such mutable variables in any functional, dependently-typed language 02:53:55 evincar: do you know of the standard formalization of imperative languages in computer science? 02:54:02 evincar: So IDGI. 02:54:05 -!- TeruFSX has joined. 02:54:06 elliott_: The point isn't purity, though. It's utility and accessibility. 02:54:11 "the simple imperative language" is the usual name 02:54:20 evincar: FFS, the IO monad is impure. 02:54:35 Do you think THE ROCKET'S TRAP is a stupid card and ROCKET'S SNEAK ATTACK is much better? 02:54:37 You're basically choosing to make the language more complicated because it lets you call it "imperative" and get backs on the back from idiots who are afraid of lambdas. 02:54:42 elliott_: I think it can be implemented in a pure way, given the way laziness works 02:55:15 evincar: The interesting part is a dependently-typed language where the values can fail to terminate without making the type system unsound. 02:55:15 elliott_: also, would you consider ICA imperative? 02:55:29 evincar: Don't burden it with something you can encode, with no loss at all, into a pure version. 02:55:31 it has lots of lambdas, and uses a Y-like fixing operator for recursion, but it also has if, while, and assignable variables 02:55:42 (although they have fixed types) 02:55:50 evincar: There is literally no advantage of baking mutable variables in, especially if there are proving-related gains to using immutable values. 02:56:07 But lambdas is very useful things in many programming languages, whether functional or imperative 02:56:18 ais523: imperative is practically impossible to define; it's a non-compositional, impure language 02:56:19 zzo: really? 02:56:25 elliott_: fair enough 02:56:26 ais523: but only the IO is non-compositional 02:56:31 ais523: OTOH, in ICA, I suspect IO is rather a lot of the program 02:56:44 madbr: Yes, sometimes. 02:56:52 elliott_: Why do you think I want dependent typing for its proving capabilities? I simply think it's a useful abstraction for how to organise a type system. 02:57:08 atm, the way IO works is that the program is given a function as argument, which, when forced, takes a number as argument and outputs it 02:57:14 elliott_: And making an imperative language with a functional type system burdens neither. 02:57:17 and there's no input, but it could be implemented in an analogous way 02:57:20 There's a false dichotomy here. 02:57:39 the language is about as strict as call-by-name gets, which is still pretty lazy 02:57:43 -!- Kerber0s has joined. 02:57:50 Is it ever the case in Haskell sometimes someone will write a program and compile it but what the program does is unimportant, only whether it will compile successfully? 02:58:03 zzo38: people normally use Coq or Agda for that 02:58:09 Or in any other programming language? 02:58:31 evincar: Unless you can respond to my true statement that your language would lose absolutely nothing from implementing mutable variables inside the language itself and not having them as a burdensome axiom, I can't continue. 02:58:36 in fact, I was wondering why my coworker was bothering to implement Agda at all 02:58:41 I thought programming was more for many-to-many problems, rather than many-to-few 02:59:01 elliott_: actually, there are advantages to having mutable variables as an axiom, but I can't remember offhand what they are 02:59:16 but there's some technical advantage involved 02:59:23 probably in operational semantics 02:59:32 -!- Kerber0s has left. 02:59:51 whether this is relevant at all in evincar's situation, I don't know 02:59:51 ais523: the burden is on evincar to tell me why baking them in as an axiom that introduces unchecked side-effects is beneficial 02:59:58 elliott_: The language wouldn't lose anything, but it wouldn't gain anything either. If a programmer wants to implement a function with local mutable variables because it's the simplest way for the problem to be decomposed, they can go for it. 03:00:19 evincar: You can do that without making it unchecked! You can do that without making it an axiom! 03:00:30 evincar: I think you're missing elliott_'s point, which is asking whether mutable variables can more easily be implemented within the language itself rather than as part of it 03:00:34 elliott_: And a pure function can do all the mutation it wants to locals and still be referentially transparent. 03:00:41 evincar: have you ever heard of ST? 03:00:43 e.g. like State in Haskell 03:00:43 that's EXACTLY that 03:01:18 You are being a broken record; "oh, it's nice to use mutable variables sometimes in localised parts of the program" is such a fucking common argument against "functional languages" vs. "imperative languages" but it's utter rubbish; functional languages _have those things_, the only difference is that imperative languages have unchecked IO 03:01:32 elliott_: you might be interested in how variables work in ICA, they're referentially transparent because there's no way to return the equivalent-of-address of a variable from a function (because call-by-name), and are scoped 03:01:41 and that cannot possibly be an advantage, because it is a subset that _omits the most expressive parts of a language_ 03:01:57 ais523: heh 03:02:19 as in, you can write a function of type, say, exp->var just fine, but what happens is that each time you try to access the variable it asks for the matching expression, then carries out whatever operation you were trying to do to the variable in a lazy way 03:02:34 elliott_: So if I were to say that I'm going to implement my nominally imperative language in a purely functional fashion, such that mutating operations are emulated, what does that gain me? 03:02:55 elliott_: Other than complicating the implementation. 03:02:58 and you can't achieve the same thing with equivalent-of-ST/State, incidentally, because it wouldn't handle parallel computation correctly 03:03:24 there's no way in a monad to carry out two monad actions in that monad simultaneously, in general 03:03:35 evincar: Question is dishonest; there is no "emulation" going on, and you have already told me enough to know that your language is not nominally imperative; and it cannot complicate implementation, because the function arrows, etc. that you need for a dependently-typed system like Agda already involve you implementing a functional language, so it can only simplify. 03:04:13 new a in (a := 1 || a:= 2); print a 03:04:17 umm, that's wrong 03:04:18 new a in (a := 1 || a:= 2); print !a 03:04:27 always remember to dereference your variables, folks! 03:04:42 I don't think that translates into Haskell at all 03:04:52 what is that 03:05:01 so that's one potential use for evincar's language, assuming it works 03:05:13 madbr: declare a variable a, assign 1 and 2 simultaneously to it, print the resulting value 03:05:19 which will be either 1 or 2, based on timing 03:05:31 || means parallel here, not or 03:05:38 mhm 03:05:57 (which is | because C operators have too much of a hold on the world's conciousness by now) 03:06:11 eh 03:06:15 ais523: so you're breaking it by being unlike C? 03:06:19 or do you actually use bitwise or in C :-) 03:06:24 ais523: "||" makes so much more visual sense for "parallel". :( 03:06:24 elliott_: heh 03:06:27 well, booleans are one-bit values 03:06:37 so logical and bitwise or are the same thing 03:06:50 ais523: Now *that* sounds like Basic. 03:06:52 there's no autocasting of >1-bit integers to booleans, you have to manually compare to 0 03:06:53 (which is | because C operators have too much of a hold on the world's conciousness by now) 03:06:56 I still don't understand this 03:07:07 elliott_: I mean, I couldn't live with having or as anything but | and || 03:07:11 and || was already taken 03:07:19 xor and and are ^ and & 03:07:52 ais523: quick, what's gcd(0,0) 03:07:59 elliott_: I don't know 03:08:05 I assume +INF 03:08:16 ais523: Euclid's algorithm says 0 03:08:26 it couldn't really say anything else, could it? 03:08:42 * elliott_ says because of http://www.haskell.org/pipermail/libraries/2011-June/016450.html 03:08:46 evincar: very well 03:09:03 CWEB also uses | to include C codes in text, the reason is that WEB uses it for Pascal codes in text, because | is not used in Pascal, and then they put the same thing for C and sometimes it doesn't work in case you want to use "or" in C codes in text. But you can still do in other ways. Even many other programming language including Javascript, AWK, etc also uses || for logical or 03:09:03 lcm(0,0) is uncontroversially 0, and gcd(a,b)*lcm(a,b) normally equals a*b 03:09:07 which gives further evidence for +INF 03:09:28 ais523: umm, it does? 03:09:30 that suggests 0 to me 03:09:34 oh, right 03:09:43 Yeah, was gonna say, no it does not. 03:09:44 wait, no, err, I'm confused 03:09:46 it doesn't suggest anything 03:09:52 it sets it equal to 0/0 03:09:56 evincar: I take it I should stop expecting a response 03:09:59 which is not a useful thing to do 03:10:08 ais523: lcm(0,0) = 0; lcm(0,0)*gcd(0,0) = 0*0 = 0 03:10:09 for some reason I calculated it as 1/0 03:10:14 so gcd(0,0) can be anything 03:10:15 elliott_: I'm losing track of what the current attack is. 03:10:21 evincar: "Attack"? Seriously? 03:10:31 yep, it doesn't force any particular value on gcd(0,0) 03:10:41 elliott_: Your style of conversation is notoriously aggressive. ;) 03:10:42 elliott_: actually, when your PhD is actually marked, the final stage is a viva 03:10:55 where you have to sit in a group with a bunch of professors who try to attack your thesis, and you have to defend it 03:11:07 and you pass if they couldn't invalidate your last four years of work 03:11:11 evincar: How am I supposed to respond to a "when-did-you-stop-beating-your-wife" question aside from explaining that it's dishonest? I'm a bit exasperated, I admit, but that's mostly because it's annoying to see someone who knows Agda spout what is essentially the party line on anti-functionalism. 03:11:15 (they mark the written part first, I think) 03:11:18 elliott_: So if I were to say that I'm going to implement my nominally imperative language in a purely functional fashion, such that mutating operations are emulated, what does that gain me? 03:11:18 elliott_: Other than complicating the implementation. 03:11:18 evincar: Question is dishonest; there is no "emulation" going on, and you have already told me enough to know that your language is not nominally imperative; and it cannot complicate implementation, because the function arrows, etc. that you need for a dependently-typed system like Agda already involve you implementing a functional language, so it can only simplify. 03:11:20 is the latest context. 03:11:23 "Attack"? Yes it is attack. Now you are playing pokemon card but you forgot which attack you want, in case there is 2 attack or in case you want to pass even if you can attack 03:11:27 ais523: I know 03:11:40 zzo38: it's kind-of rare to pass in that game 03:11:50 although I can just-about imagine situations where it might be useful 03:11:52 ais523: See also http://www.mcsweeneys.net/articles/faq-the-snake-fight-portion-of-your-thesis-defense 03:12:00 (you probably won't click that, but the URL is funny enough) 03:12:13 ais523: Actually I find it very useful to pass in many situations 03:12:19 elliott_: I did click it, in case it was useful 03:12:24 ais523: haha 03:12:26 also, I'd hate to have you marking my PhD 03:12:42 ais523: I'm only angry on the internet 03:13:00 elliott_: I do consider it emulation. Just like I can write an interpreter for an imperative language with mutating operations in a language without mutating operations, so too can I write an interpreter for a language with only immutable values on hardware that is fundamentally (though not trivially) imperative. 03:13:28 evincar: If you think your hardware follows a fundamental ordered imperative model, you're stuck in the 90s 03:13:29 hmm, it makes a decent metaphor even if it claims not to be 03:13:33 it _emulates_ one 03:13:35 elliott_: That aside, I'll ultimately go with whatever implementation strategy seems simplest and best. Ideally the language will be small and implemented largely in terms of itself. 03:13:55 elliott_: hardware doesn't follow a functional model either, admittedly 03:13:59 ais523: the part about fighting a snake instead of actually writing a thesis is the best 03:14:02 ais523: Of course it doesn't 03:14:05 look at Checkout if you want to know what it actually does 03:14:09 elliott_: I don't. That's why I qualified my statement a bit. :P 03:14:10 But who the hell picks programming model based on their hardware model 03:14:19 elliott_: That aside, I'll ultimately go with whatever implementation strategy seems simplest and best. Ideally the language will be small and implemented largely in terms of itself. 03:14:28 elliott_: me, but admittedly that's a special case 03:14:30 and only sometimes 03:14:33 elliott: yeah but it emulates one for a good reason 03:14:35 evincar: I don't think you really want this, because you weren't interested in a change to simplify the language incredibly and make implementing it easier, and have it defined more in itself than it was 03:14:50 elliott_: I'm not arguing that it's a good idea to pick a programming model based on the hardware. In fact, I'd argue the opposite so long as the hardware doesn't serve the abstractions of the problem domain perfectly. 03:15:02 madbr: please, talking to both evincar and ais523 at once is hard enough, I can't have an anti-functionalism argument with someone whose positions I don't even know at the same time 03:15:07 elliott_: part of the reason I haven't started writing Anarchy yet is that I'd really want to implement it in itself 03:15:17 elliott_: and I'm not even disagreeing with you! 03:15:24 mostly, at least 03:15:34 elliott_: I'm just reserving judgement, I guess. 03:15:38 I want to write Democracy. How any function works is determined by all coders of that language voting on its behaviour 03:15:49 Patashu: see: php 03:15:52 LOL 03:16:08 elliott_: I am trying to make a language that's highly usable and easy to understand. 03:16:09 elliott_: that's a worryingly accurate joke 03:16:23 http://www.econugenics.com/t-our-products.aspx?affiliateID=10100 <-- I read this as "neoEugenics" rather than "ecoNugenics" 03:16:28 thought you all should know 03:16:30 elliott_: Not because I'm pursuing some misguided "non-programmers should be able to program" goal. 03:16:42 evincar: Easy to understand for who 03:16:48 evincar: it sounds like you're pursuing some misguided "programmers should be able to program" goal 03:16:58 But because I don't like using languages that make me conform to them rather than the other way around. 03:17:01 evincar: And really: understanding dependent type systems is not easy for any "average imperative programmer". 03:17:17 You can't go from Java to that without some resistance. That's just a fact. 03:17:36 ideally, a dependent type system would not require any input from the programmer at all 03:17:44 and just give you really good warning messages 03:17:52 elliott_: Sure, but you can tease people in with nifty examples. 03:18:07 like "this branch of this if statement is unreachable because the variable never gets the number 4", or whatever 03:18:08 evincar: Anyway if you're a maverick who dislikes working for others and rejects false authority why the hell are you devoting yourself to the false authority of the Average Programmer(tm), why the hell are you watering down your language so that it's easy for the mythical Average Programmer(tm)??? 03:18:13 but I suspect that isn't what evincar isn't aiming for 03:18:36 err, s/n't(.*)n't/n't$1/ 03:18:37 elliott_: Even trivial ones like defining sequence joining as `+`[a:T[n], b:T[m]]:T[n+m]={...} 03:18:46 there's a shorter way to write that regex, but I forget what it is to start with 03:18:57 evincar: that's the least enticing example ever 03:19:05 you're not winning any Java programmers with that syntax, dude 03:19:08 aha 03:19:19 s/.*\Kn't// 03:19:23 thanks, man perlre 03:19:51 I must say I'm agreeing with elliott_ here 03:19:54 evincar: is the {...} literal, or representing omitted code? 03:20:13 ais523: I think parametricity actually guarantees that function to only have one implementation 03:20:13 (shut up this is #esoteric I have to ask that sort of question) 03:20:25 ais523: so a Sufficiently Smart Compiler could actually accept {...} there :-P 03:20:26 oh wait no 03:20:27 elliott_: The majority of programmers are not the best programmers out there. I think doing a public service by making power available (conceptually) to people isn't submitting to authority at all, it's doing what all people ought. 03:20:27 then why do you need to write the implementation at all? 03:20:30 hmm wait yes 03:20:35 although it needs a type variable 03:20:35 also, it could reverse the lists before joining them, couldn't it? 03:20:40 ais523: oh, right 03:20:42 and still obey the type signature? 03:20:43 damn 03:20:48 ais523: It's a placeholder for an implementation, but it's probably unnecessary in that example. 03:20:50 evincar: so you're making a bad language because of socialism, OK 03:21:04 (bad language = not as good a language as it could be) 03:21:28 elliott_: do you live in a country where you can make arbitrary things bad by accusing them of being socialism? 03:21:31 elliott_: In your opinion. And I am a socialist, but that's not really the point. 03:21:42 evincar: that's literally what you just said 03:21:44 ais523: Nope 03:21:45 elliott_: I simply like making stuff that helps people make stuff, because I like making stuff. 03:21:54 (also, does that actually /work/ in the US? might be the easiest way to win arguments ever) 03:21:59 ais523: but I do think "for the good of the people" is the stupidest reason to make a language I can think of 03:22:17 elliott_: there have to be even stupider reasons, surely? 03:22:25 ais523: And yeah, you could add more type information to make it more correct. :P 03:22:30 evincar: So you'd make a thing that's worse than another thing you could also make, because more closed-minded idiots would like it, and fewer open-minded clever people would like it? 03:22:43 If yes, your priorities need checking. 03:22:56 elliott_: well, I care somewhat about people being able to use my stuff as well 03:23:12 ais523: not what I said 03:23:14 but I'm doing it along the lines of "this language is pretty easy to use anyway, and you can always compile into it) 03:23:21 err, s/\)/"/ 03:23:29 elliott_: You're assuming that the majority of people are closed-minded idiots, which I challenge. 03:23:34 ais523: presumably, you wouldn't make [generic FPS 999] rather than AceHack just because more people with bad taste would like the former 03:23:35 I wasn't looking at what I was typing and forgot what sort of delimeter I had to close 03:23:37 evincar: Nope. 03:23:43 further evidence that I'm thinking in stack-based form 03:23:53 elliott_: AceHack was actually a response to popular demand 03:24:03 evincar: hey evincar is your language going to have goto 03:24:05 elliott_: "more closed-minded idiots...fewer open-minded clever people..." 03:24:08 and also, there's less competition; probably fewer people would play generic FPS 999 because it would have so much competition 03:24:19 evincar: I'm assuming that the (mythical) Average Programmer who will dismiss a language because it's pure (but not for having a really advanced type system that is a purely-functional language in itself??) is a closed-minded idiot. 03:24:27 Which is true by definition. 03:24:46 elliott_: but mostly, I suppose I just like programming, and producing something that other people like out of that is a useful side-effect 03:25:01 elliott_: won't Average Programmers dismiss languages for not being Java? 03:25:10 evincar: goto is very expressive, you see, and shouldn't an expressive language have it? Average Programmers understand it too! 03:25:10 evincar: let me type something 03:25:16 ais523: yep 03:25:41 evincar: your new PhD thesis: retrofitting dependent typing onto Java 03:25:55 (gah now I can't decide whether that idea is horrible or awesome) 03:25:59 evincar: you want people to learn a purely-functional programming language (which can already encode all the mutability and IO you want, with no loss in convenience or expressivity, which is simpler, has fewer errors because of unchecked non-local side-efects, and which has more language features described in itself rather than primitive) 03:26:07 evincar: PLUS an impure language which doesn't have those advantages 03:26:10 evincar: ...rather than just both. 03:26:12 erm 03:26:14 evincar: ...rather than just the pure one. 03:26:29 Before you say you don't, 03:26:31 yes you do: 03:26:31 elliott_: The simplest way to explain it is that the type system is a complete, purely functional, lazy language with no mutability, and the value system is an imperative, eager one with mutability. 03:26:36 monqy: You could make something that is goto in all appearances, but implemented more sanely. I'm not sure what card you're trying to play. 03:26:55 elliott_: The simplest way to explain it is not necessarily the best way. 03:26:58 Oh, and you know how you said youcould use functions which had local mutable state but didn't leak it outside? Congratulations, now you can't use those functions in types. 03:27:13 With the ST monad, you can, and it acts identically. And it enforces, with the type system, that you don't leak anything out, rather than leaving it up to not making mistakes. 03:27:18 i'm trying to play the demonstrating how it's stupid to add things for the sake of average programmers being expressive with them card 03:27:22 if thats ok with you 03:27:23 elliott_: Besides, the C++ type system is a complete functional language with no mutability. 03:27:32 lol 03:27:46 elliott_: There's an example of my madness working in practice, with a far poorer design. 03:27:53 C++ is also shit 03:27:56 your defence 03:27:57 is C++ 03:28:04 I think that means I've won... 03:28:07 elliott_: It is a language that exists? 03:28:13 That it is. 03:28:15 elliott_: did he ever explain how Average Programmers are supposed to use dependant types? I'm afraid I might have accidentally skipped over it 03:28:21 One of the worse things about Magic Set Editor is they lie. They say it is pure but actually it isn't, because of the random number functions, and the export functions. It is possible to make pure versions of these functions, which can be helpful in some cases. 03:28:22 and that lots of ppl use? 03:28:25 monqy: he's going to entice them with a list append function 03:28:35 monqy: I did not. 03:28:36 very clever 03:28:41 evincar: just a note, appealing to C++ in programming forums, unless they're dedicated to games or old-fashioned Windows development, will generally make everyone laugh at you 03:28:43 monqy: then they'll just go to their bosses and say "hey let me stop using java, there's this great language in this thesis..." 03:28:48 in fact, it may even Godwin the thread 03:28:50 and the bosses will be all "ok" 03:28:55 ais523: I'm well aware. I try not to touch the thing, honestly. 03:28:58 although it's not quite the same thing 03:29:22 elliott_: okay, well, it doesn't surprise me that there is a language that is more expressive than primitive recursive functions and less expressive than a TM. 03:29:24 zzo38: how do you make a pure version of a random number function? get it to take the seed as argument and return another seed along with the result? 03:29:32 atehwa: right 03:29:41 (note, "you" here = "zzo38") 03:29:45 atehwa: you seemed to imply such a language couldn't express Ackermann, though 03:30:09 elliott_: I was going to write an Ackermann-bounded-automaton as an esolang at one point 03:30:11 but got sidetracked 03:30:13 yes, well, I wasn't aware of such a language. 03:30:20 atehwa: right 03:30:25 monqy: The point of having a dependent type system in an imperative language is merely to offer fine control over the contracts that can be expressed over values, to help enforce program correctness. 03:30:41 evincar: oh, so you do want proving? 03:30:42 ais523: Yes. Or, just add to the seed each time, call it with seed=x+1, seed=x+2, seed=x+3, etc 03:30:46 I thought you just wanted it because it was a good way to organise a type system. 03:30:47 all I remember is that you had a finite number of values to work with and all operations consumed a value, except finitely many times, you could ackermann two values and get that many values 03:30:49 Well... that's what you said. 03:30:50 Make the interface to it pleasant to look at, and the battle is basically won. 03:30:55 zzo38: how do you make a pure version of a random number function? get it to take the seed as argument and return another seed along with the result? 03:30:59 see RandomGen 03:31:05 evincar: creating your language won't make me think it's any more of a good idea. 03:31:20 I do hope you realise how difficult it is to prove type systems correct, though 03:31:20 elliott_: I was interested in the zzo38 answer in particular, I know about, say, RandomRIO 03:31:20 elliott_: Formal correctness, practical correctness, different things. 03:31:23 especially dependent ones 03:31:29 where you have to mingle in the value normalisation proof 03:31:44 elliott_: If you write enough type information to make your program a formal proof, bully. But you don't have to. 03:31:56 evincar: what is practical correctness 03:32:01 elliott_: way easier than it is to prove hardware implementations of type systems correct (in that after compiling to hardware, the thing still types properly and doesn't end up disobeying the protocol) 03:32:03 trust me on this one 03:32:03 elliott_: The damn thing works? 03:32:51 elliott_: Average Programmers, remember 03:33:24 evincar: how does that respond to anything i say 03:33:27 -!- TeruFSX has quit (Ping timeout: 260 seconds). 03:34:31 MSE has a few functions using random, so whatever way is used you can do it. For certain things (not all things), the script can be called with a random "seed" variable and then there are various ways in which you can have it do different random numbers. For export functions, just have them return lists of export records. If the return value is a list it indicates exporting many files 03:34:31 -!- madbr has quit (Read error: Connection reset by peer). 03:38:55 elliott_: And yes, I do realise that type systems aren't simple beasts by any means. 03:39:04 At least not the monster I'm getting myself into a fight with. 03:41:48 -!- madbr has joined. 03:44:46 I love how thoroughly I get pounced on in here. 03:45:11 so uh 03:45:12 Even a fairly casual mention of something is going to provoke intense questioning. 03:45:19 that sequence joining example or whatever it was 03:45:21 what does it mean 03:45:32 monqy: it's just length-indexed vectors 03:46:11 im probably just not getting the syntax 03:46:18 monqy: Yeah, it's nothing exciting. It just says that the result of joining two vectors of lengths m and n is a vector of length m+n. 03:46:31 oh that's the type 03:46:38 I wrote the birdstyle.tex program, it is useful not only for Haskell but can be used with any program that uses Bird style (if any others exists). However, it makes error if the first command in a paragraph is outer command, but you can work around by putting \relax at first 03:47:11 you should totally make the type system imperative too 03:47:44 monqy: You would need an implementation, obviously, but you could put enough information in the type signature to obviate the need for one. 03:47:59 wait 03:48:07 you're actually planning to make it automatically generate functions based on the type? 03:48:09 haha 03:48:19 elliott_: No? 03:48:28 "you could put enough information in the type signature to obviate the need for one" 03:48:37 elliott_: then just add good enough type inference, and you don't need to write anything at all! 03:48:38 "obviate the need for one" is a bit bizarre of a thing to say 03:48:42 elliott_: Yes, because you could express the implementation in the type system, functionally. 03:48:49 (oh please let that be possible in some esolangish way) 03:48:52 evincar: show me an Agda function without any implementation 03:48:57 elliott_: Poor choice of words, that's all. 03:48:58 just defined in the type system 03:49:02 because what you said makes no sense at all 03:49:28 so uh 03:49:39 elliott_: more commonly, Agda functions don't have a return value (or well, they return something that's commonly called ), and exist only to make the thing type 03:49:42 is this thing actually going to infer implementation from the type? 03:49:45 elliott_: There is a functional subset and an imperative subset. You can implement a particular function in a mix of either. 03:49:56 elliott_: The functional subset happens to be the type system. 03:50:11 evincar: that doesn't mean you can define a function and just give it a cool enough type that you can leave out the value 03:50:35 elliott_: Not in those terms, no. 03:50:43 so what are your terms 03:50:50 and not those ones 03:51:16 evincar: how is what you said possible, give me an example of a function where you put enough information in the type system and express the implementation in the type system, functionally, thus obviating the need of an implementation 03:51:35 You can declare a detailed relationship between types, rather than declaring a simple relationship between types that includes an imperative implementation. 03:51:46 In fact you can make any program use Bird style with a simple AWK program: /^> /&&sub(/> /,"") 03:52:01 You could also remove types from the signature entirely and perform no type checking, or perform type checking manually within the imperative part. 03:52:13 evincar: that's not an example 03:52:45 elliott_: I know, I'm just offering more explanation. But what do you want? I'll just be pulling syntax out of my arse. 03:53:05 Do you like AWK? 03:53:19 evincar: wait so you can not only infer implementation from type, but also just bypass type checking? 03:53:29 Do you like AWK programming? 03:53:38 evincar: an example of 03:53:40 evincar: how is what you said possible, give me an example of a function where you put enough information in the type system and express the implementation in the type system, functionally, thus obviating the need of an implementation 03:53:46 monqy: You can't infer implementation from type. You can implement a function as a type relation. 03:53:48 which I have carefully constructed using only quotes from you 03:53:59 evincar: and how does that work? 03:56:59 monqy: The type system is a language in which you can express functions. If I pass 3 and 5 to such a function, I can treat them as "int", I can treat them as ">0", or I can treat them as instances of the types "3" and "5" whose only instances are those values. 03:57:08 I really don't know how to explain it any more clearly. 03:57:21 evincar: subtyping is not in any standard dependently-typed language that I know of 03:57:24 it _vastly_ complicates such things 03:58:03 elliott_: That's why I have a set of fundamental types that have representations, to keep things moderately sane. 03:58:09 what? 03:58:13 elliott_: From there, everything else is relations and predicates. 03:58:28 out of curiosity how much of the literature on dependent typing have you read 03:58:39 elliott_: Some types in the type system have concrete representations, for the sake of sanity. 03:59:10 elliott_: A few papers, not terribly much. 03:59:18 evincar: I think you may need a type system /for/ your type system 03:59:38 nothing you said about fundamental types with representations actually made any sense, but ok 03:59:44 I'm going to go code mcmap 04:00:44 ais523: Maybe so? I hate to bring up C++ again, but templates do distinguish between "typename", "int", etc. as parameters. 04:01:06 Is it a terrible idea to have rudimentary introspection or whatever you want to call it? 04:01:28 you've stopped actually making sense 04:01:46 what are concrete representations, what is a fundamental type, how is your subtyping done, how is this related to introspection, and how is C++ relevant 04:02:30 and pardon my ignorance but what does subtyping have to do with obviating the need of implementing sequence sticktogethering 04:02:45 -!- MSleep has joined. 04:03:49 elliott_: A concrete representation (though there could be a better term for it) would be something naturally serialised in memory. A 32-bit unsigned integer. A 64-bit IEEE-754 float. 04:03:50 -!- madbr has quit (Read error: Connection reset by peer). 04:04:36 elliott_: Fundamental types consist of all such directly representable types, plus their natural extensions such as tuples/arrays. 04:04:50 or do you mean that you can implement sequencesticktogethering in the type system and then magically have it in the object language too? 04:05:14 elliott_: They aren't special except in the sense that they provide a basis from which to derive other types in a finite way. 04:05:23 monqy: I'm not sure what you mean. 04:05:48 evincar: help i'm confused because of what you said about need obviation 04:06:19 monqy: If I write a function "foo" with an implementation but no type signature, no type checking is performed and the implementation is evaluated. 04:06:29 :( 04:07:12 veering on a tangent here but how does foo mingle with typed things then, and how is letting people get away with untyped stuff a good idea 04:07:14 If I write that same function with a type signature but no implementation, it's a declaration of a type relation which may or may not be fully evaluable. If I try to evaluate it, I find out. 04:08:05 If I write both, then type checking and conversion *as well as* evaluation are performed. 04:08:07 mingleingle 04:09:34 monqy: You can say there are basically two classes of types: those you care about and those you don't. If I write a function which takes arguments of any type and returns a value of any type, it's entirely up to the types involved to make sure that the operations performed on their instances are legal. 04:09:46 If they're not, it's just a type error. 04:09:56 Duck-typing. 04:10:01 im dead 04:11:03 and so is this ever a good thing or is it just 04:11:06 -!- madbr has joined. 04:11:11 how is this dependently-typed exactly, i've been making all my statements under the assumption that it was a strongly-typed language with a dependent type system, but it appears you just said dependent because it's a nice word 04:11:12 Average Programmer laziness 04:11:24 oh right and what elliott_ said 04:12:33 elliott_: Types depend on values and other types, and there isn't any real distinction between a type and a value. 04:12:53 except that values can do io and change variables 04:13:36 No, imperative portions can. You can use types imperatively and you can use values declaratively. 04:14:44 ???? 04:14:48 I could easily say x = int; if (y) x = float; z = x(); # Create an instance of whatever x is. 04:15:28 this sounds like a total mess 04:15:34 I agree with elliott_ 04:15:46 it uh 04:16:05 why is mutability a good thing? 04:16:06 why don't you just pick one idea and run with it rather than making a language that gels five thousand concepts together in a way you cannot explain in a satisfactory manner 04:16:09 it just looks like a 04:16:10 huge mess 04:16:31 ?_? 04:16:35 Invent the INTERCAL card game. 04:16:37 what is the easiest way to wipe an ssd so that it is, say, one tenth scrambled/overwritten 04:16:45 in a laptop 04:16:52 elliott_: By five thousand, you mean two? 04:17:02 evincar: nope 04:17:08 oh no there are more than two concepts in there 04:17:13 at least three 04:17:19 and uh 04:17:25 what does the () in x() mean 04:17:26 Also, I'm not explaining myself well because I've been awake for a while. 04:17:34 monqy: Instantiation. 04:17:47 Invent the INTERCAL card game, please. Do you know how? 04:17:48 x contains a type, so you can instantiate that type. 04:18:15 zzo38: It sounds like UNO but with a COME FROM card. 04:18:33 and what does instantiation do 04:18:49 hahaha a 'come from' card 04:18:50 monqy: Produces a value of a given type... 04:19:09 MINGLE: shuffle the deck and the playing field into each other 04:19:20 hmm, surely at least in /this/ channel an INTERCAL discussion can manage to avoid devolving into "hahaha COME FROM" 04:19:50 evincar: It does? I don't know about UNO but maybe figure out how to make something like that, type the rules or whatever else you would do instead. Including, MINGLE card, and so on 04:20:18 evincar: so you just assign z to a value of x? Doesn't it do anything else? 04:20:51 up to now it sounds feasible in like, javascript, no? 04:20:53 evincar: for example, what happens if i then try to, say, z = float(); 04:21:31 evincar: are you conflating type declaration with instantiation? are you asking for trouble? 04:22:56 -!- madbr has quit (Read error: Connection reset by peer). 04:24:26 -!- madbr has joined. 04:24:28 is there a use for bool variable types in non performance related stuff btw? 04:25:16 bool variable types? 04:25:42 bools for performance? 04:25:49 the "bool" type 04:25:51 monqy: Saying z = float() is the same as saying z = or possibly z = 0.0. 04:26:02 is it useful 04:26:13 And given x = float, z = x() is the same as z = float(). 04:26:18 bool is useful 04:26:19 ?_? 04:26:31 you don't need it for performance though 04:26:36 since it's using 1 bit every 32/64 04:26:40 you use it for understanding 04:26:57 then it's syntactic sugar 04:27:04 Everything is syntactic sugar 04:27:06 What's your point 04:27:15 evincar: any reason why you don't declare the types of stuff in one place and then provide them with values (without this uninitialized value nonsense) in another? 04:28:29 then unless your system is performance oriented there's no point to types other than double, strings and agregates/arrays/objects/hashes/etc... of those 04:28:53 you did that with your sequence mush together thing right? put the type over in one place and the value in another? 04:28:57 and I guess functions 04:29:14 rather than initailizing and then reassigning 04:29:16 madbr: If I'm not after performance I can code everything I want in just brainfuck, but I don't because brainfuck is difficult to understand 04:29:19 because ew ew ew e we w e w e we we ew 04:29:22 monqy: It's essentially the same thing though. If I say "x is a float", what value does "x" have before I give it a value? 04:29:25 Similarly, bools are used over ints because bools provide understanding 04:30:01 evincar: it doesn't have one. it's an error to use it before you give it a value. you could even force giving an initial value in the declaration syntax. 04:30:21 patashu: I'm not convinced it's a big gain 04:30:47 not only understanding, but type checking 04:30:54 madbr: what's the point of using structures, let's just use lists 04:31:00 yes that 04:31:02 i don't see the relevance of performance 04:31:10 madbr: in fact, let's just use a brainfuck tape 04:31:11 monqy: Then there's no point to having a declaration. Saying "x = 0.0" or "x = float()" is no more or less clear than "float x = 0.0", and the latter is redundant. 04:31:40 madbr: and why have types at all. just make everything byte arrays. 04:32:27 evincar: the "x = float()" one is just full of bad ideas 04:32:42 monqy: You wouldn't typically do that, of course. 04:32:50 make it illegal 04:32:50 well, there's no point to char and short except for specifically saving RAM and specific arrays 04:32:55 it's just clutter 04:33:05 bool is sugar 04:33:15 madbr: what isn't sugar 04:33:25 sugar makes things sweeter 04:33:28 bool conveys your intentions 04:33:31 madbr: are type systems sugar 04:33:32 "this is a boolean, false or true" 04:33:35 int doesn't convey this 04:33:39 madbr: bool is not an integer in all languages 04:33:40 monqy: Also I fail to see the difference between "float x;" (x is of type float but is either uninitialised or zero) and "x = float();". 04:33:47 in Haskell, False and True are booleans; 0 isn't a boolean 04:34:08 evincar: the former is not what I said at all 04:34:11 wow, you're reminding me that I got into an argument about whether boolean should be sugar for 1-bit integer in my compiler, or a different type 04:34:29 int has no point either except as an array index 04:34:31 I was arguing that people rarely used 1-bit integers for arithmetic purposes, so that they may as well be the same as booleans 04:35:09 monqy: What do you mean, then? What value does an explicit declaration have? 04:35:44 madbr: you realise types exist to make the programmer's life easier, right? 04:35:51 it isn't all about performance, and types don't affect performance at all 04:35:55 well, mostly 04:36:09 madbr: knowing information about what a function wants to receive, and what it returns, is useful. 04:36:16 knowing what type of data a variable is, is useful. 04:36:21 having the compiler tell you when you mix that up, is useful. 04:36:24 bool conveys a useful intention. 04:36:55 What elliott_ said. 04:37:08 in particular, you can have a type like bool or SQLEscapedString to convey an intention, then erase it into int or string respectively after you've done typechecking 04:37:23 but then you could just declare your variable as whateverFlag instead of just whatever 04:37:49 madbr: That's Hungarian, and even its good uses are now frowned upon. 04:37:59 madbr: seriously? 04:38:02 But renaming the variable won't make the compiler (or runtime) catch mistakes 04:38:05 madbr: what advantages does that have over bool? 04:38:08 If you have a type system to check things for you, why rely on convention? 04:38:13 madbr: the compiler doesn't stop you putting the wrong type of value in 04:38:17 I can do int myFlag = 2; but I can't do bool my = 2; 04:38:18 madbr: you have to type Flag each time you use it 04:38:21 instead of taht being encoded in the type 04:38:25 Patashu: you can in C, but that's C's fault 04:38:26 so what, it's a bool 04:38:34 awful eso idea: (good) hungarian notation enforced by the compiler 04:38:35 it's not like you're going to mess that up 04:38:39 elliott ssh! 04:38:44 evincar: it's not that an explicit declaration is good; it's that initializers are bad 04:38:45 madbr: "So what if my system is more painful to use, and causes more errors?" 04:38:47 it's like a good type system, but with annoying boilerplaye enforced for no reason 04:38:51 madbr, you only have approximately 7 slots for short term memory 04:38:56 madbr: Yours has negative advantages over a bool type. 04:38:57 Negative. 04:38:58 You WILL forget things even if you think they're trivial 04:39:02 *boilerplate 04:40:27 eh 04:40:39 madbr: but seriously, so what if you wouldn't mess it up? 04:40:47 your solution is still inferior: more typing. 04:41:04 why be inconsistent, and leave bools able to be messed up, when you wouldn't for a more complicated structure which you /can/ mess up? 04:41:36 monqy: Could you elaborate? If a type is instantiable with no arguments (such as float might be), then why is it bad to instantiate it as such? I know you'd be more likely to say "x = 0.0" than "x = float()", but having the "T()" syntax (or whatever it turns out to be) for instantiation seems wholly innocuous to me. 04:42:22 It's fine for things like list() or dict() since those have a 'natural' state, empty 04:42:24 elliott_: I think we can sum this up as "typing is not a replacement for typing". 04:42:25 What is the 'natural' state of a number? 04:42:29 evincar: (1) bloat (2) reassignment is icky (3) giving something a value but hiding that value is icky (4) weird 04:42:53 evincar: ++... to that one statement, your language is still gross. 04:42:56 elliott_: very minor advantage for boolish ints over bools: you can retrofit a third value onto your booleans without breaking memory layout compatibility 04:42:57 WE ARE STILL AT WAR. 04:43:07 ais523: you have a strange definition of advantage 04:43:21 what's the third value of booleans? 04:43:23 FILE_NOT_FOUND? 04:43:31 Patashu: "not created by the player in a bones file" 04:43:38 Patashu: So you're saying numeric types should not be instantiable without an explicit value. 04:43:41 so you want an enum then 04:43:43 evincar yes 04:43:46 it was how they retrofitted a bugfix onto NetHack without changing the bones file layout 04:44:06 ais aah 04:44:07 Okay, that's fair. It also doesn't play terribly nicely with generic programming, but it's sensible. 04:44:11 so it's like the empty fields in ip packets 04:44:13 future expansion space 04:44:30 Patashu: it's also an awful fix to the problem in general 04:44:33 evincar: why doesn't it 04:44:40 Haskell has plenty of generic libraries, and no "default value" because not every type has a value 04:44:44 and not every type has a sensible default value 04:44:46 if you need future expansion space, add it separately rather than randomly fitting it into booleans and only booleans 04:45:58 oh right (3) on my list of ick should also include something about default values being icky :) 04:46:36 I'm not sure about that 04:46:49 elliott_: Alright, fair enough. I just like zero-initialisation, for immutable values anyway, because, well, you've got to initialise them to something. 04:47:10 not everything has a zero. 04:47:17 evincar: you make initial value explicit 04:47:30 evincar: want 0-initialization? thing = 0. bam. 04:47:35 No, not everything does, but ints and floats do, which is what I'm talking about. :P 04:47:49 why have ints 04:47:52 monqy: And that is what you would do in almost all circumstances. 04:47:55 wouldn't NaN make a more sensible default for floats? 04:48:00 evincar: what about the other ones? 04:48:01 ais: no 04:48:04 everything has a zero 04:48:05 madbr: what, exactly, do you use instead of ints 04:48:06 evincar: why even have syntax for those other ones? 04:48:11 depending on how you define everything 04:48:13 signalling NaN, at that 04:48:16 ais: NaN propagates and turns more values into NaN 04:48:18 so you get an error if you try to use it 04:48:26 madbr: what do you use instead of ints 04:48:26 madbr: that's exactly what you want, isn't it? 04:48:43 VHDL initialises signals to U, which propagates and turns other things into Us 04:48:43 ais: you want to keep NaNs out of your floating point system 04:48:56 madbr: yes, you do, which means that it'd be obvious if you failed to initialise properly 04:49:06 madbr: you want to keep uninitialized values out of your programs 04:49:52 it's like arguing over whether /0 should explode or not I guess 04:50:29 ais: NaNs are also particularly slow to process ofc 04:50:46 just force programmers to supply an initial value 04:50:52 everything solved 04:51:23 half of the time it's going to be 0 04:51:40 then people can make it 0 half the time :) 04:51:53 it's not like it's even more typing than float() 04:51:59 madbr: you don't _want_ to process uninitialised values 04:52:26 true, they could end up being NaNs 04:53:08 umm, as in not explicitly initialised 04:53:15 so signalling NaN is a good default value for a float 04:53:19 so that it complains if you use it 04:54:13 I'm a firm believer in not paying for things you don't use, though. If a programmer wants to create an uninitialised (mutable) value of some type, I think they should be allowed. 04:54:31 then it should be undefined 04:54:40 That counts as initialisation. 04:54:43 rather than 0-initialized or what-have-you 04:54:48 I think normally you either want to initialize to 0, or it doesn't matter cause you're going to overwrite it, or you want to initialize to a specific value and you're going to remember to initialize it 04:54:52 It is undefined in the sense of "could be anything". 04:54:56 yes 04:55:07 It's not undefined in the sense of "this is a special undef value that will trap if you use it". 04:55:16 yes I know 04:55:19 int x; return x // RNG in evincar's language 04:55:24 in my philosophy I want to keep NaNs and other "exploding values" out of my program as much as possible 04:56:02 so I'm not sold on "default to NaN" 04:56:02 madbr: even if it makes them incorrect? 04:56:13 madbr: it would only be NaN if you made an error 04:56:15 madbr: do you prefer programs to fail noisily, or try to recover? 04:56:25 it should be a compile time error to use something not yet initialized 04:56:31 evincar: actually, there are two sorts of NaN, one (which is often unimplemented) does indeed trap if you use it 04:56:34 monqy: how could it be more incorrect than exploding the whole program 04:56:48 Patashu: if so, I hope the compiler's better at inferring it than gcc 04:56:51 madbr: by giving bad values to things that quietly ruin everything 04:56:57 guess they could be NaN in debug and 0 in release 04:57:00 I have to add =0 on declarations quite a bit just because gcc doesn't realise it's always initialised before use 04:57:10 Patashu: you should not be able to create something initialised, it is by definition useless 04:57:11 I know it can't infer it in general, but it could do quite a lot better than it currently does 04:57:16 ais523: I was going to add "...at the language level, of course, not like signalling NaN." 04:57:23 madbr: say, a bad 0 somewhere cleared all your favourite files. wouldn't exploding be better? 04:57:32 But then I was like "nah, no one'll care". 04:57:47 I was talking about signalling NaN 04:58:11 monqy: but exploding will clear the current thing you were working on 100% time 04:58:21 monqy: if it exploded, it'd probably take out not all your files, but the disk they were on, most of the computer, and possibly even some of the table it was resting on 04:58:42 why are we using exploding and not exceptions? 04:59:05 at work they turn off exceptions 04:59:14 wat 04:59:17 is this why you're crazy 04:59:41 -!- lament has quit (Ping timeout: 276 seconds). 04:59:51 patashu: I don't know the reason, but it's probably performance on shoddy Arm platforms 05:00:30 at least use them during development if not during production :o 05:02:12 -!- madbr has quit (Read error: Connection reset by peer). 05:04:21 -!- madbr has joined. 05:04:21 the system they have is based on warnings 05:04:26 the system they have is based on warnings 05:04:42 it sets a global variable to an error code, right? 05:04:47 evincar: on the thing again, I may be confused but, in the case of not assigning a value to something (just declaring it), you're using the var = type() syntax? If that's the case, why use assignment syntax for something that's really just a declaration (not entirely a rhetorical question) 05:04:56 prints to an error console 05:05:09 aah 05:06:19 monqy: No, it'd be something like "v = mutable T()" if you didn't want initialisation. The point of assignment syntax in the general case is that things are immutable by default and everything is single-assignment, so declaration and assignment can be the same thing. 05:06:20 -!- madbr has quit (Read error: Connection reset by peer). 05:06:51 why does everyone think that ignoring exceptions except you print them to stderr / some other error log is at all helpful? 05:06:57 evincar: ok, so in what case would you use the =whatever() syntax? 05:07:20 ais523: Average Programmer 05:07:31 I don't even see why one of those would think it was useful 05:07:35 except that NetBeans does it by default 05:07:36 ais523: because they're bad 05:07:42 err, what 05:07:44 I seem to spend half my life deleting Logger imports 05:07:51 bad netbeans, bad 05:08:05 monqy: If you wanted a default instance of some specific type that's default-constructible (e.g., dict/list) or if you wanted a default instance of some unknown type that is. 05:08:08 elliott_: NetBeans can surround something with a try/catch block for every exception it could throw, which is useful 05:08:12 as often you'll want to catch all of them 05:08:21 but the default impl it puts in for what to do when caught is to log it 05:08:28 and it adds imports for Logger as a result 05:08:37 so you have to go and delete the import if you're not using the default impl 05:08:46 Say "instantiate(T) = { return T() }". 05:08:53 (I'd much prefer a throw NotImplementedException as the default, like it does for methods) 05:10:53 evincar: in the former case, I'd think it'd be more useful for each of them to force explicit usage of said value (e.g. 0, empty). In the case of the latter, I guess it's a bit better, but having instantiations working like that is still icky. There was something else I was going to say but I forgot it. 05:12:08 evincar: oh right. I can't think of any usages of generic instantiation unless you use something like typeclasses/interfaces 05:12:24 -!- madbr has joined. 05:12:25 evincar: e.g. Monoids 05:12:28 damn 05:12:34 evincar: how does default initialisation help write generic code again 05:12:42 I guess it's really an application thing anyways 05:12:48 madbr: eh? 05:13:15 elliott_: It really depends on the types involved, and I can't come up with a good example at the moment. 05:13:19 if you're writing for databases, you'd probably rather have your client app explode than corrupt the database 05:13:37 elliott_: I just like uniformity and not violating the principle of least surprise. 05:13:51 being able to conjure up a value violates my POLS 05:13:54 POLS is code for "I like it" 05:14:01 how is it uniform? 05:14:08 any more than forcing all types to have exactly one value is uniform 05:14:12 sure, it is, but ... that sucks 05:14:35 -!- TeruFSX has joined. 05:14:37 I write sound code and having the app explode is much worse than any wrong sound I could be outputting 05:16:02 Like for divide by zero, I don't care if it generates a wrong value, that's much better to me than stopping the whole application, which is pretty much the worst thing that can happen 05:16:11 I'm just saying, 0 is a reasonable default for the numeric types I'm providing. It doesn't hurt anything to throw it in. 05:16:20 it hurts me 05:16:27 For something that just makes sound I suppose that's alright 05:16:28 it hurts people like me 05:16:30 I'm fine with default to 0< 05:16:31 For something handling data you don't want it to happen 05:16:33 Like for divide by zero, I don't care if it generates a wrong value, that's much better to me than stopping the whole application, which is pretty much the worst thing that can happen 05:16:39 madbr: i don't suppose you write any mission-critical financial applications 05:16:40 who see something like float() and don't know if it's 0 05:16:42 and have to look it up 05:16:45 please, god, don't say you do 05:16:50 and it's needless bloat 05:16:51 elliott: I don't! 05:16:53 It doesn't sound like it lol 05:16:54 and ughhhh 05:16:58 madbr: ok 05:16:59 then do whateve 05:17:00 r 05:17:04 I don't ordinarily go for 0-initialisation, but obviously immutable values are different. 05:17:17 I write sound plugins and games 05:17:22 this is the what second time you brought up immutable values 05:17:23 why is 0 a good default value evincar 05:17:27 but 05:17:27 when is 0 ever a useful value 05:17:30 without giving it explicitly 05:17:32 what does 0 have to do with immutable values 05:17:57 elliott_: dunno, in megazeux variables default to 0 and it's pretty practical that way 05:18:18 what is your favourite language 05:18:23 i am curious 05:18:28 monqy: When I write "x = mutable T()", I expect an uninitialised mutable T. When I write "x = T()", should I reasonable expect an error or a default? 05:18:32 *reasonably 05:18:46 haven't used high level languages so atm it's C++ 05:18:58 -!- olsner has quit (Ping timeout: 240 seconds). 05:19:01 sound code is almost always C++ 05:19:22 i keep reading "sound" as "correct" and i start lunging for your throat with a knife 05:19:25 but then I just sit in my hole 05:19:29 madbr: heh.. it's almost like you chose the most mission non-critical things 05:19:38 wow i was just about to say what elliott_ said but then elliott_ said it so i said this instead 05:19:49 i mean sounds and games 05:19:50 iti: I don't want to work in a fucking bank :D 05:20:16 fucking bank eh 05:20:21 madbr: i made an image the other day... which perhaps expresses the non-mission-criticality of music :D 05:20:21 I thought all the talk about indie gamers being universally terrible programmers was hyperbole 05:21:12 It's in the nature of the problem 05:21:20 madbr: i highly advise learning a nice high-level language 05:21:23 madbr: http://oi56.tinypic.com/xc7kes.jpg 05:21:41 madbr: im worry for your programmer mind health 05:22:14 monqy: atm I'm programming assembler :o 05:22:39 elliott_: you mean people who make indie games, or who play them? 05:22:41 itidus20: what does it mean 05:22:54 monqy: it means music isn't mission critical :D 05:23:22 itidus20: quite an odd analogy 05:23:30 itidus20: in some ways it is 05:23:40 ok well.. the blue thread.. represents the music and represents the programming 05:23:45 lol 05:23:49 so if the thread is in one piece then it has no mistakes 05:24:15 musician is using a laptop in a gig 05:24:21 the laptop cannot crash 05:24:25 hmm 05:24:29 well... 05:24:33 elliott_: you mean people who make indie games, or who play them? 05:24:33 make 05:24:41 when i made that image i had actual music in mind 05:24:51 not sound plugins. 05:24:52 if you code a synthesizer plugin for music making programs 05:24:54 so you're right 05:25:05 itidus20: for an extreme example, making a minor programming mistake isn't as bad as making tons and tons and tons of musical errors when the mission cares at all about the music 05:25:10 if your plugin crashes, it crashes the whole music making program and the musician loses his song 05:25:19 corollary: your plugin cannot crash 05:25:28 monqy: the mission never cares about music! 05:25:35 itidus20: weird mission there 05:25:55 "music isn't mission critical when missions don't care about music": tautological?!?!?!?!?? 05:26:01 uhmm 05:26:04 can it generate wrong output? sure, whatever 05:26:07 ok lets say a guitar 05:26:15 a guitar can afford to make mistakes 05:26:26 what if you make a really big mistake 05:26:29 or lots of them 05:26:35 monqy: http://ompldr.org/vOW9wcg me irl in my hole 05:26:37 then you suck.. 05:26:38 the string can snap 05:26:49 if your plugin crashes, it crashes the whole music making program and the musician loses his song 05:26:55 programs crash when the VSTs do? 05:26:57 i think not 05:27:07 elliott_: not anymore 05:27:24 monqy: image remains relevant, topical 05:27:25 but some early programs did 05:27:32 its like uhh.. video can recover too 05:27:35 monqy: took me whole minutes 05:27:46 elliott_: nice hole 05:27:56 monqy: thanks 05:28:19 its an idea i am really curious about... 05:28:30 what is? 05:28:44 in programming it is usually the case you need to get every instruction right 05:28:50 not really 05:28:54 and that one mistake throws out the whole system 05:28:59 not really 05:29:07 ever heard of minor bugs? 05:29:12 I have. 05:29:14 they exist. 05:29:20 they wreak minor havoc. 05:29:39 but don't throw out the whole system. 05:29:53 just a very tiny minor little bit perhaps nobody even cares about 05:30:01 ok.. my postulates are wrong >:) 05:30:33 In music, mistakes don't take whe whole thing down no 05:30:39 They just stand by themselves 05:30:40 monqy: I coloured it: http://ompldr.org/vOW9wdg 05:30:57 squares 05:31:20 it looks sadder now 05:31:21 somehow 05:32:59 -!- madbr has quit (Read error: Connection reset by peer). 05:33:34 monqy: http://ompldr.org/vOW9weA 05:33:53 ashes? 05:33:58 to ashes 05:33:59 is that blood 05:34:03 -!- derrik has joined. 05:34:05 are you dead 05:34:12 is that a statue 05:34:14 http://ompldr.org/vOW9weQ 05:34:16 so mjuch mysterys... 05:34:17 -!- madbr has joined. 05:34:24 its staring at me 05:34:27 and crying 05:34:30 tears 05:35:09 oh jesus cufcking christ i made it disturbing 05:35:29 monqy: 05:35:38 monqy: http://ompldr.org/vOW9weg 05:35:45 im disturbed 05:35:46 jesus 05:35:51 its like chocolate 05:35:51 tell me this makes you scream 05:35:55 lmao 05:35:56 what 05:36:01 the uh 05:36:02 brown stuff 05:36:05 reminded me of chocolate 05:36:09 or is that black 05:36:11 uhh 05:36:15 dark chocolate 05:36:29 and the tan stuff looks real creamy and swirly 05:37:01 do you hate chocolate or something 05:37:16 the face is disturbing though. maybe dark chocolate chips or currants in some sort of cream or white chocolate filling? 05:37:27 elliott_: i did an edit of it: http://oi51.tinypic.com/34h0z.jpg 05:37:40 elliott_ sure looks mad there 05:37:44 itidus20: i... 05:38:33 Well, it's about that time. 05:38:45 I'll be back tomorrow, I guess. 05:39:15 -!- evincar has quit (Quit: leaving). 05:39:20 http://ompldr.org/vOW9xMQ 05:39:24 monqy: deepness of soul edition 05:39:27 w/ lens flare 05:39:34 is that lens flare 05:39:37 oh 05:39:39 ok 05:39:50 its deep 05:39:51 and soul 05:39:56 monqy: i call it sweet elliott_ and hella hole 05:40:22 wheres your knife is it in the wole too 05:40:37 its inside my heart 05:41:53 monqy: http://i.imgur.com/3brEm.jpg 05:42:25 its a maze 05:42:30 ing 05:42:33 a soulcrishung maze 05:42:36 ing 05:43:47 -!- madbr has quit (Read error: Connection reset by peer). 05:44:15 monqy: http://i.imgur.com/P5iCf.gif 05:44:36 whoa a ball 05:44:50 cool... animation 05:45:06 "delay inserted to prevent evil cpu-sucking animation" oh come on gif 05:45:09 erm 05:45:10 gimp 05:45:16 subliminal deepness of soul with lens flare messaging 05:46:56 i am seeking a good gif editor on windows 05:47:12 theres not enough i tells ya 05:47:20 gimp 05:47:26 gimp "good inough mfor pme" 05:47:35 erxcept i use linux.... 05:48:17 i recently downloaded gimp but havent really tried it 05:48:28 its good inough mfor pme 05:50:55 -!- madbr has joined. 05:53:04 -!- madbr has quit (Read error: Connection reset by peer). 05:56:23 -!- Sgeo has joined. 05:56:33 hi Sgeo 05:56:37 you missed some good discussion 05:56:41 about type systems and uh 05:56:42 other stuff 05:57:11 -!- Sgeo_ has quit (Ping timeout: 255 seconds). 05:57:16 oh 05:57:24 sgeo :( 05:57:32 -!- TeruFSX has quit (Ping timeout: 276 seconds). 05:57:50 whens sgeo coming back i miss sgeo 05:59:17 -!- madbr has joined. 06:00:21 lol 06:02:07 Hi 06:03:15 hi 06:03:23 i missed you 06:04:45 .. 06:05:04 * Sgeo has no coherent response other than this one 06:05:09 -!- TeruFSX has joined. 06:07:05 -!- madbr has quit (Read error: Connection reset by peer). 06:07:12 To all flamers: this is my first real texture pack, if you flame, I will report you. 06:07:43 whatf slaming 06:07:56 flsaingubdgmg 06:08:07 is not praising it.....flaming? 06:08:13 or is that trolling 06:08:42 flammable 06:09:30 itidus20: i made you a persent http://ompldr.org/vOW9xNQ 06:10:36 heh 06:10:53 bible.gif 06:11:03 all this and more is possible with gimp 06:11:05 tm 06:12:38 I think ImageMagick is much better than GIMP 06:13:00 sometimes I use imagemagick for things. 06:13:06 i imagine itidus20 wants a graphical interface 06:13:25 ;_; 06:13:31 -!- madbr has joined. 06:13:31 the most insulting insult 06:13:46 offensive offense? 06:13:48 actually I'm wondering if you can make games with gimp 06:13:52 wat 06:13:54 what 06:14:10 as in.. opening gimp.. and using no other software... produce some sort of game =)) 06:14:19 itidus20: well there's ais523's ms paint tic tac toe 06:14:28 nice 06:14:40 I also happen to like METAFONT and I have made a program to combine METAFONT with ImageMagick. 06:14:52 itidus20: but um that's just using the flood tool's algorithm 06:14:59 there's not really any other algorithms to do :P 06:15:24 make gimp scripts 06:15:31 turn them into games 06:15:36 im being silly for the most part 06:16:00 but... back in the old days i used spreadsheet macros to try to make interactive fiction 06:16:06 lol 06:16:25 I made RPGs with spreadsheet macros 06:16:27 not very good ones, though 06:16:51 this is what drove me to support open standards 06:16:57 because they kept breaking with every new version of Excel 06:17:08 lmao 06:17:11 oh i was using lotus123 06:17:57 elliott_: it even removed all the UI elements, to prevent cheating 06:18:07 although it was probably possible anyway, say by holding down shift on load 06:18:26 also, removing the entire UI gave more screen space for gamy stuff and hid the fact it was Excel, although I suspect it was obvious anyway 06:20:51 -!- madbr has quit (Read error: Connection reset by peer). 06:23:57 i wonder what this java bug thing is 06:24:02 Java 7 GA was released today, but as noted by Uwe Schindler, there are some very frightening bugs in HotSpot Loop optimizations that are enabled by default. In the best case scenario, these bugs cause the JVM to crash. In the worst case scenario, they cause incorrect execution of loops. 06:24:03 haha 06:24:06 good job oracle 06:24:22 "These problems were detected only 5 days before the official Java 7 release, 06:24:23 so Oracle had no time to fix those bugs, affecting also many more 06:24:23 applications." 06:24:23 hmm, Java puts crash > incorrect execution 06:24:23 wow 06:24:31 YOU MEAN LOOPS ARE BAD?? SORRY 06:24:33 ONLY FIVE DAYS 06:24:35 CAN'T CHANGE IT 06:24:36 /Java/, one of the most enterprisey languages in existence 06:24:48 ais523: umm, isn't that fairly Javay? 06:24:55 Java doesn't let you do ANYTHING loosely 06:25:10 is java still cool with typecasting 06:25:13 or what have it 06:25:19 elliott_: I know, I was taking a potshot at the crashing-is-worse-than-returning-a-random-number opinion 06:25:37 monqy: it throws ClassCastException if you try to cast something into a class that can't describe it 06:25:59 snazy 06:26:48 -!- madbr has joined. 06:28:18 ais523: now just do it a few seconds later... 06:28:35 meh, scrollback exists 06:31:29 -!- madbr has quit (Read error: Connection reset by peer). 06:34:41 Although METAFONT is designed for font making, you can use it to draw other things too. 06:37:30 -!- madbr has joined. 06:39:44 -!- madbr has quit (Read error: Connection reset by peer). 06:42:14 ais523: how long will fib 99999 take to compute naively? 06:42:32 elliott_: you mean via the recursive algorithm that's O(2^n)? 06:42:37 :-P 06:42:39 O(2^n) where n is 99999 06:42:49 * elliott_ tries 999 instead :-D 06:42:55 even that'll take far too long 06:43:10 bah 06:43:16 stupid exponentials 06:43:20 99 should terminate within my lifetime, right? 06:43:58 that's about an octillion 06:44:01 so probably not 06:44:13 * elliott_ is trying to test memoisation... 06:44:13 I was using 10 to test may naive fibonacci impl 06:44:18 and even that took far too long 06:44:18 I'm not sure it's actually memoising 06:44:31 I need a value that the naive fib goes slowly at, but not too slowly :-P 06:44:57 memoised 100 is faster than unmemoized 10 06:45:10 err, what is up with -ise vs. -ize in that line? 06:45:25 unmemoisation is so american 06:45:49 *Data.Memoization.StableName> fib 19 06:45:49 4181 06:45:49 *Data.Memoization.StableName> fib' 19 06:45:49 34 06:45:57 umm, memoisation shouldn't change behaviour, right? 06:46:02 no 06:46:14 and fib(19) is not 34 06:46:24 I don't know offhand if it's 4181, but it wouldn't surprise me 06:46:24 * elliott_ has no idea what happened there 06:46:29 -!- madbr has joined. 06:47:40 well, _something_ is wrong 06:47:55 coincidentally, I implemented memoized fibonacci in ICA (and thus VHDL) a few days ago 06:48:05 to celebrate the addition of RAM-like arrays 06:48:14 (as opposed to tuple-like arrays) 06:48:18 * elliott_ celebrates, can i have the compiler source code now 06:48:34 or at least a picture of the synthesisation result :D 06:48:35 heh, it's not ready for release yet, and I don't have permission to release it either 06:48:56 and FPGAs look the same no matter what program is on them 06:49:23 -!- zzo38 has quit (Remote host closed the connection). 06:50:51 ais523: surely a synthesiser can draw some kind of graph for you 06:51:15 it can, but it basically just always looks like a splodge on the page 06:51:19 no matter what the actual circuit 06:51:38 -!- Nisstyre has quit (Ping timeout: 255 seconds). 06:54:15 ais523: hmm, random @ thought: I don't think it can have a "native machine word" type 06:54:42 no, but such a type isn't very useful unless you're doing low-level stuff anyway 06:54:53 well, it's useful for smallish integers 06:55:36 nah, in practice, (smallest type that holds the integer) will be fastest unless the processor has no instructions for manipulating it 06:55:40 ais523: anyway, you were meant to ask me why; we are no longer friends 06:55:46 also, sure, I guess so 06:55:48 elliott_: no, it's obvious 06:55:53 ais523: what's the reason? 06:55:58 because it was non-obvious to me 06:55:58 network transparency 06:56:04 :/ 06:56:07 you know more about @ than I do 06:56:09 the type's size might be different on different computers 06:56:14 ais523: well, that's not the problem 06:56:17 that's perfectly okay 06:56:25 yep, you could translate at the boundary, I suppose 06:56:26 ais523: the problem is that the type could change underneath you mid-function 06:56:40 because a program might migrate to another system 06:56:45 note: this is great for writing viruses 06:57:07 just make it 64 bits 06:57:19 Patashu: gross 06:57:33 I'll just offer a few fixed-sized types and pretend they don't exist and tell everyone to use bignums 06:57:37 haha 06:58:11 a large part of @'s core design is me having a weapon sufficient to make people code @ objects however I want 06:58:15 currently, the stern glare will suffice. 06:58:20 if CakeProphet starts using @, I may have to purchase firearms. 06:58:37 if Microsoft starts promoting it, then it's time for tactical nukes 06:58:58 -!- TeruFSX has quit (Ping timeout: 240 seconds). 06:58:59 please don't hurt anybody 06:59:37 ais523: i'll just be you from now on 06:59:57 heh 07:01:43 I wonder if this "introspection box" model actually makes any sense 07:01:44 -!- madbr has quit (Read error: Connection reset by peer). 07:01:55 hmm, you can't have 07:01:57 box :: a -> Box a 07:02:07 because you can break parametricity like so: 07:02:27 ohNo :: (a -> b) -> (a -> b) -> Bool 07:02:32 ohNo f g = box f == box g 07:02:41 (assuming the box on code compares the ast) 07:02:58 but like 07:03:04 you also can't have 07:03:09 lolGimmeABox :: Box a 07:03:12 because WHAT DOES THE BOX CONTAIN... 07:03:16 what is this Box? 07:03:24 the rule is something like... if you create an object you can box it 07:03:28 but it's hard to define create 07:03:31 really hard 07:03:40 coppro: umm, do you know what @ is 07:03:40 elliott_: are you sure you can == on boxes like that? 07:03:50 ais523: do you remember what a box is :D 07:03:57 elliott_: in what context 07:04:01 you look like you're acting like boxing is a monad (perhaps subconciously), and it isn't 07:04:06 coppro: there's only one context 07:04:13 also, no, I don't 07:04:22 ais523: ok, well, that's not what a box is in this context 07:04:33 ais523: I was thinking: in @, I want to be able to do things like examine the ASTs of running programs 07:04:37 ais523: and inspect arbitrary objects 07:04:40 and all that jazz 07:04:51 ais523: BUT I don't want code to be able to, say, look at the AST of a function it's passed willy-nilly 07:04:56 because that breaks parametricity, security, and all sorts of things 07:05:04 So a box is like a security checkpoint? 07:05:10 ais523: so I was thinking that (Box a) represents something you can fetch an a out of, and that also encodes... meta-information about it 07:05:14 it's actually an Antibox 07:05:18 it lets you look inside a value 07:05:21 hmm, yes 07:05:25 so e.g. 07:05:28 elliott_: ok. It's a simple with unknown historical origin often rendered as a letter "a" where the upright protion of the letter extends down and around until it is a near-complete circle, and that is generally taken to mean "at", and is called a "whirlpool" by the INTERCAL manual 07:05:30 ast :: Box a -> LolAST 07:05:33 unbox :: Box a -> a 07:05:33 -!- oerjan has joined. 07:05:34 Feather actually has a rebox operation, that you can apply to an unboxed value 07:05:38 please don't ask me how it works 07:05:44 that unbox could also be called eval 07:05:45 I suppose 07:05:59 ais523: anyway, the question is just -- how do you actually create a box? 07:06:03 talking about comonads? 07:06:07 coppro: when elliott_ refers to @ treating it as a proper noun, it's a placeholder for the eventual name of an as-yet-unnamed OS he's working on 07:06:09 oerjan: not quite 07:06:31 I think he's going to retroactively go over glogbot's logs and substitute the name once it's actually decided 07:06:40 which will make my last-but-two line seem very confusing 07:06:49 (note: I may have been lying) 07:06:50 how do you knowm y s,ecret 07:06:57 it wasprivate,, with Gregor,, 07:06:59 he would create the logbot,,, 07:07:04 ais523: so the suspicion it will involve feather as an essential part is well-founded? 07:07:05 and force tunes to archive all their old logs by emailing them,,,,, 07:07:07 and i would get the sed,,,,,,, 07:07:09 -!- Nisstyre has joined. 07:07:10 WHO 07:07:11 BETRAYED ME 07:07:20 RGAGAARGAUREWIGEIWRIEWRGAWGRIAEWRWIERGAW\ 07:07:20 elliott_: nobody, I just guessed 07:07:25 oerjan: no 07:07:29 * elliott_ smashes individual things to pieces 07:07:32 Feather and @ are fundamentally incompatible, as far as I can tell 07:07:33 now everything dies 07:07:37 which doesn't surprise me, or even worry me 07:07:38 ais523: really? 07:07:47 in fact, I'd be more worried if they meshed together well 07:07:58 elliott_: it's the network transparency that really kills it 07:08:01 Feather doesn't like I/O 07:08:07 even more than Smalltalk doesn't like it 07:08:17 ais523: well, you can model @ as just one big happy machine with way too much computing power 07:08:23 and slow wires, I suppose, but who cares about speed 07:08:32 and even if you abstract away the I/O, it'd have to be able to return to a continuation 07:08:37 ais523: hmm, shades of scapegoat (in that every repository could fit together) 07:08:37 across the entire network 07:08:43 haha 07:08:45 yep, @ reminds me of scapegoat a bit 07:08:45 -!- madbr has joined. 07:09:00 I think you've been injecting similar ideas into both projects 07:09:12 I'm not sure how versioning in @ will work, if it'll have a separate VCS for "documents" and just regular objects, or what 07:09:14 the two would coexist quite well, at least 07:09:18 I'm trying to avoid thinking about it right now 07:09:23 546) Speaking of the CiSRA puzzles, anyone want to form a team i avoid my duties by carefully never registering to anything new 07:09:24 it feels like another Can of Worms 07:09:26 yep, versioning is a much more minor problem 07:09:39 you missed the point where someone else mentioned the word "duty" 07:09:41 then getting the thing working in the first place 07:09:50 oerjan: fix it :P 07:09:56 ais523: I was about to say "but versioning is a _huge_ problem", but then I realised that there are even bigger problems... 07:10:08 indeed 07:10:10 ...you realize that would be inconsistent with the quote, right? 07:10:12 anyway, yes, I'm really unsure how to construct boxes... 07:10:18 hmm, well 07:10:28 obviously if you have a boxed module 07:10:35 you can get a boxed value out of it 07:11:07 elliott_: i know they have, that wasn't the point though. 07:11:18 ais523: moduleLookup :: (m :: Box Module) -> Key m a -> a 07:11:20 ais523: or something. 07:11:30 erm 07:11:32 ais523: moduleLookup :: (m :: Box Module) -> Key m a -> Box a 07:11:35 but that's just another way to refine a box 07:11:42 I suppose that's all you really can do 07:11:46 but it feels like if you have 07:11:49 let f x = ... in ... 07:11:50 in a bit ofcode 07:11:54 I think you can't get a box unless you have one to start with 07:11:56 you have the "right" to box it right there and then 07:12:00 ais523: yes, that may be true 07:12:00 and that they should be originally created by the compiler 07:12:05 uh oh,boxes are starting to feel fundamental 07:12:12 [asterisk], boxes 07:12:25 and comonadic 07:12:32 oerjan: you really like comonads ;D 07:13:04 i don't actually know comonads, i just know they are easy to unwrap but not wrap 07:13:16 ok, so i know maybe the base definition 07:13:27 ais523: also that moduleLookup frightened me, when did dependent types happen? 07:13:32 but they are probably inevitable... 07:13:56 I have a feeling the design would be impossible to realise without them; as in, it'd turn out to be impossible for the user to create a function, or something 07:14:50 ais523: ah, hmm, there's a problem 07:14:57 ais523: in that, every boxed type has a different API 07:15:03 so it's actually a typeclass of some kind 07:15:26 class Boxable a where { data Box a; unbox :: Box a -> a } 07:15:35 hmm, I need a better name than box 07:15:41 I think you may be thinking too Haskell 07:15:42 it's sort of like an xray 07:15:51 elliott_: I'm dubbing you King Vaporware 07:15:57 ais523: well, it's obviously not a single unified Box type for every single type 07:15:58 coppro: k 07:16:14 elliott_: what did you call those (executable, source) pairs that you used in your Underload compiler? 07:16:15 ais523: so it's a type family of some kind 07:16:21 umm, I didn't 07:16:25 bleh 07:16:26 I called the flattened quotations blimps 07:16:30 but that's a separate thing 07:16:30 well, give this the same name as those 07:16:34 because it's the same concept 07:16:38 let's go all Prolog-style with naming 07:16:47 and agree that we can unify two names even if we don't know what they are yet 07:16:50 it's more like just source 07:16:52 and unbox is kind of like eva 07:16:54 l 07:17:03 meanwhile, I suppose we have to call them _1, _2, etc 07:17:05 ais523: isn't @ already pretty prolog style with naming? 07:17:07 or maybe @, @1, @2, etc 07:17:09 elliott_: yes 07:17:11 name_of_@(X) 07:17:15 well 07:17:16 name_of_@(@) 07:17:38 that's like writing name_of_X(X) 07:17:44 yep :D 07:17:55 it should be name_of_future_operating_system(@) 07:18:16 hmm, xray would be a good name if it weren't such an ugly name 07:18:59 what's a nice name for an xray 07:19:14 hmm, it's also like stripping the debug info (unxraying, that is) 07:19:16 "millennia" -- are we talking about a programming language called Sanskrit, or Sanskrit itself? :D 07:19:20 ais523: haha 07:19:27 but I'm not sure there's a standard name for something with debug info in 07:19:33 we are talking about the closest thing sanskrit has to an official spec 07:19:34 GDB a 07:19:45 oerjan: umm, really? not some programming language based on sanskrit? 07:19:56 contrary to what sys/user.h says, GDB is not the only debugger in existence 07:19:56 yes, real sanskrit. 07:19:57 -!- Taneb has joined. 07:20:14 people write official specs for non-programming languages? 07:20:17 too much into it. Don't use it for anything other than GDB unless 07:20:17 you know what you are doing. */ 07:20:18 heh 07:20:19 umm 07:20:19 other than Lojban, I mean? 07:20:22 /* The whole purpose of this file is for GDB and GDB only. Don't read 07:20:22 too much into it. Don't use it for anything other than GDB unless 07:20:22 you know what you are doing. */ 07:20:29 ais523: well, French is "strictly controlled" (ha ha) 07:20:30 -!- nisstyre_ has joined. 07:20:31 Hello! 07:20:39 hi Taneb, we're discussing @, run while you still can 07:20:43 -!- Nisstyre has quit (Ping timeout: 258 seconds). 07:20:50 I still don't know what @ is! 07:20:58 lucky 07:21:37 ais523: 400 B.C. at least one person did. mind you iiuc he ignored many parts of the language, concentrating on morphology and inflection. 07:22:16 elliott_: call it heatvision 07:22:34 Isn't that just computational linguistics? 07:22:35 defrost :: Heatvision a -> a 07:22:49 Lol 07:23:55 ais523: hmm, this is definitely getting moe confusing 07:24:05 SO MOE 07:24:17 But what's @! 07:24:29 Taneb: stop it stop it stop it 07:24:43 Either you tell me or I install Haiku 07:24:56 where's it @ 07:26:05 -!- nisstyre_ has quit (Quit: Leaving). 07:26:09 Taneb: ok 07:26:45 From an SD card! 07:26:46 -!- Nisstyre has joined. 07:28:05 this is one of the less usual threats I've seen 07:28:05 -!- madbr has quit (Read error: Connection reset by peer). 07:28:20 I'm mildly sleep deprived! 07:32:08 ais523: boxes seem to describe the nature of description itself 07:32:17 hmm, interpretation brackets are this 07:32:21 Syn <-> Sem 07:32:27 but more Syn -> Sem than the other way 07:32:35 oh, I can't type them, and are not sure if they're in Unicode 07:32:42 but they look like [[ ]] but squished-together a bit 07:32:45 yep 07:32:51 but more Syn -> Sem than the other way 07:32:58 \llbracket \rrbracket in LaTeX, I think 07:33:00 by that I'm just saying that Sem -> Syn doesn't get back all the information 07:33:01 as I've typed them too much 07:33:04 Okay, I need to find a larger memory device 07:33:06 hmm, ah 07:33:13 ais523: there actually _is_ a function (a -> Box a) 07:33:15 for all a 07:33:25 ais523: it simply constructs a pathological box, one consisting of a single object reference 07:33:28 and that reference being the argument 07:34:07 ais523: oh, umm, I suppose not all objects are comparable, as they might contain references to non-comparable objects 07:34:09 that's problematic 07:34:26 but I don't see why you _shouldn't_ be able to do that pathological version 07:34:32 ais523: the analogy being, Sem -> Syn 07:34:35 Syn -> Sem does the actual evaluation 07:34:39 but you can always construct the simple lambda result back 07:35:26 -!- madbr has joined. 07:35:54 ais523: help what does a box do 07:36:03 elliott_: haha at the reference 07:38:35 ais523: what have I done :( 07:41:33 -!- madbr has quit (Read error: Connection reset by peer). 07:42:30 ais523: I think you _do_ create boxes by composing them from scratch: that's called programming 07:42:44 I suppose so 07:42:56 ais523: it's just manipulating an AST with "more info" 07:43:04 in fact, you probably end up with a sort of lazy compile, don't you? 07:43:24 I'm beginning to wonder if a box is just the AST, and unboxing it compiles one step 07:43:36 well, you can certainly convert a box to an AST 07:43:43 I'm not sure what differs it 07:43:52 but... the box of, say, a key-value table, isn't an AST 07:43:58 or, hmm 07:43:59 better analogy 07:44:07 the box of a record (Haskell-style) isn't an AST 07:44:11 well, it sort of is, but it's simpler than that 07:44:19 it's just a mapping from boxes of keys to boxes of values 07:44:23 where key is a name 07:44:28 so actually not boxed, just the name 07:44:30 -- 07:44:30 +-+- 07:44:57 I've been up and down my house and finally found a bigger memory device 07:46:15 ais523: you've now thoroughly confused me 07:46:21 with only a few lines 07:47:01 "Å ÒÝ Ö 07:47:01 Ö× ̧ ÓÙÖ× ÐÚ × Ò 07:47:01 ÐÙ ̧ Û ÐÐ Ú ÕÙ ×Ý Ð1 07:47:01 Ò Ý Ø × ×Ø o Ï Ø × Ð Ø Ó Ø 07:47:01 ÙØÝ Ó ÙÒ 07:47:02 1 07:47:04 Ø ÓÒ Ð ÔÖÓ Ö ÑÑ Ò Ý Ø Ø Ñ ÐÐ Ø × ÔÖ Ñ Ø Ú × Ú 07:47:06 Ò 07:47:08 ÀÓÛ 07:47:10 Ò Ø ÙÒ×Ô 07:47:12 ¬ 07:47:14 ÔÖÓÓ Ó Ð Ø ÓÒ× 07:47:16 Ó ÙÒ× È Ö ÓÖÑÁÇ 07:47:18 Ö 07:47:20 Ø Ö × 07:47:22 Ò ÔÖÓÚ 07:47:24 À ×Ø 07:47:28 Ý 07:47:30 Ò Ø ÖÓÛÒ ÓÙØ Û Ø Ø 07:47:32 Ø Û Ø Ö Ì × Ö Ù×1 07:47:34 Ø ¬ Ð 07:47:36 Ö Ø 07:47:38 ×Ñ×o Ì 07:47:40 Ý × Ò 07:47:42 Ò Ò Öo 07:47:44 " 07:47:46 argh 07:47:48 that's not helpful, Evince 07:47:50 if you can't copy it, don't pretend to 07:48:09 -!- madbr has joined. 07:48:46 How do I un-write-protect an SD card? 07:50:07 there's normally a little plastic tab on one of the edges 07:50:10 you move it to the other position 07:50:11 But if you could un-write-protect it you could write to it and so it wouldn't be very well write protected 07:50:17 very small, normally about a millimetre square 07:50:29 Tomorrow's computer viruses will extend robotic arms from your computer to fiddle with the SD card to infect it!! 07:50:33 Got it 07:51:43 -!- madbr has quit (Read error: Connection reset by peer). 07:51:51 Thanks 07:51:58 So, that's what that does 07:53:17 brb, installing Haiku 07:53:48 -!- Taneb has quit (Read error: Connection reset by peer). 07:55:01 what happens next??? 07:55:07 haiku 07:55:08 an operating system 07:55:10 i can't do haikus 07:55:41 `addquote Tomorrow's computer viruses will extend robotic arms from your computer to fiddle with the SD card to infect it!! 07:55:44 551) Tomorrow's computer viruses will extend robotic arms from your computer to fiddle with the SD card to infect it!! 07:55:44 275 07:55:53 elliott_: only 12 syllables 07:56:00 haiku syllable 07:56:02 an operating system 07:56:05 i can do haikus?? 07:56:15 wow is that actually right haha wow 07:56:19 i didn't even try first time 07:56:21 or second time 07:56:29 it also technically needs to mention the name of a season to be a haiku 07:56:31 I'm pretty sure the syllables are a necessary, not sufficient, metric for a haiku 07:56:33 but people keep disregarding that 07:56:36 Yeah 07:56:44 I think 5/7/5 + season name is sufficient 07:56:48 but it might not be a very /good/ haiku 07:57:15 you could start off "haiku in summer", then it'd work 07:57:18 haiku syllable 07:57:20 an operating system 07:57:22 i can do haikus?? 07:57:24 summer i think 07:57:24 just not make whole lot of sense 07:57:28 ais523: yw 07:57:29 beautiful summer / fuck fuck fuck fuck fuck fuck fuck / fuck fuck fuck fuck fuck 07:57:37 damnit I laughted 07:57:38 monqy: i laughed, but I'm not sure why 07:57:41 lol you too 07:57:43 Patashu: I did too 07:57:57 `addquote beautiful summer / fuck fuck fuck fuck fuck fuck fuck / fuck fuck fuck fuck fuck 07:57:58 552) beautiful summer / fuck fuck fuck fuck fuck fuck fuck / fuck fuck fuck fuck fuck 07:58:04 three people laughed at it, so by definition it's funny 07:58:27 It's very close to being a skit 07:58:29 and probably carries enough context in just that quote for other people to get the joke, too 07:58:57 -!- madbr has joined. 07:59:27 Start book at 8. Finish book and realise it's 2. 07:59:37 I seem to have issues with "sleep". 08:00:02 you read for eighteen hours 08:00:08 wait, which 8? 08:00:14 or minus six hours 08:00:47 6 works fine for me 08:00:48 -!- Nisstyre has quit (Ping timeout: 260 seconds). 08:00:51 what's your problem with it 08:01:05 Patashu: what 08:01:12 8 pm, 2 am 08:01:18 just ruin the joke :( 08:01:20 ;_; 08:01:26 obviously pikhq meant twenty four hour times 08:02:49 monqy will now never speak again after that haiku because he can never top it 08:02:50 -!- madbr has quit (Read error: Connection reset by peer). 08:05:29 ais523: you should play EVE Online; you've already mastered the playing of Excel as a game, so EVE can only be a step up in fun from that 08:05:37 if a minor one 08:05:41 elliott_: haha 08:05:57 I think you have it the wrong way round, though 08:06:09 what I wrote was trying to implement a game engine using Excel 08:06:11 you mean experienced EVE players should go for the raw multiplayer Excel experience? 08:06:14 that too 08:06:19 whereas EVE Online is trying to implement a spreadsheet in a game engine 08:06:29 you'd expect someone who enjoyed one to dislike the other 08:06:41 What is playing EVE Online really like 08:06:48 I gave up on EVE roughly when I realised that not only do you attack ships by right clicking them and choosing an item from a context menu, but you also do everything else by popping up windows and interacting with GUI widgets 08:06:54 it even has a browser window you can use 08:07:00 you could probably use EVE as your only oS 08:07:01 OS 08:07:03 ...in space 08:07:12 elliott_: you played it at all? 08:07:19 that surprises me and I'm not sure why 08:07:25 ais523: it has a free trial, so I played about five minutes of it 08:07:34 I think you just don't strike me as the sort of person to play MMOs, even free trials of them 08:07:44 no, but I do like my spreadsheets 08:07:53 also, apparently EVE has a huge bias towards players who joined early 08:08:01 anyway, I /did/ play an MMO regularly a few years ago, I'm too embarrassed to tell you which, though 08:08:06 [asterisk]ago; 08:08:08 -!- cheater_ has quit (Ping timeout: 255 seconds). 08:08:35 it's either going to be World of Warcraft or some crazy tie-in to a TV series 08:08:37 -!- cheater_ has joined. 08:08:44 ais523: nope 08:08:52 hmm 08:09:02 in that case, I probably won't even try to guess 08:09:57 -!- madbr has joined. 08:11:33 Patashu: 20:00 to 02:00. Happy? 08:11:33 -!- madbr has quit (Read error: Connection reset by peer). 08:11:58 You have not given me any new information 08:12:32 elliott_: ^ 08:12:33 Sorry. 08:12:39 pikhq: NO 08:12:44 And I *really* should disambiguate — I mean, I'm about as likely to use 24 hour time as 12 hour time, TBH... 08:16:38 elliott_: neopets 08:17:07 coppro: does neopets even count as an MMO 08:17:11 yes 08:17:13 I should start playing Neopets ironically 08:17:24 you can't play neopets ironically 08:17:25 I never even knew it existed until I was far too old to be in the target market 08:17:26 you'd get super bored 08:17:34 Patashu: that's just super ironic 08:17:38 oh 08:17:43 note: sufficiently good irony is indistinguishable from sincerity 08:18:20 I actually had a Neopets account. I later gained a second digit in my age. 08:18:55 I have an account 08:19:23 I had an account 08:19:24 might still do 08:19:26 dunno 08:19:26 `addquote I actually had a Neopets account. I later gained a second digit in my age. 08:19:28 553) I actually had a Neopets account. I later gained a second digit in my age. 08:19:29 cba to find out 08:19:42 what is Neopets, anyway 08:19:56 ais523: oh you'll love this 08:19:57 ais523: it's Neopets (do you actually not know?) 08:19:57 google it 08:20:11 * ais523 tries Wikipedia 08:20:11 -!- madbr has joined. 08:20:20 ais523: they're like pet rocks, except instead of rocks, they're bits. also you can buy them accessories with rockcaret W bit money? 08:20:26 also there are games to win money? 08:20:27 i think. 08:20:28 also it is old. 08:20:32 and i think a scientologist runs it? 08:20:38 Revenue$30 million USD+ 08:20:43 that is too much money for pet rocks 08:21:03 and you can pay them for a webmail address/ 08:21:13 this is a pretty random combination of things 08:22:21 yeah old is a pretty significant quality 08:22:22 -!- madbr has quit (Read error: Connection reset by peer). 08:22:31 When it got started Tamagotchi was a fresh memory. 08:22:53 "I always knew having a mad wizard design our water distribution plant was a bad idea." (From a Neopets-related "walkthrough"-style thing I hit a week ago while googling for something really completely different.) 08:23:33 ais523: It was the friggin' 90s. 08:23:48 Well. Nearing on 2000. 08:23:50 Still. 08:24:03 that'd be before I really knew about the Internet 08:24:05 These were primitive days, and Geocities was still vibrant. 08:24:10 tamagotchis are so great, i had one, i remember fuck all about it 08:24:28 At the time I had been on the Internet for a handful of years. 08:24:40 November 15, '99 08:24:43 three people laughed at it, so by definition it's funny <-- make that four 08:24:44 what was the internet like in 98, i was on then but i don't recall it 08:24:55 according to Our Lord Wikipedia 08:25:03 elliott_: Comically simple. 08:25:08 elliott_: heh, you were probably consistently online before me, then 08:25:16 ais523: I'm not exactly surprised 08:25:19 I knew of its existence back then, and would even find a way to use it if I needed it 08:25:25 but that was rare 08:25:27 ais523: when did you discover the internet, five minutes ago? 08:25:34 elliott_: This predates *CSS*. 08:25:34 and mostly, I'd be doing email via someone else's account 08:25:49 (with permission, obviously) 08:26:00 elliott_: I'm still not entirely convinced it exists 08:26:17 I mean, technology that lets you communicate instantly with people in a huge range of places around the world, that's science fiction stuff, right? 08:26:25 elliott_: *Google was not The Search Engine*. 08:26:35 (no telephones do not count have you ever tried to make an international phone call that crosses continent boundaries?) 08:26:42 can i have an asterisk? 08:26:47 ***** 08:26:49 ais523: what's it like (I haven't ever) 08:26:49 Does Neopets still look like a lesson in horrid web design? 08:26:50 Here, have 5. 08:27:04 coppro: Yes. 08:27:11 k 08:27:13 elliott_: when I tried to phone home from Canada, it took the phone over two minutes to even work out how much a call to the UK would cost 08:27:18 coppro: Also, at the time it was just normal web design. 08:27:33 and then quoted an amount that was sufficiently large it'd have been inconvenient to pay with just coins 08:27:34 so I had to give up 08:27:47 oh my god what did i do 08:27:51 not just because affording it would have been tricky, but because I had no real prospect of finding change 08:28:01 yeah international calls suck 08:28:11 The phone network sucks. 08:28:11 I'm not sure if that's the fault of Canada in particular, though 08:28:23 It was perfectly sane and well-designed. In 1950. 08:28:26 from Hungary, it took about five seconds longer than normal to connect 08:28:32 and the price was noticeable but not insane 08:28:59 but that's within the EU, that's practically no distance at all 08:28:59 Or 30-odd exponential increases in computing power ago. 08:29:49 dontaddquote but that's within the EU, that's practically no distance at all 08:30:29 Really, circuit switching is just sad. 08:31:14 hmm, what are international calls from the US like? 08:31:17 similar to Canada? 08:31:40 ais523: I literally do not know. 08:31:55 I don't blame you for never having tried 08:31:56 I have never had cause to call internationally. 08:32:04 I have rarely had cause to even call long-distance. 08:32:11 I suppose you could use a payphone then not put money in it, that would be a relatively simple way to discover the time and cost 08:32:20 also, wow, I forgot that long-distance calls existed 08:32:27 I was in the single digits when I started using the Internet. 08:32:42 in the UK, they're now sufficiently similar to short-distance calls that most phone companies don't bother to distinguish between them 08:32:56 because the UK's quite small in terms of landmass, as countries go 08:32:58 the cell phone companies still love doing them 08:33:12 In the US, the phone company believes that you should bend over and take it up the ass without lube. 08:33:23 free calling within the continent is not too uncommon in Canadian plans now 08:33:28 (landline, of course) 08:33:35 pikhq: You think your cell phone companies are bad? 08:33:53 coppro: Okay, yeah, Canada also has that policy. 08:33:56 wait, you can make a short distance call on a cellphone? 08:34:09 all mobile phone calls are long-distance in the UK 08:34:26 pikhq: No. Our companies insist on at least one more hole at the same time. 08:34:37 All mobile phone calls to landlines are "same-distance" in Finland. I don't know if it's a long or short. 08:34:41 In the US, cell phones are assigned entirely normal phone numbers within the area code for where you live in. 08:34:51 typically, you get a cheaper price contacting a landline or another mobile phone on the same operator, and a more expensive price contacting a mobile phone with a different operator 08:35:28 (no telephones do not count have you ever tried to make an international phone call that crosses continent boundaries?) <-- i phoned in my agora votes once (sadly through an answering machine) in the 90s. it was surprisingly easy. 08:35:42 :D 08:35:45 :D 08:35:50 oerjan: that's Norway to... New Zealand? 08:36:00 oh man 08:36:04 I assume Agora doesn't have a international dialling prefix of its own 08:36:05 I should try to conference call all agoran players 08:36:07 but we should definitely get it one 08:36:14 coppro: you live in /Canada/ 08:36:27 ais523: so? 08:36:39 which has crazy telecom companies 08:36:56 ais523: I'll call a foreign carrier who does cheap conference calling first :{ 08:37:31 pikhq: you lied about Neopets and web design btw 08:37:37 it's not an example of bad web design 08:37:42 it's an example of horrible web design 08:37:48 Probably the worst part about the telephone network is that they have the audacity to charge even *trivial* costs per minute. 08:38:09 pikhq: Do landline carriers still do that in the US? 08:38:11 pikhq: you think they should charge just line rental? 08:38:16 coppro: Long-distance. 08:38:24 pikhq: How far is long-distance, typically 08:38:41 the phone situation in the UK, both landline and mobile, is that the tariffs are really complicated and have loads of exceptions 08:38:45 making them very hard to compare 08:38:50 coppro: I have no idea. I call maybe 10 times a year. 08:38:59 pikhq: well it matters 08:39:07 I actually use landlines quite a lot 08:39:09 I am ignorant! 08:39:17 ais523: by the way, not only do cell phones have area codes, you get charged extra for being outside your home zone typically 08:39:20 relative to most of the people in this channel, anyway, I expect 08:39:28 ais523: But, yes, they really should just charge line rental. 08:39:32 whatar ephones 08:39:36 monqy: help 08:39:50 ais523: The phone call *itself* is just a 56kbps stream over the Internet. 08:39:55 whats hapeneng 08:40:00 I haven't been paying attention 08:40:08 coppro: I'm beginning to wonder if North America's attitude to cellphones is "let's make these work as much like landlines as possible" 08:40:10 something about phones and web design? 08:40:10 monqy: whateis a phone 08:40:16 i hate hpoens 08:40:22 i have one but i keep it off all the time 08:40:27 ais523: wherever steve gardner lived at the time 08:40:29 a man after ais523 08:40:39 oerjan: wat 08:40:49 ais523: North America's attitude to international callling is also "let's make these work as much like intranational callling as possible." 08:40:58 ais523: North America has a unified numbering scheme. 08:41:01 ais523: It's moneygrab 08:41:12 elliott_: in response to my question about whether he phoned New Zealand from Norway 08:41:28 pikhq: international calling from Europe is very like intranational, too 08:41:30 ais523: There's not country prefixes in the North American dialing plan. There's the North America prefix, and area codes. 08:41:40 you just dial double 0 then country code then number 08:41:46 And then 7 digit numbers. 08:41:47 ais523: People were used to phone service working like X, so they just kept that when cell phones arrived 08:41:51 For all of North America. 08:41:52 which was good for them since they made money 08:41:52 just like you dial single 0, area code, number for long distance 08:41:56 or just number for short distance 08:42:00 and there has been insufficient consumer pressure to switch 08:42:02 i love how stupidly close inter and intra are 08:42:04 0's like the ../ of the phone system 08:42:06 although in Canada some new pressure is emerging 08:42:12 (from foreign companies, no less) 08:42:44 hmm, if I phoned myself starting with 0044, I wonder if I'd be charged more? 08:43:06 I know you aren't on a mobile, starting UK numbers with +44 is common there 08:43:12 just in case you happen to move the phone outside the UK 08:43:19 so it doesn't call the number in the wrong country 08:43:27 we now actually have a mobile provider that offers unlimited tethering 08:43:40 which of the three possible definitions of unlimited are you using? 08:43:50 in particular, does it become limited again if you use too much bandwidth? 08:44:02 haha 08:44:02 not AFAICT 08:44:04 (ah, the joys of phone advertising in the UK) 08:44:20 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 08:44:24 elliott_: that's what "fair usage policy" typically means in the small print of communciations advertising 08:44:30 it's not cheap, but it doesn't appear to be one-dimensionally unlimited 08:44:47 another variation is unlimited except if you do certain things 08:44:58 like, say, use Skype 08:45:02 oerjan: wat <-- my agora phone vote 08:45:46 They do say they'll throttle you after 5GB/mo though, for the rest of the month, to 256 Kb/s up and 128 down, and you'll get a notice telling you they're doing that 08:46:00 coppro: aha 08:46:03 5GB on a mobile connection is a lot though 08:46:04 oerjan: ok 08:46:12 that's the "unlimited except if you use too much bandwidth" I was referring to 08:46:19 a massive throttle is similar to a cutoff 08:46:28 256 Kb/s is still plenty 08:46:32 zero, one, infinity is so passe. the new thing is: zero, one, five million 08:46:40 for simple stuff 08:47:16 but that's just 56k 08:47:19 with a 2 in front 08:47:24 X-D 08:47:32 which only makes a difference of a factor of 5 or so 08:47:39 "So it's just like two dialup modems." 08:47:42 -!- Nisstyre has joined. 08:47:53 fizzie: more like five of them, mathematically 08:47:59 Yes, but textually. 08:48:09 Two of fifty-six kay. 08:48:15 ais523: I don't know the exact numbers, but I don't expect that's a ridiculously evil slowdown relative to normal 08:48:24 oh, and they do throttle P2P traffic 08:48:39 but this is semi-normal here, and to be expected on a limited bandwidth network 08:49:01 bleh, why is INVISIBLE MULTIPLICATION SIGN not in my Unicode character map thing? 08:49:10 I wanted to write 256 08:49:11 and still way better than you'll get from the major networks 08:49:23 ais523: Some only do the BMP 08:49:29 this one does more than the BMP 08:49:35 but I'm not sure how far beyond it goes 08:49:47 ais523: you're just not seeing it 08:49:58 a quick google doesn't show such a symbol at all 08:50:02 There's no INVISIBLE MULTIPLICATION SIGN even in my UnicodeData.txt. 08:50:04 also, I perhaps forgot what the symbol's called 08:50:13 I'm pretty sure it exists, but I'm not convinced I got the name right 08:50:28 lol 'invisible multiplication sign' 08:50:28 hahaha 08:50:30 Well, the name does not contain the substring "multipli". 08:50:54 Or at least 'grep -i multipli' on UnicodeData.txt gives a lot but nothing that sounds very invisible. 08:51:01 U+2062 INVISIBLE TIMES 08:51:07 what about grep -i invisible 08:51:08 Ah, there. 08:51:30 Patashu: e.g. for placing between the π and the r in πr² 08:51:30 it was the best of times, it was the of times 08:51:38 yeah I figured but 08:51:38 lmao 08:51:42 also U+2061 FUNCTION APPLICATION, U+2063 INVISIBLE SEPARATOR, and U+2064 INVISIBLE PLUS 08:51:49 aren't invisible characters a huge huge threat? 08:51:51 U+2061 FUNCTION APPLICATION? amazing 08:51:55 you can disguise strings as being something else 08:52:02 heh, Haskell definitely needs U+2061 between all uses of function and argument 08:52:05 even better, /Agda/ needs it 08:52:32 overloaded space defaulting to U+2061 08:52:44 but sometimes you need to disambiguate... 08:53:04 2⁢56kb/s 08:53:05 wasn't there an april fools joke about overloaded space 08:53:07 there we go 08:53:18 ais523: Also the telecom's site doesn't try too hard to hide the cap 08:53:31 http://shop.windmobile.ca/productcatalog/dataplans/plandetails.aspx?id=infinite+laptop+q2+2011+promo(WINDCA) "See our Fair Usage Policy" is pretty highlighted 08:53:35 they generally hide it on their street adverts and not anywhere else 08:53:48 on the principle that once people start buying something, they generally don't stop 08:53:57 budget airlines operate on the same principle 08:55:12 also I like this company's approach to terms of service. the words "Make sense?" actually appear in a ToS 08:55:44 and I like their "get-a-phone" incentive 08:56:05 they'll give you some part of the phone price off, and 10% of your bill goes towards it 08:56:12 -!- elliott_ has quit (Remote host closed the connection). 08:56:13 So they don't need to lock you in with a multi-year contract 08:56:17 hmm, I wonder why MEDIUM MATHEMATICAL SPACE is defined as 4/18em 08:56:18 which is fairly standard among other providers 08:56:21 and why the fraction isn't written as 2/9 08:56:35 coppro: in the US (and presumably Canada too) 08:56:37 -!- elliott has joined. 08:56:40 08:55:12: also I like this company's approach to terms of service. the words "Make sense?" actually appear in a ToS 08:56:45 good to know that marketing still works on people 08:56:46 it's very far from the norm in the UK, and has only started becoming popular recently 08:57:11 multi-year contract in exchange for phone, that is 08:57:17 ais523: yeah 08:57:18 I know 08:57:20 in fact, no contract is more common in the UK 08:57:24 elliott: These ones aren'a a hideous mess of legalese 08:57:36 ais523: yeah. It's becoming a powerful marketing tool though 08:57:37 (instead, the prices go ridiculously high if you don't pay $10 a month, and you have to pay in advance) 08:57:45 umm, £10 08:58:00 "no contract" is becoming common in some ads 08:58:30 just wait until they catch up with some of the gimmicks UK ads have come up with 08:58:45 e.g. realising that prepaid credit on a mobile phone was an arbitrary currency separate from real money 08:58:55 The only problem is that this particular carrier has rather low coverage 08:58:57 and so just advertising that you could pay £10 for £30 credit 08:59:04 and people thinking that it gave an advantage 08:59:13 because they have to fight tooth and nail for infrastructure 08:59:17 wow, I just realised how little sense that makes just now 08:59:29 elliott: you saw the adverts too, presumably 08:59:33 and the other carriers don't want to rent it out at anything close to reasonable 08:59:43 yep, but I turn my brain off for adverts, and usually concentrate on their aesthetic aspects 08:59:49 the products are quite irrelevant 08:59:52 heh 09:00:09 I get bored on the bus sometimes, so I often look at adverts while commuting 09:00:19 I'm not sure if any has changed my buying preferences, though 09:00:21 oh, I saw them on TV 09:00:27 television ads are so weird 09:00:37 in either direction; all the adverts bad enough to make me boycott something have been for something I didn't want to buy anyway 09:01:27 when WIND actually covers Waterloo, I will like get a phone with them 09:01:49 partially just to provide them money, partially just to avoid providing the competitors with money, and partially to get service 09:02:00 coppro: how much are you being paid? 09:02:09 elliott: At Google? lots 09:02:14 whoosh 09:02:21 elliott: Of course it all has a mysterious habit of vanishing when I go back to school 09:02:30 elliott: I think Tesco Mobile more or less won the advertising war there, because they managed to produce a great-sounding advert to advertise something that didn't cost them anything at all, nor give any advantage to their customers 09:02:57 whereas the other mobile phone providers all had to actually provide complicated price breaks that nobody could work out the exact effect of 09:03:05 which presumably cost them something 09:03:17 but mobile phone network adverts seem to have reduced recently 09:03:34 the last big campaign I remember was Orange/T-Mobile each advertising that their customers could use the others' signal 09:04:15 What was that something? 09:04:37 -!- ais523 has quit (Remote host closed the connection). 09:05:11 -!- Nisstyre has quit (Ping timeout: 276 seconds). 09:06:57 http://lists.gnu.org/archive/html/emacs-devel/2011-07/msg01155.html 09:07:01 RMS PANIC 09:08:04 oh no 09:09:47 -!- monqy has quit (Quit: hello). 09:09:50 what's going on 09:09:53 in that link 09:10:47 Patashu: see http://lists.gnu.org/archive/html/emacs-devel/2011-07/msg01085.html onwards 09:10:49 A TRAGEDY is what's going on. 09:11:37 The problem is that they're not releasing source code to emacs or something? 09:11:43 fizzie: It is a GPL violation that you are not currently FIXING THOSE COORD MACROS. Or, uh, ADDING THE WATER COLOURING. BASICALLY ANY WAY YOU SLICE IT YOU ARE BAD 09:11:48 Patashu: a few source files are missing 09:11:53 which ones? 09:12:10 Patashu: read the thread 09:12:21 Some files that apparently themselves generate C (I think) code 09:12:31 I tried to it's too boring :( 09:13:05 Oh it's some parser thing not having source code 09:13:10 That is, you can fully compile emacs from what they distributed as is, but it's not as easy to modify... certain things 09:14:03 Sgeo: it's a gpl violation for anyone to redistribute 09:19:38 buy essays online said... 09:19:38 real life is more interesting than virtual 09:19:38 10:00 AM 09:20:25 Warning.. warning.. GNU violation in sector 12 09:20:53 -!- copumpkin has joined. 09:21:12 the gnus are rampaging 09:22:18 -!- Taneb has joined. 09:22:55 Well, I gave up trying to install Haiku 09:23:56 Is brainfuck Turing Complete with unbounced cell size but a tape size of 2? 09:24:18 Sure 09:24:25 You can prime number encode an infinite number of numbers 09:24:28 *prime factor 09:24:32 Taneb: see minsky machine 09:24:34 no, i don't think 2 is enough 09:24:37 oh wait no 09:24:39 bf isn't enough 09:24:40 And use the other cell for condutional constructs 09:24:42 Patashu: no 09:24:45 no? 09:24:48 bf's operations aren't good enough for that 09:24:51 probably 09:24:57 hmm 09:25:10 It's been shown to be turing complete with a tape size of 5 09:25:10 4 or 5 is enough iirc. it's somewhere on the wiki... 09:25:11 oerjan: hmm, can't a minsky machine's registers be done by brainfuck? 09:25:12 for every function you nest you need another for-conditional cell I think 09:25:21 hmm, no 09:25:25 elliott: yes, but you need more than one bf cell for one minsky register 09:25:38 right 09:25:39 @__ You tried well. But then met failure. Try again. __@ 09:26:33 Why are wiki pages caps sensitive 09:26:42 basically you cannot use a bf cell much without clearing it, so you sometimes need to copy information elsewhere 09:26:55 i got the syllable counts wrong 09:28:11 -!- derrik_ has joined. 09:29:08 -!- derrik has quit (Ping timeout: 258 seconds). 09:29:09 -!- derrik_ has changed nick to derrik. 09:29:10 Frans Faase gives a procedure for translating 5-register Universal Register Machines into brainfuck programs using five cells [1]. 09:29:11 this? 09:29:11 or hm maybe it's actually the problem of doing conditionals 09:29:16 http://www.iwriteiam.nl/Ha_bf_Turing.html 09:29:27 because you always need to end [...] on a 0 09:29:42 _and_ be in a consistent state 09:30:56 Patashu: mind you you only need 2-register (this is proved by a prime encoding), maybe something more efficient than 5 bf cells can do it. 09:31:15 3 might be too tricky 09:31:39 Start with "Frans". Swap n with s "Frasn". Change r to a "Faasn". Change n to e "Faase". 09:33:06 ^scramble frans 09:33:06 fasnr 09:35:54 the 2-register thing was mentioned in wikipedia's articles on counter machines 09:36:44 -!- derrik has quit (Quit: ChatZilla 0.9.87-rdmsoft [XULRunner 1.9.0.17/2009122204]). 09:36:48 or in other words 09:36:55 "Frans". Swap cell 4 with cell 5. Load "a" into cell 2. Load "e" into cell 5. "Faase". 09:37:21 itidus20: you're just a few steps from a Smetana derivative there. 09:39:23 maybe you _could_ do it with only 3, hm. 09:40:02 another take on it is 09:40:41 "Frans". Copy cell 5 into cell 4. Copy cell 3 into cell 2. Load "e" into cell 5. "Faase". 09:41:47 by using that one-register with constant multiplication/division that is part of the proof that 2 with inc/dec suffice 09:44:24 -!- derrik has joined. 09:47:44 in other words, doing this with 3 bf cells instead of 2 minsky registers: http://en.wikipedia.org/wiki/Counter_machine#Step_3:_Four_counters_can_be_simulated_by_two_counters. 09:48:10 Taneb: ^ 09:48:25 So, the answer's... yes? 09:48:52 no, it's "maybe". i haven't worked out if it actually works... 09:48:58 Okay 09:49:04 I'll stick to five cells for now 09:49:06 also, i don't think 2 bf cells is enough. 09:51:40 because there is simply not enough room then to leave the essential data unscathed, extract the conditional information you need _and_ end a [...] at the same time. 09:52:12 unless, hm... 09:53:43 -!- MigoMipo has joined. 09:54:10 perhaps if you did it as an enormously branching tree of []'s, where you only end a loop after packing all the information _back_ into the main register, so you can keep the second register 0 while returning to top level of the bf program... 09:55:10 -!- derrik has quit (Quit: ChatZilla 0.9.87-rdmsoft [XULRunner 1.9.0.17/2009122204]). 09:55:48 this is like :caret() :D 09:55:59 MAYBE :P 09:59:02 the "make a conjecture that something is impossible, then get an idea why it's possible after all, repeatedly" part certainly seems familiar. 10:09:06 Stupid Python lambda 10:09:12 Not doing what I want it ot 10:09:14 *to 10:09:32 try not using python 10:11:31 doing if (n % const == 0) { n /= const; ... } else { ... } with just 2 registers _does_ seem rather hard 10:11:54 darn, asi523 is gone 10:12:03 you need at least one more register for that 10:12:08 however many register mult, div and mod require... 10:12:55 *2 cells 10:13:33 I think you could do it with an infinite AST :-) 10:14:06 elliott: yeah, the tricky part is doing unbounded subtraction looping without that :P 10:16:33 oerjan: maybe aim for four cells to start with? :P 10:16:48 or three. 10:16:59 oerjan: UNDERLOAD MINIMALISATION WASN'T BUILT IN A DAY 10:17:04 indeed. 10:18:17 with three you should have somewhere to put both the quotient and the remainder, and then you can clean things up afterward, maybe. 10:18:36 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 10:19:00 for a minsky machine 2 registers is no problem because the remainder can be incorporated into the state. 10:19:07 oerjan: three or four wouldbe an upsetting number. 10:19:09 why three. why four. 10:19:11 why not two. 10:19:16 (as the minmum) 10:20:37 well as i said, with two you have the trouble that whenever you exit a loop, all your information beyond program position has to be in just one cell. 10:20:51 *as i implied, 10:21:56 WHY SO FAR NOT THOU. 10:23:20 which means you cannot really use a loop for calculating divmod, unless you manage to somehow avoid exiting it before making some computational progress. 10:24:21 three would be okay i guess 10:24:22 cuz like 10:24:22 two minksy 10:24:24 one scratch 10:24:30 but FOUR is unholy against god as a minimum, 10:24:38 i seem to have a disturbing tendency to split infinitives 10:34:53 oerjan: *I seem to disturbingly have a tendency to split infinitives 10:34:53 oerjan: splitting infinitives is not illegal 10:35:23 Unless you weaponize it 10:35:45 agree with itidus20 10:35:47 i was on the split infinitives wikipedia page once 10:35:52 splitting infinitives is fine 10:36:03 apparen't theres a big mix up about it 10:36:16 ^apparently 10:36:43 yes but i seem to be doing it all the time recently. 10:37:15 you're just winning... it's fine 10:37:25 Oerjan desires to boldly split infitives where no infinitives have been split before 10:37:44 -!- Lymee has quit (Ping timeout: 240 seconds). 10:38:10 -!- oerjan has quit (Quit: Yes, you should.). 10:44:33 -!- elliott has quit (Ping timeout: 260 seconds). 11:08:09 -!- olsner has joined. 11:13:11 -!- immibis has joined. 11:29:49 -!- olsner has quit (Quit: Leaving). 11:35:44 -!- olsner has joined. 11:38:04 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .). 11:43:25 Are there any good reasons that I should _not_ return the Nook and get a Kindle? 11:43:35 I like the idea of the synced annotations 11:44:36 -!- cheater_ has quit (Ping timeout: 255 seconds). 11:44:40 I've kind of been excludng "Kindle" mentally from my "What ereaders am I checking out" list before 11:50:07 Well, hmm, I wouldn't be able to buy from most online ebookstores 11:57:12 -!- cheater_ has joined. 12:06:08 -!- FireFly has joined. 12:06:41 Well, that's just great. Just taught a creepy idiot in #jesus about the existence of notice, now he's asking me how I did it 12:06:57 notice? 12:07:24 You've never used IRC notice? 12:07:30 No 12:07:35 Looks like this to the channel 12:07:48 elliott: yes 12:08:36 Hmm. 12:08:39 Interesting. 12:09:03 gayest. 12:09:39 Sgeo: why are you in #jesus teaching people about notice? 12:09:54 Because he's that awesome 12:10:18 Because creepy dude was talking about some "hacker" sending messages to him, and that's why he always seemed to talk to himself in channel 12:10:30 I was curious if the "hacker" was just using notice 12:10:51 oklopol, you missed the awesome context for that line 12:16:28 umm, so if someone tells me "please pay to our paypal account: paypal@(ourcompany).com", am i supposed to send another email in that address to ask for their paypal account stuff, or are paypal accounts just somehow registered to email addresses 12:16:56 The second one 12:17:28 Must stop accidentally fuelling paranoid guy's paranoia 12:17:44 thanks, now if only i knew how to actually pay to one 12:18:09 ordering a mail order bride/secretary/assassin 12:18:26 Like in Kill Bill? 12:18:47 i haven't seen kill bill 12:18:52 Neither have I 12:18:54 https://www.paypal-marketing.co.uk/sendmoney/index.htm 12:18:55 i know there's a girl 12:18:59 I think that's it 12:19:07 no i think there's more than a girl 12:19:08 hahaha 12:19:29 so err does anyone know latin here 12:19:35 I know a little 12:19:46 or wait which languages are philias in 12:19:55 i need to know what the term is for people who like to fuck houses 12:20:04 Hippophile 12:20:08 It's Greek 12:20:18 hippo as in... hippo? 12:20:28 Yes 12:20:40 why 12:20:48 Hippopotamus litteraly means horse of the river 12:20:56 ... 12:20:59 not horses 12:21:04 who the fuck would want to fuck a horse 12:21:11 Oh 12:21:15 Misread, sorry 12:21:17 pervert 12:21:17 Hang on 12:21:49 i thought you meant because hippos are really big 12:22:07 oikiaphile 12:25:24 thank you 12:25:43 I think I also misread "horses", but maybe it was just the context when reading the lines backwards. 12:26:17 do i need to make a gaypal account to be able to pay to one? 12:26:29 I don't think so 12:26:34 I don't think so either. 12:26:47 blah 12:26:49 too hard 12:27:13 "How much does this house weigh?" is a traditional obligatory question asked after presentations on all CS student body organized company excursion visit sort of things. 12:27:24 Or "paljonko tämä talo painaa?" in Finnish. 12:27:35 It's some sort of a nonsense-joke. 12:36:29 -!- olsner has quit (Ping timeout: 240 seconds). 12:39:51 how much do houses weigh? 12:39:57 i have absolutely no idea 12:40:08 Depends on their size and material 12:40:14 it does?!? 12:40:38 i've never fucked a house 12:41:16 some people fuck cars but i haven't heard of a house lover 12:44:12 "house lover": About 250,000 results (0.23 seconds) 12:44:21 Rather irrelevant results. 12:44:38 There's a "Tiny House Lover", but I doubt it's about fucking tiny houses. 12:44:43 At least when "fucking" is a verb. 12:44:59 It could be a dwarf oikiaphile 12:45:12 It could be when it's an adverb or something. 12:45:28 i wouldn't fuck a house that was bigger than me 12:45:30 maybe like a doghouse 12:46:05 I've heard that the whole "tiny house" is a sort of a trendy thing; the new iteration of the "minimalism" stuff. 12:46:42 well as long as they are big on the inside 12:46:48 http://www.tumbleweedhouses.com/houses/ 12:46:59 I'm not sure there's any that are smaller than you. 12:47:45 Somebody had parked a modern-looking glass-wall on-wheels sauna on a grass field in Otaniemi. 12:48:06 i guess i have to build one myself or i'm gonna be alone forever 12:48:36 Not the old well-known "made out of a car" one -- http://farm2.static.flickr.com/1171/1433982857_c28fbee6fe.jpg -- but a more stylish affair. 12:48:57 that thing 12:49:03 is possibly the best 12:49:13 oklopol: It appeals both to the car fuckers and the house fuckers. 12:49:35 well i don't know which side of me it's appealing to, but i'm very appealed 12:49:41 -!- olsner has joined. 12:49:51 http://www.saunasessions.ca/mobilesaunas/index.php?n=MobileSaunas.Lehti <- some rather more smutty pictures of it, doors open and all. 12:50:43 Kuvaaja ylltt heidt takaluukun kautta. Milt tuntuu? 12:50:58 Yes. 12:54:03 -!- derrik has joined. 13:16:44 finns are weird 13:19:32 -!- cheater_ has quit (Ping timeout: 255 seconds). 13:20:01 -!- copumpkin has joined. 13:20:02 -!- copumpkin has quit (Changing host). 13:20:02 -!- copumpkin has joined. 13:50:09 Now to wait 12-24 working days! 13:54:17 -!- Lymee has joined. 14:03:53 -!- immibis2 has joined. 14:03:54 -!- immibis has quit (Read error: Connection reset by peer). 14:09:22 -!- immibis2 has quit (Ping timeout: 246 seconds). 14:11:25 brb 14:11:35 -!- Taneb has changed nick to TanebIsAWay47. 14:14:18 what is a cirno-chan 14:14:57 i know what a cirno is...she is stupidest 14:16:18 -!- TanebIsAWay47 has quit (Ping timeout: 260 seconds). 14:29:14 -!- invariable has joined. 14:33:58 -!- TeruFSX has joined. 14:36:22 -!- lament has joined. 14:38:50 -!- MigoMipo has quit (Read error: Connection reset by peer). 14:39:26 -!- olsner has quit (Quit: Leaving). 14:49:25 I found an answer: The library books will be Kindle format, so I still wouldn't be able to purchase DRM ebooks from other sellers 14:51:42 so I just had another idea 14:52:54 this ones sort of playful and hopefully fun 14:54:12 There is a genre of video games about creating. Crayon physics, MineCraft, Terraria, Lemmings, Sim City.. i don't have an exhaustive list 14:58:41 just as I typed this I looked in wikipedia on SimCity and found an amusing comment "In Space Quest IV, in the Software Excess Store, a game called Sim Sim is available. It is described as a "simulated simulator specially designed for creating simulated simulators" and that "you can create a simulated environment in which you can create any simulated environment you want"." 15:05:47 -!- Nisstyre has joined. 15:05:47 -!- Nisstyre has quit (Excess Flood). 15:06:31 -!- Nisstyre has joined. 15:07:11 -!- Taneb has joined. 15:07:24 Hello 15:07:34 wow... .. my creative juices are really flowing now 15:08:04 In what way? 15:08:27 i'll go make a coffee and return with an answer of this fucking sweet idea i just had 15:08:35 Write it down first 15:08:42 So you don't forget 15:08:49 you can't forget an idea 15:12:42 wow .. oklo is right 15:12:45 anyway ok 15:12:50 back with coffee 15:13:02 Idea? 15:13:08 the idea is directed towards game development.. but let me explain in the context of say, visual basic 15:13:24 suppose you are editing a visual basic thing right? 15:13:31 Okay 15:13:57 you make a form.. you throw some buttons on it, ok? 15:14:05 Okay 15:14:15 then you "run" it.. following so far? 15:14:19 Yeah 15:14:21 Hang on 15:14:30 Am I supposed to be doing this as you talk 15:14:35 hahahaha no no 15:14:38 only in your head 15:14:43 Okay 15:14:52 now, what happens if you click on one of these buttons? 15:15:00 Not much 15:15:18 essentially nothing, right? 15:15:23 Yeah 15:15:55 -!- MSleep has changed nick to MDude. 15:16:01 now, my idea is... that.. if you right click on one of these buttons... a box pops up for you to enter a script on how to react to a right button click 15:16:34 oops i mean left click i think 15:17:27 or... (and now we are reminded of a spell checker) whether it should ignore the right click 15:17:44 ^left click 15:19:03 so basically, reacting to events by prompting for some code of how to react to the event 15:19:17 -!- BeholdMyGlory has quit (Remote host closed the connection). 15:19:21 So like, 15:19:21 or perhaps some kind of dialog box with checkboxes 15:19:40 Interesting 15:20:14 yeah.. although some crazy guy out there is probably already doing it, what matters is that it's low key and we haven't really heard ofit 15:21:27 maybe it's already being done.. but it probably still exists only in white papers and expensive apps 15:21:55 but i've never heard of it 15:22:40 ok so.. suppose theres a game right? 15:22:45 -!- Taneb has quit (Read error: Connection reset by peer). 15:23:26 ok so.. suppose theres a game right? now.. when 2 objects in the game collide.. it could prompt for you to create an event handler (either a script or a dialog box with checkboxes etc) 15:23:37 (i know he's gone) 15:25:23 -!- soupe has joined. 15:29:10 i like the idea 15:29:59 but maybe you could have something like ctrl+whatever = prompt for what to do when whatever is done, so you could test and program at the same time, and correct mistakes easily 15:30:11 but yeah i would certainly like to do gui programming that way 15:30:20 -!- soupe has quit (Quit: ~{AtlanTis-Script}~ par Jack Disponible sur http://Atlantisteam.xooit.fr). 15:30:32 oklopol: hmm so you mean like a toggle :D 15:30:35 -!- soupe has joined. 15:30:46 -!- soupe has left. 15:30:55 oh maybe ctrl + foo would be better 15:31:05 one of the big problems with this idea is the event flood 15:31:14 and how exactly to filter it 15:31:27 THE MOUSE JUST MOVED TO (620, 39), WOULD YOU LIKE TO ADD AN EVENT FOR THIS 15:31:51 so then i got the idea of being like a spell checker.. the way it lets you ignoer something, or add it to dictionary etc 15:32:22 oklopol: i have a harsh internal critic who expects nothing but the very best ideas 15:32:37 slowly working on my neuroses 15:32:50 WOuld it check the mouse at all times, or would it be just specific object checking if the mosue is over them? 15:33:06 -!- olsner has joined. 15:33:34 Since even if you wanted an invisible spot that reacts to being hovered over, you could still make that with an invisible object. 15:34:37 itidus20: i think ctrl+whatever mostly solves the event flood problem as well, just press ctrl just before whatever event you want to catch 15:34:41 -!- Taneb has joined. 15:34:47 plus what MDude said 15:35:35 It would probably be nice to have a timer so you can have things just perform an action periodically. 15:35:36 i have a harsh internal critic that usually tells me i suck and shouldn't even try when i try to solve a problem 15:36:26 Sorry I lost connection 15:39:12 -!- sebbu2 has changed nick to sebbu. 15:41:41 oklopol: you suck 15:43:43 MDude: well good point.. it could be configured to look for "mouse over object" 15:43:49 rather than "mouse at x,y" 15:44:13 because the kinds of events that it catches are supposed to be generalized ones 15:44:56 Taneb: ill pastebin what you missed 15:45:05 No need 15:45:07 I read the log 15:45:11 oh ahh ok 15:45:25 so nice little idea i had eh 15:46:14 one benefit is you don't have to "think" of which events will occur 15:46:19 only have to wait for them 15:46:28 that would seem to be the idea 15:46:33 sorry *external 15:47:09 MDude: hmm the details are sketchy 15:47:23 the seed of the idea was.. 15:47:49 " There is a genre of video games about creating. Crayon physics, MineCraft, Terraria, Lemmings, Sim City.. i don't have an exhaustive list" 15:48:02 just as I typed this I looked in wikipedia on SimCity and found an amusing comment "In Space Quest IV, in the Software Excess Store, a game called Sim Sim is available. It is described as a "simulated simulator specially designed for creating simulated simulators" and that "you can create a simulated environment in which you can create any simulated environment you want"." 15:48:31 now with all these games about creating i thought, what about if you had a game about creating that could bootstrap itself. 15:49:09 I.... suppose thats what secondlife does >.< 15:49:21 Well not really. 15:49:24 but secondlife doesn't really do it in a pure way 15:49:26 hehehe 15:49:31 MDude: thanks 15:49:43 so this is oneupmanship on secondlife 15:49:56 It's not like you can script a little room with avatars in it. 15:50:06 yeah.. this is like secondlife++ 15:50:27 minecraft was on my mind when i thought of it 15:50:49 but secondlife is also related in that people sort of make stuff in the game 15:51:22 I was actually tihnking of WarioWare: D.I.Y. 15:51:26 g2g 15:51:33 ya see... i downloaded a whole bunch of game makers the other day 15:51:47 and so i have their limitations in my mind 15:51:53 cool.. i haven't tried warioware 15:51:59 i have heard of it though 15:52:15 I didn't know there were that many. 15:52:16 i may have subconciously got the idea from warioware 15:52:38 The scripting in it is a bit simple. 15:52:59 Since it's made for making games that only last a few seconds. 15:53:34 GameMaker, M.U.G.E.N, IndieGame-Maker, RPGMaker2003, FighterMaker 95, FighterMaker 2002, Construct, Construct 2 15:53:57 most of them are by ASCII/Enterbrain 15:54:11 with dodgy levels of legality 15:54:42 oh and I downloaded BYOB 15:55:00 Build Your Own Bear? 15:55:48 Build your own blocks 15:56:00 someone here mentioned it to me 15:56:03 -!- Taneb has quit (Ping timeout: 260 seconds). 15:57:21 So yeah.. I was thinking, what if I could build the game from within the game 15:57:22 -!- Taneb has joined. 15:57:52 Back 15:57:52 It wouldn't surprise me if whatever you see in warioware is a hint at how nintendo operates internally 15:58:23 Taneb: back for your g2g? 15:58:31 Indeed 15:58:41 I sorta have g2g and brb backward in my mind 15:58:51 oh now im confused 15:59:11 Like, to me, a g2g is shorter than a brb 15:59:13 i used to play with games factory 15:59:30 I tried to learn Inform 7 15:59:57 -!- Nisstyre has quit (Ping timeout: 252 seconds). 16:00:00 the nice thing about games factory is you don't need to learn it 16:00:16 So I stole indie game maker 16:00:18 you just have to not be a blind retard 16:00:19 i admit it 16:00:33 but i had to work hard at it 16:00:44 -!- Taneb has quit (Read error: Connection reset by peer). 16:01:06 oklopol: i should get that too then if its free 16:01:13 -!- Taneb has joined. 16:01:33 i'm not sure i'd enjoy it as much nowadays 16:01:35 I really need a better internet connection 16:01:38 making that sorta games i mean 16:02:07 you can't really do anything that interesting with those things 16:02:54 so, I have a big ego.. (always an awkward statement) .. but i do.. so I like to think up these grandoise ideas 16:03:00 i like to keep ahead of the game 16:03:43 theres this new phenomenon in game AI called behaviour trees someone recently told me about 16:04:15 my programming related ideas are usually so gradoise they could never actually be implemented 16:04:34 and what are behavior trees 16:04:54 uhmm.. sort of a tree with scripts attached to it 16:05:32 Is it basically case statements within case statements? 16:05:55 i don't know much about them... its more the structure which makes them special 16:06:16 to me, behavior tree sounds like a fancy way to say prescripted stuff with a few branches 16:06:16 -!- zzo38 has joined. 16:06:19 MDude: apparently they can be linked together in a useful way to build up complex behaviours 16:07:22 i dunno what they are exactly 16:07:23 SOunds a bit like a more controlled version of subsumption then. 16:08:50 anyway, i am great at independant discovery 16:09:08 but I can't seem to actually think of anything which hasn't been thought of before 16:09:17 That's fine, really. 16:09:46 I just have a 1% divergence from how everyone else would do it 16:10:12 Well sometimes that small divergance can make a big difference. 16:10:28 so its a bitter moment whenever i google an idea i got to find out who else has it 16:10:35 But that's chaos theory 16:10:44 have you considered having more detailed ideas 16:10:48 Also, form what I know, msot experts are too concened with purity to even want to understand more than one method. 16:10:58 specific i mean 16:10:59 itidus20: I have heard that being called the "Bob Proffitt Principle" 16:11:11 Not really chaos. 16:11:34 Well, maybe. 16:11:57 If you scale up data structures enough, the problems with them tend to compound themselves a lot. 16:12:25 It depends onw hat you call a small difference, I guess. 16:12:27 yeah.. ideas are like trees a bit.. so .. when i get independant discoveries its like passing checkpoints 16:12:30 -!- olsner has quit (Remote host closed the connection). 16:12:34 telling me that i'm on the right path 16:13:32 great 16:13:40 by independant discovery i mean something i thought up on my own that someone else has gone to the effort of writing about on the web 16:13:48 And I too have sometimes came up with ideas similar to others that I did not know of yet. 16:15:16 most of my ideas are unprecedented 16:15:24 because they are so great no one else could've come up with them 16:15:29 Most of my ideas are stupid 16:15:34 And probably been done before 16:16:03 I have different kind of ideas. Some are good and some are stupid, some are new, some are independent but same as others, some are very similar to others I don't know of but is still a bit different. 16:16:29 yeah.. theres always a kind of unique tack you can have on an idea that the other person didn't 16:17:46 -!- olsner has joined. 16:19:44 theres always someone who would either... love to be your boss and control your genius.. or who would like to have you serving them at mcdonalds 16:20:48 uh.. which is good cos it balances things 16:21:05 -!- Nisstyre has joined. 16:23:16 -!- derrik has quit (Ping timeout: 264 seconds). 16:23:29 -!- pikhq has quit (Ping timeout: 240 seconds). 16:23:34 -!- pikhq has joined. 16:23:57 talk is cheap.. it all comes down to whether i can deliver 16:24:18 what do you mean 16:24:36 Well.. if i didnt get any ideas then this speech of mine would be kind of hollow 16:25:19 if you were talking about an idea of yours but it didn't exist, then yeah i suppose that would be kind of hollow 16:25:52 i independantly discovered the idea of fairy chess pieces 16:26:05 but you could also talk about something else and have neither ideas nor hollowness 16:26:07 and what are those 16:26:18 non-standard chess pieces 16:26:31 you had the idea of adding other pieces to chess? 16:26:40 yup 16:26:44 yeah i liked doing that when i was 7 16:26:56 fun little activity 16:27:13 i worked out that each piece was defined by vectors 16:27:24 defined by vectors? 16:27:32 you mean a set of allowed movements? 16:27:36 yup 16:27:52 and i realized on my own that i could define a set of alternative allowed movements 16:27:57 Some of fairy chess pieces are more complicated than that, though 16:28:03 based on these vectors 16:28:15 i probably didn't know the term vector when i was seven 16:28:31 i created a set of rules sufficient to explain all the pieces in regular chess 16:28:39 i had to come up with the idea independently 16:29:00 you made some kind of formal language in which you described the rules or what? 16:29:09 i liked doing that stuff in elementary school 16:29:14 uhmm.. well i used a spreadsheet 16:29:32 and found the variables necessary to describe a piece 16:29:51 isn't that called learning the rules of chess 16:30:02 i learned them when i was 4 16:30:11 :P 16:30:17 There are many classes of chess pieces and some combine different ones, some in normal chess, or in others. Knight = (1,2) leaper. Rook = (1,0) rider. Queen = Rook + Bishop. 16:30:38 * oklopol tries to set a record in being an annoying asshole 16:30:40 anyway.. i was quite happy with my achievement.. but kinda "oh..." when i actually googled it 16:30:45 *fpr 16:30:47 *for 16:31:00 but... chess for me.. itself.. is not enough 16:31:15 i never wanted to play such a chess.. 16:31:32 i want to make it realtime 16:31:52 and not just by using timers on a chessboard 16:32:11 it needs another layer of complexity 16:32:16 " but... chess for me.. itself.. is not enough" <<< maybe because it sucks ass? 16:32:30 just a guess 16:32:56 i noticed that those games called tactical rpgs are going in htat direction kinda 16:34:29 chess is kinda like go, but sucky 16:35:21 taking an abstract thing like chess and making it into something realtime is the opposite of an intelligent idea, chess is already way too complicated to be interesting, why would you complicate it further 16:35:34 And it's been done 16:35:42 As I said last time you brought this up 16:35:45 yeah we've all read harry potter 16:35:48 another idea i had is a piece whose movement space is defined by axis-aligned lines intersecting the enemy pieces 16:36:03 lemme try to understand that 16:36:35 so err you move like a queen, but starting from any enemy piece you like? 16:36:48 i worded it kinda bad 16:37:02 suppose that you drew a vertical and horizontal line through each enemy piece 16:37:06 crossing the board 16:37:07 okay 16:37:14 and that.. these lines formed walls 16:37:18 oaky 16:37:39 and a piece who could move anywhere within the 'rooms' created by these walls 16:37:47 lament: is chess really like go? 16:37:57 because i'm not sure i want to learn go if chess is anything like it 16:39:25 so 1 enemy piece in the middle of the board would divide the board into 4 rooms 16:40:03 and these other pieces could teleport around within these 'rooms' 16:40:10 Chess has some similarities to go but it is a different game with many differences 16:40:24 oklopol: it's like go in that you have to use the brain a lot to win 16:40:41 its an idea i had when waiting at a busstop feeling overtired 16:40:44 and there's a board and pieces and turns 16:40:56 i guess i just never saw how one could apply the brain to chess 16:41:01 (Go does not even have a well-defined ending condition, actually. But once you know when to end, you can easily count points who wins is well defined) 16:41:11 oklopol: You just beat your opponents with the chessboard, right? 16:41:17 oklopol: it's called 'minimax' 16:41:24 (in both go and chess) 16:41:31 lament: i can't do that in my head 16:41:37 not to any relevant depth 16:41:55 Have you learned any of the Gipf Project games? 16:42:16 oklopol: relevant depth = deeper than your opponent 16:42:22 so just find a stupid enough opponent 16:42:28 which may be difficult of course 16:42:30 in go, i never found it useful to minimax 16:42:37 but then again i suck at it so maybe i should. 16:43:46 i suppose if you were really really smart you could formulate some kind of plans in chess and it might become interesting 16:44:22 chess is a trivial subset of reality though ------ or... is.. it? :P 16:44:25 but i'm hundreds and hundreds of hours away from that and since playing is about as much fun as mental calculation, i don't really want to spend those hours 16:44:53 I like chess 16:45:04 maybe you're just really really smart 16:45:11 i hate chess and go 16:45:17 too much thinking 16:45:21 I never figured out go 16:45:25 turn coal into gold if you want a tough game :P 16:45:26 and too competitive 16:45:32 it's all about proving you're better than your opponent 16:45:55 i like competing but only if i can cheat 16:46:02 There are also variants that involve chance and/or hidden information too 16:47:06 lament: what do you like? 16:47:48 * Sgeo likes Go, but I'm bad at it 16:50:05 i've only played go against a computer on easy 16:50:11 but that was kind of pointless 16:50:18 because it was way too hard 16:52:56 oklopol: lying on a couch doing nothing 16:57:01 ditto 16:57:25 one of my favorites 16:57:38 I was never much good at the endgame 16:58:57 hey ditto again 16:59:32 but what i'm really bad at is the rest of the game, especially the endgame and the other parts 17:00:34 I also know Xiangqi and Shogi. 17:01:12 I know Rummy 17:02:05 * Sgeo likes Barbu 17:02:14 I'm not good at it, but I like it 17:02:28 This may be a common theme with me 17:02:56 Do you know Mahjong? 17:03:02 No 17:06:18 Mahjong is played with 4 players. Each player gets 13 tiles. On your turn you pick one from the wall, so you have 14. If you have a complete hand (four sets of three tiles, either a sequence or three of a kind, and one pair) you win, and can count points. Otherwise you must discard one. 17:06:46 So it's like... Rummy mixed with... breakout? 17:07:01 Any time one is discarded, another player can pick it up to make a set or complete their hand. Sequences can be taken only from the previous player unless you win. If you make a set by taking a discarded tile, you must reveal it. 17:07:18 If you have three of a kind and one more tile, you can make "kan" and pick up a spare tile. 17:07:46 Taneb: It is a bit like Rummy. But the tiles are really just used like cards. Nothing to do with breakout. 17:08:13 But there are many significant differences from Rummy. 17:08:25 Just like with baseball. 17:08:58 Is baseball anything like rummy? I don't think so. 17:09:08 There are many significant differences 17:09:12 Baseball is played with ball, not with cards! 17:09:34 But if you imagine the cards are like players 17:09:58 It makes perfect sense 17:10:32 I don't know how to play baseball but still it doesn't seem like the cards are like players to me 17:10:49 Also in mahjong, at the start you flip a dora tile. If you have the next number after that one, and you win, then you earn extra points. 17:11:24 If you win by self draw, all other three players pay you. If you win by someone else's discard, they have to pay you three times and the other players pay you nothing. 17:12:02 If you want, you can bet 1000 points to call riichi. If you called riichi, then you cannot adjust your hand anymore. But, if you win, you win extra points. 17:12:35 You also earn points depending on the patterns of your hand, such as all concealed, no sequences, all same suit, etc 17:13:49 -!- derrik has joined. 17:23:26 Or, maybe, you want to play pokemon card. 17:23:44 -!- myndzi\ has joined. 17:27:00 -!- myndzi has quit (Ping timeout: 276 seconds). 17:27:29 -!- oerjan has joined. 17:33:45 06:55:30 what is a cirno-chan 17:33:45 06:56:09 i know what a cirno is...she is stupidest 17:34:05 i think -chan is the female japanese honorific suffix similar to -san 17:34:21 I thought chan is diminuative 17:34:27 to emphasize cuteness 17:34:41 hm maybe. or perhaps both. pikhq? 17:36:52 While we're waiting for a proper human reply, here's the MACHINE GOD answer from 'pedia: "Chan (ちゃん?) is a diminutive suffix; it expresses that the speaker finds a person endearing. Thus, using chan with a superior's name would be condescending and rude. In general, chan is used for babies, young children, grandparents and teenage girls. It may also be used towards cute animals, lovers, close friends, or any youthful woman." 17:37:00 "In general, chan is used for babies, young children, grandparents and teenage girls. It may also be used towards cute animals, lovers, close friends, or any youthful woman. 17:37:06 TOO LATE 17:37:08 darn 17:37:21 So, I was rightish? 17:37:28 NEVAR 17:37:37 well, POSSIBLY 17:39:26 Taneb: Pretty much. 17:39:32 and certain numbers 17:39:38 erm 17:39:52 to what fizzie said, seems my pagedown key is wrongative atm 17:45:15 the wrongative case 17:46:24 The wrongative of servus, -i is serves 17:49:49 serves you wrong? 17:50:05 Quite. 17:53:39 Imagine something like Minecraft as a text adventure 17:54:24 >You are on a beach. You can see far out to see. To the north, there is a forest. To the east, there is a cave. 17:54:29 >>North 17:54:35 Make up like a text adventure 17:55:29 What? 18:01:51 I don't recognize that, try "help" for help 18:01:53 I like text adventure game 18:02:12 I also like to use the rule of "overmate" when playing pokemon card 18:08:04 -!- CakeProphet has quit (Ping timeout: 246 seconds). 18:09:34 -!- CakeProphet has joined. 18:09:34 -!- CakeProphet has quit (Changing host). 18:09:34 -!- CakeProphet has joined. 18:13:36 Can you make a chess variant that as well as the normal chess pieces, there are also hourglasses (with different lengths of time) movable on the board? 18:14:19 -!- MigoMipo has joined. 18:14:31 Possibly 18:14:56 The hourglasses move like queens until they run out, when they are taken off the board 18:15:29 Checking your opponent turns all their hourglasses over 18:15:36 With that idea I dissappear 18:15:41 -!- Taneb has quit (Quit: He's a big quitter he is.). 18:21:05 -!- CakeProphet has quit (Ping timeout: 240 seconds). 18:23:14 -!- CakeProphet has joined. 18:23:14 -!- CakeProphet has quit (Changing host). 18:23:14 -!- CakeProphet has joined. 18:28:06 -!- Taneb has joined. 18:28:38 That vowels language that has been mysteriously added to the language list from an anonymous user seems kind of boring 18:32:41 how do you add a language mysteriously? 18:34:05 you need to follow the untrodden path of the lost elders 18:34:25 Or add a link that goes to a blank page. 18:35:53 -!- Taneb has quit (Ping timeout: 260 seconds). 18:37:22 -!- pumpkin has joined. 18:37:56 -!- pumpkin has changed nick to copumpkin_. 18:38:05 -!- CakeProphet has quit (Ping timeout: 258 seconds). 18:40:00 -!- copumpkin has quit (Ping timeout: 258 seconds). 18:40:08 -!- copumpkin_ has changed nick to copumpkin. 18:52:39 -!- derrik has quit (Quit: gone). 18:57:29 -!- pumpkin has joined. 18:58:28 -!- pikhq_ has joined. 18:58:40 -!- pikhq has quit (Ping timeout: 264 seconds). 18:59:16 -!- copumpkin has quit (Ping timeout: 264 seconds). 19:17:39 -!- pikhq has joined. 19:19:03 -!- pikhq_ has quit (Ping timeout: 252 seconds). 19:19:23 -!- monqy has joined. 19:23:28 -!- copumpkin has joined. 19:25:28 -!- pumpkin has quit (Ping timeout: 260 seconds). 19:44:21 -!- evincar has joined. 19:47:11 -!- evincar has quit (Client Quit). 20:03:30 -!- BeholdMyGlory has joined. 20:03:33 -!- pumpkin has joined. 20:06:54 -!- copumpkin has quit (Ping timeout: 250 seconds). 20:08:43 how do you add a language mysteriously? 20:08:46 ... 20:08:49 oooooopsie 20:09:51 How do you shot web, isn't that what they ask? 20:19:02 -!- Taneb has joined. 20:19:19 Hello 20:20:12 Who's talking? 20:20:28 You. 20:20:33 fizzie as well 20:20:45 And okokokoklopol. 20:20:56 Crazy 20:20:59 and another line from fizzie 20:21:07 Taneb joining in with an insult 20:22:15 You sound like one of those sports announcers. 20:29:08 Is there any program I can learn how to make compiling rulebooks like Inform 7 does? 20:30:42 Not as far as I know 20:40:06 Do you know anything about compiling rulebooks like that? 20:40:24 No 20:40:35 I have a vague idea how they work 20:41:45 How much idea do you have? 20:41:57 Very little 20:42:11 They're a series of translations 20:44:10 Like "Go north" becomes "change state to current state(x), current state(y)+1 20:44:41 There are also procedural rulebooks (a feature which is marked as deprecated) 20:50:02 I read the document, you can use procedural rulebooks to have conditions to ignore or override other rules, and so on. 20:50:07 How would such things be implemented? 20:50:30 I do not know 20:51:10 are you asking how to make a programming language 20:51:23 that's not very hard, but it's rather hard to explain how to do it 20:53:30 Not quite. I am asking about other specific things, such as procedural rulebooks. And, some way of converting them to imperative form. 20:54:00 i would imagine zzo38 knows how to make a programming language... 20:55:01 I know how to make programming language, in various ways. I even have books about it. But it is not quite what I am asking. 20:55:06 otherwise large parts of the wiki would seem rather unexplainable. 20:55:15 (I even invented many programming languages for various uses) 20:57:38 well yeah i guess if you want to make a rule programming language in a specific genre, it's not that obvious how to do it. 21:00:14 That is why I ask. 21:03:20 Is there a word for a language that is of a lower computational class to another, but has more features such as networking or file I/O 21:03:21 I would like to figure out how to make one that has not only rulebooks but other features too, and also can be used as a module in a larger program with other programming languages, and has templates and preprocessor, and is also a format that TeXnicard can produce as output. 21:04:45 Taneb: SQL 21:04:48 * oerjan runs away 21:05:04 That's an example rather than a word 21:21:13 the word is 'fragnlium' 21:21:25 'Tis a good word 21:27:35 -!- copumpkin has joined. 21:29:13 -!- pumpkin has quit (Ping timeout: 252 seconds). 21:38:54 -!- BeholdMyGlory has quit (Remote host closed the connection). 21:47:26 -!- Taneb has quit (Read error: Connection reset by peer). 22:24:40 -!- pumpkin has joined. 22:27:28 -!- copumpkin has quit (Ping timeout: 264 seconds). 22:29:27 -!- MigoMipo has quit (Read error: Connection reset by peer). 22:34:40 -!- copumpkin has joined. 22:37:15 -!- pumpkin has quit (Ping timeout: 276 seconds). 23:09:54 Is there a word for a language that is of a lower computational class to another, but has more features such as networking or file I/O <-- C vs. P'', C is not TC 23:10:05 no idea about a name for it 23:12:23 A feature request I made is getting attention 23:12:29 But... I made it in 2004 23:12:30 http://sourceforge.net/tracker/?func=detail&atid=353248&aid=930097&group_id=3248 23:13:07 hah 23:13:59 conclusion: Sgeo lives not only in the past, but sometimes in the future 23:15:26 -!- GreaseMonkey has joined. 23:27:59 -!- oerjan has quit (Quit: Good night). 23:32:32 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 23:49:59 -!- CakeProphet has joined. 23:50:03 -!- CakeProphet has quit (Changing host). 23:50:03 -!- CakeProphet has joined. 23:59:50 -!- FireFly has quit (Quit: swatted to death). 2011-07-31: 00:00:36 -!- BeholdMyGlory has joined. 00:02:45 -!- elliott has joined. 00:02:48 a 00:03:07 Does programming include art? Someone asked that question when programming NES game 00:03:21 http://i.imgur.com/UBm5K.png 00:05:00 -!- Patashu has joined. 00:07:22 oklopol: ping 00:07:48 pong 00:07:56 zzo38: http://benfry.com/distellamap/ 00:13:31 15:13:08: the idea is directed towards game development.. but let me explain in the context of say, visual basic 00:13:32 i see 00:13:57 oh dear what happened 00:14:31 iti dispensed some genius 00:14:42 15:31:27: THE MOUSE JUST MOVED TO (620, 39), WOULD YOU LIKE TO ADD AN EVENT FOR THIS 00:14:57 oklopol: the mouse just clicked the "edit mouse-click event" button, would you like to add an event for this 00:15:06 [edit mouse-click event] 00:15:07 [no] 00:21:28 16:19:44: theres always someone who would either... love to be your boss and control your genius.. or who would like to have you serving them at mcdonalds 00:21:28 16:20:48: uh.. which is good cos it balances things 00:21:28 buddha irl 00:23:13 wisdom 00:23:47 `addquote So it's like... Rummy mixed with... breakout? 00:23:50 554) So it's like... Rummy mixed with... breakout? 00:24:18 im imagining a person seeing another person and thinking 'i would really like this person serving me at mcdonalds' 00:24:37 im sure this happens all the time 00:24:48 i wonder if anyone has ever thought this about me... 00:49:18 ive never had that thought 00:50:02 monqy 00:50:05 ur bestmc odonalds 00:50:11 ;_; 00:50:19 :( 00:51:37 * pikhq has been working on some scripts to scrape the Gatherer database. 00:51:53 This is made worse by it apparently being at least somewhat freeform. 00:53:53 Hmm 00:54:06 How did the Magic app I used to have on my phone have all the cards? 00:54:29 Is there a pre-existing computer-easily-accessible database somewhere maybe? 00:54:49 That you can get to, I mean 00:55:30 No idea, but WotC seems to make that *hard*. 01:04:14 Hmm. Magic Workshop's knowledge of the cards has to come from somewhere 01:04:30 Erm, Magic Workstation 01:05:15 http://www.slightlymagic.net/software/mws/5-mtg-masterbase ? 01:05:56 pikhq, poke 01:07:25 I did once write a script to select random records from the Magic: the Gathering cards database, selected as a booster pack and then prints out copies of fifteen random cards. 01:07:43 But it doesn't work now. 01:10:40 But I have the idea eventually I should have TeXnicard include the feature to create such databases. 01:11:56 -!- zzo38 has quit (Remote host closed the connection). 01:31:32 http://www.emailintervention.com/ using things other than gmail: an unacceptable situation 01:37:37 -!- CakeProphet has quit (Read error: Connection reset by peer). 01:54:07 I AM A SOCIAL ENGINEER 01:54:17 pikhq: yawgatog has done this already 01:57:23 I AM A SOCIAL ENGINEER 01:57:23 wat 01:58:38 elliott: see blognomic 01:58:45 elliott: I'm totally manipulating people 01:58:52 (although it's not obvious) 02:06:20 coppro: Insufficiently well. 02:06:33 coppro: I want the entire database. 02:06:53 Flavor text, card images, set legalities, whole 9 yards. 02:07:14 s/set/format/ 02:07:40 pikhq: Datatog has all but the images 02:07:56 oh and written text I think 02:08:03 coppro: blognomic is boring 02:08:17 oh right you're not in ##nomic 02:08:29 I want to make a better ruleset for Gamma because the previous one isn't happening 02:08:37 gamma? 02:08:42 oh 02:08:53 i dislike that name so WHO CARES 02:09:25 elliott: we will have demands for adjudications, or DFAs 02:09:30 with many computer science puns 02:09:36 and players shall OBEY the rules and ADJUDICATE questions 02:09:36 crap name 02:10:15 coppro: The end goal is to get a much nicer Magic search engine than Gatherer. 02:10:38 pikhq: magiccards.info? 02:11:07 Bah. 02:11:20 pikhq: make it a @ database 02:11:27 -!- evincar has joined. 02:11:36 elliott: Make @ 02:11:44 pikhq: oh, I have to do /all/ the work, do I? 02:11:57 elliott: You have to do it now. pikhq told you to. 02:12:03 Damn. 02:12:10 And he's some kind of authority or something. 02:15:50 newtype MyMonad a = MyMonad (StateT MyState (ReaderT Options (ErrorT MyException (WriterT [String] IO))) a) 02:15:50 deriving (Functor, Monad, MonadReader Options, MonadState MyState, MonadError MyException, MonadWriter [String]) 02:15:54 haskell: how not to do it 02:16:15 Eh? 02:16:23 D: 02:16:28 ... StateReaderErrorWriterIO? *What*. 02:18:46 i like how all those are completely redundant 02:18:56 because 02:19:00 IO encompasses all of them 02:19:07 newtype MyMonad a = MyMonad (IO a) 02:19:10 completely equivalent 02:19:23 eah. 02:20:44 eah 02:22:07 * elliott wonders where this package would go would go 02:42:04 Sigh. Typesetting is wrong. 02:42:29 I want my digital typesetting to behave more like lead. 02:54:19 -!- invariable has quit (Read error: Connection reset by peer). 02:55:03 -!- invariable has joined. 02:55:05 -!- invariable has quit (Changing host). 02:55:05 -!- invariable has joined. 02:59:11 evincar, TeX? 03:02:57 Vorpal: EVEN MORE LIKE LEAD 03:03:25 Without, y'know, actually being lead. Getting solder burns is bad enough. 03:03:32 XD 03:03:35 why 03:03:57 Oh, I'm just frustrated with the poor state of web typography, as usual. 03:04:05 It's gotten better lately. 03:04:30 ah 03:04:37 elliott, so nothing wrong with TeX then? 03:04:49 . 03:05:19 And that's all he has to say about that. Fullstop. 03:05:56 The only thing that I really miss in (La)TeX is namespaces. 03:08:00 ah yes 03:12:42 You don't run into it all that often, but occasionally you want to use a couple of conflicting packages and you're just plain out of luck. 03:18:59 -!- MDude has changed nick to MSleep. 03:25:13 Esolang: antiduck typing. When it sees a bird that walks like a duck and swims like a duck and quacks like a duck, it assumes that the bird is a terrorist. 03:25:46 isterrorist(x) :- return true 03:26:08 actually if you want to do it in prolog 03:26:27 isa(X, terrorist). 03:27:37 GreaseMonkey: I guess it would actually assume that all things behave rather like NaN. 03:27:51 isa(_, _). 03:39:38 Sadly, Knuth is an old man. 03:40:48 You don't know he's an old man sadly. He could be an old man happily. 03:41:16 I doubt most would, though. 03:41:28 I know I don't plan on getting old. 03:41:34 More specifically, I plan on not getting old. 03:42:48 I retain low confidence about TAOCP being finished 03:44:04 evincar: Ah, so you're planning based on the assumption that immortality will be invented in your lifetime? 03:44:05 I'm skeptical but optimistic, I guess. 03:44:23 pikhq: That, or necromancy. 03:44:45 coppro: Perhaps if we give Knuth a pointer to fork(). 03:45:04 I don't suppose undying would be any more unpleasant than being born. 03:46:27 Also, the invention of necromancy might bring about a zombie apocalypse, which would be a thoroughly entertaining period of history to live through. 03:47:06 He estimates Vol 5 to be published in 2020 03:48:18 and has Vol 6 and Vol 7 plans too... right 03:49:56 Meh. Plan as though you'll live forever, live as though you'll die today. 03:49:58 Or something. 03:52:18 -!- copumpkin has joined. 03:55:29 I also wish that he would publish the newer editions of Vols. 1, 2, and 3 before finishing 5 03:55:45 Esolang: one without object permanence, so it's consistently surprised when objects that were hidden from view become visible again. 03:56:29 Implementing "surprise" naturally being the interesting bit. 04:14:01 haha 04:14:20 The only thing that I really miss in (La)TeX is namespaces. 04:14:25 latex makes me sad (a little) :( 04:19:22 Is the only reason we can't make strong AI that we can't define intelligence? 04:19:56 Because I feel like a working definition would be fine provided the thing could incrementally improve it. 04:20:45 evincar: Actually, it's more probable that the only reason we can't make strong AI is that we're a handful of orders of magnitude off. 04:20:59 No worries though, that's just a handful of years. 04:21:08 no, the reason we can't make strong ai is that we're not any good at ai. 04:21:10 next question. 04:21:20 elliott: Or I. 04:22:31 Well, it is always most difficult to define in precise terms those things which are intuitively obvious. 04:22:52 isn't it just difficult to define things in precise terms full stop 04:23:06 Perhaps because language isn't precise. 04:23:11 Well, except for Lojban. 04:23:18 Lojban isn't precise either. 04:23:23 I know. :( 04:23:28 Wishful thinking. 04:23:52 I remember reading someone talking about Lojban say that a perfectly precise language would have some cases where sentences blow up 04:23:58 Anyone know what that's talking about? 04:24:17 propositional logic statements are pretty verbose I guess? 04:24:49 Sgeo: I would assume it means that meaning is dependent on context, and context is unbounded, so a sentence can grow unbounded. 04:25:23 It's like a fractal. It has a finite amount of meaning, but an infinite perimeter of potential precision. 04:30:42 "While you do that he’s going to go get his horse. It rained last night, so he suspects he will have to redraw the horse’s angry eyebrows." 04:31:29 -!- derrik has joined. 04:35:18 The unforgivable crime of being mudcrabs. 04:36:07 Reference humour: thought by experts to be the only kind. 04:37:15 (Now I'm wondering whether evincar has brought the total of Prequel readers in here to at least three, or whether he just has a computer with access to Go Ogle dot Com Internet Search.) 04:37:21 (One day I will access Go Ogle. One day.) 04:37:24 (When I am rich.) 04:37:45 rich on fame and donations 04:37:47 from making @ 04:38:23 Fame is the best currency (bitcoins are the second best (wood is the third)). 04:38:42 elliott: I went and ogled but I was aware of Something Awful and MS Paint Adventures and read Homestuck, so it wasn't a far shot. 04:39:09 Besides, I've played some of the Elder Scrolls series as well. 04:39:14 whats something awful 04:39:21 So it's relevant to my...well, not my interests, but y'know. 04:39:23 monqy: something awful (<-- LOOK HOW HILARIOUS I AM) 04:39:33 evincar: OK this channel's number of Homestuck readers is officially statistically unlikely. 04:39:50 There's... at least eight. 04:39:50 monqy: Blue waffle. 04:40:06 evincar: am I supposed to do an image search for that or something 04:40:19 monqy: Whatever floats your boat, sicko. 04:40:44 I like how the first results are all waffles photoshopped to be blue. 04:40:47 SO SHOCKING. 04:41:14 elliott: Those are posted on imgur and such for a reason. 04:41:34 To protect the innocent minds of children? 04:42:21 ...sure. 04:42:37 get bored of looking at blue waffles, narrowly avoid looking at blue waffles 04:42:38 elliott, at least 1 is a Homestuck reader because of other Homestuck readers in this channel 04:43:03 cakeprophet? 04:43:18 Sgeo: OK fine, six. Oh, wait, CakeProphet too. 04:43:21 So either nine or six. 04:43:25 Depending on whether you suck or not. 04:48:07 So, I heard you like mudcrabs. 04:48:32 Only the profitable intelligent merchant ones. 04:48:45 *one 04:48:48 :P 04:48:58 * Sgeo still has no idea what Prequel is 04:49:28 Sgeo: http://prequeladventure.com/2011/03/prequel-begin/ 04:49:31 On the other end of a document from the Postquel, of course. 04:49:46 Prequal/Prefix .. I see.. the Pre- is where the sense of past comes from 04:50:16 now Sequal Suffix both begin with 's'. Time to put on the overcoat and go investigating. 04:51:04 Sgeo: Also I order you to read it, since that seems to generally be how reading things gets initiated in Sgeoland. 04:51:17 ^sequel 04:51:40 I started reading D.M. Brook's The Necessity of Atheism 04:51:43 Now regretting it 04:51:56 Stop reading things I didn't tell you to, then. 04:52:09 Sgeo: Oh? 04:52:16 itidus20: Sequel is from sequelus, from sequi (follow). Suffix is from sub + figere (to fix). 04:52:26 Among the things stated is a bit talking about how in the time of Columbus, people thought the world was flat, or something 04:52:32 Sequel: early 15th century., "train of followers," from Old French sequelle, from Late Latin sequela "that which follows, result, consequence," from sequi "to follow" 04:52:41 *groan* 04:53:00 Oh fine. s/sequelus/sequela/. 04:53:05 evincar: our etymological sources may appear to conflict but im sure they don't 04:53:10 i just cut and paste 04:53:17 "When Christianity sprang into existence Eusebius, St. John Chrysostom, and Cosmos evolved a complete description of the earth. They considered the earth as a parallelogram, flat, and surrounded by four seas, as a kind of house, with heaven as its upper story and the earth as its ground floor. To the north of the earth was a great mountain; at night the sun was pushed into a pit and pulled out again in the morning, with heaven as a loft and h 04:53:17 ell as a cellar. In the Atlantic Ocean, at some unknown distance from Europe, was one of the openings into hell, into which a ship sailing to this point, would tumble. The terror of this conception was one of the chief obstacles of the great voyage of Columbus." 04:53:31 great voyage of columbus lol 04:53:37 but well.. you were twice as fast as me :o i forgot about suffix 04:53:53 Could've sworn that a round Earth was well-estabilished by the Greeks. 04:54:09 evincar: i see that sequel is clearly related to sequence then.. 04:54:13 Was this myth believed in the 1930s? That Columbus's contemporaries thought the Earth was flat? 04:54:17 pikhq: It was well-established long before then, independently by various groups, including the Celts during the Bronze Age. :P 04:54:30 everything is the fault of religion and all explorers are white men 04:54:31 Or actually before. 04:54:33 join me next time for more atheism facts 04:54:36 pikhq, well, part of what this book is saying is that Christianity regressed science 04:54:50 "The difficulties that beset Columbus are well known. How he was hounded both in Portugal and in Spain by the clergy; and even after his discovery of America, the Papacy still maintained its theory of the flatness of the earth and the nonsense of the antipodes" 04:54:51 -!- pikhq_ has joined. 04:55:00 pikhq_, read logs 04:55:12 why are you reading this book, you should stop because terrible 04:55:18 elliott, I did stop 04:55:22 good 04:55:23 Exactly because of this 04:55:32 But it was quite a way in 04:55:35 22:53 < pikhq> Could've sworn that a round Earth was well-estabilished by the Greeks. 04:55:37 22:53 < pikhq> Before the claimed time of Jesus. 04:55:40 22:53 < pikhq> And not exactly *forgotten*. 04:55:47 pikhq_, oh 04:56:11 I think this book already permiated my brain excessively 04:56:18 IIRC, Columbus' whole deal was that he thought the Earth was smaller, and that he could easily get to Asia. 04:56:22 do you just believe everything you read 04:56:24 And he was wrong, but got damned lucky. 04:56:29 because i've got a book called the bible for you 04:56:31 Sgeo: then what you need to do is counter-permeate it with more things 04:57:10 I'm not even sure what the big deal is with Columbus. He didn't even make it to the mainland, right? 04:57:11 Sgeo: generalizations about history are always wrong. 04:57:16 :) 04:57:26 hehehehe 04:57:52 evincar: His findings encouraged further exploration by Spain. 04:57:59 evincar: No, but he was white, male, and Catholic, so who cares? 04:58:13 But of course! :D 04:58:39 He'd be a hero if he just paddled around a bit off the shore and killed a few savages. 04:58:40 -!- pikhq has quit (Ping timeout: 264 seconds). 04:59:12 elliott: so i tried gimp.. at this stage i may as well just uninstall artweaver 04:59:23 theres no comparison 04:59:33 (i won't) 04:59:37 the gimp's interface can be a bit awkward but it's great 04:59:47 the pen tablet interface is perfect 04:59:56 and i'm on xp 05:00:04 i knew gimp had support for it 05:00:04 I love it for batch image processing. 05:00:08 but yeah its really awesome 05:00:27 Because Scheme. 05:00:35 Also, Columbus *did* find the mainland. Right around Panama. 05:00:40 the gimp's animated stuff is also a bit awkward, im not sure who decided frame <-> layer was a good idea, but oh well, it works 05:01:08 evincar: I bet that's going to get replaced what with the GEGL stuff 05:01:08 elliott: Yeah, that's always bothered me a little bit. Also no layer groups. :( 05:01:32 Maybe, or just adapted. 05:01:54 Well, GEGL has bindings to several languages, but none of them is a Schemeoid. 05:02:03 Also, I have an irrational hate of the GIMP's Scheme stuff because I couldn't get the same Scheme library it uses to do my bidding in mcmap. 05:02:19 (I think Tiny-Fu is the one used nowadays and it uses TinyScheme, who's API is lacklustre.) 05:02:23 [asterisk]whose 05:02:36 I'm never going to be able to stop doing this [asterisk] thing 05:02:41 Wiccan Sarah in Durban 05:02:41 stop suffering now Sarah the witch is here to help +2773 400 6132 05:02:41 wwwladysarah.co.za 05:02:45 best google ad ever 05:04:46 pikhq_, was it generally believed, in the 1930s or so, etc. about Columbus? 05:04:55 In that case, it's almost understandable 05:05:07 Understandable does not acceptable make. 05:05:08 Sgeo: It's been a running myth for centuries. 05:05:29 If you're basing an argument on something, and it's patently untrue, it doesn't matter whether it's a common misconception or not. 05:05:35 Especially if you're arguing on the basis of being oh-so-rational. 05:06:21 I did say almost 05:06:49 Ah. Seems it wasn't that Columbus underestimated the size of the world, he overestimated the size of Eurasia. 05:07:22 And I meant "generally believed" as in, believed by educated people 05:07:34 Like an age of the Earth that's a bit too young 05:07:45 (Which is also in there, but completely understandable, imo) 05:08:18 *That* would actually be entirely excusable. Science marches on. 05:08:50 but never as much 05:08:50 as 05:08:52 PIEence 05:09:00 pie-ence bitchez 05:09:31 elliott: Proto-Indo-Europeance? 05:09:56 pikhq_, but a diligent researcher in the 1920s or so would discover that the Columbus thing is a myth? 05:09:58 (Typesetting irk: first hyphen should probably be an en-dash. Probably.) 05:10:14 Sgeo: Oh, *surely*. 05:10:29 evincar: I can't reply because I'm too busy pointing at your next line and yelling hysterically "look at this fucking hipster". 05:11:32 pikhq_, well, that pretty much throws the rest of the book in question, I think 05:11:35 I might even start cackling. 05:12:19 elliott: Typography isn't one of those things that's traditionally seen as a hipster thing. 05:12:36 That sentence had so many "thing"s that I almost used a "da kine". 05:13:30 evincar: Please tell me you're actually offended. 05:13:37 I FEED ON PAIN 05:14:10 elliott: I don't usually get offended. You'll have to do better than that. 05:14:26 evincar: You... are... a... BEDWETTER. 05:14:29 WHAT NOW 05:14:39 Example of something that offends and sickens me: abstinence from sex on religious grounds. 05:14:56 Srsly? 05:15:03 That's pretty hypocritical, isn't it? 05:15:26 (I will have sex on religious grounds all I please! Churchyard! Graveyard! None shall be spared!) 05:15:36 http://www.goodreads.com/topic/show/619195-columbus 05:15:39 Hypocritical how? 05:15:50 I find it disturbing that a human wouldn't mate. 05:15:58 Unless they're asexual or something. 05:16:03 evincar: 05:16:11 evincar: So people aren't allowed to make their own decisions? 05:16:17 Sounds pretty fuckin' moralising to me. 05:16:31 Oh, sure, they're allowed to make their own decisions, and if it works in their lives, good for them. 05:16:35 I'm allowed to find it disturbing. 05:17:02 How on earth is it disturbing to choose not to have sex? Big deal, I'm sure plenty of people also choose not to eat fast food, or not to wear socks, or... 05:17:07 Largely because it probably isn't their decision. 05:17:16 In cases where it is, I find it far less objectionable. 05:17:37 Oppose abstinence-only education or whatever, don't oppose people doing things because of their religious beliefs 05:17:46 I don't oppose them. 05:17:57 I just don't understand or endorse them. 05:18:05 You said it offends you. 05:18:38 I'm afraid of the idea of being indoctrinated to such a degree that I would make what I believe to be a conscious decision to refrain from a natural process in which I would otherwise have engaged, without being aware that it is actually not my decision. 05:19:11 How do you distinguish a situation where you do something, thinking it's your decision, but it isn't actually; and a situation where you do something and it is your actual decision? 05:19:21 elliott: You don't. 05:19:29 You just tried to. 05:19:37 Not at all. 05:19:40 I said "probably". 05:19:59 I'm afraid of the idea of being indoctrinated to such a degree that I would make what I believe to be a conscious decision to refrain from a natural process in which I would otherwise have engaged, without being aware that it is actually not my decision. 05:20:04 You didn't there. 05:20:17 > Largely because it probably isn't their decision. 05:20:18 : parse error (possibly incorrect indentation) 05:20:18 I think it's a sad choice, and the belief itself is sad, but still their choice 05:20:27 elliott: One can be offended by something without thinking it should be stopped. 05:20:34 What he said. 05:21:08 The converse is that I'm not really offended by some things I think ought to be stopped, such as racism. 05:21:13 Well, sad reason to make the choice 05:21:21 Sgeo: For god's sake, it's not a sad choice to do what you want. And sex is like the least important thing because it affects nobody else and usually isn't even reproductive nowadays. 05:22:05 I'm only offended by shoving the religious abstinence on others, myself. 05:22:10 when sex doesn't affect anyone else it's called something else 05:22:14 Well, if someone desires to have sex, yet forces themself not to, not because they don't want to, but because they think it's "wrong", I think that's sad 05:22:21 lament: Har har har 05:22:30 Sgeo: That's the specific situation that bothers me most. 05:22:38 pikhq_: Sure, of course I object to that, but that's an entirely different thing. 05:22:44 elliott: Well, yes. 05:24:59 Anyway, this isn't a productive topic. 05:25:10 Let us discuss productivity tools. 05:25:34 That will lead us to programming languages, methinks. 05:25:55 No, no, no, not Enterprise enough. 05:26:25 Ugh, not this annoying kind of headache. 05:29:56 Looks like it didn't take. 05:30:11 To be honest, my favourite productivity tools are whiteboards, tea, long walks, and showers. 05:30:16 Oh, and sex. 05:30:26 My favorites are nothing. 05:30:56 Then you should get better favourites, if they're so worthless. 05:32:31 Maybe Brooks isn't saying Columbus's contemporaries believed in a flat Earth. Ok, I think I'm turining into the equivalent of one of those people who make excuses for the Bible 05:32:48 "the Papacy still maintained its theory of the flatness of the earth and the nonsense of the antipodes." 05:33:01 How does one both believe that the Earth is flat and the.. oh n/m 05:33:14 * Sgeo glares angrily at Brooks 05:33:55 Sgeo: I thought you stopped reading that. 05:34:03 I did 05:34:07 Sgeo: This was never Catholic doctrine. 05:34:24 They've got enough stupid doctrine without putting words in their mouths. 05:34:45 I was just thinking to myself "Wait, antipodes and flat earth sound antithetical, and I distinctly remember 'antipodes', so maybe Brooks didn't say flat Earth" 05:34:53 Then I looked at it again 05:35:40 maybe it was just the theory of THE FLATNESS 05:35:42 not flat earth 05:35:43 just 05:35:44 THE FLATNESS 05:36:29 If Jesus could see the Catholic church...with a name like that, you'd think it might actually be, you know, catholic. For the people. Not bathed in obscene wealth. 05:36:45 He'd be ashamed. 05:36:59 I might just start waving Jefferson Bibles around. 05:37:16 -!- TeruFSX2 has joined. 05:37:35 It's more Christian to preach than what most Christians do. 05:38:04 source for catholic meaning "for the people" kthx 05:38:14 I thought Catholic meant universal? 05:38:28 -!- TeruFSX has quit (Ping timeout: 276 seconds). 05:38:32 it does, or well, "whole", "all-encompassing", etc. 05:38:41 I didn't equate them. I was elaborating. 05:38:49 fun fact: the orthodox church's full name is orthodox catholic church 05:39:00 evincar: so in what manner is the Catholic Church not catholic 05:39:44 lament: that fact wasn't fun at all :( 05:40:02 lament: Fun fact: there's not a "the Orthodox church". 05:40:07 a the 05:40:20 The Orthodox Church, also officially called the Orthodox Catholic Church [note 1] and commonly referred to as the Eastern Orthodox Church 05:40:21 --wikipedia 05:40:24 "The Orthodox Church," 05:40:37 pikhq_: fun fact: you're stupid and wrong 05:40:41 God damn upstarts claiming primacy. 05:41:46 elliott: Catholicism isn't very universalist, that's all. 05:41:53 Hardly love-thy-neighbour. 05:42:00 all-encompassing doesn't really mean Universalist :-P 05:42:16 it could easily just mean that "encompassing all the true beliefs", which I am sure is Catholic doctrine 05:42:47 evincar: Meh, the whole fire and brimstone thing isn't, either. And that's a basic premise of Christianity. 05:42:55 "It was first used to describe the Christian Church in the early 2nd century to emphasize its universal scope." --Wikipedia, "Catholic". 05:43:07 right, so it is the church to which everyone should be a member 05:43:09 universal scope 05:43:23 pikhq_: Well, Old Testament. But Jesus specifically invalidated a lot of that. 05:43:47 evincar: It's still a basic premise that you either believe in Jesus or suffer eternal torment. 05:43:50 evincar, Hell is NT. Psychotic earthly punishments are OT 05:43:56 elliott: Universal links to "Universalism" though. 05:43:57 Sgeo++ 05:44:12 evincar: Citation :-P 05:44:17 (Yeah yeah I rebutted pikhq_ with Wikipedia shaddup.) 05:44:49 Sgeo: lets consider 'self 05:44:57 Yeah, it feels a little dirty citing Wikipedia as a source... 05:45:02 does punishment imply a self being punished? 05:45:12 Maybe I'm just trained to feel that way by writing papers. 05:45:26 Wikipedia is a good resource, but one word being linked without any citation hardly means much 05:45:38 Anyway, there is no hell so bad that a human wouldn't fetishise it, and no heaven so great that a human wouldn't grow bored of it. 05:45:54 evincar, are you quoting SMBC? 05:45:56 so then.. the question is.. what is the nature of the self .. how does it visit heavens and hells... and.. is the question simply too much for a man 05:46:04 Sgeo: Paraphrasing, if anything. 05:46:15 evincar: Christianity disagrees. 05:46:22 the "heaven has to suck" thing seems kinda stupid 05:46:31 * Sgeo agrees with elliott 05:46:40 Obviously the naive view of heaven sucks 05:46:44 Unfortunately, Christianity specifically invalidates my argument by saying you're no longer human after death. 05:46:48 I can imagine a Heaven that I'd love 05:46:51 And maybe it's very hard to define a non-sucky heaven 05:46:55 elliott, there' a naive view of heaven? 05:47:02 evincar: i believe buddha is supposed to have said something like that 05:47:03 You change in such a way that you delight in God's presence or suffer in fire and brimstone, fullstop. 05:47:10 Sgeo: "Everything is perfect bliss forever" 05:47:16 elliott, I think PI's world is _almost_ heaven, with some flaws, like being unable to die 05:47:20 No. 05:47:21 It really isn't. 05:47:31 evincar: And this psychotic level of mind-alteration is considered "good". 05:47:46 Sgeo: Uh, did you *read* that book? 05:47:46 pikhq_: Naturally. 05:47:47 Or, well, feel free to go off into PI's world if you want, but it isn't even close to heavenly. 05:47:48 ok i have to stop--. 05:47:56 See, here's the thing. 05:48:12 As someone who doesn't believe in an afterlife, I'm much more afraid of losing loved ones than of dying myself. 05:48:27 don't love anybody 05:48:29 problem solved 05:48:31 And yet isn't an afterlife supposed to be a salve for the thought of personal death? 05:48:34 evincar: you've already lost loved ones.. it can't get any worse :> 05:48:42 surely death of loved ones too 05:48:49 Well, yes, that's quite sensible. You were dead for billions of years and didn't suffer the slightest inconvenience. 05:48:52 itidus20: how do you know he has 05:49:03 itidus20: No one I've loved has yet died. 05:49:15 You'll be dead once more, and no doubt not be inconvenienced then. 05:49:27 So far, no one I've loved has died out of the blue 05:49:34 pikhq_: Unborn ≠ dead, just like alive ≠ undead. 05:49:47 As in, alive and well one day, dead the next 05:49:59 I don't see why unborn =/= dead, but obviously it's perfectly fine to be scared of death. 05:50:28 evincar: Don't tell my zombie minions that, they'll never listen to me again if they don't have fear of death. 05:50:31 :P 05:50:31 And god this headache is horrible. 05:50:55 Hey does anyone know a decent extension language library. 05:50:55 elliott: Have you considered drinking away your problems? 05:50:58 I don't really like Lua. 05:51:01 pikhq_: I don't know enough about necromancy to inform you on the nature of redeath. :P 05:51:28 elliott: Drinking away your problems with caffeine would probably help, actually. 05:51:41 Alternatively, sleep. 05:51:57 Oh, I'm working on a language for that. 05:52:00 Hard to sleep with a headache. 05:52:13 s/with a headache/ 05:52:17 *s/with a headache// 05:52:20 Hey does anyone know a decent extension language library. 05:52:40 Hey does anyone know a decent extension language library. 05:52:41 elliott: Not one that exists yet, I guess would be my answer then. 05:52:52 Hey does anyone know a decent extension language library. 05:52:54 elliott: *shrug* 05:53:05 Hey 05:53:27 evincar: in daily experience we first hear about death secondhand. in conversation or on tv. rather, we learn the word death before we experience it, in general. 05:53:51 sooner or later someone we know dies.. but generally it's someone elses loved one. that much is true. 05:54:07 05:54:16 and gradually we piece together the logic that all die 05:54:55 05:55:02 and that life can end at any time.. that death doesn't "wait" for people to finish their business 05:55:04 05:55:06 I dunno, I still might try to pull a Voldemort. 05:55:13 < 05:55:34 so.. this anthropomorphic death doesn't wait 05:55:45 but of course an anthropomorphic death doesn't exist 05:56:05 it doesn't? 05:56:16 but we have this nagging expectation that there should be a force in place to let people finish their business before they die 05:56:27 we do? 05:56:33 there should? 05:57:09 but of course an anthropomorphic death doesn't exist 05:57:14 You're referring to ghosts. 05:57:15 of course He does, and He talks in small capitals. 05:57:22 I see.... 05:57:32 i don't deny the possibility of ghosts/ 05:57:38 i just didnt know what i was referring to 05:58:01 I don't deny the possibility of anything. I just point to the probability of it. 05:58:17 Death has to be the best personification of Death ever. 05:58:25 Agreed. 06:00:26 But yeah, I've known plenty of people who've died, mostly relatives and friends' relatives, and didn't bat an eyelash nor shed a tear. 06:00:48 they won't shed any tears when you die, either 06:01:07 But, say, the girl I love. If she were to die, I would probably die soon after. 06:01:22 fsvo probably 06:01:32 Not because I can't live without her. Just acute-stress cardiomyopathy at work. 06:02:06 sounds like you're remarkably unfit for life 06:02:29 I'm talking about when I'm in my eighties or something. 06:03:00 Of course it'd be cool to live past 110 to be able to call myself eleventy, eleventy-one, etc. 06:03:01 you're planning to be working in your eighties? 06:03:19 Who said anything about working? 06:03:22 I mean, yes, I am. 06:03:41 But it wasn't mentioned. 06:03:58 i guess it wasn't 06:04:16 i guess i just imagined it. 06:06:40 This girl suggested we get married, not because she wants to be married, but because I'll have a doctorate and could teach CS at a school where she could get her MD for free. :P 06:06:58 -!- TeruFSX has joined. 06:07:10 This conversation ended with a high-five. 06:07:54 -!- TeruFSX2 has quit (Ping timeout: 260 seconds). 06:09:53 I don't think I'd want to get so attached to someone such that if they die, I die. But then, when I was a kid, I had this weird notion that I'd avoid becoming friends with HIV+ kids. Not because I was scared of getting HIV, but because I didn't want to lose a friend 06:10:29 " think I'd want to get so attached to someone such that if they die, I die. " 06:10:32 you realise he said because of age right 06:10:35 lol 06:10:45 IM SO ATTACHED TO YOU....THAT THIS HEARTBREAK..........HASLITERALLY......BROKEN MY HEART............. 06:10:46 [DIES] 06:10:50 [ROLL CREDITS] 06:10:55 It happens quite often. 06:11:33 elliott, you realize that, if all goes according to plan, I will age, right? 06:11:42 so the thing about ghosts suggests that death doesn't actually ignore the events of life as much as my formalized opinion suggests it does 06:11:49 Sgeo: how does your first sentence actually makes sense 06:11:55 you don't want to become attached to someone the same age as you? 06:12:08 This girl and I are absurdly mad for one another. It was a real problem when we both had boyfriends. 06:12:33 The "But then" was me wondering if I really would mind being so attached, and comparing my current thoughts about that level of attachment with past thoughts about hypothetical HiV+ friends 06:13:39 Sgeo: Yeah, you can't reasonably say "I won't get attached to this person because I don't want to get hurt later on". 06:13:51 You can not want to become attached, sure. 06:13:59 "Sorry dude, I can't be friends with you 'cuz yer gonna die." 06:14:02 And you can set your situation up so that you have difficulty becoming attached. 06:14:21 I don't think I would mind being attached, just not potentially fatally 06:14:36 FATAL ATTACHMENT 06:14:36 But if you're compatible with a person, the main predictors of attachment are going to be proximity and time. 06:14:54 It sounds like a Tom Cruise or Nick Cage movie. 06:15:20 tom cruise AND nic cage 06:15:24 instantly best film 06:15:28 -!- lament has quit (Ping timeout: 264 seconds). 06:15:30 I didn't say xor, I guess. 06:15:31 they become glued to each other 06:15:31 and 06:15:32 it's FATAL 06:15:48 So, the Human Centipede, but with only two victims. 06:16:03 I've heard of that movie! 06:16:15 Don't know anything about it, but I've heard of it 06:16:27 Oh, and regardless of what you may have heard about it, A Serbian Film is worth watching once. 06:16:36 You may want to have vodka on hand, though. 06:17:21 Human Centipede = three people are sewn together, anus-to-mouth times two. 06:17:27 oh, librep is still maintained! 06:17:34 evincar: wait it's only three people in a centipede? 06:17:35 lame 06:18:06 elliott: And a dude who is implied to be jacking off to it. 06:18:13 yeah but only three people 06:18:14 laaaame 06:18:21 That's for the sequel. 06:18:24 (honest) 06:18:26 how many legs do centipedes have???? 06:18:28 A Serbian Film = former porn star commissioned by crazy studio to make shock porn, wakes up covered in blood with no memory of events, pieces together events from videos. 06:18:30 it needs to have that many arms+legs 06:18:44 elliott: In the tens. 06:18:55 but millipedes have millionsr ight :| dont ruin me 06:19:01 20 to 300. 06:19:54 while we're talking about films, is the rest of Enter the Void as good as its credit sequence (http://www.youtube.com/watch?v=dL0lNGXoP8E (don't watch if you're epileptic probably)), because if so i'm totally going to watch it 06:20:08 i'd buy a dvd with just those credits 06:20:29 You could make one 06:20:44 Does anyone still use long numbers (milliard, increments of 1e6) rather than short (billion, increments of 1e3)? 06:20:58 yes 06:21:16 evincar: in English? 06:21:20 Seems inconvenient. Then again, most number systems are. 06:21:22 only people who want to confuse others 06:21:28 in other languages? of course 06:21:35 Sgeo: make what 06:21:53 DVD-whatever with those credits 06:22:33 i don't think that'd be worth the effort :P 06:22:46 although admittedly it's the only credit sequence i've seen with an actual climax, maybe it needs scene selection 06:23:03 i wonder if anyone's made a credit sequence that's just the credits for the credit sequence 06:23:18 like a book of reviews of itself 06:23:24 elliott: Like a quine? 06:24:03 Except the shortest possible credit sequence is that made by one (wo)man with no name. 06:24:34 Lasting 1/24 s for formality. 06:24:53 Spending effort > spending money 06:24:54 i like to ponder the fundamental question of what are numbers... 06:24:55 Usually 06:25:14 For me 06:25:35 things like -2,-1,0,1,2 doesn't quite explain it 06:25:37 Sgeo: uh, context 06:25:41 itidus20: lol 06:25:45 i don't think that'd be worth the effort :P 06:25:45 itidus20: do you know any set theory 06:25:57 itidus20: A number is a function taking an object and yielding a description of a quantity of that object? 06:25:58 Sgeo: you realise i wouldnt actually buy a dvd of just those credits 06:26:09 It's sort of an irreducible concept. 06:26:09 evincar: well that's certainly a vague nonstandard definition 06:26:13 no it isn't 06:26:21 0 = {}, Sn = n union {n}, come on 06:26:43 well if you want more than the naturals it's more complicated ofc :P 06:26:52 God of the Math-Gap? 06:27:39 elliott: That's not a reduction, that's more of an implementation or restatement. 06:27:49 The question is what numbers are. 06:27:50 how is a definition not a reduction 06:28:02 number means nothing, natural, integer, rational, ... do 06:28:02 -!- NihilistDandy has joined. 06:28:08 evincar, wouldn't it make more sense at this point to ask what a set is? 06:28:13 and those are all perfectly reducible to the axioms of ZF set theory 06:28:19 or Martin-Löf type theory or whatever 06:28:20 Numbers are just a special sort of set 06:28:22 whatever floats your boat 06:28:42 hmm 06:29:09 In the practical sense, say a linguistic sense, what function does a number serve? 06:29:23 what 06:29:29 Ohai 06:29:35 Depends on the context. In the real world, usually to quantify. 06:29:43 That's the meaning I got from the question, and the question I tried to answer. :P 06:30:00 Sgeo: But unfortunately then we run up against a definition of quantity. :( 06:30:14 evincar: How much muchness is there? 06:30:20 perhaps numbers are merely an aspect of human interpretation of events 06:30:22 evincar, this turning into a question about language, not a question about numbers. 06:30:24 And numbers aren't even universal. There are languages without numbers. 06:30:37 evincar: Irrelevant 06:30:58 Hey does anyone know a decent extension language library. 06:31:01 Not at all. Numbers aren't the universal human descriptor of quantity. 06:31:18 Just because I don't have a word for 6 doesn't mean there aren't 6 eggs in a half dozen 06:31:21 They are *a* descriptor of quantity. 06:31:26 I just can't describe that idea 06:31:47 evincar, the most precise, perhaps overly precise, descriptor 06:32:39 evincar: it seems that quantity is the key word 06:33:56 Yes, but it's still absurdly difficult to come up with a definition for "two" that doesn't use any "two"-ness. 06:34:19 are there limits of definability? :P 06:34:25 One more than one of something 06:34:38 Presumably those things which can only be defined in terms of themselves are axiomatic. 06:34:48 So yes, the limits of definability are axioms. 06:34:57 Depending on your set of axioms~ 06:35:00 a computer program for example has axioms of instruction set.... it can't really be reduced beyond the instruction set 06:35:22 uh i mean, once it does it ceases to be a computer program 06:35:25 itidus20: Microcode. 06:35:28 elliott, what's the liklihood of this conversation melting my brain via means of blah 06:35:43 So the response is actually "oh yes it can". 06:35:58 And further still. 06:36:05 01100010 01101100 01100001 01101000 00100000 01100010 01101100 01100001 01101000 00100000 01100010 01101100 01100001 01101000 06:36:19 No encoding specified. 06:36:29 guys, if there was a limit on any of this i am quite certain that we would not be discussing it at all. we know its possible.. and deep down we know all useful knowledge comes at the cost of lots of hard work 06:36:30 elliott, what's the liklihood of this conversation melting my brain via means of blah 06:36:30 what 06:36:33 Assuming default encoding which is EBCDIC for some reason. 06:39:12 001100 010010 011110 100001 101101 110011 111111 06:39:51 Oops, ignore the 111111 06:40:15 my conception of numbers is like: so you start with a finite ruler of some kind. such as a slice of cheese or a cake.. and you say.. this finite ruler is 1 unit. then you divide it up as much as reasonably possible. 06:40:35 and then you say, each division of the unit, itself, is a unit, and could theoretically be divided up 06:40:55 Define finite 06:41:53 an object which can be manipulated in it's entirety by a human 06:42:06 How do you define a set, then? 06:42:13 And what consitutes manipulation? 06:42:15 Define "object" 06:42:18 And what's a human? 06:42:25 And what's entirety? 06:42:28 Do mathematical constructs count as objects? 06:42:31 this is dumb 06:42:39 evincar started it :d 06:42:41 a set definition is finite... even though its meaning is infinite 06:42:46 What's finite? 06:42:47 itidus20, wrong 06:42:50 Did not. 06:43:33 this is dumb 06:43:34 yes 06:43:36 evincar started it :d 06:43:38 no, iti did 06:43:39 :P 06:43:45 Given a finite vocabulary, there are sets that you can't describe with a finite squence of symbols in that vocabulary 06:43:45 i mean, like, if you write down a set ... that writing is finite.. it is a subset of the piece of paper 06:43:49 I have a more interesting problem: 06:43:52 What is the largest number? 06:43:55 itidus20, you can't get all sets like that 06:44:04 Patashu: One second. 06:44:11 but each actual set definition is a finite thing existing in a finite computer or on a finite piece of paper 06:44:20 Patashu: 45,000,000,000. 06:44:21 Patashu: The largest number you can think of + 1 06:44:22 itidus20, all that we can manipulate, yes 06:44:25 I looked this up in a reliable source. 06:44:26 But there's more sets than that 06:44:59 ok *wipes brow* 06:45:23 You can't describe all real numbers with a finite sequence of symbols, and it's pretty easy to imagine a set that is dependent on a sepcific number 06:45:57 the word infinity is 8 characters long and thus finite... and yet defines something infinite 06:46:06 It defines nothing 06:46:11 The definition defines it 06:46:18 The word is just a representative 06:46:19 The symbol refers to it. 06:46:28 perhaps i should say, symbols are finite 06:46:39 In what sense? 06:46:53 i mean..i know there can be infinite symbols.. but each specific symbol is a finite thing 06:47:00 Is it? 06:47:11 Is a line not a symbol? 06:47:18 Is a point really finite? 06:47:24 does it have to be percieved to be a symbol? 06:47:28 oh my god 06:47:47 elliott created a monster 06:47:54 This is horrifying. 06:47:55 elliott, baby steps on the way to thinking 06:48:01 And the monster will forevermore be remembered by his name 06:48:04 Well, not baby steps 06:48:07 There is thinking 06:48:13 aren't symbols ultimately the handles on reality 06:48:15 Just baby-like thinking 06:48:22 Worse than being in the café at my college. 06:48:23 itidus20: Justify 06:48:44 evincar: Godwin's Corollary :D 06:48:57 three seconds away from rage/parting if we don't stop sounding like the other kind of #esoteric 06:49:34 elliott, nothing wrong with philosomath 06:49:41 written characters are always small enough relative to our anticipated distance from them to be percieved in full 06:49:42 I only came on because I had a question for #haskell, but they're busy gassing on about ByteStrings 06:49:42 Sgeo: you're not doing philosomath 06:49:48 itidus20: Actually, no, they're not. The Sapir-Whorf Hypothesis and linguistic relativity are largely discredited. 06:49:52 NihilistDandy: ask me instead im genius 06:50:18 evincar: Almost completely discredited. You give them too much credit :D 06:50:27 elliott: Okay, hpaste inbound 06:50:42 http://hpaste.org/49703 06:50:54 Tell me if you know what I'm going for, then I'll explain if it's not clear 06:51:12 im more out of my depth than i am aware of :D 06:51:14 I know it's ugly and awful, by the way 06:51:21 I'm trying to fix that 06:52:31 g :: Integral a => [a] -> [a] 06:52:31 g = map g' 06:52:35 Why would that compile? 06:52:41 Why wouldn't it? 06:52:43 Oh, derp 06:52:45 :P 06:52:47 what's g' here? 06:52:50 NihilistDandy: What are you trying to do 06:52:59 Like, that code looks like it should compile to me 06:53:07 I dunno, ask an actual question 06:53:10 It's not a compilation issue, it's a thought process issue 06:53:22 Unfortunately I'm not a mind reader 06:53:23 I'm trying to make a fairly simple implentation of permutation groups 06:53:37 This is a short experiment that I scribbled down at work 06:53:49 evincar: thanks. good to know :D 06:53:51 But it's disappointingly specific. 06:53:52 it occurs to me that asking someone with this headache might not be your best hope :) 06:54:03 elliott: No worries :D 06:54:26 I'd like to be able to generalize it to arbitrary permutations, but reasoning about the type system has put me in a bit of a spot 06:54:36 NihilistDandy: dude, !! 06:55:01 coppro: In what way, exactly, should I use it? 06:58:09 I'M AN IDIO- wait, what... 06:58:22 OHHH 06:58:44 mconcat = map . (!!) 06:58:58 um... 06:58:59 where a permutation is a list of integers from 0 to n-1 06:59:04 :t map . (!!) 06:59:04 forall b. [b] -> [Int] -> [b] 06:59:06 :t mconcat 06:59:07 forall a. (Monoid a) => [a] -> a 06:59:10 how about no 06:59:18 hrm wait 06:59:26 pro 06:59:33 wrong function 06:59:41 Also 06:59:42 http://mathbin.net/64558 06:59:43 proest 06:59:46 prost 06:59:52 The texified version 06:59:55 I MEANT mappend! 07:00:08 :t mappend 07:00:08 APPEND AND CONCATENATE THERE IS NO DISTINCTION 07:00:08 forall a. (Monoid a) => a -> a -> a 07:00:12 :t map . (!!) 07:00:13 forall b. [b] -> [Int] -> [b] 07:00:19 well ok for b=Int. 07:00:25 well yeah 07:00:39 I'm talking about with [Int] as the monoid 07:00:45 or some newtype thereof 07:01:09 (obviously it would actually have to be a newtype) 07:01:28 (because haskell sucks) 07:01:33 The TeX version is just in case permutation notation is a more familiar area 07:01:56 6 days without a Homestuck update 07:02:11 Sgeo: How will you LIIIIIVE? 07:02:15 > let perm = map . (!!) in [0,3,2,1] `perm` [2,3,1,0] 07:02:16 [2,1,3,0] 07:03:07 (because haskell sucks) 07:03:14 --mr "mappend and mconcat what is the difference" 07:03:36 elliott: I was referring to the lack of elegant handling of multiple possible instances of a typeclass for a type 07:03:41 > let perm = map . (!!) in [1,2,3,4,5] `perm` [2,4,5] 07:03:42 [3,5,*Exception: Prelude.(!!): index too large 07:03:47 And there's the problem 07:04:32 The size of a cycle is not equal to the size of the set, necessarily 07:04:48 that's not a permutation group... 07:05:16 Sorry, meant permutations of a finite set 07:05:22 Permutation groups come later 07:05:27 I'm working up 07:05:34 you're still missing the point 07:05:38 a permutation contains all elements 07:05:51 if you want permutations of the elements of the powerset, that's very different 07:05:59 A cycle doesn't contain all elements 07:06:11 And I'd like to be able to work with the permutation decomposed into its sycles 07:06:14 *cycles 07:06:33 this headache is unberable 07:06:36 unberaable 07:06:36 As illustrated in the TeX example 07:06:38 also i can't type 07:06:44 elliott: That looked like Dutch 07:07:15 what TeX example? 07:07:21 http://mathbin.net/64558 07:07:43 That one 07:08:04 NihilistDandy: unberaabel would look more Dutch. 07:08:11 evincar: Truth 07:09:44 NihilistDandy: you need to fill out your lists first then 07:09:48 this is not expressible in the type system 07:10:01 Exactly my thoughts. 07:10:11 I was just curious if I might just be wrong 07:12:57 Totally unrelated: does anyone know of a programming language that's not totally isolating? That is, say, an agglutinative or synthetic one. 07:13:20 Rewrite C stdlib in Hungarian? 07:13:31 It seems like programming languages don't have inflections in any real sense. 07:13:39 -!- TeruFSX has quit (Ping timeout: 260 seconds). 07:14:15 Because even those assemblies where inflection is possible, it's not productive. I can't arbitrarily add inflections to root morphemes to make new instructions. 07:14:59 -!- pitufoide has joined. 07:15:52 NihilistDandy: You would need to create a representation of the naturals in the type system for it to be useful 07:16:06 They have type-level naturals in HEAD 07:16:50 (Actually, programming languages seem to be all purely analytic, not just isolating.) 07:17:59 coppro: that's trivial 07:18:06 data Z 07:18:09 data S n 07:18:11 class Nat n 07:18:12 instance Nat Z 07:18:14 elliott: well yes 07:18:15 instance (Nat n) => Nat (S n) 07:18:18 blah blah blah infrastructure 07:18:21 you can even do it in binary 07:18:27 Guess it's time to make an esolang inspired by a Balto-Slavic language with many cases. 07:18:28 it is a common technique. 07:18:36 elliott: I know how to construct the naturals thank you 07:18:53 elliott: I can even define addition!!1!one 07:19:07 But can you define addition without type families? 07:19:16 With a binary representation? 07:20:17 define type families 07:20:29 lol. 07:21:40 elliott: do you mean the GHC extension? 07:22:27 the extension is in very common use, and there is nothing else that type families refers to, so yes. 07:22:49 k 07:23:29 I believe the answer is yes 07:23:31 let me double-check 07:23:37 to what 07:24:01 [03:18:49] But can you define addition without type families? 07:24:01 [03:18:57] With a binary representation? 07:25:43 I feel unwell 07:25:57 i feel like a well 07:26:03 weird feelin 07:26:42 i wonder if this classes as a migraine 07:26:50 probably not 07:28:58 elliott: If you don't want to end electromagnetic radiation permanently, it's probably not a migraine. 07:29:11 Electromagnetic radiation sucks shit, man. 07:29:32 Nice chatting, folks. I'm off to eat a loaf of bed. 07:29:34 Yes, but does it cause agony? 07:29:38 -!- evincar has quit (Quit: leaving). 07:31:37 elliott: k i changed my mind 07:32:15 I do not know how to implement it at the type level without type families 07:33:25 oh, what i have here is actually subtraction 07:33:28 but whatever, same thing :) 07:33:34 no type families, and binary 07:33:44 I can show you if you'd like 07:38:29 would be interested 07:39:19 Please do 07:40:42 k one second 07:41:49 sent in /msg, the world is too innocent to know my genius 07:42:00 oh i forgot newtype Tagged t a = Tag { untag :: a } 07:42:20 and it needs a whole bunch of ghc extensions but w/e 07:42:45 it's a lot simpler if you just do it for unary instead of binary, but unfortunately that was much too slow. 07:44:58 oh that explains it 07:45:05 I was trying to avoid extensions generally 07:45:11 that's impossible 07:45:44 You can hardly do anything fun without extensions 07:47:02 elliott: what extensions are those? 07:47:26 coppro: I only have a list for the much larger program it's contained within; I suggest just adding them as GHC complains about not having them 07:48:37 elliott: to be fair the only one that stands out is the | in classes 07:49:08 Not quite: There's also multi-parameter type classes, flexible instances, I think probably undecidable instances... 07:49:10 Flexible contexts too 07:49:15 The |s are functional dependencies. 08:18:31 ?pl \n pairs -> fromMaybe n (lookup n pairs) 08:18:31 liftM2 (.) fromMaybe lookup 08:18:34 ?pl \pairs n -> fromMaybe n (lookup n pairs) 08:18:34 ap fromMaybe . flip lookup 08:18:47 ?pl \ess@(e:es) -> zip ess (es ++ [e]) 08:18:47 (line 1, column 5): 08:18:47 unexpected "@" 08:18:47 expecting letter or digit, operator, pattern or "->" 08:18:55 ?pl \(e:es) -> zip (e:es) (es ++ [e]) 08:18:55 ap (ap (ap . (zip .) . (:)) (flip (++) . return) . head) tail 08:19:01 ?pl \(ess@(e:es)) -> zip ess (es ++ [e]) 08:19:01 (line 1, column 6): 08:19:01 unexpected "@" 08:19:01 expecting letter or digit, operator or ")" 08:19:05 D'awww 08:19:15 ?pl \xs -> zip xs (tail xs ++ [head xs]) 08:19:15 ap zip (liftM2 (++) tail (return . head)) 08:26:53 -!- Sgeo has quit (Ping timeout: 250 seconds). 08:39:15 -!- MigoMipo has joined. 08:44:32 -!- Taneb has joined. 08:44:35 Hello 08:46:15 Hi 08:47:06 What is happening in the WORLD OF ESOTERIC PROGRAMMING 08:47:20 ? 08:48:41 EVERYTHING 08:49:16 Mein. Deu. 08:58:18 why does Haskell not have a Semigroup typclass 08:58:20 *typeclass 09:00:57 Because that would make everything too easy 09:01:44 it should be class Semigroup s where { (<.>) :: s -> s -> s } and then class (Semigroup m) -> Monoid m where { identity :: m } 09:01:47 coppro: http://hackage.haskell.org/package/semigroups 09:01:50 or iden for short 09:01:51 and your syntax is bad 09:02:01 err => 09:02:04 YOU KNOW WHAT I MEANT 09:02:36 The world's in a mess 09:02:58 also why does Semigroup have to stuff Monoid in a newtype 09:03:01 any postulate which makes everything too easy would be a divergence from reality, since reality is self-evidently not easy 09:03:01 Syria's in protest 09:03:13 US is having a crisis 09:03:16 also why does Semigroup have to stuff Monoid in a newtype 09:03:19 re: Because that would make everything too easy 09:03:24 technical reasons 09:03:32 (overlapping instances) 09:03:45 and no, there is _not_ a real solution to that, beyond fixing Monoid to have the proper superclass 09:03:54 it's not a flaw in Haskell, just a flaw in library structure. 09:04:21 @src (<>) :: Option a -> Option a -> Option a 09:04:21 Source not found. You speak an infinite deal of nothing 09:04:50 Option? 09:04:56 Is there a 'fixed' version of Hasell 09:05:03 Patashu: define fixed 09:05:12 it has fewer flaws than almost every other language :) 09:05:23 as if to postulate: "each family has enough water" .. but all the while knowing "the city doesn't have enough water".. therefore one of the statements is wrong. 09:05:36 the monad/applicative stuff seems to be a flaw 09:05:51 -!- Taneb has quit (Quit: switching computer). 09:05:53 Patashu: I didn't say it was without flaws 09:06:12 but they should be fixed incrementally by the usual process, not by making some "fixed" version of Haskell. In fact you can "fix" Haskell today by writing your own Prelude. 09:06:26 But the problem is that nobody will use it and it won't be compatible with anyone else's code. 09:06:28 So that helps nobody. 09:06:43 elliott: Option is a version of Semigroup for Maybe. Probably needs to be a newtype to avoid overlapping or some shit like that 09:07:09 Well, semigroups isn't in Hoogle. 09:07:18 explains it 09:07:20 coppro: "a version of Semigroup"? 09:07:22 "Option is effectively Maybe with a better instance of Monoid, built off of an underlying Semigroup instead of an underlying Monoid. Ideally, this type would not exist at all and we would just fix the Monoid intance of Maybe" 09:07:35 that 09:07:42 -!- NihilistDandy has quit (Read error: Connection reset by peer). 09:07:47 -!- Taneb has joined. 09:07:55 And before you whine again, the problem is a flawed Prelude, not Haskell's inability to do the impossible. :p 09:08:31 -!- NihilistDandy has joined. 09:08:36 DISAGREE 09:09:12 Monoid is not in Prelude 09:09:21 but yes, the issue is not with Haskell itself 09:09:27 You know what I mean. 09:09:29 The base package. 09:09:42 Anyway, these issues come up a lot in discussion, but are really very minor in practice. 09:09:51 this all came up because Applicative ((,) e) requires a Monoid where it could use a Semigrouop 09:09:55 *Semigroup 09:10:21 oh wait, pure requires a Monoid 09:10:22 NEVERMIND 09:10:26 herp derp 09:10:34 I R SMRT 09:11:36 although really, <*> doesn't require the existence of 'pure' conceptually 09:11:48 no function requires the existence of any function 09:11:55 but applicatives are constructed the way they are for a reason 09:11:58 without pure, you cannot give them laws. 09:12:06 and without laws, every abstraction is useless. 09:12:12 -!- oerjan has joined. 09:12:19 hi oerjan 09:12:24 hi elliott 09:12:30 hi NihilistDandy 09:12:34 Oh, wait 09:12:50 NihilistDandy: you're a nihilist, not a solipsist, duh 09:13:05 Well, you've got me there 09:14:08 Anyway, I have to sleep 09:14:19 Adios 09:17:41 elliott: minor nit: why does the haskell community call them laws and not axioms? 09:18:01 coppro: because they're not axioms 09:18:19 they are propositions that an instance must satisfy, not things that are just true 09:18:31 I mean, you could use axiom equivalently, I suppose 09:18:34 And it wouldn't be very confusing 09:18:37 But how's it a "nit" 09:18:42 I don't see how "law" is wrong in any way 09:19:19 how dare the haskellers use a less mathematically obscure term for once! 09:31:40 ^ 09:31:50 hell, C++ was considering axioms 09:33:06 how would C++ use axioms? 09:33:42 -!- Taneb has quit (Quit: He's a big quitter he is.). 09:33:57 Patashu: for basically the same thing 09:34:16 they were working on a compile-time polymorphism feature 09:34:24 with constrained types 09:34:32 and 'axioms' which could be used as optimizer hints 09:34:40 as well as in-source documentation of code 09:35:03 :( 09:35:04 I want that 09:35:13 also the ((->) r) monad is bitchin' 09:35:28 Patashu: if you really want it, help them resolve the issues! 09:35:39 it was rejected. 09:35:43 No 09:35:57 It was removed from C++11 due to the fact that they couldn't finish it 09:36:20 and they decided "we've wasted enough time, let's ship something without it and fix it for next time" 09:36:22 -!- NihilistDandy has quit (Read error: Operation timed out). 09:37:12 head >>= all . (==) 09:37:45 that function is pure epic win 09:38:31 :t head >>= all . (==) 09:38:32 forall a. (Eq a) => [a] -> Bool 09:39:08 > (head>>=all.(==)) [0,0,0] 09:39:09 True 09:39:10 > (head>>=all.(==)) [0,0,0,9] 09:39:11 False 09:39:13 > (head>>=all.(==)) [0,9,0] 09:39:14 False 09:39:19 > (null . nub) [0,9,0] 09:39:20 False 09:39:22 coppro: shortened that for you 09:39:23 > (null . nub) [0,0,0] 09:39:24 False 09:39:28 guh what 09:39:30 > nub [0,0,0] 09:39:31 [0] 09:39:33 oh 09:39:35 > nub [] 09:39:35 [] 09:39:41 ?hoogle safeTail 09:39:42 Data.ByteString.Unsafe unsafeTail :: ByteString -> ByteString 09:39:44 ?hoogle something 09:39:44 Data.Generics.Schemes something :: GenericQ (Maybe u) -> GenericQ (Maybe u) 09:39:58 coppro: (null . tail' . nub), anyway, where tail' [] = []; tail (_:xs) = xs 09:40:56 elliott: drop 1 09:41:12 elliott: but nub is inefficient 09:41:23 Oh right, drop 1. 09:41:24 ?src nub 09:41:24 nub = nubBy (==) 09:41:27 ?src nubBy 09:41:27 nubBy eq [] = [] 09:41:27 nubBy eq (x:xs) = x : nubBy eq (filter (\ y -> not (eq x y)) xs) 09:41:34 coppro: I don't see why it'd be inefficient at this. 09:41:46 Well, OK. 09:41:50 But it's prettier. 09:42:10 I'm using a custom comparer 09:42:39 so I'd say "head >>= all . comp" is better than "null . drop 1 . nubBy comp" 09:45:07 it's all in the head 09:45:26 ?hoogle (c -> c -> c) -> (a -> c) -> (b -> c) -> a -> b -> c 09:45:26 No results found 09:46:02 ?djinn (c -> c -> c) -> (a -> c) -> (b -> c) -> a -> b -> c 09:46:02 f a b c d e = a (b d) (c e) 09:46:08 ?pl \a b c d e -> a (b d) (c e) 09:46:08 ((flip . ((.) .)) .) . (.) 09:46:09 didn't we discuss something like that the other day 09:46:10 coppro: yw 09:46:19 elliott: h8 u 09:46:27 ?pl \b c d e -> a (b d) (c e) 09:46:27 flip . (((.) . a) .) 09:46:34 ?pl \d e -> a (b d) (c e) 09:46:34 (. c) . a . b 09:46:36 i think i made a version with arrow style 09:47:19 arrows :( 09:47:22 :t on 09:47:22 forall b c a. (b -> b -> c) -> (a -> b) -> a -> a -> c 09:48:15 uncurry (uncurry a . (b *** c)) or something 09:49:36 :t uncurry (uncurry ?a . (?b *** ?c)) 09:49:37 forall a b b1 c b2 b'. (?a::a -> b -> b1 -> c, ?b::b2 -> a, ?c::b' -> b) => ((b2, b'), b1) -> c 09:49:42 oops 09:49:50 :t curry (uncurry ?a . (?b *** ?c)) 09:49:50 forall a b c a1 b1. (?a::a -> b -> c, ?b::a1 -> a, ?c::b1 -> b) => a1 -> b1 -> c 09:50:23 @pl \a b c -> curry (uncurry a . (b *** c)) 09:50:23 ((curry .) .) . (. (***)) . (.) . (.) . uncurry 09:50:45 (argh) 09:51:12 oh hm 09:51:14 btw oerjan 09:51:15 newtype MyMonad a = MyMonad (StateT MyState (ReaderT Options (ErrorT MyException (WriterT [String] IO))) a) 09:51:15 deriving (Functor, Monad, MonadReader Options, MonadState MyState, MonadError MyException, MonadWriter [String]) 09:51:23 seen in actual haskell code 09:51:27 i weep for humanity 09:51:39 who would do that 09:51:50 you'd think they could fit an RSWT in there somewhere 09:52:31 monqy: the same guy who thinks that everybody just uses the io monad with exceptions and state 09:52:33 remember them?? 09:52:39 http://www.reddit.com/r/haskell/comments/j2n5w/why_doesnt_haskell_have_something_like_this_how/c294l8g?context=3 btw 09:52:45 for me yelling at them for it 09:52:57 :t (&&) <$> ((<*>) `on` ((==) .)) height width 09:52:58 Not in scope: `height' 09:52:58 Not in scope: `width' 09:53:05 ?unpl (&&) <$> ((<*>) `on` ((==) .)) height width 09:53:05 ((&&) <$> (on (<*>) (\ a d -> (==) (a d)) height width)) 09:53:15 coppro: now /that's/ unreadable 09:53:19 add some where bindings, dude 09:53:45 :t (&&) <$> ((<*>) `on` ((==) .)) length first 09:53:46 Occurs check: cannot construct the infinite type: a = a -> b 09:53:46 Expected type: f (a -> b) 09:53:46 Inferred type: f a 09:53:58 :t (&&) <$> ((<*>) `on` ((==) .)) length head 09:53:59 Occurs check: cannot construct the infinite type: a = a -> b 09:53:59 Expected type: f (a -> b) 09:53:59 Inferred type: f a 09:54:06 damn 09:54:24 :t curry (curry . (uncurry ?a .) . uncurry (***)) 09:54:24 forall c b c1 b' c'. (?a::c1 -> c' -> c) => (b -> c1) -> (b' -> c') -> b -> b' -> c 09:54:30 :t (<*> `on` ((==) .)) 09:54:30 parse error on input ``' 09:54:44 :t ((<*>) `on` ((==) .)) 09:54:45 Occurs check: cannot construct the infinite type: a = a -> b 09:54:45 Expected type: f (a -> b) 09:54:45 Inferred type: f a 09:54:59 there's me problem 09:55:13 ?pl \a -> curry (curry . (uncurry a .) . uncurry (***)) 09:55:13 curry . (curry .) . (. uncurry (***)) . (.) . uncurry 09:55:26 :t ((==) .) 09:55:27 forall a (f :: * -> *). (Eq a, Functor f) => f a -> f (a -> Bool) 09:55:35 coppro: btw: you were talking about wanting semigroups for an Applicative without pure 09:55:39 :t curry . (curry .) . (. uncurry (***)) . (.) . uncurry 09:55:39 forall a b c a1 b1. (a1 -> b1 -> c) -> (a -> a1) -> (b -> b1) -> a -> b -> c 09:55:48 elliott: I was joking really 09:56:07 coppro: see Apply in http://hackage.haskell.org/packages/archive/semigroupoids/1.2.2.1/doc/html/Data-Functor-Apply.html, by the same author as the semigroups paclage 09:56:26 package 09:56:44 don 09:56:50 don 09:56:55 thanks 09:57:09 someone should write an agdabot 09:57:10 excuse me while I try to sort this mess out 09:57:18 what mess :) 09:57:34 coppro: (btw, these packages are basically the split-up sequel to category-extras, which is deprecated, if you've heard of it) 09:57:36 by the same guy 09:57:38 oh damn that's left-associative no wonder 09:58:08 http://www.reddit.com/r/haskell/comments/fvabx/greenfield_haskell/c1j0kju has a link to all the category-extras sequels :P 09:58:12 :t (&&) <$> ((==) . length) <$> ((==) . first) 09:58:12 Couldn't match expected type `Bool' 09:58:12 against inferred type `a -> Bool' 09:58:12 In the first argument of `(.)', namely `(==)' 09:58:23 http://hackage.haskell.org/package/void this is the most useful one 09:58:23 ;D 09:58:36 gotta love them instances 09:58:48 haha 09:58:58 :t (&&) <$> ((==) . length) <*> ((==) . first) 09:58:58 Couldn't match expected type `Bool' 09:58:58 against inferred type `a -> Bool' 09:58:58 In the first argument of `(.)', namely `(==)' 09:59:15 bah 09:59:28 -!- TeruFSX has joined. 09:59:49 elliott: Is that suppose to be an inconstructible type? 10:00:00 coppro: s/suppose to be/is/ 10:00:13 it is actually quite useful 10:00:15 example? 10:00:23 what do you mean? 10:00:25 example of its use? 10:00:28 yeah 10:00:43 :t length 10:00:43 forall a. [a] -> Int 10:00:52 :t ((==) . length) 10:00:52 forall a. [a] -> Int -> Bool 10:01:02 coppro: well, for instance, if a certain branch is impossible, and you can make the types work out so that the impossible branch gives you a Void... 10:01:05 umm, I forget precisely 10:01:09 but I know that Epigram uses it, IIRC 10:01:10 or was it Agda 10:01:13 something McBride worked on, anyway ;-) 10:01:19 ah 10:01:25 makes more sense with dependent types 10:01:29 but yes, mostly useful in compiler output than by hand, I would think 10:01:49 oh fuck that's what I'm doing wrong 10:02:05 coppro: McBride wanted vacuous added (see http://hackage.haskell.org/packages/archive/void/0.5.4.1/doc/html/src/Data-Void.html) 10:02:09 so I presume that ended up useful for something 10:02:13 because of its efficient unsafeCoerce implementation 10:02:46 yeah I looked at the source 10:04:47 doing the impossible, and efficiently! 10:09:54 :t (***) `on` ((==) .) 10:09:54 forall (a :: * -> * -> *) b a1. (Arrow a, Eq a1, Functor (a b)) => a b a1 -> a b a1 -> a (b, b) (a1 -> Bool, a1 -> Bool) 10:10:07 :t (***) `on` ((==) .) first length 10:10:08 Couldn't match expected type `a b c' against inferred type `Bool' 10:10:08 In the first argument of `(.)', namely `(==)' 10:10:08 In the second argument of `on', namely `((==) .) first length' 10:10:14 -!- monqy has quit (Quit: hello). 10:10:19 :t (***) `on` ((==) .) $ first length 10:10:19 Precedence parsing error 10:10:19 cannot mix `on' [infixl 0] and `$' [infixr 0] in the same infix expression 10:10:23 :t (***) `on` ((==) .) $ first # length 10:10:24 Precedence parsing error 10:10:24 cannot mix `on' [infixl 0] and `$' [infixr 0] in the same infix expression 10:10:24 Not in scope: `#' 10:10:30 :t (***) `on` ((==) .) $ first $ length 10:10:31 Precedence parsing error 10:10:31 cannot mix `on' [infixl 0] and `$' [infixr 0] in the same infix expression 10:10:34 damn you 10:10:46 :t ((***) `on` ((==) .)) first length 10:10:47 Couldn't match expected type `a b c' against inferred type `[a1]' 10:10:47 Expected type: a b c -> a (b, d) (c, d) 10:10:47 Inferred type: [a1] -> Int 10:11:17 :t ((***) `on` ((==) .)) first 10:11:18 forall (a :: * -> * -> *) b c d. (Eq (a (b, d) (c, d)), Arrow a) => (a b c -> a (b, d) (c, d)) -> (a b c, a b c) -> (a (b, d) (c, d) -> Bool, a (b, d) (c, d) -> Bool) 10:11:25 :t first 10:11:25 forall (a :: * -> * -> *) b c d. (Arrow a) => a b c -> a (b, d) (c, d) 10:11:29 oh no wonder 10:11:32 :t ((***) `on` ((==) .)) head 10:11:32 forall a. (Eq a) => ([a] -> a) -> ([a], [a]) -> (a -> Bool, a -> Bool) 10:11:34 derpderpderp 10:11:51 :t (&&) <$> ((==) . length) <$> ((==) . head) 10:11:52 Couldn't match expected type `Bool' 10:11:52 against inferred type `a -> Bool' 10:11:52 In the first argument of `(.)', namely `(==)' 10:11:57 yup didn't expect that to work 10:12:18 :t curry $ uncurry (&&) $ ((***) `on` ((==) .)) first length 10:12:19 Couldn't match expected type `Bool' against inferred type `(b, b)' 10:12:19 Expected type: (Bool, Bool) 10:12:19 Inferred type: ((b, b), (a -> Bool, a -> Bool)) 10:12:38 :t uncurry (&&) . ((***) `on` ((==) .)) first length 10:12:39 Couldn't match expected type `Bool' 10:12:39 against inferred type `a -> Bool' 10:12:39 Expected type: a1 (b, b) (Bool, Bool) 10:13:08 :t curry $ uncurry (&&) $ ((***) `on` ((==) .)) head length 10:13:09 Couldn't match expected type `Bool' against inferred type `(b, b)' 10:13:09 Expected type: (Bool, Bool) 10:13:09 Inferred type: ((b, b), (a -> Bool, a -> Bool)) 10:13:17 :t curry . uncurry (&&) . ((***) `on` ((==) .)) head length 10:13:18 Couldn't match expected type `(a, b) -> c' 10:13:18 against inferred type `Bool' 10:13:18 In the first argument of `(.)', namely `uncurry (&&)' 10:13:35 :t ((***) `on` ((==) .)) head length 10:13:35 ([Int], [Int]) -> (Int -> Bool, Int -> Bool) 10:13:57 oh of course I run into the same damn problem again 10:14:04 FUCK MULTIPLE ARGUMENTS 10:14:48 or just me being up at 3 am 10:14:49 coppro: Dude, just write it out explicitly. 10:15:12 :t (&&) <$> (== `on` head) <*> (== `on` length) 10:15:13 parse error on input ``' 10:15:21 :t (&&) <$> ((==) `on` head) <*> ((==) `on` length) 10:15:22 Couldn't match expected type `Bool' 10:15:22 against inferred type `[a] -> Bool' 10:15:22 Probable cause: `on' is applied to too few arguments 10:15:24 Or not. 10:15:28 elliott: no 10:15:32 I will not give in 10:15:43 coppro: You're making your code less readable. 10:15:48 elliott: I know 10:15:55 I dun care 10:16:04 k 10:16:11 FREE ALL THE POINTS 10:16:23 it's 3 am 10:16:29 I am allowed to free every point I want 10:16:46 :t (==) `on` head 10:16:47 forall a. (Eq a) => [a] -> [a] -> Bool 10:16:50 3 am is nothing. 10:17:07 elliott: I was up till at least 6 yesterday 10:17:35 coppro: dude, don't talk to me about sleep. 10:17:44 ?hoogle (a -> a -> a) -> (b -> b -> a) -> (b -> b -> a) -> b -> b -> a 10:17:44 No results found 10:17:44 coppro: Literally everything you say will be met by scornful laughter. 10:17:49 elliott: k 10:17:50 I have experienced every schedule. 10:17:52 EVERY SCHEDULE. 10:17:56 elliott: even uberman 10:18:08 Oh, no schedules sane enough to have names. 10:18:10 btw I have arrived for work at 4pm before 10:18:12 on a regular basis 10:18:26 I also haven't technically been awake more than forty hours at a time before, but that just means my works of art are short-form. 10:18:30 it's actually to the point where I get made fun of when I show up 10:18:36 because either I'm showing up really late 10:18:40 or I'm showing up earlier than normal 10:18:53 also fuck this sunburn 10:19:14 So nobody actually does anything at Google, right? You just arrive there, have your free GOOGLE GORMET LUNCH, play with a bunch of large coloured plastic spheres, have some twenty percent time, and then go home? 10:19:36 Theory: Google is actually day care. 10:19:39 elliott: dude you think I show up for lunch 10:19:57 coppro: Sheesh, just go all ruining my joke by responding too quickly. 10:20:20 also we have beach parties 10:21:22 :t foldM 10:21:22 forall a b (m :: * -> *). (Monad m) => (a -> b -> m a) -> a -> [b] -> m a 10:21:53 :t \mp fld zr -> mapM mp >>= foldM fld z 10:21:53 forall t a b. (a -> [b]) -> (Expr -> [b] -> [a] -> Expr) -> t -> [a] -> Expr 10:21:58 X-D 10:21:58 :t \mp fld zr -> mapM mp >>= foldM fld zr 10:21:59 forall a b b1. (a -> [b]) -> (b1 -> [b] -> [a] -> b1) -> b1 -> [a] -> b1 10:22:14 :t \mp fld zr lst -> mapM mp lst >>= foldM fld zr 10:22:15 forall a (m :: * -> *) b b1. (Monad m) => (a -> m b) -> (b1 -> b -> m b1) -> b1 -> [a] -> m b1 10:22:17 ?pl \mp fld zr lst -> mapM mp lst >>= foldM fld zr 10:22:17 (. foldM) . (.) . flip . ((>>=) .) . mapM 10:22:23 ?pl \fld zr mp lst -> mapM mp lst >>= foldM fld zr 10:22:23 (flip (flip . ((>>=) .) . mapM) .) . foldM 10:22:25 Pah. 10:22:42 oerjan: Hey, you write the boilerplate to do the map as part of the fold, thx :P 10:22:54 coppro: Dude, just write it out explicitly. <-- if for nothing else, so the rest of us can guess what you're trying to do! :P 10:23:27 I'm way too cool to care about that. 10:23:32 But 10:23:33 oerjan: Hey, you write the boilerplate to do the map as part of the fold, thx :P 10:25:32 SHEESH 10:25:42 X-D <-- you know you're among geeks when they laugh at :t results 10:27:18 oerjan: Hey, you write the boilerplate to do the map as part of the fold, thx :P 10:27:20 >:||||||||\\\\\\\ 10:28:12 i cannot, the neighbors are making the kind of noise that makes it impossible to concentrate again 10:30:54 oerjan: thats when headphones are good to create your own noise 10:31:31 partially because you get the sense of control over music... unlike neighbors noise which cannot be controlled 10:31:53 but i like actual silence. 10:32:09 couldn't you theoretically use a noise cancelling headphone for that 10:32:27 map [] = []; map (x:xs) = f x:xs 10:32:35 foldr (\x xs -> f x : xs) [] 10:32:36 ?pl foldr (\x xs -> f x : xs) [] 10:32:36 foldr ((:) . f) [] 10:32:40 elliott: FAIL 10:32:44 oerjan: wat 10:32:46 in my case it's usually intra-house noise 10:32:48 i know i omitted the f 10:32:50 but same idea 10:32:51 shaddap 10:33:13 yes, it's intra-house. 10:33:17 inter-house. 10:33:20 curry . uncurry (&&) <$> (<*> `on` uncurry (on (==))) head length 10:33:20 presumably. 10:33:22 :t curry . uncurry (&&) <$> (<*> `on` uncurry (on (==))) head length 10:33:23 parse error on input ``' 10:33:24 unless your neighbours live in your house 10:33:27 ?pl foldr (\x r -> ff (mf x) r) fz 10:33:27 foldr (ff . mf) fz 10:33:30 :t curry . uncurry (&&) <$> ((<*>) `on` uncurry (on (==))) head length 10:33:30 Couldn't match expected type `(a, b) -> c' 10:33:30 against inferred type `Bool' 10:33:31 In the second argument of `(.)', namely `uncurry (&&)' 10:33:31 ?pl foldM (\x r -> ff (mf x) r) fz 10:33:31 foldM (ff . mf) fz 10:33:35 ?. ty pl foldM (\x r -> ff (mf x) r) fz 10:33:35 Plugin `compose' failed with: Unknown command: "ty" 10:33:39 oh come on 10:33:40 ?. type pl foldM (\x r -> ff (mf x) r) fz 10:33:41 Not in scope: `ff' 10:33:41 Not in scope: `mf' 10:33:41 Not in scope: `fz' 10:33:41 :t curry . (uncurry (&&) <$> ((<*>) `on` uncurry (on (==))) head length) 10:33:42 Couldn't match expected type `(a, b) -> c' 10:33:42 against inferred type `Bool' 10:33:43 In the first argument of `(<$>)', namely `uncurry (&&)' 10:33:46 elliott: ok i should technically call them housemates, then 10:33:51 or something 10:34:01 :t ((<*>) `on` uncurry (on (==))) 10:34:02 Occurs check: cannot construct the infinite type: a = a -> b 10:34:02 Expected type: f (a -> b) 10:34:02 Inferred type: f a 10:34:03 oerjan: you're not a hermit? :/ 10:34:08 i guess hermits generally don't have neighbours 10:34:18 :t ((<*>) `on` (uncurry . on (==))) 10:34:19 Occurs check: cannot construct the infinite type: a = a -> b 10:34:19 Expected type: f (a -> b) 10:34:19 Inferred type: f a 10:34:19 ?pl foldM (\x r -> mf x >>= \x' -> ff x' r) fz 10:34:19 foldM ((. flip ff) . (>>=) . mf) fz 10:34:22 ?pl foldM (\x r -> mf x >>= \x' -> ff x' r) fz 10:34:22 foldM ((. flip ff) . (>>=) . mf) fz 10:34:23 dammit 10:34:25 ?undo foldM (\x r -> mf x >>= \x' -> ff x' r) fz 10:34:25 foldM (\ x r -> mf x >>= \ x' -> ff x' r) fz 10:34:26 i try to be a hermit but it's hard with all these housemates. 10:34:29 :t on (==) 10:34:30 forall b a. (Eq b) => (a -> b) -> a -> a -> Bool 10:34:30 ?pl foldM (\x r -> mf x >>= \x' -> ff x' r) fz 10:34:30 foldM ((. flip ff) . (>>=) . mf) fz 10:34:35 `addquote i try to be a hermit but it's hard with all these housemates. 10:34:39 555) i try to be a hermit but it's hard with all these housemates. 10:34:41 :t uncurry (on (==)) 10:34:41 forall b b1. (Eq b) => (b1 -> b, b1) -> b1 -> Bool 10:34:42 ?ty foldM ((. flip ff) . (>>=) . mf) fz 10:34:42 Not in scope: `ff' 10:34:42 Not in scope: `mf' 10:34:42 Not in scope: `fz' 10:34:46 oerjan: neighbors is fine enough :). but it is commonly used in the inter-house sense 10:34:46 oh eww 10:34:51 :t on $ uncurry (==) 10:34:52 coppro: FOR FUCK'S SAKE 10:34:52 Couldn't match expected type `(a, a) -> c' 10:34:52 against inferred type `Bool' 10:34:52 In the second argument of `($)', namely `uncurry (==)' 10:34:52 WRITE 10:34:53 THE 10:34:53 FUCKING 10:34:54 FUNCTION 10:34:55 OUT 10:34:55 IN 10:34:56 A 10:34:58 WHERE 10:35:00 CLAUSE 10:35:10 SOME OF US ARE TRYING TO DO _REAL_ WORK ;D 10:35:11 :t ((<*>) `on` (on $ uncurry (==))) 10:35:12 Occurs check: cannot construct the infinite type: a = a -> b 10:35:12 Expected type: f (a -> b) 10:35:12 Inferred type: f a 10:35:16 hate you 10:35:22 elliott: I know 10:35:23 coppro: you realise lambdabot works in /query :-P 10:35:28 elliott: I know that too 10:35:31 ?ty \mf ff -> foldM ((. flip ff) . (>>=) . mf) 10:35:32 forall (m :: * -> *) a b a1. (Monad m) => (a -> m a1) -> (a1 -> b -> m a) -> a -> [b] -> m a 10:35:41 agh what 10:35:44 oh 10:35:56 that's annoying :/ 10:36:48 oh god I see what I must do here 10:37:03 (note: I also refuse to resort to pling the thing) 10:37:17 I will find a point-free form myself first 10:42:30 -!- esowiki has joined. 10:42:31 -!- glogbot has joined. 10:42:45 that was a quick backup 10:42:46 head and length are arbitrary 10:42:46 any [a] -> a will do 10:42:46 coppro: gimme pointful form of it so i can play with it locally 10:42:46 or really, any p -> a 10:42:49 k so I have a point-free form 10:42:49 now Gregor can avoid work 10:42:51 I don't like it though 10:42:52 coppro: show 10:43:03 plz 10:43:07 ?pl \a b -> f a == f b && g a == g b 10:43:07 ap (ap . ((&&) .) . (. f) . (==) . f) ((. g) . (==) . g) 10:43:14 eww, that's not what I go 10:43:15 *got 10:43:24 ?pl \f a b -> f a == f b 10:43:24 flip =<< (((.) . (==)) .) 10:43:35 hmm 10:43:38 ?pl \a b -> f a == f b 10:43:38 (. f) . (==) . f 10:43:39 lol 10:43:40 right 10:43:42 :t (==) `on` f 10:43:42 learn to `on` 10:43:43 Ambiguous type variable `b' in the constraints: 10:43:43 `Eq b' arising from a use of `==' at :1:0-3 10:43:43 `SimpleReflect.FromExpr b' 10:43:48 :t (==) `on` ?f 10:43:49 coppro: stfu 10:43:49 forall b a. (Eq b, ?f::a -> b) => a -> a -> Bool 10:43:52 or you mean pl 10:43:57 I mean pl 10:44:19 :t liftA2 (&&) ((==) `on` ?f) ((==) `on` ?g) 10:44:20 Couldn't match expected type `Bool' 10:44:21 against inferred type `a -> Bool' 10:44:21 Probable cause: `on' is applied to too few arguments 10:44:30 :t (,) ((==) `on` ?f) ((==) `on` ?g) 10:44:31 forall b a b1 a1. (Eq b, ?f::a -> b, Eq b1, ?g::a1 -> b1) => (a -> a -> Bool, a1 -> a1 -> Bool) 10:44:49 ?hoogle (b -> b -> c) (a -> a -> b) -> (a -> a -> b) -> ... this is what coppro wanted earlier 10:44:49 Parse error: 10:44:49 --count=20 "(b -> b -> c) (a -> a -> b) -> (a -> a -> b) -> ... this is what coppro wanted earlier" 10:44:49 ^ 10:45:10 ?pl \a b -> (((==) `on` ?f) a b) && (((==) `on` ?g) a b) 10:45:11 (line 1, column 21): 10:45:11 unexpected "?" 10:45:11 expecting space or simple term 10:45:14 yeah I was looking for a combinator to apply to (&&) 10:45:16 ?pl \a b -> (((==) `on` f) a b) && (((==) `on` g) a b) 10:45:16 ap (ap . ((&&) .) . ((==) `on` f)) ((==) `on` g) 10:45:18 :t liftA2 10:45:18 forall a b c (f :: * -> *). (Applicative f) => (a -> b -> c) -> f a -> f b -> f c 10:45:19 oh come on 10:45:20 :t ap 10:45:21 forall (m :: * -> *) a b. (Monad m) => m (a -> b) -> m a -> m b 10:45:28 (c -> a -> b) -> (c -> a) -> (c -> b) 10:45:29 hmm 10:45:36 :t ap (&&) 10:45:37 (Bool -> Bool) -> Bool -> Bool 10:45:43 :t ap . (&&) 10:45:43 Couldn't match expected type `a -> b' against inferred type `Bool' 10:45:44 Probable cause: `&&' is applied to too many arguments 10:45:44 In the second argument of `(.)', namely `(&&)' 10:45:45 ap == fmap 10:45:50 coppro: n...no 10:46:04 ap == (<*>) 10:46:08 u fail u lose 10:46:09 -!- GreaseMonkey has quit (Quit: The Other Game). 10:46:11 elliott: no you see the fm band is useless 10:46:14 s/ [dollar sign]// 10:46:15 you remove that and ap == ap 10:46:23 :t ap (&&) 10:46:23 (Bool -> Bool) -> Bool -> Bool 10:46:25 > ap (&&) f 10:46:26 No instance for (SimpleReflect.FromExpr GHC.Bool.Bool) 10:46:26 arising from a us... 10:46:27 > ap (&&) f True 10:46:28 No instance for (SimpleReflect.FromExpr GHC.Bool.Bool) 10:46:28 arising from a us... 10:46:31 ffffff 10:46:38 > ap g f True 10:46:39 Ambiguous type variable `a' in the constraints: 10:46:39 `GHC.Show.Show a' 10:46:39 a... 10:46:42 > ap g f True :: Expr 10:46:42 Ambiguous type variable `a' in the constraints: 10:46:43 `SimpleReflect.FromExpr ... 10:46:45 OH CMON 10:46:55 > ap (&&) not True 10:46:55 oh 10:46:56 False 10:46:56 right 10:47:17 coppro: anyway, it sounds like a useful combinator 10:47:24 :t curry (uncurry (&&) . (uncurry (on (==) ?f) &&& uncurry (on (==) ?g))) 10:47:25 forall b a b1. (Eq b, ?f::a -> b, Eq b1, ?g::a -> b1) => a -> a -> Bool 10:47:33 (a -> b -> c) -> (d -> a) -> (e -> b) -> d -> e -> c 10:47:54 hmm, can that become functorial somehow 10:47:55 thar we go; oerjan got it 10:47:56 * oerjan whistles innocently 10:48:01 (a -> b -> c) -> (d -> a) -> f b -> d -> f c 10:48:11 is that possible? 10:48:14 dunno 10:48:24 wait no 10:48:25 that makes no sense :) 10:52:31 -!- esowiki has joined. 10:52:44 -!- glogbot has joined. 10:52:45 <-- im a bit udm 10:53:03 Oh, hey there oerjan 10:53:11 long time no swat 10:53:26 Indeed 10:54:19 IOJOIJ IOJOI 10:55:12 :t (liftM2 ap .) . (.) . (.) 10:55:13 forall (m :: * -> *) a b (m1 :: * -> *) a1. (Monad m, Monad m1, Functor m1, Functor m) => (a1 -> a -> b) -> m1 (m a1) -> m1 (m a) -> m1 (m b) 10:55:28 a household type 10:55:34 definitely 10:55:46 oh dear, i just invented an esolang 10:55:50 ?pl \a b -> f (g a b) (h a b) 10:55:50 ap (ap . (f .) . g) h 10:55:52 coppro: grr at M 10:55:53 make that M an A 10:56:01 :t (liftA2 ap .) . (.) . (.) 10:56:02 forall (m :: * -> *) a b (f :: * -> *) a1. (Monad m, Applicative f, Functor m) => (a1 -> a -> b) -> f (m a1) -> f (m a) -> f (m b) 10:56:05 :t (.) 10:56:05 forall a b (f :: * -> *). (Functor f) => (a -> b) -> f a -> f b 10:56:09 good 10:56:17 elliott: I agree with you 10:56:17 :t (liftA2 (<*>) .) . (.) . (.) 10:56:18 forall (f :: * -> *) a b (f1 :: * -> *) a1. (Applicative f, Applicative f1) => (a1 -> a -> b) -> f1 (f a1) -> f1 (f a) -> f1 (f b) 10:56:24 literally the most beautiful type 10:56:30 -!- EgoBot has joined. 10:56:31 now to replace those (->)s with something nicer... 10:56:35 something more abstract, say 10:56:55 :t (<*> (?f .)) . ?g <*> ?h 10:56:56 forall b a b1 (f :: * -> *) (f1 :: * -> *). (?f::a -> b1, Functor f, ?g::f1 (f a -> f b1 -> b), Applicative f1, ?h::f1 (f a)) => f1 b 10:57:17 ?ty let (.) = flip (>>>) in (liftA2 (<*>) .) . (.) . (.) 10:57:18 forall a b a1 (cat :: * -> * -> *) b1 a2. (Control.Category.Category cat, Applicative (cat a2)) => cat b1 (a -> b) -> (a1 -> cat a2 b1) -> (a1 -> cat a2 a) -> a1 -> cat a2 b 10:57:35 Deewiant: it is... so beautiful... 10:57:41 :t (<*> ((&&) .)) . null <*> null 10:57:42 Couldn't match expected type `f Bool -> f (Bool -> Bool) -> b' 10:57:42 against inferred type `Bool' 10:57:42 Probable cause: `null' is applied to too many arguments 10:57:50 Deewiant: um looks like a layor of functionalness got stripped out? 10:57:54 there's more function arrows now 10:57:59 :t (.) 10:58:00 forall a b (f :: * -> *). (Functor f) => (a -> b) -> f a -> f b 10:58:04 :t (<$> ((&&) .)) . null <*> null 10:58:04 :t flip (>>>) 10:58:04 Couldn't match expected type `f (Bool -> Bool) -> b' 10:58:04 against inferred type `Bool' 10:58:04 Probable cause: `null' is applied to too many arguments 10:58:05 forall (cat :: * -> * -> *) a b c. (Control.Category.Category cat) => cat b c -> cat a b -> cat a c 10:58:13 Deewiant: btw you realise (<<<) exists? 10:58:16 :t (<$> ((&&) .)) . null <$> null 10:58:17 Couldn't match expected type `f (Bool -> Bool) -> b' 10:58:17 against inferred type `Bool' 10:58:17 In the second argument of `(.)', namely `null' 10:58:27 elliott: Nope 10:58:33 :t ap . (f .) . g 10:58:34 forall (m :: * -> *) a b a1 (f :: * -> *). (Monad m, Show a1, Show a, SimpleReflect.FromExpr b, Functor m, SimpleReflect.FromExpr (f (m a1)), Functor f) => f (m a -> m b) 10:58:51 :t (<*>) . (f .) . g 10:58:51 forall (f :: * -> *) a b a1 (f1 :: * -> *). (Applicative f, Show a1, Show a, SimpleReflect.FromExpr b, SimpleReflect.FromExpr (f1 (f a1)), Functor f1) => f1 (f a -> f b) 10:59:04 :t (<*> (f .)) . g 10:59:04 forall b a b1 (f :: * -> *) (f1 :: * -> *). (Show a, SimpleReflect.FromExpr b1, Functor f, SimpleReflect.FromExpr (f1 (f a -> f b1 -> b)), Functor f1) => f1 (f a -> b) 10:59:13 Deewiant: now you do 10:59:15 :t (<*> (f .) . g) 10:59:15 :t (<<<) 10:59:15 forall (f :: * -> *) b a b1 (f1 :: * -> *). (Show a, SimpleReflect.FromExpr b1, Functor f1, SimpleReflect.FromExpr (f (f1 a)), Applicative f) => f (f1 b1 -> b) -> f b 10:59:16 forall (cat :: * -> * -> *) b c a. (Control.Category.Category cat) => cat b c -> cat a b -> cat a c 10:59:30 wtf 10:59:46 oh 11:00:02 :t (<$>) . ((&&) .) . null <$> null 11:00:03 Couldn't match expected type `a -> Bool' 11:00:03 against inferred type `Bool' 11:00:03 In the second argument of `(.)', namely `null' 11:00:22 :t (<$>) . ((&&) .) . null <*> null 11:00:23 Couldn't match expected type `a -> Bool' 11:00:23 against inferred type `Bool' 11:00:23 Probable cause: `null' is applied to too many arguments 11:00:30 :t (<$>) . ((&&) .) . null 11:00:32 Couldn't match expected type `a -> Bool' 11:00:32 against inferred type `Bool' 11:00:32 Probable cause: `null' is applied to too many arguments 11:00:49 :t (<*>) . ((&&) .) . null <*> null 11:00:50 Couldn't match expected type `f Bool' against inferred type `Bool' 11:00:50 Expected type: [a] -> f Bool 11:00:50 Inferred type: [a] -> Bool 11:01:20 k I'm too tired 11:01:29 so I shall do the logical thing 11:01:30 and proceed 11:01:35 ap (ap . (f .) . g) h 11:01:50 :t (<*>) ((<*>) . (f .) . g) h 11:01:51 forall (f :: * -> *) a b a1 (f1 :: * -> *). (Applicative f, Show a1, Show a, SimpleReflect.FromExpr b, SimpleReflect.FromExpr (f1 (f a1)), Applicative f1, SimpleReflect.FromExpr (f1 (f a))) => f1 (f 11:01:51 b) 11:02:01 :t (<*>) ((<*>) . ((&&) .) . null) null 11:02:01 Couldn't match expected type `f Bool' against inferred type `Bool' 11:02:01 Expected type: [a] -> f Bool 11:02:01 Inferred type: [a] -> Bool 11:02:17 :t (<*>) ((<*>) . (f .) . null) null 11:02:17 Couldn't match expected type `f a' against inferred type `Bool' 11:02:17 Expected type: [a1] -> f a 11:02:17 Inferred type: [a1] -> Bool 11:02:36 :t ap (ap . (f .) . g) h 11:02:37 forall (m :: * -> *) a b a1 (m1 :: * -> *). (Monad m, Show a1, Show a, SimpleReflect.FromExpr b, Functor m, SimpleReflect.FromExpr (m1 (m a1)), Functor m1, SimpleReflect.FromExpr (m1 (m a)), Monad 11:02:37 m1) => m1 (m b) 11:02:37 oerjan: is there a nicer representation of bijections than (a->b, b->a), i'm sure there is, and i'm sure i should be asking edward kmett instead 11:02:54 well f you too 11:03:17 elliott: on a countable set you can just define it as sequence 11:03:37 given an ordering 11:04:00 coppro: no shit sherlock 11:04:13 *ordering with a least element 11:04:36 :t (&&) . 11:04:36 parse error (possibly incorrect indentation) 11:04:41 :t ((&&) .) 11:04:41 forall (f :: * -> *). (Functor f) => f Bool -> f (Bool -> Bool) 11:05:10 :t ((&&) .) . null 11:05:10 Couldn't match expected type `f Bool' against inferred type `Bool' 11:05:10 Expected type: [a] -> f Bool 11:05:10 Inferred type: [a] -> Bool 11:05:41 :t ((&&) .) . g 11:05:41 forall (f :: * -> *) (f1 :: * -> *). (Functor f, SimpleReflect.FromExpr (f1 (f Bool)), Functor f1) => f1 (f (Bool -> Bool)) 11:05:52 lern to ? 11:05:55 :t ((&&) .) . ?g 11:05:55 forall (f :: * -> *) (f1 :: * -> *). (Functor f, ?g::f1 (f Bool), Functor f1) => f1 (f (Bool -> Bool)) 11:06:13 herp 11:06:19 i am le tired 11:06:46 *ordering with a least element <-- *omega ordering 11:06:51 oerjan: what's the name of Functor where you let the mapping be any category...... 11:06:53 :t (<*>) ((<*>) . (f .) . ((==) `on` null)) ((==) `on` null) 11:06:54 forall b a. (SimpleReflect.FromExpr b) => [a] -> [a] -> b 11:07:02 class Functor cat f where fmap :: cat a b -> f a -> f b 11:07:04 :t (<*>) ((<*>) . ((&&) .) . ((==) `on` null)) ((==) `on` null) 11:07:05 forall a. [a] -> [a] -> Bool 11:07:09 I AM VICTORIUS 11:07:20 can't spell "victorious" though 11:07:22 elliott: mathematically, also functor 11:07:25 oerjan: indeed :D 11:07:33 oerjan: never heard of an omega ordering 11:07:37 oerjan: it should be the real Functor, shouldn't it :( 11:07:49 or maybe evenc 11:07:51 even 11:08:05 class Functor cat f a b where fmap :: cat a b -> f a -> f b 11:08:05 :P 11:08:12 (for things like Set/Map) 11:08:14 coppro: it's an ordering that is isomorphic to the natural numbers. also the natural order of the ordinals < omega. 11:08:41 elliott: the _real_ functor should have a different cat at each end duh 11:08:51 k 11:09:05 oerjan: um there's only one space for cat... or are you saying haskell can't do it 11:09:06 oerjan: is there music? 11:09:16 k ima bed now 11:09:24 and definitely not include that point-free function 11:09:34 elliott: fmap :: cat1 a b -> cat2 (f a) (f b) ? 11:09:38 the head >>= all . (pred) one is totally staying in though 11:09:43 oerjan: oh cool 11:10:04 oerjan: class Functor bat cat f a b | bat cat f -> a b where fmap :: bat a b -> cat (f a) (f b) 11:10:10 oerjan: THE CLEAR CHOICE 11:12:16 that FD looks screwy 11:12:28 oerjan: yeah it is >_> 11:12:35 but when you get to that many......... 11:12:38 params i mean 11:12:38 in fact a and b shouldn't be class parameters at all 11:12:44 oerjan: yes, they should (Set and Map) 11:12:47 elliott: you need more manbatrat 11:12:57 wut 11:13:01 oerjan: http://www.randomhacks.net/articles/2007/03/15/data-set-monad-haskell-macros 11:13:07 manbatrat is ancient evil in a bowler hat 11:13:16 elliott: absolutely not, i'd say 11:13:17 oerjan: Set, Map, etc. have constraints on their type argument 11:13:26 but they're perfectly valid monads given those constraints 11:13:44 it's ugly, but if we're extending things... 11:14:01 elliott: but your class definition gives each functor only _one_ pair of objects to map between D: 11:14:11 oerjan: um no 11:14:15 no, Set is retarded 11:14:19 instance Functor (->) (->) Maybe a b where ... 11:14:27 you can have singleton sets of things without orderings 11:14:34 because HEY THAT'S USEFUL RIGHT 11:14:46 coppro: that is like the stupidest fucking reason for calling something retarded ever 11:14:49 so someone forgot one constraint 11:14:52 probably because of type inference 11:14:53 so what 11:15:03 elliott: you cannot even get the _ordinary_ Functor as a special case of this 11:15:10 oerjan: um why not 11:15:13 -!- Sgeo has joined. 11:15:15 instance Functor (->) (->) Maybe a b where ... 11:15:32 because a and b are not free parameters 11:15:52 oh hum 11:16:01 it's called FlexibleInstances 11:16:02 :P 11:16:02 good grief 11:16:05 what :D 11:16:12 ok maybe it does work 11:16:27 oerjan: it's undeniably ugly though, for instance Monad has to get split in two 11:16:32 but WHILE WE'RE GENERALISING... 11:16:34 elliott: but the FD is still wrong 11:16:38 indeed 11:16:39 Haskell needs first-class types 11:16:41 i'm not sure what the right fd is 11:16:53 coppro: you mean dependent types? 11:16:58 elliott: yes 11:16:59 f -> bat cat would be reasonable, at least 11:17:02 flip Monad ftw 11:17:05 coppro: see agda 11:17:10 oerjan: bat cat :D 11:17:20 elliott: no I will not settl for anythnig less than hasklle with these features 11:17:30 laos fuck typing 11:17:40 it is no longer worth the efforts 11:18:09 and tyes I typed that last sentece without errors but not this one though because aparently I suck expecially when typing blidnfold at 5 am 11:18:37 (typing is kinkier that way) 11:19:39 you are literally the lightest weight 11:19:51 gender role the fuck up 11:21:58 * itidus20 gives coppro a wild boar, a club and animal skin robe complete with rope belt woven by the women of the forest. 11:22:07 ^roasted wild boar 11:23:27 and a pint of guinness 11:25:00 itidus20: FAIL, he should have to kill and roast the boar himself 11:25:23 including making his own fire? 11:25:34 nah the women can do that. 11:25:48 * Sgeo finally realizes that C.S. Lewis and Lewis Carol are not the same person 11:25:51 you don't wanna spend too much time with those women 11:25:58 O_O 11:26:08 Sgeo: no wonder your mind is confused 11:26:22 praise jesus 11:26:36 C.S.Lewis was friends with Tolkien 11:26:39 Sgeo: lmao 11:26:47 im laughing irl 11:26:49 actually 11:26:51 i really am 11:26:59 Sgeo: so, which one was on that famous expedition with clark? 11:27:14 Jerry Lewis 11:27:23 itidus20: I want a conch 11:27:24 Jerry-Lee Lewis? 11:27:55 ok ok i don't know 11:29:19 elliott: imagine if alice in wonderland was written like the narnia books 11:29:29 oerjan: or vice versa 11:29:55 ASLAN: Jesus, or something Lewis thought up on an acid trip? Or both???? EXPERTS ARE DIVIDED 11:30:12 the best film of alice in wonderland is the jan svankmeyer version 11:31:02 i haven't seen tim burton's one but.. nothing can beat the one i mentioned 11:31:32 ... and the inter-house neighbors start mowing lawn ... 11:32:14 you should record it (the lawn mowing)... then play it back with stereo up loud 11:37:34 -!- oerjan has quit (Quit: leaving). 11:39:12 -!- oklopol has quit. 11:45:20 by the end of the 19th century Sir Walter Besant wrote Alice in Wonderland "was a book of that extremely rare kind which will belong to all the generations to come until the language becomes obsolete". 11:48:41 I wish scp wasn't so limited 11:56:45 i don't know what the signifigance of him being a freemason is in this regard 11:57:00 you're assuming there is one 11:59:06 -!- MigoMipo has quit (Read error: Connection reset by peer). 12:03:07 well alice in wonderland is tied into countless conspiracy theories apparently 12:05:13 but do you wanna know how i feel about conspiracy theories? i think that... ultimately everyone dies... so it's like... the people who undertake all these conspiracies and wars and abuses and every concievable graph of interpersonal profit, ultimately they die and it all comes to naught 12:06:02 i die, they die.. all becomes equalized 12:06:39 worse still is the possibility of not dying... as death is freedom and immortality is a cage 12:07:34 Don't worry; we still have the Doom of Man 12:08:08 so with the charisma of the greatest marketing genius they lay out why they are so special, the extent to which some occasion is infinitely tragic, why my emotions should be invoked 12:08:15 but it all comes to nothing 12:08:26 individual mortality supercedes all else 12:09:09 btw 12:09:16 listening to the entire music to lotr 12:09:18 is awesome 12:11:11 yes, they invoke the imagination.. they invoke the emotions.. they invoke the associations.. they invoke all manner of cortices 12:11:31 for it is all that one can really do in the space of interpersonal economics 12:11:54 but what shall they invoke in someone who has passed on 12:14:48 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .). 12:19:27 sorry guys im off topic 12:31:45 what is the topic 12:31:54 oh wait 12:31:58 it's apparently about turbo pascal 12:32:02 let's change that 12:32:21 -!- coppro has set topic: 07:25:29 * Sgeo finally realizes that C.S. Lewis and Lewis Carol are not the same person. 12:32:37 argh 12:33:07 -!- coppro has set topic: Sgeo finally realizes that C.S. Lewis and Lewis Carol are not the same person | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 12:33:14 -!- coppro has set topic: \* Sgeo finally realizes that C.S. Lewis and Lewis Carol are not the same person | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 12:33:21 -!- coppro has set topic: :* Sgeo finally realizes that C.S. Lewis and Lewis Carol are not the same person | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 12:33:39 -!- coppro has set topic: Sgeo finally realizes that C.S. Lewis and Lewis Carol are not the same person | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 12:33:44 -!- coppro has set topic: * Sgeo finally realizes that C.S. Lewis and Lewis Carol are not the same person | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 12:33:47 there we go 13:07:51 -!- jimtendo has joined. 13:34:34 -!- TeruFSX has quit (Read error: Operation timed out). 13:41:04 -!- TeruFSX has joined. 13:44:19 -!- quintopia has set topic: Sgeo finally realizes that C.S. Lewis and Lewis Carol[sic] are not the same person | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 13:50:03 -!- lament has joined. 13:53:38 What books on programming should I buy? 13:53:49 Is Pragmatic Programmer good, or just... job-y stuff/ 13:55:50 CLRS 13:56:02 i like it, you should too 13:56:41 Introduction to Algorithms? 13:56:53 yes 13:57:25 Oh come on, not available in B&N? :( 13:57:40 has pseudocode for like half the algorithms you sometimes find you need but cant remember how to do 13:58:14 * Sgeo wants ebooks 13:58:31 for instance, i think it has fibonacci heap, which i always forget... 14:08:59 * itidus20 drops into the room with a random topic. Do all imperative languages essentially feel the same? Are all their abstract machines similar? 14:11:36 procedures/methods/functions are not really represented in instruction sets that i can see 14:11:45 i think theres RET instruction 14:12:15 but otherwise... isn't it strange that so many languages follow this pattern 14:13:54 or perhaps a procedure/method/function is simply a string of reusable instructions 14:14:37 I don't know what kind of machine you mean exactly, but I'd say most "abstract machines" for imperative languages have function calls as a special operation 14:15:02 olsner: well i see them occasionally mention the C abstract machine in the C room 14:16:21 perhaps it is just that stringing together instructions inevitably results in functions 14:16:23 Java is a bit special because the abstract machine is not abstract but concrete - and it does have a few low-level things like jumps in it ... but it still has function calls as a primitive and you can't access the call stack (it's just invisible magic that makes return continue running at the right place) 14:17:31 well, the C "abstract machine" doesn't really have anything like instructions, it's just a model of what the code does (that is, it's *abstract*) 14:17:51 ahh.. well i threw together 2 topics in one sentence foolishly 14:18:05 good point though 14:18:25 men on a beach with piles of stones could conform to a C abstract machine :D 14:20:22 olsner: invisible magic seems unfair 14:20:29 well... using humans and piles of stones you can make anything, including a simulation of an x86 processor 14:20:30 i mean, everything has something invisible 14:20:40 even real cpus 14:22:07 i once discussed with someone how assembly is an arbitrary system of representing machine code at a higher level. that it could have gone another way 14:23:02 didnt actually think of alternatives. 14:23:53 Sgeo: ur on mc 14:24:25 `addquote i'm essentially playing mc as a text adventure game 14:24:30 `addquote good night oh you leaving? no but i will take a shit 14:24:32 oh 14:24:34 hackego is not here......... 14:24:50 in the same line of thought, structured programming constructs (for, while, do-while, switch, if) are arbitrary constraints upon the organization of asm statements 14:25:35 designed only [as far as i know] for human readability 14:26:07 elliott: hmm, dunno, most things a real cpu does has to e.g. end up putting the right values in RAM or produce the right I/O writes - and it's only allowed to fudge with that in specific limited ways... 14:26:31 human comprehension probably comes at the price of computational efficiency in most cases 14:27:02 olsner: you can't inspect the electrons :) 14:27:06 that is to say.. spaghetti code isn't "slow" 14:27:29 -!- TeruFSX has quit (Ping timeout: 264 seconds). 14:27:35 it's simply difficult to read and maintain 14:28:04 if its slow it's only slow due to the human being confused by it 14:30:03 I imagine some hypothetical omnipotent programmer who has solved chess by having his brain encoded with a garden of eden solution to chess :P 14:31:11 hmm... I guess the CPU can still do any amount of magic outside the things you're allowed to observe (just like other invisible magics), just that you can observe more stuff and on a lower level there 14:31:12 and this hypothetical programmer can arrange instructions with 100% computational efficiency 14:31:40 olsner: hey do you like that one? the solution to chess is a neural garden of eden 14:32:01 itidus20: I don't understand 14:32:04 given that the universe does not contain the computational complexity to arrive at it 14:32:27 or maybe i dont know what a garden of eden is 14:34:12 suppose I was to say.. this two-state switch on the table represents whether the game of chess has a first player advantage or whether the game is a draw 14:34:33 now... in order to put that switch into the correct position... wouldn't the state of that switch be a garden of eden? 14:35:19 (according to our current theories about the solvability of chess) 14:35:39 of course a breakthrough could prove it wrong later 14:39:47 chess does not necessarily have more states than quantum states in the universe does it... 14:40:55 quintopia: well i secretly know that chess is solvable.. lets just say it's a hunch 14:41:15 heh 14:41:43 but the idea is not so bad right? 14:42:18 a piece of information which was beyond the (quantum) computational power of the universe would be a kind of real-life garden of eden 14:42:57 also, the garden of eden 14:44:15 (and by extension the big bang state) 14:45:14 so chess being unsolvable is kind of tongue in cheek to awe the average johnny hopscotch 14:46:49 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 14:48:06 clearly theres degrees of unsolvability 14:48:54 like, a chessboard with a board of the size, 1 trillion x 1 trillion, covered in trillions of pieces 14:49:13 is even more unsolvable than an 8x8 chessboard 15:00:58 -!- invariable has quit (Quit: Daemon escaped from pentagram). 15:15:12 elliott, what about me being on mc? 15:18:02 Mutta. 15:18:33 ? 15:19:08 Että jotta koska kun, jos vaikka kuin. 15:19:29 Koska, jos, vaikka. 15:20:09 Because/when, but, although. 15:20:41 The above was a part of an (incomplete) list of subordinating conjunctions. There were all kinds of lists like that. 15:20:59 I see. 15:21:14 Kahtoin mulla toska. 15:21:50 Aamupala on minun vaikean ruoka. 15:23:24 Also another often-memorized list (of co-ordinating conjunctions) ends with "sillä, näet, nimittäin"; and there's a lot of related puns. Like: "osta kiikari, sillä näet nimittäin", vaguely translated as "buy a pair of binoculars, for you can see with them", since you can interpret "näet" as both as the conjunction (meaning "you see, you know, indeed" etc.) or as the second-person singular present indicative form of "to see". 15:30:54 Loma näyttää kaukana kirjo. 15:31:37 -!- copumpkin has joined. 15:32:16 -!- TeruFSX has joined. 15:33:25 -!- MigoMipo has joined. 15:45:20 -!- MSleep has changed nick to MDude. 15:45:50 -!- itidus21 has joined. 15:47:36 -!- itidus20 has quit (Ping timeout: 250 seconds). 15:47:44 -!- itidus21 has changed nick to itidus20. 15:50:37 -!- pumpkin has joined. 15:53:38 -!- copumpkin has quit (Ping timeout: 252 seconds). 15:55:34 -!- Taneb has joined. 15:55:46 -!- TeruFSX has quit (Ping timeout: 276 seconds). 15:57:07 hello 15:57:14 I'm researching my family tree 15:57:48 i'm your father 15:58:54 I'm lament's son. 15:59:08 However, I am only your half brother. 15:59:25 Ever since that nasty incedent with a chainsaw 15:59:54 time to write "black sheep" and trip balls 16:04:34 -!- Nisstyre has quit (Ping timeout: 258 seconds). 16:15:37 -!- mtve has quit (Ping timeout: 252 seconds). 16:20:29 wiki on dijkstra "When lecturing, he would write proofs in chalk on a blackboard rather than using overhead foils, let alone Powerpoint slides." 16:22:43 Understandable. If you're using Powerpoint right it's only marginally better than a blackboard most of the time. 16:22:56 (say, unless you happen to need a detailed graphic) 16:24:50 I don't think he was a luddite because he worked in programming.. No... it was something else.. something wonderful I guess 16:26:00 About the only real fault I can see with using a blackboard instead of Powerpoint is that it depends heavily on handwriting. 16:26:12 Which is a skill that I, at least, am horribly out of practice with. 16:26:28 Presumably, Dijkstra wasn't. 16:27:42 hmm 16:27:49 -!- TeruFSX has joined. 16:28:10 he did a lot of handwritten papers too apparently 16:29:18 he probably didn't even use *windows* 16:29:47 I'm only going to allow leeway there because, frankly, for quite some time doing math on computers *or* typewriters was an experience in pain, agony, sorrow, etc. 16:30:06 And the man was born in 1930. 16:30:08 According to Jim Nelson, who served as a civilian translator with the Russian and American peacekeepers in Bosnia in 1996, one of the Russians said, "If we ever had a war, while you are working on your PowerPoint, we would be killing you." 16:30:45 (still is somewhat inconvenient, but at least it's not *insane* with TeX) 16:31:32 i have a deep respect for using pens and paper 16:31:49 its one of the motifs in my thought 16:41:28 to drive the point home i created this fancy screenshot with a few nicer drawings in my collection of early game art: http://oi55.tinypic.com/1zgcj2u.jpg 16:43:25 so fancy 16:43:33 i don't think such a pic exists anywhere on the internet.. its a particular fascination of mine 16:43:54 i mean.. sure i obtained each individual pic online.. but collected together like that? no 16:44:17 do you recognize the games? 16:44:39 -!- oklopol has joined. 16:45:10 theres more pics but i tried to choose the ones which express what im trying to express 16:56:57 I've traced my ancestory back to the 1730's. 16:57:07 Nobody famous SO FAR 16:58:32 -!- sebbu has quit (Ping timeout: 252 seconds). 17:17:40 -!- sebbu has joined. 17:17:40 -!- sebbu has quit (Changing host). 17:17:40 -!- sebbu has joined. 17:23:40 Rswsw 17:25:34 jodas 17:28:42 -!- copumpkin has joined. 17:32:04 -!- derrik has joined. 17:32:10 -!- pumpkin has quit (Ping timeout: 260 seconds). 17:56:30 I think my great-great-great-great-great-great grandfather was christened in Hexham 17:59:28 Taneb, how comes you even know that 17:59:39 Doing family tree 17:59:42 ah 17:59:54 Got it back to 1690 17:59:57 Trying to get further 17:59:59 nice 18:04:23 My cousin's got it back to 1611 18:04:46 But he did my dad's side, I'm doing my mum's side 18:08:54 Huh, that's interesting 18:09:26 One of my ancestors may have emigrated to the US 18:12:46 -!- Behold has joined. 18:15:46 -!- pumpkin has joined. 18:16:49 -!- BeholdMyGlory has quit (Ping timeout: 276 seconds). 18:17:39 -!- copumpkin has quit (Ping timeout: 240 seconds). 18:21:37 -!- mtve has joined. 18:31:09 -!- CakeProphet has joined. 18:32:38 -!- Taneb has quit (Quit: He's a big quitter he is.). 18:37:32 -!- TeruFSX has quit (Ping timeout: 252 seconds). 18:41:44 -!- NihilistDandy has joined. 18:42:20 -!- Nisstyre has joined. 19:04:06 -!- CakeProphet has quit (Ping timeout: 240 seconds). 19:15:14 -!- Taneb has joined. 19:18:48 -!- oerjan has joined. 19:19:18 Hello! 19:19:20 and a happy australian mailman reminder's day to all! 19:20:17 -!- derrik has quit (Quit: ramadan). 19:22:33 04:37:16 i don't know what the signifigance of him being a freemason is in this regard 19:22:57 hey i dont know anything about freemasons 19:22:58 istr that the norwegian mass murderer was one (or claimed to be), too 19:23:07 04:49:46 listening to the entire music to lotr 19:23:07 04:49:48 is awesome 19:23:21 :-s 19:23:23 istr that the norwegian mass murderer liked to listen to lotr music too 19:23:38 enough conspiracy for you yet? 19:23:49 oerjan: Also ISTR that the Norwegian mass murderer was NORWEGIAN. Guess who else is! It might be you! 19:24:05 well lewis caroll was a suspect of being jack the ripper 19:24:24 Fun story I've got about that guy 19:24:43 his sexual interest in alice liddell has also been analyzed in various lights over the years 19:24:55 the story is back in his favor lately 19:25:06 Queen Victoria read Alice and Wonderland and loved it so much, she ordered a copy of the next publication by the author to be brought to her as soon as it was written 19:25:33 She didn't realise that Lewis Carrol's day job was a maths proffessor called Charles Lutwidge Dodgson 19:25:52 fizzie: to that i shall (mis-(?)) quote the major of oslo speaking in a mosque shortly after the event: "The terrorist was blond, white, called himself a Christian, and lived in my neighborhood. Yet you are not accusing me of being a terrorist; thank you for that." 19:26:11 She got a bit of surprise when a maths paper turned up a couple of months later 19:28:02 *mayor 19:31:43 06:49:25 * itidus20 drops into the room with a random topic. Do all imperative languages essentially feel the same? Are all their abstract machines similar? 19:32:39 i'm reminded of Icon, which uses the stack a bit differently than most (sometimes it returns to a frame temporarily _without_ unwinding the stack above) 19:33:50 although those which allocate frames on the heap are of course even more flexible. like scheme, although i don't know if you'd call that imperative (it's not _purely_ functional) 19:34:09 oerjan: it was 2 independant questions. which accidently merged 19:34:19 that's essential for having continuations, i think 19:34:45 so maybe you could say that the _basics_ are similar, but things might change when you add extra features. 19:35:05 well... lets face it 19:35:14 when a fellow starts a new imperative language 19:35:34 he's likely to make it similar to what he already knows 19:35:35 oerjan: But, philosophically speaking, can you call it a "stack frame" if it's allocated from a heap? 19:35:37 and this fellow.. adds his own take on all the regular suspects 19:35:59 he adds a variant of: if, while, dowhile, for 19:36:05 etc 19:36:21 fizzie: i'm not sure if scheme calls it a stack frame. they're environments for continuations and closures, i guess. 19:36:24 but... he is doing this very automatically 19:36:48 he is not truely going back to the roots and thinking "how can i do this" 19:36:50 -!- copumpkin has joined. 19:37:17 he is trapped by being surrounded by mountains of conventions 19:37:19 itidus20: yep. it's just a slightly more glorified version of our own wiki's brainfuck derivatives... slap on a different syntax but use essentially the same semantics. 19:37:25 afk 19:37:34 oh don't get me wrong.. i've done it mysefl 19:38:28 and.. yeah the structured programming paradigm is so resistant to attacks 19:39:00 oerjan: Oh, I'm sure R5RS does not mention the word "stack" anywhere, it was just a generic sort of a question. Though I guess you can always use the highbrow term "activation record" instead. 19:39:22 -!- pumpkin has quit (Ping timeout: 255 seconds). 19:41:16 at school some teacher casually told us that these control structures are basically all you need 19:41:31 they didn't however mention that there are potential alternatives 19:42:36 Edsger Dijkstra VS the unstructured Jump... 19:42:55 In this long epic battle, Edsger recovered the three pieces of the triforce. 19:43:03 nice, vim's syntax highlighting for sed supports EBCDIC 19:43:10 The sequence, the selection, and the other thing #-o 19:43:15 repetition 19:45:37 i can understand brainfucks popularity though 19:46:28 even the name sounds like what a heavy metal band might name a programming language 19:46:49 (.. just barelu ..) 19:48:22 and this programing language goes out to our fans... Melancholy of the insect infested lemon tree.. 19:48:36 -!- monqy has joined. 19:49:40 -!- Taneb has quit (Ping timeout: 260 seconds). 19:49:48 * oerjan waits for elliott to snatch that name 19:50:30 lots of bass 19:50:50 oh.. i know what it is 19:51:02 ive been listening to this band called dillinger escape plan 19:51:03 also some trout, halibut and great white 19:52:09 (for the latter, let's just say that this language has _very_ eager GC) 19:52:34 i once did a toy language 19:52:47 pretty shitty 19:52:56 it was an experiment in implementation skills 19:55:22 but it still means well 19:55:46 * oerjan waits for elliott to snatch that name 19:55:47 yes 19:57:06 im really an awful coder.. like not a joke.. 19:57:39 "Haskell already has a grip on a large share of the top-1% programmers who are abstract-math geniuses. Monoids and category theory probably can never be understood by average programmers. I say this using myself as an example. I am a top-1% programmer with some background in simple abstract math and I am having a very lengthy mental absorption process for this stuff." 19:57:51 "Scathing Omniphallic Hammerheart of the Dead", suggests the Metal Song Title Generator. Alternatively, "Paranoid Norsk Sarcomancy of the Juggernaut". I suppose that thing works just as well for languages. 19:57:59 I wonder if the idea that e might not be a top-1% programmer has ever crossed this person's mind. 19:58:13 At least 20% of programmers are top-1% programmers. 19:58:20 :) 19:58:27 07:22:44 a piece of information which was beyond the (quantum) computational power of the universe would be a kind of real-life garden of eden 19:58:44 i like how they said monoid 19:58:45 ?src Monoid 19:58:45 class Monoid a where 19:58:45 mempty :: a 19:58:45 mappend :: a -> a -> a 19:58:45 mconcat :: [a] -> a 19:58:48 INCOMPREHENSIBLE 19:59:39 from the godel's lost letter blog i've come to understand that there is a slight possibility that there might exist a polynomial-size circuit to solve an NP-complete problem of any size, even if there exists no polynomial algorithm which works for all sizes. 19:59:44 associative binary operation with identity element? im so confused 20:00:04 a piece of information which was beyond the (quantum) computational power of the universe would be a kind of real-life garden of eden 20:00:08 this reminds me of fax's bit box. 20:00:25 fax's big tits? 20:00:27 oh 20:01:14 my thoughts have simple goals 20:02:57 did we ever figure out the answer to that one btw oerjan 20:03:01 1) how to make games 2) how to bring happiness into daily existence 3) the effortless erotica of women 20:03:04 to what 20:03:38 4) the correctness of pain and suffering and sacrifice and tragedy 20:03:46 oerjan: given a black-box machine which outputs an uncomputable stream of bits (you can choose which stream), can you use it as an energy generator 20:04:03 at least that's my recollection. 20:04:04 -!- shachaf has quit (Ping timeout: 252 seconds). 20:04:06 make games to effortless erotica of women and bring happiness into daily existence and the correctness of pain and suffering and sacrifice and tragedy 20:04:12 5) The first duty of every starship officer is to the truth, whether it's scientific truth or historical truth or personal truth! It is the guiding principle on which Starfleet is based. 20:04:17 or make games about those things 20:04:23 or make games about some of them to bring about others 20:04:31 you can do it 20:04:44 well i like to ask "why games?" 20:04:47 elliott: well if it were an oracle for particle positions, you might be able to use it to build maxwell's demon? 20:04:55 why... games.. is it just for the money, or the potential fame? 20:04:59 oerjan: that's not a mathematical stream of bits :P 20:05:02 well ok it si but. 20:05:04 it feels like cheating 20:05:12 you're meant to pick Chaitin's constant or something like that :P 20:05:30 itidus20: it's for the effortless erotica of women 20:05:43 so, at least entropy reversal. although i'm not sure how it fits with the theory that the entropy increases when maxwell's demon forgets previous particle positions 20:06:17 I really can't see a way to do it without "cheating" like that, which is infuriating, because my intuition about entropy blah blah blah says it must be possibl 20:06:17 e 20:06:20 to me, gaming is not found in it's entirety in the domain of money and fame... nor in the domain of analysis and game theory and mathematics 20:06:26 [asterisk]possible 20:06:34 -!- shachaf has joined. 20:06:46 elliott: well an uncomputable stream of bits would be likely indistinguishable from random 20:06:48 it is not found as a cathartic response to aggression and tension.. it is not entirely a means of developing hunting skills 20:06:53 oerjan: well that's the point 20:07:01 oerjan: it's true randomness, and the box outputs no heat or anything 20:07:41 itidus20: (6) learning to stop your lists of simple goals while they're still simple :P 20:07:41 you just give it enough power to be able to drive the output mechanism (a LED, say, or maybe it just passes on the power if the bit is one), and it outputs the bitstream forever with no heat output 20:07:48 it is not simply a means of developing military skills and strategies 20:08:05 oerjan: so... 20:08:11 no, the meaning of gaming is NP hard to locate 20:08:27 meaning of gaming can't be fun is it 20:08:29 naaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaah 20:08:39 or 20:08:41 fun-equivalents 20:09:24 oerjan: SO BASICALLY HELP WHY CAN'T I GENERATE POWER IT MUST BE POSSSIBLE 20:09:48 i think the problem these days with gaming is trying to have fun knowing that the world is in such peril 20:10:44 itidus20: some games are PSPACE hard, even worse (e.g. sokoban) 20:10:59 and sooebegins ignoring me 20:11:47 elliott is a firm believer in my omniscience, to the point of thinking any non-sign of it must be me ignoring him 20:12:03 oerjan: YOU CAN AT LEAST SAY "HM" :D 20:12:08 -!- Taneb has joined. 20:12:26 I started reading tom saywer before 20:13:18 and i thought.. this book... with its down to earth values and warmth.. is what is missing from the world 20:13:30 ^ul ((h)(m)):!S(~:^:S*a~^~*a*~:^):^ 20:13:30 (h)(m) ...out of stack! 20:13:32 But it's there! 20:13:37 In your hands! 20:13:41 apparently not. oh. 20:13:43 That world hasn't gone! 20:13:46 ^ul ((h)(m)):^!S(~:^:S*a~^~*a*~:^):^ 20:13:46 hmmhmhhmmhhmhmmhmhhmhmmhhmmhmhhmmhhmhmmhhmmhmhhmhmmhmhhmmhhmhmmhmhhmhmmhhmmhmhhmhmmhmhhmmhhmhmmhhmmhmhhmmhhmhmmhmhhmhmmhhmmhmhhmmhhmhmmhhmmhmhhmhmmhmhhmmhhmhmmhhmmhmhhmmhhmhmmhmhhmhmmhhmmhmhhmhmmhmhhmmhhmhmmhmhhmhmmhhmmhmhhmmhhmhmmhhmmhmhhmhmmhmhhmmhhmhmmhmhhmhmmhhmmhmhhmhmmhmhhmmhhmhmmhhmmhmhhmmhhmhmmhmhhmhmmhhmmhmhhmhmmh ...too much output! 20:13:47 It's just moved on! 20:14:09 itidus20: in other words, it's poverty 20:14:14 poverty is what's missing from your world 20:14:25 just move to a really poor country, like Burma 20:14:50 oerjan: BUT WH;Y CANT 20:15:08 hey norway is supposedly all warm and fuzzy this week. also, filthy rich. 20:15:20 Oh, Norway 20:15:29 The land of the Norwegians 20:15:38 lament: the way i see it is.. if i am the world.. burma is a toothache... and my legs and arms don't want to work to earn the money to fix the toothache 20:15:50 itidus20: it's not a toothache 20:15:53 Stupid Italy. 20:15:57 Taneb: the psychologists are saying we're in a "love psychosis" 20:15:59 itidus20: all the down to earth values and warmth are there, in burma 20:16:07 also, afk 20:16:09 oerjan: What, you and me> 20:16:13 itidus20: if you make them rich, the values and the warmth will go away 20:16:17 :o 20:16:25 `addquote Oh, Norway The land of the Norwegians 20:16:30 that's how it happened in america and europe 20:16:37 god dammit hackego 20:16:48 people don't need values and warmth when they got money 20:16:50 so you may wonder.. whats my trick to caring 20:17:14 i am living in a simple way.... augmented admittedly by the internet 20:17:21 etc 20:17:27 lament: living in poverty in an authoritarian state: the true road to happiness? 20:17:44 elliott: according to some. 20:18:07 if you want family values, then yes, certainly 20:18:19 if you want support from others, then yes 20:18:23 according to what you said. 20:18:39 such things are necessary in poor places because people can't survive without them at all. so they exist 20:18:59 lament: so how long have you spent living like that in burma? 20:19:03 when are you moving there permanently? 20:19:08 that's why "cultural conservatism" goes away as countries become rich. people don't need it anymore 20:19:11 will you have an irc link? 20:19:21 lament: i literally have no income... my brother supplies internet, and hand me down PC parts... my mom provides electricity, groceries, bedroom.. my relatives and brother occasionally gave me food 20:19:36 it is a nice way to exist 20:19:57 it won't last forever.. etc 20:20:34 anyway heres mark twains pic, gotta love it: http://en.wikipedia.org/wiki/File:Mark_Twain_by_AF_Bradley.jpg 20:20:51 elliott: you're boring 20:21:21 lament: is that another way of saying the answers are exactly what i expected 20:21:27 no 20:21:41 it's not related 20:21:44 you're just boring 20:21:54 so you _are_ moving to Burma? 20:22:19 talking to you is not interesting because you never have anything intelligent to say 20:22:29 likewise 20:22:32 you're probably the main reason why i'm not in this channel often 20:22:41 cool 20:22:45 would you like to talk about your feelings 20:22:48 Is Bearpark near Stockton? 20:26:18 -!- cheater has joined. 20:27:19 Taneb: about twenty-three miles away, it looks like 20:27:32 Not too far 20:27:38 They could be the same person 20:30:38 oerjan: What, you and me> <-- um no, a large fraction of the norwegian population. 20:35:31 -!- Patashu has joined. 20:36:29 -!- TeruFSX has joined. 20:43:16 -!- cheater has quit (Ping timeout: 255 seconds). 20:43:55 -!- Taneb has quit (Ping timeout: 260 seconds). 20:56:54 -!- pumpkin has joined. 20:58:41 -!- copumpkin has quit (Ping timeout: 264 seconds). 21:02:53 @hoogle IO a -> a 21:02:53 Foreign unsafePerformIO :: IO a -> a 21:02:53 Data.ByteString.Internal inlinePerformIO :: IO a -> a 21:02:53 System.IO.Unsafe unsafePerformIO :: IO a -> a 21:03:36 you are treading dangerous paths, grasshopper... 21:03:59 Yep! ^_^ 21:04:47 Lymee: STOP RIGHT THE;RE 21:15:37 -!- cheater has joined. 21:16:13 -!- pumpkin has quit (Quit: Computer has gone to sleep.). 21:18:04 -!- FireFly has quit (Quit: swatted to death). 21:18:18 -!- OxA5EA has joined. 21:18:26 oh no, an ox 21:18:35 oh no 21:20:31 howdy 21:21:06 > OxA5EA 21:21:07 Not in scope: data constructor `OxA5EA' 21:21:12 > 0xA5EA 21:21:13 42474 21:21:47 now that is _much_ more obvious. 21:21:47 -!- GreaseMonkey has joined. 21:21:52 -!- OxA5EA has left. 21:22:09 his secret revealed, he left 21:23:51 @hoogle a -> b 21:23:51 Unsafe.Coerce unsafeCoerce :: a -> b 21:23:51 Prelude ($) :: (a -> b) -> a -> b 21:23:51 Prelude ($!) :: (a -> b) -> a -> b 21:24:30 That looks safe enough; it even has the word "safe" in it. 21:25:00 anyway, my next two languages: Piece of valuable specifics that should encourage yourself to order live chat software and Melancholy of the insect infested lemon tree 21:25:03 mark your calenders 21:25:09 [asterisk]calendars 21:30:12 > printStrLn $ unsafeCoerce 0 21:30:13 Not in scope: `printStrLn'Not in scope: `unsafeCoerce' 21:30:20 So. 21:30:22 What would that do? 21:30:47 Lymee: Depends what printStrLn is. 21:30:52 put* 21:30:57 Depends on the GHC version. 21:31:05 And OS, architecture, ... 21:31:12 Yay! ^_^ 21:31:31 !haskell putStrLn $ Unsafe.Coerce.unsafeCoerce 0 21:31:41 Why is it that unsafeCoerce seems.... 21:31:47 oerjan: I imagine it prints out an empty string 21:31:50 because of pointer tags and [] 21:31:52 hm... 21:31:52 A lot more dangerous than unsafePerformIO? 21:31:55 Nothing coerces to [] too 21:31:57 oh wait 21:31:59 oerjan: egobot isn't here 21:32:02 !haskell print $ Unsafe.Coerce.unsafeCoerce 0 21:32:05 ​() 21:32:07 oops 21:32:47 !haskell print (Unsafe.Coerce.unsafeCoerce 0 :: String) 21:32:50 ​"" 21:32:56 :t \x -> ((\y -> y y) (\r -> r)) 21:32:57 Occurs check: cannot construct the infinite type: t = t -> t1 21:32:57 Probable cause: `y' is applied to too many arguments 21:32:57 In the expression: y y 21:32:59 :( 21:33:14 Lymee: needs more newtypes 21:33:16 oerjan: oh wait it is here 21:33:17 heh 21:33:19 Lymee: unsafeCoerce can easily segfault if you're unlucky 21:33:21 just not hackego 21:33:44 now, you can _write_ unsafeCoerce with unsafePerformIO, but it takes a bit of work. 21:33:50 :t \x -> (\f -> f f) (\r -> r r) 21:33:50 Occurs check: cannot construct the infinite type: t = t -> t1 21:33:50 Probable cause: `f' is applied to too many arguments 21:33:50 In the expression: f f 21:33:53 :( 21:34:30 Is it possible to write a function a->b that never returns? 21:34:37 As in, actually have that type inferred 21:35:40 using only lambda, i think not 21:36:06 :t \_ -> undefined 21:36:06 forall t a. t -> a 21:36:09 yes. 21:37:18 (by which i excluded undefined etc.) 21:39:20 what about a recursive function that never returns? 21:39:57 you cannot do general recursion with just lambdas 21:40:21 it'll always hit that infinite type problem 21:40:23 well those things are part of real haskell function writing, so i assume Lymee would include them 21:40:30 :t fix id :: a -> b 21:40:30 forall a b. a -> b 21:40:46 elliott: i wouldn't assume that after the :t \x -> (\f -> f f) (\r -> r r) thing 21:41:13 oerjan: it's Lymee, nonsensical messing with lambdabot is a given 21:41:15 anyway 21:41:18 the infinite type problem? not really 21:41:22 just newtype it 21:41:28 that doesn't involve any functions or anything 21:41:30 or explicit recursion 21:41:40 elliott: that's not "just lambdas" 21:41:56 oerjan: Lymee _never said_ just lambdas 21:42:01 you did 21:42:40 newtype X a = X { un :: X a -> a } 21:42:41 \x -> un (X (\f -> un f f)) (X (\r -> un r r)) 21:42:41 -!- MigoMipo has quit (Read error: Connection reset by peer). 21:42:42 elliott: your comment was in the context of my comment. 21:42:45 unfortunately lambdabot can't run that or anything 21:42:47 oerjan: well ok 21:42:52 i was trying to answer Lymee 21:43:04 EgoBot can. 21:43:15 (unsafeCoerce 42 :: ByteString) tends to segfault quite reliably. 21:43:47 -!- comex_ has changed nick to comex. 21:44:14 presumably ByteString has no nullary constructor 21:46:11 Prelude> Unsafe.Coerce.unsafeCoerce (Just ()) :: [()] 21:46:12 [(),Segmentation fault 21:46:12 also works 21:46:44 I love how the memory layout works out perfectly apart from the having one fewer field thing 21:46:55 You can also unportably get bits out of floats with it. 21:46:57 !haskell print (Unsafe.Coerce.unsafeCoerce 1.0 :: Int) 21:47:00 4607182418800017408 21:47:01 Wery Useful. 21:47:08 fizzie: Just... just stop 21:48:37 !haskell print (Unsafe.Coerce.unsafeCoerce 1.0 :: Bool) 21:48:41 False 21:48:44 :( 21:49:17 !haskell print (Unsafe.Coerce.unsafeCoerce 42 :: Float) 21:49:20 5.9e-44 21:49:21 (diff) (hist) . . N Fairly intriguing review of shopping cart software package prepared by renowned soccer player or a person named very same as that soccer player.‎; 21:41 . . (+8,490) . . MarshallNielsen (Talk | contribs) (New page: Let's encounter it; most businesses right now need to possess a presence online. The challenge is, that most small business enterprise entrepreneurs are rather actually 21:49:21 scared of the work ...) 21:49:22 (diff) (hist) . . N Incredibly fascinating evaluation of shopping cart software package prepared by well-known soccer professional or a person known as exact same as that soccer player.‎; 21:27 . . (+8,400) . . MarshallNielsen (Talk | contribs) (New page: Let's face it; most organizations today will need to have a presence on the web. The situation is, that most modest organization proprietors are qu 21:49:25 ite truthfully terrified on the work it w...) 21:49:29 oh my god 21:49:31 the titles are getting even better 21:49:47 !haskell print (Unsafe.Coerce.unsafeCoerce 0 :: Float) 21:49:50 0.0 21:49:53 !haskell print (Unsafe.Coerce.unsafeCoerce 1 :: Float) 21:49:57 1.0e-45 21:50:13 !haskell print $ map (Unsafe.Coerce.unsafeCoerce :: Float)) [1..] 21:50:24 !haskell print $ map (Unsafe.Coerce.unsafeCoerce :: Float) [1..] 21:50:54 !haskell print $ take 20 $ map (\x -> Unsafe.Coerce.unsafeCoerce x :: Float) [1..] 21:50:57 ​[1.0e-45,3.0e-45,4.0e-45,6.0e-45,7.0e-45,8.0e-45,1.0e-44,1.1e-44,1.3e-44,1.4e-44,1.5e-44,1.7e-44,1.8e-44,2.0e-44,2.1e-44,2.2e-44,2.4e-44,2.5e-44,2.7e-44,2.8e-44] 21:51:14 !haskell print $ take 20 $ map (\x -> Unsafe.Coerce.unsafeCoerce x :: Bool) [1..] 21:51:17 ​[False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False] 21:51:21 !haskell print $ take 20 $ map (\x -> Unsafe.Coerce.unsafeCoerce x :: Bool) [0..] 21:51:24 ​[False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False] 21:51:27 :< 21:51:37 -!- NihilistDandy has quit (Ping timeout: 246 seconds). 21:51:46 !haskell print $ take 20 $ map (\x -> Unsafe.Coerce.unsafeCoerce x :: Int) [True, False] 21:51:49 ​[8646911284555690264,1110514680] 21:52:04 > unsafeCoerce (99::Integer) :: Int 21:52:05 Not in scope: `unsafeCoerce' 21:52:08 hmm... 21:52:10 ugh 21:52:20 !haskell print $ take 20 $ map (\x -> Unsafe.Coerce.unsafeCoerce ((Unsafe.Coerce.unsafeCoerce x :: Int)+1) :: Bool) [True, False] 21:52:23 ​[False,False] 21:52:27 !haskell print $ take 20 $ map (\x -> Unsafe.Coerce.unsafeCoerce ((Unsafe.Coerce.unsafeCoerce x :: Int)) :: Bool) [True, False] 21:52:30 ​[True,False] 21:52:33 nyan 21:58:45 -!- NihilistDandy has joined. 22:03:55 -!- NihilistDandy has quit (Ping timeout: 276 seconds). 22:04:58 oerjan: I wish there was some kind of higher-order DSL for describing the kind of compositions that turn into nested clusterfucks of (.) 22:04:58 I'm not sure what it'd look like, though... maybe it could assign a name to every argument, and... :D 22:08:06 -!- HackEgo has joined. 22:08:36 "Funnily because of the ordering of Bool it holds implies == (<=)." 22:08:37 oerjan: >:D 22:12:21 elliott: iirc nested clusterfucks of (.) correspond to lambdas where every argument is used exactly once, in order. except that a few exceptions become id instead. 22:12:43 oerjan: well, I mean, nested clusterfucks mixed in with other things 22:12:48 @pl \a b c d e -> a (b c d) e 22:12:48 (.) . (.) 22:13:54 elliott: also, you're familiar with (iirc) conal elliott's result etc. notation? 22:14:19 oerjan: indeed 22:14:28 -!- GreaseMonkey has quit (Quit: The Other Game). 22:14:30 well, maybe not familiar 22:14:33 but I know of it, and read a post once 22:16:40 -!- cheater_ has joined. 22:19:34 -!- cheater has quit (Ping timeout: 255 seconds). 22:24:17 -!- NihilistDandy has joined. 22:39:01 -!- TeruFSX has quit (Ping timeout: 258 seconds). 23:08:12 oerjan: Is nesting of loops required for brainfuck to be [[Turing-complete]]? (I'm asking because I'm trying to show reduction with another esolang where nested loops would be difficult.) —[[User:Maharba|Maharba]] 22:24, 31 July 2011 (UTC) 23:08:15 it is, right? 23:08:30 I know dbfi has seven deep loops, or something 23:08:31 or was it five 23:10:13 it's almost certianly required otherwise you can't have very interesting logic 23:10:17 well if you have only one level of loops, then what's inside a loop is only ><+- (ignoring .,) 23:11:17 oerjan: orly 23:11:29 yeah i know it's not tc without nested loops 23:11:31 i just dunno the proof 23:12:06 ah, didn't really notice that it was a quote. 23:12:35 If you have no nested loops you cna never 'regress' in state 23:12:49 is my rough idea of the proof 23:12:59 well it could be proved by solving the halting problem for each loop 23:13:07 http://esolangs.org/w/index.php?title=HQ9%2B&curid=1036&diff=24089&oldid=22953 23:13:10 wow it's ALL IN UPPERCASE 23:13:12 EVEN THE STRINGS IT PRINTS 23:14:34 if a loop is unbalanced, then you can only perform it so many times before going periodic, so halting for that can be determined. 23:15:15 fileupyours 23:15:16 (so many times after going off the original tape) 23:16:00 hq9+ was kind of okay, but hq9+ derivatives make me sad 23:16:25 if it's balanced, well how does that balanced loop optimization work in general... 23:16:59 oerjan: ok post that on the talk page 23:16:59 thx 23:17:27 oh hm you are merely adding a given vector to the touched cells each time. 23:17:58 and it's a question of whether the loop test cell will ever hit 0 or not 23:18:57 yup 23:21:13 -!- elliott has quit (Ping timeout: 246 seconds). 23:25:01 -!- NihilistDandy has quit (Ping timeout: 240 seconds). 23:27:15 -!- lament has quit (Ping timeout: 260 seconds). 23:27:38 -!- NihilistDandy has joined. 23:41:12 how do i get a new pet? i tried sacrificing anything i can come up with and all i could get is some demons when i sacrifice priests 23:42:57 -!- copumpkin has joined. 23:46:17 * oerjan calls the PETA 23:59:08 -!- lament has joined.