00:00:09 = repeat (Just ()) ++ repeat Nothing 00:00:35 oh right, ofc 00:00:58 repeat's being interpreted as a List monad action 00:01:07 > [] >>= repeat 00:01:08 [] 00:01:09 should be empty list 00:01:10 yeah 00:01:15 OK I think I understand this 00:01:28 > [repeat x | x <- [Just (), Nothing]] 00:01:29 [[Just (),Just (),Just (),Just (),Just (),Just (),Just (),Just (),Just (),Ju... 00:01:50 nooodl: not quite 00:02:03 oops. concat that 00:02:09 > [y | x <- [Just (), Nothing], y <- repeat x] 00:02:10 [Just (),Just (),Just (),Just (),Just (),Just (),Just (),Just (),Just (),Jus... 00:02:23 yeah 00:02:23 why did Haskell get rid of monad comprehensions? 00:02:28 because they were just more complex than do-notation? 00:03:10 ais523: it was all part of that "making types simpler for newbies" stuff in the transition from haskell 1.4 to haskell 98 00:03:16 i think they're not very useful and make things unnecessarily complicated 00:03:21 e.g. map used to be fmap 00:03:27 :t fmap 00:03:29 Functor f => (a -> b) -> f a -> f b 00:03:40 and List is a functor 00:03:40 or, well, unnecessarily generalized 00:03:41 ais523: there's an extension to reenable them now, though. 00:03:42 so yeah, that works 00:04:28 i don't like how fmap looks usually :( it's weird 00:04:40 i often catch myself writing <$> but that's so "perl" 00:04:48 -!- FreeFull has quit. 00:05:26 now I'm wondering how <$> parses in Perl 00:05:46 I guess as "<" and "$>" 00:06:05 (where $> is, umm, effective UID?) 00:06:21 `perl-e print $> 00:06:25 5000 00:06:33 `perl-e print 2 <$> 00:06:35 1 00:07:04 `interp perl print "i think this should work, unless it broke" 00:07:06 exec: 4: ibin/perl: not found 00:07:15 you'd think. 00:07:17 `perl-e print <$> 00:07:18 Final $ should be \$ or $name at -e line 1, within string \ syntax error at -e line 1, near "print <$>" \ Execution of -e aborted due to compilation errors. 00:07:28 oh, right, that makes a /lot/ of sense 00:07:46 can't interpolate $> into a literal read from filehandle for the same reason you can't interpolate $" into a string 00:07:50 `perl-e print "$"" 00:07:51 String found where operator expected at -e line 1, at end of line \ (Missing semicolon on previous line?) \ Final $ should be \$ or $name at -e line 1, within string \ syntax error at -e line 1, near "print "$"" \ Can't find string terminator '"' anywhere before EOF at -e line 1. 00:07:54 yep 00:07:56 lol 00:07:58 Huh, map used to be fmap? 00:07:59 I was wondering how that would parse 00:08:07 wtf is $" 00:08:08 And monad comprehensions were actually a standard thing? 00:08:18 `perl-e print $" 00:08:20 No output. 00:08:23 the Haskell Committee: I liked their earlier work better 00:09:45 kmc: I think $" is to do with interpolating an array into a string 00:10:07 `perl-e my @x = qw/1 2 3/; local $" = '-'; print "@x"; 00:10:08 1-2-3 00:10:10 yep 00:10:16 @let {-# LANGUAGE MonadComprehensions #-} {- doubt it works but worth a try -} 00:10:16 Parse failed: Parse error: EOF 00:11:19 @let {-# LANGUAGE MonadComprehensions #-}; test = [x | x <- Just "test"] 00:11:19 .L.hs:150:18: 00:11:20 Couldn't match expected type `[t0]' with actual type `Maybe [Char]' 00:11:20 In the return type of a call of `Just' 00:11:20 In the expression: Just "test" 00:11:20 In a stmt of a list comprehension: x <- Just "test" 00:12:32 i suppose it has to disable language extensions for security anyhow. 00:39:45 -!- variable has changed nick to constant. 01:00:04 -!- Sprocklem has joined. 01:14:30 -!- conehead has quit (Ping timeout: 240 seconds). 01:19:52 `unicode CYRILLIC SMALL LETTER O 01:19:54 ​о 01:20:07 @tell fizzie With the slight cosmetic issue that the bar now says "search Gurgle" instead of "search Google", but... <-- try with cyrillic o (о) maybe? 01:20:07 Consider it noted. 01:20:20 `unicode GREEK SMALL LETTER OMICRON 01:20:21 ​ο 01:20:25 that's a good o too 01:22:25 -!- Bike has joined. 01:32:36 -!- Bike_ has joined. 01:34:12 -!- Bike has quit (Ping timeout: 252 seconds). 01:37:06 -!- Bike_ has changed nick to Bike. 01:44:38 -!- Bike_ has joined. 01:44:51 -!- Bike has quit (Ping timeout: 245 seconds). 01:51:37 https://support.steampowered.com/kb_article.php?ref=9974-PAXN-6252 Why does DirectX install with every game? […] the only way to distribute them is to run the installer, that's also the only supported method from Microsoft to check that the correct version installed. Trying to manually check for the correct versions is extremely complicated […] In addition, the dependencies and required checks may 01:51:39 change in each new version of the D3DX runtime. The code to check correctly and repair broken installs all exists in the installer and running it is a guarantee that the correct binaries will exist when you run the game 01:52:44 whoa, whoa, whoa, the game of life is only from 1970? <-- how old did you think conway was, anyway? 01:53:40 -!- Bike_ has changed nick to Bike. 01:53:57 i'm not sure how old conway is. he has done a lot of things. 01:53:58 is he alive? 01:54:08 -!- muskrat has joined. 01:54:12 yes. 01:54:22 good for him. 01:54:50 oh, an erdos number of one. of course he's done a lot of shit then 01:56:03 `unicode LATIN SMALL LETTER O WITH DOUBLE ACUTE 01:56:04 ​ő 01:56:18 i'm sure there are _some_ people with an erdős number of one who only did that one paper with erdős. 01:56:25 probably 01:56:50 conway is not one of them. 01:57:36 cőnway 01:58:01 -!- Sorella has quit (Remote host closed the connection). 01:58:13 i was about to ask for a list of everyone with an erdos number of one but then remembered the entire point is that he cowrote a shitfuck of papers 01:58:38 511, apparently 01:58:41 i think there's a list over at the erdős number project site 01:59:52 huh, some neat stats here 01:59:56 «The five people with more than 200 coauthors are Paul Erdös (of course) with 509 (although the MR data actually show only 504, missing some coauthors of very minor works or works before 1940, when MR was started), FRANK HARARY (Erdös number 1) with 268, Yuri Alekseevich Mitropolskii (Erdös number 3) with 244, NOGA ALON (Erdös number 1) with 227, and Hari M. Srivastava (Erdös number 2) with 244.» 02:00:08 i think conway is special for doing _both_ very deep and very popular math 02:00:14 i have never heard of the others actually 02:00:17 oerjan: yes it's great 02:00:39 i always thought of conway as that guy who did Life and Doomsday and then i found out, oh, no, he's really a trillion times smarter than me 02:01:52 " a person who has collaborated but does not find herself in the Erdös component of C has on the average collaborated with only one or two people" 02:02:29 -!- CADD has joined. 02:02:29 -!- CADD has quit (Client Quit). 02:02:52 it's weird to think about the average erdos number increasing over time even though it's super obvious 02:03:57 i guess it's technically occasionally decreasing too 02:04:47 hm, i wonder what the data would look like for academia in general 02:06:28 doesn't it go up whenever anyone is born, and down the rest of the time? 02:07:28 or are you only counting people with a non-infinite value? 02:07:38 non-infinite, i suppose 02:07:55 i might be overestimating the effect of time given that the 'maximum' number is 13 according to the enp 02:08:52 each individual person's goes down over time 02:08:55 * oerjan notes that conway was born on doomsday 02:08:57 right. 02:09:06 basically i want to know the erdos number of edward gibbon. 02:09:29 hmm… I almost certainly have an Erdős number, but it'll be hard to determine it automatically because I have such a common name 02:10:06 ais523: try your collaborators unless they're too many? 02:10:15 yeah, probably the best option 02:10:18 I only have two 02:10:32 enp also notes that collaboration has gone up over time so the farther back in time i go the more unconnected components there will be, probably 02:11:38 i'm still amused by the fact i can look up an ethologist on academictree and trace his lineage back to paul of tarsus D 02:11:41 *:D 02:11:51 ais523: it goes up if someone dies who has lower than average, and down in the opposite case 02:12:04 and can go down whenever a paper is published 02:12:10 yes 02:12:18 and up when someone new joins the field 02:12:37 let's see, darwin collaborated with captain fitzroy, now who did fitzroy collaborate with, 02:12:38 I guess people who die will tend to have a below-average number due to being older than the average researcher on average 02:12:41 and thus having produced more papers 02:12:54 we're not counting infinites, so someone joining the field can still go either way. 02:13:37 as long as the average is larger than 1+minimum 02:13:53 now i want biology metrics help 02:15:10 like are things different since mathematical discovery is generally different from bug discovery 02:18:09 -!- muskrat has left ("Leaving"). 02:19:25 whut'cha discussin' in here, esolang. 02:19:38 erdos numbers 02:21:31 ahh. 02:21:33 erdos numbers.. 02:22:16 have to wonder what mine is. 02:22:34 mine's infinity. nice&tidy 02:22:58 countable or uncountable 02:23:30 kind of a nonsensical question i think? 02:24:25 nah. 02:26:44 countable, clearly 02:26:58 or arguably 14 02:27:03 lol 02:27:19 LinearInterpol: http://www.ams.org/mathscinet/collaborationDistance.html 02:29:59 ais523: hm i tried your name and it claims to find several but the selection menu is buggy, perhaps it's because it's too large. 02:30:18 oerjan: try Dan Ghica, Satnam Singh (although the latter name may still be ambiguous) 02:30:20 then add one 02:30:56 -!- doesthiswork has joined. 02:34:21 4+1 = 5 for the first, none for the second 02:35:21 lots of just S. or S. + another initial, though 02:38:00 -!- carado has quit (Ping timeout: 252 seconds). 02:38:51 also i think the menu wasn't actually buggy i was just confused by it not opening a new page directly on clicking the item 02:40:37 sadly, unless you've collaborated with either John R. Blake or Albert John Petkay, neither option is you 02:42:42 @tell oklofok *MWAHAHA* i now know your middle name! 02:42:42 Consider it noted. 02:44:36 my erdos number is 5?! 02:44:41 haah. 02:45:10 @tell oklofok unless mathscinet is confusing you with someone else 02:45:11 Consider it noted. 02:45:53 cue him using "oklopol" exclusively for the next 3 years. 02:49:08 hm i'm finding further evidence that the initial is correct. 02:50:26 (aka his university homepage.) 02:52:29 -!- zzo38 has joined. 02:52:40 countable or uncountable 02:52:40 kind of a nonsensical question i think? 02:52:40 nah. 02:52:51 lol. 02:52:55 well it'd be an ordinal right 02:53:18 Phantom_Hoover: but that only implies ais523's 14 02:53:25 cardinal. 02:53:41 not ordinal. 02:53:44 iirc. 02:53:58 hmm 02:53:59 why 02:54:01 all cardinals are ordinals unless you're dictatorially opposed to free choice 02:54:07 lol. 02:54:16 cardinals are indexed by ordinals. 02:54:50 oerjan: all cardinals are ordinals 02:54:57 choice just affects whether every set has a size 02:55:32 coppro: no you can also use foundation instead 02:56:02 and do something like "a cardinal is the set of all minimal rank sets of that size" 02:57:19 but i guess if you have neither, then i don't know how to choose a suitable "witness" for a given cardinality. 02:57:56 a unique one, that is. 02:59:38 hm does foundation imply every set is smaller than a beth? 03:00:22 i think it would. 03:03:42 "In ZF, for any cardinals κ and μ, there is an ordinal α such that:" 03:03:43 \kappa \le \beth_{\alpha}(\mu). 03:04:04 *-" +" 03:04:19 which i take to mean yes 03:04:20 i was just thinking that 'infinity' in the context of erdos numbers isn't very setty anyway 03:04:25 -!- yorick has quit (Remote host closed the connection). 03:04:30 Bike: indeed 03:04:44 i /guess/ you could take it as not reached by incrementing which is like the smallest infinity 03:05:13 it's more like "maximal element of order", used when taking minimum of empty set. 03:05:21 anyway i kind of want to see the mathematical collaboration graph 03:05:37 the thing says it's small worldy, but are there like, bottlenecks between different fields, say 03:33:57 -!- doesthiswork has quit (Quit: Leaving.). 03:35:23 -!- nooodl has quit (Quit: Ik ga weg). 03:40:29 -!- Phantom_Hoover has quit (Read error: Connection reset by peer). 03:50:01 Whose stupid idea was it to save note period values in a .MOD file but then convert them to note numbers upon loading? Better would be to play the note periods actually stored instead, but that isn't how it is done. 03:50:43 zzo38 : it's a storied format :D 03:50:57 s3m and later formats don't have that mistake 03:52:44 madbr: Yes, they store the note numbers directly; I still think it would make sense to use the stored note periods to play the notes rather than converting between them, although this makes arpeggio effect difficult (although storing the arpeggio as individual notes instead would solve this too) 03:53:24 but then how do you transpose a sample? 03:53:37 go through all of the periods using that sample and change them? 03:53:59 also you'd still need to turn them into notes to show them in the editor 03:55:40 Yes you would transpose a sample in that way, if you need to deal with the existing file, I suppose 03:56:14 And I don't intend to read them to show in the editor anyways; I intend to use a compiler to produce the .MOD or whatever which is then played back using OpenMPT or MegaZeux or whatever other software would play them 03:56:49 well, now you know why notes are stored that way 03:57:18 MODs/s3ms/etc are also the project file you edit 03:57:32 they're not some kind of stripped/compiled output 03:58:18 Yes, you can load them in various editors, although maybe you do want to produce them with a compiler instead, which would be more useful to do things a bit differently 03:59:07 format is bad for doing thing is was not made for 03:59:44 I think ppl who produced music with a compiler went for some other formats 04:00:24 However many programs expect to use .MOD or .S3M formats for music 04:00:35 stuff like register write lists for the target sound chip (like the gym format or at least one of the adlib log formats) 04:00:48 zzo: yes, because there are lots of good sounding MODs and S3Ms 04:01:11 and there are lots of good sounding MODs and S3Ms because there are good editors for making them :D 04:01:55 drinking gløgge 04:02:00 is that legal 04:02:11 ain't no law in the water 04:02:34 kmc: *-e 04:02:46 ain't no law in the watr 04:02:49 ah, my host mis-spelled it then 04:03:01 wikipedia agrees with you 04:03:12 (this is the danish spelling) 04:03:14 I do know of other sound formats, such as .VGM which stores register writes for many sound chips (even more than one at once, and many of them can be doubled), but still I was asking because of programs that expect to use MOD/S3M format, which is why I wanted to write a compiler to create such files 04:04:02 fungot: u want gløgg? 04:04:02 kmc: not lots, but they don't exist 04:04:27 kmc: good, i was briefly wondering if it were the danes who somehow added an e. 04:04:47 they might do such silly things 04:05:15 danees 04:07:51 (the swedes, if being silly, would add an a instead.) 04:07:53 zzo : kindof the way it happened is that they were hardware periods at first 04:08:12 zzo38 : but then later on someone wrote... I think it was protracker 04:08:22 which lets you finetune the samples 04:09:01 anyway it's gøød 04:09:08 to avoid having to reupdate all the periods in the song when you change the finetune in a sample, notes are parsed in that bizarre way 04:09:18 the gløgg is good 04:12:30 kmc is getting drøgged with gløgg 04:12:56 madbr: OK, though 04:13:05 i won't deny it 04:13:08 or possibly just drønk 04:13:14 `quote dronk 04:13:16 724) aim hecker (n): when ur dronk and u pee so bad all over the toilet that ppl make fun of u (corruption of "aim heckler") 04:13:43 now dipping ginger cookies in the gløgg 04:13:46 And which programs support FM instruments in S3M anyways? How many files use that anyways? 04:14:02 (norwegian ø is not too far from english u in that position) 04:14:20 zzo38 : I think modplug tracker actually will play the FM channels 04:14:56 zzo38 : irl the reason why nobody uses FM channels is that they are out of sync 04:14:59 frequency modulation...? 04:15:05 (in the original tracker) 04:15:13 madbr: Looking in the samples menu I don't see anything about FM, though 04:15:38 because the sample channels are mixed into a buffer which is played after some time 04:15:48 but the fm channels play instantaneously 04:16:17 so s3ms are either all FM (I've seen only 2 of those!) or all samples 04:16:24 (every other s3m!) 04:17:48 There are other formats for FM anyways 04:18:48 there are like 20 different formats for opl2 04:19:06 VGM is one of the formats that supports OPL2 and even OPL3 and OPLL 04:19:23 (And you can use all of them in the same file too if you want to) 04:21:39 so in practice s3ms are like MODs but better 04:22:01 wants http://imgur.com/a/LpuE8 04:27:51 because nothing plays the fm instruments because why 04:37:50 oerjan: maybe it was a different conway, who knows 04:50:04 hichaf 04:50:12 hi kmc 04:52:19 shachaf: there's another that did/does complex function theory iirc 04:53:12 btw the fact that the cantor set is called that is kind of silly 04:53:23 https://en.wikipedia.org/wiki/John_B._Conway 04:53:40 why silly 04:53:56 well, cantor is responsible for quite a lot of sets 04:54:08 most mathematicians are 04:54:14 but the cantor set is The Coolest of them. 04:54:49 Bike: cooler than a raccoon? 04:54:53 possibly 04:54:59 did cantor make a racoon set 04:55:12 slight clarification, it seems he wrote a _book_ about complex functions, but actual research in functional analysis. 04:55:20 no but there was a raccoon here next to me a few minutes ago 04:55:25 v. cautious raccoon 04:55:25 how does that happen 04:55:43 what, the raccoon? 04:55:43 http://www.chrisabraham.com/wp-content/uploads/2013/09/racoon-pope-Sean-Tejaratchi.png 04:56:05 cool there's people arguing that circuits are fundamentally different from programs because fpgas aren't real or something 04:56:14 nice hat 04:56:52 i am currently in san francisco but going back south soon 04:57:40 ask santa claus for an fpga 04:57:50 shachaf: how's san francisco 04:57:57 kind of cold 04:58:01 but i'm outside 04:58:04 (hence the raccoon) 05:06:14 douglass_ and I went to a pet store today kind of by accident 05:06:19 we managed not to buy any cats 05:06:20 or raccoons 05:07:23 they have raccooons in pet shops? 05:07:33 i don't think so 05:08:02 one of the weird things about Tirana, Albania is that there are about five pet shops on every block 05:08:22 Why are these .S3M formats and so on so confusingly designed? 05:08:46 historical materialism, zzo 05:09:28 kmc: imo your house needs a cat 05:09:34 imo cat cafe 05:09:57 zzo : because it's just how some dude arranged stuff in a real mode dos program :o 05:10:47 keepin' it real mode 05:11:32 like s3m file offsets are real mode segments :D 05:12:06 I am not talking about those kind of things actually 05:12:54 does that just mean they're in units of 16 bytes? 05:13:15 kmc: imo pointless cat cafe 05:13:27 kmc: yes 05:13:33 maybe n-category cafe should open a physical frnachise 05:13:49 topless pointology 05:14:13 But rather I mean the way channel mapping works, and how some effects are ignored on tick 0, and so on 05:17:21 zzo38: is that because it takes one tick to set up the effect? 05:17:34 kmc: I don't know why. 05:17:39 ♫ 05:18:52 hey zzo38 what do you think of i2s 05:19:01 -!- LinearInterpol has quit (Ping timeout: 245 seconds). 05:19:05 I don't know what that is 05:19:27 it is a serial format for transmitting music between integrated circuits 05:36:31 zzo : s3m channel mapping was confusing because the tracker mapped differently on soundblaster than on gravis ultra sound :o 05:41:53 and editing the channel map in st3 would move around the channels in some bizarre way 05:45:42 normally you just map channels 0-15, aka left1, right1, left2, right2, left3, right3, etc... 05:46:57 and override that default panning because that kind of hard-left/hard-right panning sounds kinda stupid 05:52:32 Yes it is stupid like that too 06:09:34 it makes sense on a 386 with a sb pro when trying to save every last cycle but still 06:10:24 They seem to contain various stupid things which might cause problems to write a compiler into such formats; what is best way to write such a compiler in a way that would work in best way? 06:10:49 are your notes quantized in time? 06:11:12 ie do they arrive exactly on 16ths, 8ths, beats etc 06:12:01 Usually they would be, but they might not be, due to some things 06:12:19 if they are not, you have to use the delay effect 06:12:35 (SD1, SD2, SD3 etc) 06:13:24 alternatively you could play around with the playback speed (effect A - change speed) but that has other issues 06:13:44 (mostly that your slides don't end up being quite the same) 06:14:39 the main problem is that you can only have 1 effect per row 06:14:43 per chanel 06:15:52 -!- oerjan has quit (Quit: leaving). 06:15:54 so if you need a pitch slide that can't happen at the same time as a note delay 06:18:29 normally you end up fine because most effects are only applied on either note start (sample offset, glissando, note delay...) or later on the note (vibrato, volume slides, pitch slide down...) 06:21:02 some stuff like spc converters set the speed super high (like A02) to sorta solve some of these issues, but then you end up with other issues anyways (mostly that slides end up rather strange) 06:23:31 Yes there are those kind of issues too, I thought of 06:33:52 I wanted to write a MML compiler into one or more of these music formats 06:36:07 -!- farrioth has joined. 06:36:57 Currently it is difficult to use MML with such software that expects music in .MOD or .S3M format, since no such program to compile it is exist 06:37:55 lots of things suggest that topoi are good should i learn about them y/n 06:42:22 madbr: Are you aware of existing such softwares though? 06:47:48 So, I've been thinking about natrual-language-like programming languages such as Inform 7 and, arguably, COBOL. I wonder if they provide any advantages in expression to the programmer (i.e., better ability to program in such a language) based on the programmer being able to use UG (Universal Grammar), or whether the syntactic simalarities to natrual language are really only superficial, and so provide only an a priori familiarity wi 06:47:52 what's "topoi" 06:48:23 farrioth: Your message isn't finished, but I think they aren't advantageous. 06:48:32 farrioth : I think we don't know enough about irl languages 06:48:38 also UG is silly. 06:48:50 and doesn't even apply. 06:48:53 also, hello. 06:48:55 a lot of language processing irl is statistic 06:49:09 my name is bike. 06:49:21 madbr: topoi seem to be something something grothendieck 06:50:23 madbr: Explicitly, implicitly, or to answer my question? 06:50:49 like, what google translate does it a whole bunch of stats 06:51:03 to figure out what's the most likely translation of a group of words 06:51:24 there are some theories that humans work in similar ways. i personally don't buy this but some real linguists do. 06:51:42 chomsky is kind of out of sorts nowadays. 06:51:45 Bike: Hello; and even if one doesn't take a strong Chomskyan view (I only do for the sake of discussion), you could argue that L1 gives a learning advantage to L2, and I wonder if this applies if L2 is a natrualistic programming language. 06:52:10 it's possible. 06:52:30 I think such programming languages provide disadvantages to learning them and programming in them and expression, although they may provide advantages to understand the program more easily, once it is already written. 06:52:33 i don't know anything about language acquisition, though, and i'm reasonably sure that good research on programming language acquisition does not exist. 06:52:42 just a lot of made up thoughts. 06:53:59 An idea I had is if you are using such natural-language programming, have the program include various annotations and other symbols, and underlying codes in other programming languages that can be specified using escapes, and have it reformat them for printout. In fact I wanted to do this for Magic: the Gathering cards, too. 06:54:00 I've seen reasonably convinicing arguments that language processing by humans is probablilistic (such as by Florian Jaeger); it is certainly context-dependant. 06:54:20 Bike: Research on programming language acquisition would be interesting. 06:54:34 Bike: And I don't suspect there is much. 06:55:24 well, i don't think what you're talking about is particularly dependent on the underlying mechanism, i mean. it could be true in both a chomskyian and a norvig...ian world 06:55:35 zzo38: Do you think such language provide disadvantages to learning because they are natrualistic? And what properties of natrual language makes this so? 06:55:59 i'm just pretty skeptical of constructed languages though. seen too many dumbasses thinking they have unlocked the key of thought 06:56:05 Bike: I agree, I was just framing it in terms of UG for convenience. 06:56:19 Bike: The Ithkuil crowd and so on? 06:56:58 "esigned to express deeper levels of human cognition briefly yet overtly and clearly, particularly with regard to human categorization" looks like it 06:57:13 zzo38: I would argue that NL is unsuitable as a programming paradigm primarily due to the fact that ambiguity is often desirable in NL, but not for code. 06:57:17 farrioth: Nearly all of the properties, I suppose. The programming language still has limitations and things that are unclear when you try to read it as a natural-language rather than as the program, so you will write everything wrong because it "looks right" to you... 06:57:29 Yes and that too. 06:57:34 ambiguity can be desirable in programming 06:57:53 Bike : when? 06:58:01 zzo38: Indeed. I've had similar experiences interacting with NL parses, e.g., in IF (interactive fiction). 06:58:15 Bike: But compilers/interpreters struggle with it, surely? 06:58:19 for example, in "higher-level" languages like C most of the point is targeting 06:58:27 the same C program can "mean" different things 06:58:52 Bike: Are you talking about reusable code? 06:59:07 farrioth: Yes I don't like or use Inform 7 at all, and yes even in IF games the entry can sometimes be a bit confusing but not nearly as much. 06:59:09 no, just the results of compilation or interpretation. 06:59:52 when you write "a += 4" you don't particularly care if that's implemented as an addition or as four increments or as nothing because "a" was optimized out, much of the time 07:00:23 Bike: Maybe the same code may 'mean' different things in different contexts (if I understand you), but this is actually a case of reusability, as the meaning to the computer is not context-dependent, even though the meaning to the programmer or user may be. 07:00:30 but then it's all x86, arm or some kind of risc 07:00:38 it can't vary that much 07:01:07 yes, and when i say "ambiguity can be desirable in programming" you can't reasonably interpret that as "buy me a soda" :p 07:01:22 Bike: Ambiguity is the reverse of that, what you're describing seems more akin to synonymy to me. 07:01:33 cross language synonymy 07:01:34 *? 07:01:38 madbr: Not always, actually 07:01:40 there's also undefined behavior. 07:02:20 zzo38: Do you know if I7 has seen much favour in the IF community by the way? I haven't kept up with such things for years. 07:02:48 sleep 07:02:50 -!- madbr has quit (Quit: Rouringu de hajikunda!). 07:03:16 farrioth: It seems to be popular although I do not recommend it 07:04:12 zzo38: Your argument above, "... so you will write everything wrong because it "looks right" to you," essentially means that your L1 will cause interference problems for the programming L2. Do you think that is a valid formalisation? 07:04:38 farrioth: I am not sure what you mean by "L1" and "L2". 07:04:45 zzo38: I though as much. I suspect it's popular with the 'writers' who want to make IF but don't have (much) programming experience. 07:05:18 zzo38: Sorry, language acquisition terminology. L1 = the language you speak; L2 = the language you are learning. 07:05:24 in natural language acquisition studies, L1 is the first language you learn (the native language) and L2 are others. 07:05:44 Ah, OK 07:09:39 Bike: Re the synonymy, what you are describing is multiple constructs that have the same meaning/result, but what I was meaning by ambiguity was one construct which has multiple meanings/results, the choice between which is not trivial. 07:10:19 Bike: You were saying that just the former is desirable in programming, right? 07:10:37 no, i'm thinking of the C source as the "one construct" and multiple possible compilations as "multiple meanings/results". 07:11:58 Bike: Ah. I was referring to ambiguity in terms of what a piece of code does, not how it does it. 07:12:10 Bike: I'd simply call that abstraction, incedentally. 07:12:22 Bike: But you have a valid point that that is desirable. 07:13:18 how about polymorphism? 07:14:38 Sure, but I think that has a different technical meaning. 07:15:21 Or were you meaning it in its technical sense an an example of desirable ambiguity? 07:15:36 the latter, yes 07:16:57 That would be true, yes. 07:17:06 Good example, in fact. 07:17:42 how about, more fundamentally, names 07:18:01 > map (\x -> x + x) [4,23] 07:18:01 Now, how does polymorphism map to NL ambiguity? 07:18:02 [8,46] 07:19:02 maybe like "I ran to the store" versus "the horse run past the barn fell" versus "is your refrigerator running?" 07:19:15 farrioth: I guess it's in the way that in a natural language, you can understand a sentence without understanding what it's about 07:19:40 in this case 'run' being the 'polymorphic operator'. 07:19:43 like, if a sentence contains a person's name and you don't recognise it 07:19:51 Bike: Yes, lexical ambiguiy, treating an operatior as equivalent to a lexeme. 07:19:52 then you can still parse and understand the rest of the sentence 07:20:35 (usually) 07:22:30 ais523: I don't know if I'd call that ambiguity. But I'm not sure what I'd call it, since it sits above the syntax-semantics interface. 07:23:04 ais523: In the example of not recognising a name. 07:23:32 farrioth: well, it works like programming language polymorphism for me 07:23:46 in a programming language, a polymorphic function can operate on data without knowing anything about its type 07:24:12 hm what if gløgg : gløgge :: dog : doge 07:24:31 Bike: Treating polymorphic/overloaded operators as ambiguous, they are always disambiguated linguistically (not extra-linguistically), right? 07:25:42 ais523: I understad that a polymophic operator must know about type, but its operation is type-dependent. I could be wrong, though. 07:26:15 :t map 07:26:16 (a -> b) -> [a] -> [b] 07:26:21 nice and polymorphic 07:26:26 ais523: And in your example, which operator/lexeme is polymorphic/polysemous? 07:26:33 map doesn't need to know anything about a or b, just about functions and lists 07:26:46 farrioth: the entire sentence is polymorphic with respect to the name 07:26:47 http://www.youtube.com/watch?v=g_lAFDbnMLA#t=40s -- "what did the doge do?" 07:27:01 what does the doge say 07:27:22 ok there are like 100 youtube videos with that name, surprise 07:28:00 ais523: Ah, you're talking about generics, right? I was thinking about overloaded operators. 07:28:16 right 07:28:24 operator overloading's like the opposite of polymorphism, though 07:28:31 an overloaded operator does different things with different arguments 07:28:39 Are generics really ambiguous, though? 07:28:55 perhaps not 07:29:04 although, in my line of work, polymorphism tends to cause a lot of troubles 07:29:12 I can't create a circuit to implement a program without knowing what types it works on 07:29:29 Assuming we are defining ambiguity as (non-trivial) context dependance in meaning/function, or something like that. 07:33:34 -!- impomatic has quit (Quit: impomatic). 07:34:47 So, thinking about the syntax of NL-like programming languages again, if L1 causes negative transfer (interferance) then we would expect it to also have the potential to cause positive transfer (learning advantages). I wonder if this is borne out for NL-like languages. 07:35:14 More importantly, I wonder if anyone's studied this. 07:38:53 there's probably some managerial type research on cobol since it was a conscious factor in its design and all. 07:40:50 That's a good point. 07:41:34 I think advantages are possible when trying to *read* the program, perhaps. 07:42:23 zzo38: For someone familiar with the language, or only for someone unfamiliar with it? 07:42:57 zzo38: Being, myself, not familiar enough with a NL-like language to answer that. 07:43:38 zzo38: I agree it is a possibility, but if such advantages exist, why don't they apply to writing too? 07:43:47 farrioth: For someone who is somewhat familiar with it, but not quite, I mean. 07:44:03 zzo38: Yep. 07:44:52 zzo38: There's probably an interaction between receptive/expressive use and positive/negative interference. 07:45:19 zzo38: But I'm not familiar enough with the acquisition literature to know if that is the case for NL. 07:47:53 I don't know about that either. 07:49:49 shachaf: I read more of _Stories of Your Life and Others_ 07:49:52 good stuff 07:49:56 I guess I'm on the last story now 07:50:01 what was even in that book 07:50:14 oh 07:50:21 now i remember 07:50:27 isn't the last story the one you already read 07:51:28 Incedentally, what NL-like programming languages exist? Inform 7, COBOL and derivatives, and AppleScript come to mind. 07:51:43 Perligata, if you want an esolang 07:52:02 farrioth: I was thinking of a kind of "hybrid" system where the input looks like natural language kind of, with various extra marks too, and then when printed out, the marks mean different things and would print out like a natural language, with the correct bold and italics formatting and symbols and that stuff too. 07:52:15 Perl itself was also intentionally designed on natural language principles 07:52:21 farrioth: I am not so familiar with COBOL but I could try to look up a bit 07:52:25 it's probably more natural-language like than the other languages you mention 07:52:31 this copy has an extra story I guess? "The Lifecycle of Software Objects" 07:52:32 it just doesn't /look/ like one 07:52:43 zzo38: That sounds confusing. 07:52:46 ais523: Really? 07:52:55 well, wall was a linguist, right. 07:53:02 farrioth: Larry Wall, who invented Perl, was a linguist (as in, natural linguist) 07:53:06 Although I think COBOL is OK actually from what I can see 07:53:09 and applied the same principles 07:53:24 this is why Perl has an ambiguous grammar, and the parser sometimes has to guess, for instance 07:53:25 oh 07:53:27 have no read 07:53:31 not 07:53:34 is it good 07:53:40 i have written one COBOL program https://gist.github.com/kmcallister/1ca57f7a260c72d36d96 07:53:48 apparently it was published in 2010 07:53:48 shachaf: i don't know I didn't read it yet!! 07:53:55 your face was published in 2010 07:53:58 farrioth: It sounds confusing a bit, but... do you play Magic: the Gathering cards? It would help to understand my ideas about this thing I am mentioning 07:53:59 ais523: Surely it's the linguists who would first realise the pitfalls of NL-likeness? And that does explain why PERL is good at text processing and things that linguists actually want to do with a computer. 07:54:32 of course, snobol was also designed for text processing and linguists and is pretty much nothing like natural language at all 07:54:32 farrioth: then why does Perl have such poor support for syntax trees compared to, say Lisp? 07:54:43 zzo38: I played Magic years ago, but remember it a bit, except for all the new cards, obviously. 07:55:04 kmc: well obviously it was a deferred question to be answered after you read it!! 07:55:05 kmc: still a good program after all these years 07:55:09 thx 07:55:14 kmc: That's a good question? 07:55:18 kmc: you should see Perl 6's support for syntax trees 07:55:26 it's some of the heftiest I've ever seen in a language 07:55:30 kmc: Minus the question mark, that is. 07:55:32 some of it's making its way into Perl 5 libraries, too 07:55:38 Perl seems like "hey awk and sed and shell are all useful, let's make a language that does all that" 07:55:43 and nothing more principled than that 07:55:50 Perl *is* still a really good awk/sed/shell replacement 07:55:51 i heard perl gets scoping right 07:55:53 farrioth: That is good enough, as long as you have seen how many newer cards (past Alpha or something) are often seeming to use a common syntax so they are worded in very similar ways. 07:55:58 better than, say, python or ruby 07:56:11 so maybe i should learn it 07:56:14 Perl just lets you do what you like in terms of scope 07:56:20 it has lexical scope and dynamic scope 07:56:27 and the ability to inject things into other scopes 07:56:28 snobol gets scoping right. it has no scoping. learn snobol 07:56:32 all under user control 07:56:33 COBOL may be at approx. the correct "compromise" between programming and natural language, for its application, it seems like; especially from kmc's program it looks like that 07:56:40 oh, and two different sorts of global 07:56:41 zzo38: Sort of, but some examples (pictures of cards?) would be nice. 07:56:42 thanks kmc. 07:56:43 >_____> 07:56:54 mauke was being convincing about maybe i should learn perl 07:56:58 `seen mauke ever 07:57:17 (the very globalliest globals have names starting with a dollar followed by a control character, you normally type them as ${^Example} but you could use a literal control-E and omit the braces if you really wanted to) 07:57:24 zzo38: but it's only "natural language" in that you have to write several long keywords instead of a curly brace 07:57:26 actually i don't think he was trying to convince anyone but maybe i'll do it anyway 07:57:27 2011-09-03 07:36:50: when things would be ambiguous otherwise 07:57:30 how is that an improvement on anything 07:57:34 i learned a little bit of perl. so many little symbols to know. so hard to read code. 07:57:57 much symbols 07:58:01 very punctuation 07:58:06 i want a language based on machina carnis 07:58:07 well, Perl tends to have good mnemonics for the weird punctuation combinations 07:58:07 wow 07:58:16 ais523: or there's that English module 07:58:19 which just gives them good names 07:58:30 kmc: I actually prefer the short names 07:58:35 you may ask what the fuck, to which i respond, what your fuck 07:58:36 $_ is basically just a pronoun 07:58:48 a good English name for it would be close to $it 07:58:53 how about $hit 07:59:07 -!- Bike has quit (Quit: Lost terminal). 07:59:17 actually this explains why @_ is used for procedure argument 07:59:23 kmc: Well, things are easily enough to understand if you know some things about programming, even if not knowing the programming language; and yes the way that it is only "natural language" in the way you specified, is what I mean by a good way I think so. For example I can easily see what all the divisions mean, and could easily guess what "WITH NO ADVANCING" means. 07:59:25 because its meaning is not too far from "them", and the @ indicates a plural 08:00:00 -!- Bike has joined. 08:00:02 intriguing new research suggests i am a dumbass 08:00:42 ais523: Perl is starting to look more NLy than I thought. 08:00:50 @ made sense to me. cuz i used it to make @rrays 08:00:50 farrioth: You can look up pictures (or even just text) of cards pretty easily, but I can even just type some card texts here too. 08:01:07 one good example is slicing arrays 08:01:26 zzo38: Give me some cards to look up, or type here, your preference. 08:01:26 if I have an array, say @a, then if I take one element from it, I get $a[2], and if I take two, I get @a[2,3], for instance 08:01:31 zzo38: Or message me if they're long. 08:01:50 zzo38: yes it's true, 'WITH NO ADVANCING' is more clear than e.g. a trailing comma in Python 2 08:01:51 the sigil at the start reflects whether I'm producing a single or plural quantity 08:01:51 The card "Recuperate" says: Choose one--You gain 6 life; or prevent the next 6 damage that would be dealt to target creater this turn. The card "Drifting Meadow" has three abilities; the first is: Drifting Meadow comes into play tapped. 08:02:05 zzo38: however I don't think one should optimize a language to be read by people who don't know the language 08:02:07 it's not part of the array itself; Perl uses the square brackets to know that I mean an array @a rather than a scalar $a 08:02:24 zzo38: there are some tradeoffs of course; the trailing comma in Python is also bad and special (and gone in Python 3) 08:02:25 * Bike applies what ais is saying to matlab in order to amuse himself 08:02:58 kmc: I agree. 08:02:59 kmc: And in BASIC you use a trailing semicolon. And yes I agree with you in general that you don't think one should optimize a language to be read by people who don't know the language; I am simply saying there are such cases, and COBOL is one of them, due to its intended applications especially. 08:03:00 Bike: I saw someone editing some Matlab code on Friday 08:03:05 ais523: i'm sorry 08:03:08 kmc: (Re the optimisation.) 08:03:11 but originally assumed it was Objective C because of the file extension 08:03:19 Bike: are you opposed to matlab 08:03:21 and got very confused 08:03:24 Objective Matlab++ 08:03:25 ais523: yeah emacs does that too 08:03:26 quintopia: yes 08:03:30 matlab-- 08:03:38 i love that Objective C++ is a real language supported by GCC and not an esolang joke 08:03:55 farrioth: The phrase "comes into play tapped" can be considered a phrase by the parser; the card name could be entered "~" and treated as a phrase by the parser too, while the prettyprinter can expand it to the card's name. 08:03:56 oh okay. well i like it as a language. it's great for doing linalg 08:04:33 -!- Lymia has quit (Ping timeout: 272 seconds). 08:04:33 it's got a good ide and it has useful linalg features i haven't seen elsewhere but i hate everything else about it. 08:04:41 anyway, lots of people get confused by what the sigils mean in Perl 08:04:58 zzo38: I see. Remind me what the relevance of this is though? I've forgotten. 08:05:02 especially because most tutorials start off with "$ means scalar, @ means array", and then people assume they should use @ to refer to an array if they're indexing it 08:05:14 so the natural-language-likeness of it is simply just confusing 08:05:25 like a real natural language! 08:05:30 farrioth: I think zzo38 considers Magic card text to be a programming language 08:05:42 farrioth: You can do an "almost natural language", is what I mean 08:05:48 it's pretty close already (and has only become more so because of Magic Online) 08:05:50 ais523: To program Magic players? 08:05:58 farrioth: if you like 08:06:22 who can tell me things about that one category where objects are categories and arrows are adjunctions 08:06:29 zzo38: As in, Magic cards are NL-like, but arguably not really NL because they are formulaic? 08:06:36 since it's a game it's more like a protocol language than a programming language? 08:06:47 farrioth: that does seem to be the way the TM works. of course, the hard part is leaving all the players with only one possible move so that they have to cooperate. 08:06:52 other formulaic NL text: laws & contracts; math papers 08:06:56 it will be a sad day when i know anything about magic 08:07:02 also, there's that proof that Magic is Turing-complete 08:07:08 farrioth: Something like that, yes. Not *exactly*, which is why I think such a "hybrid" approach is better 08:07:14 ais523: What? 08:07:30 although the current setup requires all players to do something other than nothing when the game gives them a choice 08:07:43 zzo38: What are you approaching? 08:07:55 the periphery shield of vortex four 08:08:10 Take an approach which allows entry in a way somewhat better for programming it while still working well for displaying too; for example, text in parentheses is a comment printed in italics (the parentheses are printed too); text in square brackets is a comment but is printed as is except the brackets are omitted; text in [- ... -] is Haskell code which isn't printed; ~ is printed as the card name; =s after a word is a plural; etc 08:08:17 farrioth: http://www.toothycat.net/~hologram/Turing/HowItWorks.html 08:08:33 ais523: do you expect it is possible to remove the "do nothing" option from every single turn? 08:08:45 I had a small contribution to that (pointing out that an older version of the setup was wrong due to confusion caused by Wolfram propaganda) 08:08:53 quintopia: that's the major unsolved problem atm 08:09:00 I think it may be possible, but it'd require a different setup 08:09:11 it is a v. popular game at my current workplace 08:09:11 (You would only use =s at the end for plurals of subtypes (rather than keywords), so something like "Desrtoy all Cat=s." instead of "Destroy all Cats." 08:09:19 basically the problem is that there are so few phasing-related cards, and it's quite hard to replace phasing in the setup 08:09:25 my dad wanted me to read a contract based on "you're a mathy guy" or somesuch 08:09:26 so i have played it a little bit and i even have, uh, a few hundred cards or something 08:09:33 (But, "Draw 3 cards." (not "Draw 3 card=s.").) 08:09:33 my dad is an authority on all matters, so kmc is right 08:09:44 hmm, I wonder if zzo38 would like grammartree 08:11:04 zzo38: What is the application of such a language? 08:11:51 farrioth: In order to create Magic: the Gathering cards, so that you can both generate the pictures of the cards (such as to print out) and to run them on a computer program. 08:11:56 quintopia: oh right, the main complication is that all the currently known cards that force spells to be cast with no decisions by anyone trigger at particular points in a turn 08:12:05 meaning that you can't set everything up entirely in one turn 08:12:14 unless you know of a way to produce infinitely many upkeep steps? 08:12:17 in one turn? 08:12:37 zzo38: Ah, that makes sense. But if they're so formulaic already, why not just make a parser which can understand them? 08:12:56 zzo38: Perhaps with extensions to allow you to describe difficult-to-parse cards. 08:13:05 you know what's really annoying. when you're reading a book and there's a typo of an open bracket or something so the whole rest of the book is quoted 08:14:31 farrioth: There are things like using ~ for "this card" and stuff too, and to make the parsing work more simplified and working better; there are those and other reasons why I think it would be improvement to *not* enter them as "pure natural language" but rather to *almost* do it. 08:14:55 (Anyways, using ~ in such a way is already common when entering card texts) 08:15:15 zzo38: I think Wizards write it as "CARDNAME" internally 08:15:42 zzo38: Sure, but a parser doesn't need to care about the difference between "~" and "this card". 08:15:47 ais523: Yes and it can be programmed to support that too (or instead) if done 08:16:16 there should be an esolang named Heptapod B 08:16:21 farrioth: well, "this card" doesn't work, because then the card would stop working if someone made a token copy of it 08:16:22 -!- Sprocklem has quit (Ping timeout: 240 seconds). 08:16:30 farrioth: Wrong. Both the parser and the printer need to care. The printer so that it can display the card's name properly, and the parser in case it is in a quoted ability. 08:16:30 it'd have to be "this permanent" (or the appropriate for abilities that trigger in other zones) 08:16:57 oh, hey, kmc's reading /that/ 08:17:10 Bike: well I read that story a while ago, but it's in a book with some others 08:17:16 oh 08:17:20 some of which I read today 08:17:21 ais523: Could you explain, please? 08:17:24 well i hven't remembered it anyway 08:17:27 k 08:17:37 farrioth: it's just a rules technicality: a token isn't a card 08:17:40 wow that wasn't even a coherent thought 08:17:41 ais523: Actually I think the rules specify that in such cases it does actually still work 08:17:43 zzo38: But it doesn't matter what name you give the token. 08:18:00 zzo38: huh, really? if so then it's a specific weird special case 08:18:04 ais523: Oh, tokens have a meaning in Magic. That's right. 08:18:07 kmc: today i wore a wristband with some text on it 08:18:21 i read the text out loud and then said "would be a good name for a band" 08:18:32 :) 08:18:33 It doesn't mean it has to be a card. In the example syntax I gave you could even enter it as "this [card]" rather than "this card" if you *do* need literally "this card" on the card, then it would make the parser easier and more sensible. 08:18:36 but was it? 08:18:55 it was kind of long and awkward 08:19:17 also i said it to Gracenotes so ask him 08:19:44 i liked the part in the one story where gur xnoonyvfg thl vairagf gur l pbzovangbe 08:19:59 i agree 08:20:20 hmm i only vaguely remember that story 08:20:26 zzo38: btw, you might be interested in http://www.toothycat.net/wiki/bnf.pl?page=AlexChurchill/MagicCardGenerator , which works using a parser for Magic card text; it runs the parser /backwards/ to produce legal cards 08:20:49 often not very sensible ones, though 08:21:42 For example: Enchanted permanent gains "{T}: Destroy ~." Therefore the ~ should be treated as the timestamp of the card it is printed on at the time when the effect containing the ~ is used, it will make ~ into that card's timestamp. 08:22:00 ais523: Hah, nice. 08:22:04 "tap up to four target permanents and tap those permanents" 08:22:18 anyway, I liked the discussion before it got derailed by Magic 08:22:28 ais523: Me too. 08:22:55 jesus christ yes nerds 08:23:14 I wonder if var'aq is considered natrualistic. 08:23:25 anyway, I can't think of any programming language more natural-language-like than Perl, in terms of semantics rather than syntax 08:23:34 except Perligata, which puts natural language syntax onto Perl 08:23:37 Yes, you also should parse phrases like "up to " and "those" and so on. 08:23:41 in addition to matching the grammatical behaviour up 08:23:55 ais523: Perligata isn't more natural-language-like than Perl, in terms of semantics rather than syntax. 08:24:03 "To assign a value to a variable you must first push the value, then the name of the variable onto the stack. To push the name of a variable instead of its value, the spec tells you to use lI'moH operator. The cher operator can then be used to bind the value to the variable name." eh 08:24:09 shachaf: right, it's mostly just syntax 08:24:23 very disappointed that this artigcle isn't written in klingon 08:24:23 Bike: like Underload but with pointers? 08:24:42 "Humanity confuses more destructively than the awesome language" 08:24:56 huh, MagicCardGenerator produced insightful and ontopic flavour text 08:25:41 ais523: Perhaps PERL is quite NL-like in terms of semantics. Interesting, as I was thinking only about syntax (and lexicon, I suppose) to begin with. 08:26:10 `quote 152 08:26:12 152) syntax is the least important part of a programming language other than Python 08:26:16 ais523: Which raises the question of how many of the languages mentioned are really naturalistic syntactically rather than just lexically. 08:26:28 my guess is, not many 08:26:34 Mine too. 08:27:09 I think the experience of Perl shows that people tend to dislike naturalistics in their programming languages 08:27:25 ais523: Wait, was that actually flavour text? You had me thinking it was from the var'aq page. We should probably add it in. 08:27:26 As it turns out I also wrote a program to make up random Magic: the Gathering card texts, although very incomplete 08:27:28 I'd rather play Sandwich: The Card Game. 08:27:40 me too 08:27:41 Hmm. 08:27:43 farrioth: it was flavour text generated by that random magic card generator 08:27:44 `quote sandwich 08:27:46 185) Invent the game called "Sandwich - The Card Game" and "Professional Octopus of the World" (these names are just generated by randomly) \ 683) There.... is a box of Gardasil next to the butter in my fridge. At least my sandwich will be immune to cervical cancer *and* genital warts, I suppose. 08:27:48 Sandwich - The Card Game 08:28:02 how many octopus quotes do we have 08:28:05 `quote octopus 08:28:07 185) Invent the game called "Sandwich - The Card Game" and "Professional Octopus of the World" (these names are just generated by randomly) \ 214) ais523: Maybe it is better, because I don't think the octopus will live very well in the tree. But the difference is that the Internet is lying and you cannot see such things; you could m 08:28:09 http://videogamena.me/ 08:28:16 `pastequotes octopus 08:28:16 `run quote octopus | shuf 08:28:18 185) Invent the game called "Sandwich - The Card Game" and "Professional Octopus of the World" (these names are just generated by randomly) \ 214) ais523: Maybe it is better, because I don't think the octopus will live very well in the tree. But the difference is that the Internet is lying and you cannot see such things; you could m 08:28:22 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.27447 08:28:24 ais523: What was the name of the card it went with? 08:28:26 two. well, almost acceptable 08:28:32 Bike: just two 08:28:40 farrioth: there wasn't one, it doesn't generate names 08:28:46 I would also like to play Professional Octopus of the World. 08:28:49 i shall make a note to talk about octopuses at least once a day 08:28:51 I forgot to copy-paste the attribution 08:29:05 zzo38: Has anyone invented either of those games yet? 08:29:11 ais523: You're right. 08:29:12 so: what's the deal with being smart even though they don't use myelination?? 08:29:33 Bike: they have really really thick nerves to compensate 08:29:41 yes, assholes 08:29:42 like, they're measured in centimetres 08:29:51 a centimetre-wide cell is mindboggling 08:30:01 nobody tell ais about slime mold. 08:30:11 squid giant axons are 1 mm, though. 08:30:14 Haha. 08:30:15 dunno what you're thinking of 08:30:22 "this slime mold juice is delicious!" 08:30:30 Bike: probably I was just off by an order of magnitude 08:30:38 great, now i'm actually wondering what cytoplasm tastes like 08:30:49 probably not very good, generally 08:31:01 it probably tastes much like water 08:31:06 because it mostly is water 08:31:08 or, well 08:31:20 if you blend pretty much any organic material, there's going to be cytoplasm in there 08:31:22 some cells are pretty much more proteins than water. 08:31:28 but it's not the main contributing factor to the taste 08:31:33 you get weird hydrodynamics. 08:31:37 also, protein tastes of protein 08:32:06 what was my nethack fruit called, anyway 08:32:07 maybe i'll just down some blood plasma 08:32:18 mine was 'schizocarp', ia m the opposite of creative 08:32:39 oh, beautiful: this random card costs 4, flips into a 1/1 when there are at least 2 lands in play, and gives itself +1/-1 08:32:45 good luck trying to use /that/ thing 08:32:51 shachaf: I don't think someone invented those game and I don't really intend 08:33:10 shachaf: I use "avocado" locally, just because I wanted a real fruit that probably wasn't in the game already 08:33:14 I don't think I've ever eaten one 08:33:19 normally I just leave it at the default online, though 08:33:29 -!- constant has changed nick to variable. 08:34:00 hm mauthner cells are also huge but fish are vertebrates. how vexing 08:34:56 now I'm wondering if there are any organisms with bones but not backbones 08:35:39 no. backbones evolved before bones. 08:35:49 assuming you don't count things like cuttlebones. 08:36:25 'bone' could mean any number of things, i suppose~ 08:37:01 i don't understand 08:37:06 nethack lets you name fruits? 08:37:12 quintopia: one specific fruit 08:37:15 has a customizable name 08:37:32 it's normally just called "fruit" when people are talking about it, or sometimes "slime mold" after the default value 08:38:48 Gross 08:40:39 btw, a while back I was working on a natural language deparser in order to make NetHack produce better messages 08:40:53 as in, it did substitutions at the natural language parse tree level, rather than the textual level 08:41:04 and add in pronouns, etc. 08:41:14 but it was never finished, and we temporarily abandoned it so that we could get actual work done 08:42:05 ais523: Do you have the code around still? 08:42:25 farrioth: yes 08:42:33 farrioth: How's your interpreter coming along? 08:42:58 farrioth: https://gitorious.org/nitrohack/ais523/source/36824d7535d3ac7614875de4ec7559358d1860b1:libnethack_intl 08:43:22 although note that we think there may be problems in the model of natural language it uses 08:43:34 in fact, it sort-of collapsed into design-by-committee as to what those should be 08:44:08 farrioth: also there's some documentation in https://gitorious.org/nitrohack/ais523/source/36824d7535d3ac7614875de4ec7559358d1860b1:doc/grammar.txt 08:44:21 ais523: so the idea would be to store language models for each language? and then construct the messages from the tree after substitution? and hope the model is good enough the result comes out grammatically correct? 08:44:32 quintopia: that's it, basically 08:44:57 mroman: I have most of a Tape class and a DistortionMap class, but haven't done any work since yesterday since I had food poisoning. I do plan to work on it more, though. 08:44:59 the tree used tokens to represent words, which were mostly the same as the word in English, except that if there were two homographs in English they'd have different tokens in grammartree 08:45:11 ais523: Thanks, I'll take a look some time. 08:45:50 ais523: grammartree? is this the thing you were above wondering if zzo38 would like? 08:45:54 it was illuminating learning about the special cases in English 08:45:55 quintopia: yes 08:46:17 also, I wasn't planning to cover all of English 08:46:21 just the subset that NetHack uses 08:46:24 mroman: I though about re-implementing it in R since the inherent vectorisation would make applying distortion easier, but decided I don't know R well enough to do that sort of thing in it at present. 08:47:00 farrioth: also letting it be in python means i can create a module for it for my upcoming universal IDE :D :D: D 08:47:52 quintopia: Cool. 08:48:16 quintopia: How is your said universal IDE coming along? 08:49:07 farrioth: well it's mainly to help me learn python and tk. i have figured out how to do menu of the things i need it to do already, though i am not sure about the current problem i'm trying to solve 08:49:15 s/menu/many/ 08:49:54 quintopia: What is the current problem? And why TK, by the way? 08:50:58 farrioth: those two questions should not be answered concurrently as they are very different discussions 08:51:04 farrioth: which do you want to start with 08:54:21 quintopia: Let's start with the current problem. 08:54:43 -!- LinearInterpol has joined. 08:54:44 quintopia: And I should mention that I'm currently cooking, so may respond slowly. 08:59:00 farrioth: let's say that every language stores its UI and interpreter in a module which defines a class (implementing a specific abstract class), and all these modules are just stored in some folder. without any further config files, i want the IDE to be load these modules as needed in association with source files of the language they are for. 08:59:00 -!- Taneb has joined. 08:59:44 i have read about using __import__, but i'm not sure what i should do to make sure I am keeping around an instance of the class loaded from the module 09:00:04 how do you get an instance of a class you don't know the name of until you have loaded the module? 09:01:00 i suppose since i know the abstract class it implemented, i could find a class definition in the loaded namespace that claims to inherit from that class? 09:02:06 or should i eschew __import__ and use execfile instead, creating a namespace for the exec'd file from the info about the IDE it needs? 09:02:36 but the latter may introduce problems with destruction of the classes so loaded, and so i go in circles 09:05:42 quintopia: What are the classes defined in each module being used for? Do they define the UI and interpreter? 09:05:58 farrioth: yes. 09:07:27 hmm i have an idea 09:07:41 quintopia: Just give them generic names like UI and Interpreter, you won't get a conflict assuming that you're only using one language at a time. 09:07:58 quintopia: Or, if using multiple languages, they will be in different instances. 09:08:26 farrioth: explain that last? 09:08:42 because yes it will be possible to have several different language types loaded at once 09:10:53 quintopia: You will have multiple editors or whatever, one for each language, and can set the active language individually for each editor. 09:10:54 Recently lots of people have food poisoning o_O 09:11:54 quintopia: import befunge 09:12:00 quintopia: UI = befunge.UI 09:12:05 quintopia: And so forth. 09:15:06 farrioth: but i won't know there is a module named befunge 09:15:26 quintopia: or UI = befunge.UI() if you want to make an instance of it. 09:15:48 farrioth: it will look more like: for all i,files in enumerate(folder): ns[i] = __import(file)__ 09:16:19 how do i create an instance in my namespace from something defined in another namespace? 09:17:11 quintopia: Oh, I misunderstood you, I assumed that you didn't know that you needed a module called befunge, not that a module called befunge existed. 09:20:09 also i misplaced some underscores there whoops 09:22:01 kmc: now i remember it 09:22:15 -!- LinearInterpol has quit (Ping timeout: 252 seconds). 09:27:13 quintopia: I would have used exec("import %s"%i) but that might be considered improper. 09:28:26 quintopia: But presumably you'll only use a language module on filetype identification or when a user requests it, so there's no point importing them on enumeration. 09:28:41 farrioth: sure. righto. 09:29:05 farrioth: but i was thinking of enumerating them to extract the filetype/module associations 09:29:18 so i know what filetypes i support 09:30:11 s/type/extension 09:31:54 I've actually got a Nigerian Finance Minister spam 09:32:55 quintopia: I would have just stored that information separately, but that does mean you have to maintain a central list of them. 09:33:37 quintopia: You could make a function which enumerates everything and writes a file containing filetype associations, so that you only have to enumerate when a new language module is added. 09:39:08 Taneb: bite the hook. coax a picture out of them. 09:39:17 quintopia, can't be bothered 09:40:54 farrioth: yes that is doable, but i'm still iterating the files to find one newer than the associations file every time i start. would it be all that faster than just rebuilding the table each time? 09:43:05 quintopia: I was thinking to only rebuild the table when requested. 09:43:49 quintopia: Plus you wouldn't have to do a complete rebuild, only add in the new definitions, so it probably would be faster, but perhaps only marginally. 09:44:03 quintopia: How many languages do you have defined so far / expect to have defined? 10:00:17 -!- MindlessDrone has joined. 10:16:41 -!- Taneb has quit (Read error: Operation timed out). 10:19:30 Natural language programming at its best/worst: http://system-english.com/?page=sepapers 10:21:06 OSMOSIAAAAN! 10:24:33 There's already lolcode 10:24:43 that's practically natural language programming 10:25:21 only for cats 10:25:28 Haha, good point. 10:25:58 I mean 10:26:13 yeah 10:26:33 -!- qlkzy_ has quit (Quit: ZNC - http://znc.sourceforge.net). 10:27:05 It probably actually qualifies as much as COBOL or AppleScript, except for its limited number of instructions. 10:28:05 -!- ineiros_ has quit (Remote host closed the connection). 10:28:06 -!- stuntaneous has quit (Remote host closed the connection). 10:28:36 -!- ineiros has joined. 10:29:13 -!- qlkzy has joined. 10:32:33 farrioth: WhO kNoWs?? 10:32:49 InFiNiTeLy MaNy 10:34:09 -!- qlkzy has quit (Quit: ZNC - http://znc.sourceforge.net). 10:35:14 -!- qlkzy has joined. 10:36:01 quintopia: Personally, as a user, I'd prefer to call Update Language Definitions if/when I install a new language module, rather than have it re-enumerate every startup, but checking for new modules on startup and updating file associations then wouldn't be too bad, especially if it's done in the background. 10:37:15 quintopia: Or you could update the definitions if the IDE loads a file it doesn't recognise, since that is probably something a user will do soon after installing a new language. 10:37:28 quintopia: With an option to manually update definitions too. 10:37:31 farrioth: oh nice i like that idea 10:37:48 quintopia: If you weren't lazy you'd make it configurable, of course. 10:37:49 quintopia: Cool. 10:39:01 farrioth: you mean the file association is configurable? that's easy. since each module defines what file extension it wants, if you want to configure them, just modify the line of the associated module, and manually update definitions! 10:39:45 quintopia: No, I mean the user can choose whether the definitions get checked/updated every startup or not. 10:40:28 farrioth: oh yeah i'm probably too lazy for that :P 10:41:43 so i just realized the MTGTM page has a whole page dedicated to how all credit for anything creative anyone does actually goes to God. so...FUCK ALEX CHURCHILL. THANK GOD FOR THE MTG TM! 10:41:50 import config 10:41:50 if config.update_defs: update_defs() 10:42:06 well i could do that much 10:42:16 but i'm NOT MAKING A DAMN CONFIGURATION UI 10:43:00 Just have your config file be a python module which gets imported. Not secure, but that isn't a problem in this case. 10:43:57 -!- qlkzy has quit (Quit: ZNC - http://znc.sourceforge.net). 10:51:02 -!- qlkzy has joined. 10:51:21 -!- FreeFull has joined. 10:53:59 -!- ineiros has quit (Remote host closed the connection). 10:55:24 -!- ineiros has joined. 10:56:02 -!- qlkzy has quit (Ping timeout: 264 seconds). 11:00:15 -!- qlkzy has joined. 11:22:40 "perl -pe 's/^(.*)$/\L$& \U$&/g'" is there a shorter way to capitalize a string in a shell command 11:23:00 (which contains newlines0 11:24:28 hmm… what about "perl -000 -e 'print uc <>'" 11:24:32 I think that's shorter; does it work? 11:24:41 alternatively, tr a-z A-Z 11:24:48 although that one isn't Unicode-aware 11:37:23 -!- Taneb has joined. 11:47:19 I'm off to bed, see you all around. 11:47:27 -!- farrioth has quit (Quit: leaving). 11:50:10 -!- muskrat has joined. 11:53:55 -!- Slereah_ has joined. 11:57:21 -!- Slereah has quit (Ping timeout: 252 seconds). 12:14:12 -!- nooodl has joined. 12:14:53 -!- Taneb has quit (Quit: Leaving). 12:17:50 Hi 12:21:07 `welcome Vorpal 12:21:09 Vorpal: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: . (For the other kind of esoterica, try #esoteric on irc.dal.net.) 12:22:32 -!- ais523 has quit. 12:54:03 -!- Phantom_Hoover has joined. 13:37:43 anticipation error hmmmmmmmmmmmmmmmmmmmmm 13:44:12 Phantom_Helloover 13:52:09 -!- yorick has joined. 13:59:38 -!- MindlessDrone has quit (Ping timeout: 264 seconds). 14:07:59 -!- carado has joined. 14:14:06 -!- MindlessDrone has joined. 14:50:10 -!- Taneb has joined. 15:10:16 -!- muskrat has quit (Quit: Leaving). 15:29:22 hey 15:29:41 what are the prerequisites to know before reading the homotopy type theory book? 15:32:38 -!- LinearInterpol has joined. 15:38:16 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds). 15:38:27 -!- Sorella has joined. 15:39:03 -!- Sorella has quit (Changing host). 15:39:03 -!- Sorella has joined. 15:39:30 -!- tromp has joined. 15:40:05 -!- Phantom_Hoover has joined. 15:43:18 -!- conehead has joined. 16:00:06 -!- LinearInterpol has changed nick to [li]|Gaming. 16:00:46 quintopia: Just start reading it, and if there is anything you don't know, research it 16:03:42 i guess "topology" and "type theory" will come up quite a bit 16:05:44 The first chapter is completely about just type theory 16:06:09 Being familiar with dependent types is useful 16:15:39 -!- tromp has quit (Remote host closed the connection). 16:16:15 -!- tromp has joined. 16:20:14 -!- tromp has quit (Ping timeout: 240 seconds). 16:20:56 -!- tromp has joined. 16:22:24 -!- conehead has quit (Quit: Textual IRC Client: www.textualapp.com). 16:29:21 -!- conehead has joined. 16:31:25 -!- muskrat has joined. 16:34:27 -!- muskrat has left. 16:34:44 -!- Phantom_Hoover has quit (Ping timeout: 265 seconds). 17:17:33 -!- conehead has quit (Quit: Computer has gone to sleep.). 17:29:37 -!- conehead has joined. 17:59:29 -!- tromp has quit (Remote host closed the connection). 18:07:22 -!- tromp has joined. 18:11:01 -!- [li]|Gaming has changed nick to LinearInterpol. 18:11:55 -!- Phantom_Hoover has joined. 18:28:12 -!- Zuu has joined. 18:29:44 -!- Zuu has changed nick to ZuuSantaClaus. 18:54:56 -!- tromp has quit (Read error: Connection timed out). 18:56:48 -!- MindlessDrone has quit (Quit: MindlessDrone). 18:57:57 -!- tromp has joined. 18:59:15 -!- Sprocklem has joined. 19:09:16 -!- tromp has quit (Remote host closed the connection). 19:09:52 -!- tromp has joined. 19:10:03 http://i.imgur.com/FbEzLiL.jpg 19:14:14 -!- tromp has quit (Ping timeout: 265 seconds). 19:15:23 -!- impomatic has joined. 19:19:15 -!- Phantom_Hoover has quit (Ping timeout: 260 seconds). 19:26:51 http://venturebeat.com/2013/12/13/youtubes-out-of-control-content-id-system-even-flagged-jonathan-blow-for-posting-footage-of-his-own-game/ 19:27:47 -!- ZuuSantaClaus has quit (Remote host closed the connection). 19:31:56 ion, oh wow 19:32:46 -!- Zuu has joined. 19:33:13 -!- Phantom_Hoover has joined. 20:35:18 -!- Slereah_ has quit. 20:44:16 ion: that link just put dolphin browser into an infinite url-loading loop. i didn't even know that was possible. 20:45:10 nice 20:45:19 Sounds like quality software. 20:45:54 -!- Bike_ has joined. 20:46:55 -!- Bike has quit (Disconnected by services). 20:46:57 -!- Bike_ has changed nick to Bike. 20:47:18 it is actually. this is the first time i've seen a bug like this in the three years i've used it 20:49:04 did they forget to limit redirect loops or something? 20:49:25 no idea 20:51:16 quintopia: It's possible to create redirect loops 20:51:53 it's browsers who should limit them :) 20:54:02 mroman: but the link above presumably worked for ion and vorpal, so i doubt that's what's going on 20:55:46 they probably didn't use dolphin 20:56:53 yes but what happens when a redirect is limited? 20:57:46 -!- Zuu has quit (Ping timeout: 245 seconds). 20:57:52 -!- Zuu has joined. 20:59:09 loading finishes with an error page, usually 21:00:59 i don't think they got an error page 21:01:02 well, besides 301 and friends it could also be a http refresh with a small delay, or some javascript setting window.location. 21:01:59 int-e: wouldn't the browser have to at least rate limit those as well? 21:02:57 maybe. I'm not ready to pass judgement on that ;) 21:03:45 -!- Taneb has quit (Ping timeout: 240 seconds). 21:12:56 quintopia: are they using dolphin too? 21:17:00 ... 21:42:03 -!- Slereah has joined. 22:10:15 -!- tromp has joined. 22:14:29 -!- tromp has quit (Ping timeout: 248 seconds). 22:19:42 -!- muskrat has joined. 22:33:11 Someone has made up an extension of TeX for supporting multiple kind of marks on a page rather than just one kind, but I have made up a way to do it without using those extensions. In fact a large number of things can be done without any extensions. 22:41:40 -!- tromp has joined. 22:55:58 -!- KingOfKarlsruhe has quit (Quit: ChatZilla 0.9.90.1 [Firefox 26.0/20131205075310]). 23:08:02 -!- oerjan has joined. 23:09:50 -!- KingOfKarlsruhe has joined. 23:13:29 -!- doesthiswork has joined. 23:14:45 -!- tromp has quit (Ping timeout: 248 seconds). 23:40:27 I am currently typing the Dungeons&Dragons game according to I played it yesterday 23:45:20 write some brainfuck to type it out for you. 23:45:46 less character variance and relevant! 23:46:12 I just type it manually 23:48:22 -!- mgdvoe has joined. 23:48:34 -!- mgdvoe has quit (Remote host closed the connection). 23:50:09 -!- carado has quit (Ping timeout: 252 seconds). 23:53:18 `danddreclist 46 23:53:20 danddreclist 46: shachaf nooodl boily \ http://zzo38computer.org/dnd/recording/level20.tex 23:54:43 Do you know the *real* reason why Kjugobe doesn't want the door for the prison cell opened? (It isn't to prevent him from escaping. He already cannot escape.) 23:55:10 he wants the prisoner to be safe 23:55:14 maybe he smells _real_ badly. 23:55:19 quintopia: No. 23:55:37 -!- muskrat has quit (Quit: Leaving). 23:55:39 oerjan: No. There are bars; it isn't a plain door but rather bars so the smell would still come through. 23:56:02 hm i guess that takes care of my second guess of fire breath as well. 23:57:14 The prisoner is human and is also in a coma, so even if he has fire he cannot easily use it. 23:57:46 what would happen if the door were opened? 23:58:34 It would not affect the prisoner or cause damage to the ship if it were opened? Can you try to figure out why I didn't want it opened? 23:58:56 I can tell you if you don't know. 23:59:19 IS IT A TRAP 23:59:23 ITS A TRAP ISNT IT 23:59:49 I am pretty sure it is *not* a trap, actually, but that has nothing to do with it either.