00:20:13 -!- augur has quit (Remote host closed the connection). 00:31:17 -!- augur has joined. 00:36:40 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 00:54:31 > [50e-9, 70e-9] <**> (/0.0024168918) 00:54:32 The section `GHC.Real./ 2.4168918e-3' takes one argument, 00:54:32 but its type `[t... 00:54:43 urk 00:54:51 > [50e-9, 70e-9] <**> [(/0.0024168918)] 00:54:52 [2.0687727932214425e-5,2.89628191051002e-5] 00:55:12 > [50e-9, 70e-9] <**> [(^2).(/0.0024168918)] 00:55:14 [4.279820869973249e-10,8.388448905147571e-10] 00:55:36 -!- Jafet has left. 00:55:40 -!- Jafet has joined. 00:57:40 the gravitational time dilation at earth's surface, 6.9612e-10, is within that range. 00:58:10 could it be that neutrinos are simply not affected - by gravity? 00:58:57 while everything else, including light, is slowed down in a gravity well 01:00:02 Light isn't slowed in anything 01:00:04 > [50e-9, 60e-9, 70e-9] <**> [(^2).(/0.0024168918)] 01:00:06 [4.279820869973249e-10,6.162942052761478e-10,8.388448905147571e-10] 01:00:22 Jafet: erm are you not aware of the latest news 01:00:32 Well, anything that is a vacuum 01:00:44 they are claiming to have detected neutrinos traveling slightly faster than light 01:01:05 -!- copumpkin has joined. 01:01:12 i'm merely making a wild speculation of how this could be 01:01:50 which requires removing _some_ generally held assumption. 01:02:10 That would invalidate quite a large amount of theory 01:02:15 Not some 01:03:29 and then i wondered if it had anything to do with earth's environment, since the rumors did not say anything about the speed of neutrinos varying by their energy, as it would if they were "standard" tachyons 01:04:23 Besides, gravity is a consequence of spatial curvature. For something to respect relativity and travel faster than c, it has to go through some hammer space 01:04:30 So yes, that sounds really wild 01:05:17 and to me the most obvious factor of earth's environment which would possibly affect a neutrino (which otherwise mostly passes straight through earth) would be its gravity well, so i looked up gravitational time dilation for earth's surface 01:05:52 now admittedly i have no idea if it makes sense to take the square root of that 01:06:04 but at least the numbers fit then :P 01:07:29 oh and also there is the problem that the famous neutrinos from supernova 1987 were apparently _not_ sped up 01:08:03 but they wouldn't be traveling most of the way in a gravity well 01:08:11 anyway, wild speculation, as i said 01:11:43 All we can say for sure at this point is "WTF". 01:16:07 -!- ive has quit (Ping timeout: 256 seconds). 01:33:07 -!- azaq23 has quit (Ping timeout: 256 seconds). 01:35:01 -!- cheater2 has quit (Ping timeout: 240 seconds). 01:35:35 -!- cheater has quit (Ping timeout: 260 seconds). 01:48:15 -!- audy has quit (Quit: leaving). 01:59:35 -!- azaq23 has joined. 02:01:13 -!- ive has joined. 02:17:32 -!- MDude has changed nick to MSleep. 03:31:00 -!- azaq231 has joined. 03:33:10 -!- Madoka-Kaname has quit (Quit: Huggles for everybody~♪ ^_^). 03:33:29 -!- azaq23 has quit (Ping timeout: 255 seconds). 03:34:59 -!- Lymee has joined. 03:34:59 -!- Lymee has quit (Changing host). 03:34:59 -!- Lymee has joined. 03:35:04 -!- Lymee has changed nick to Madoka-Kaname. 03:36:27 -!- ive has quit (Ping timeout: 245 seconds). 03:38:51 -!- azaq231 has changed nick to azaq23. 03:40:04 -!- Jafet has quit (Quit: Leaving.). 04:23:26 -!- Jafet has joined. 04:29:53 -!- kmc has quit (Quit: Leaving). 04:36:40 -!- oerjan has quit (Quit: Good night). 04:56:25 -!- Zuu has quit (Ping timeout: 244 seconds). 05:36:17 -!- kmc has joined. 05:51:20 -!- azaq23 has quit (Ping timeout: 248 seconds). 06:04:55 :) 06:08:32 -!- sebbu2 has joined. 06:11:04 -!- sebbu has quit (Ping timeout: 248 seconds). 06:12:43 -!- sebbu3 has joined. 06:12:43 -!- sebbu3 has quit (Changing host). 06:12:43 -!- sebbu3 has joined. 06:15:52 -!- sebbu2 has quit (Ping timeout: 248 seconds). 06:27:31 -!- azaq23 has joined. 06:27:45 -!- azaq23 has quit (Client Quit). 06:27:54 -!- azaq23 has joined. 06:35:26 -!- Jafet has quit (Quit: Leaving.). 06:36:32 -!- monqy has quit (Quit: hello). 07:38:42 -!- monqy has joined. 07:42:47 -!- cheater has joined. 07:52:02 -!- azaq23 has quit (Ping timeout: 276 seconds). 07:53:56 fizzie: any idea why elliott's acronym generator would be statistically likely to generate actual words? 07:53:59 `wacro 07:54:02 `macro 07:54:03 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: wacro: not found 07:54:06 VEBLEN'S 07:54:10 `macro 07:54:14 WRUNG 07:54:18 `macro 07:54:23 IFFIER 07:55:02 doesn't make sense to me, if he implemented as I think he would. 07:59:52 !show macro 07:59:53 That is not a user interpreter! 08:00:01 oh right 08:00:05 hackego 08:00:06 right 08:00:16 `paste bin/macro 08:00:18 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.5766 08:00:47 a binary? repulsive 08:01:18 monqy is weird. 08:02:01 anyways I'm going to try my approach and compare it. 08:02:24 but I'll have to at least an hour for perl to traverse this data. 08:02:37 +wait 08:02:45 half an hour? how much data is it? 08:02:49 er 08:02:52 a whole hour? 08:02:57 hwat???? 08:03:09 well it's like 50-something gigs totally but I should probably only use one dataset for now 08:03:30 mmhm 08:04:26 * CakeProphet needs to test that the output is correct. 08:04:45 hopefully interpreting the generated data as a perl data structure will NOT take anywhere near as long as generating it. 08:05:02 > 27^3 08:05:03 19683 08:05:11 that's the total number of hash table entries. 08:07:34 actually using the perl interpreter to read the data instead of perl itself is probably faster. 08:07:38 since the interpreter is C. 08:08:39 CakeProphet: I don't know what it does. 08:10:08 `macro 08:10:12 IEYASU'S 08:10:37 I imagine it's some sort of bug or similar flaw 08:10:47 oversight 08:10:49 uhh 08:11:01 it would seem to me that there would be a much larger number of non-words than words. 08:11:16 this is because it isn't working properly 08:12:10 Running 'strings' on that binary at least returns a large wordlist; if it's done in the dissociated-press style "jump from one word to other place where there's the same context with probability P", then it might easily generate real words. 08:12:10 as elliott explained last night (or at least I THINK this happened), the infrastructure for it working is all there, but it doesn't 08:13:48 I have a feeling my approach won't generate as many real worlds, but perhaps will have more non-pronounceable outputs. 08:15:10 * CakeProphet just told emacs to open a half gig file 08:15:16 good job 08:15:16 should be fun. 08:15:32 * CakeProphet watches memory escalate rapidly and emacs become non-responsive. 08:16:37 there we go. 08:17:50 I really don't even understand why &Ward is an entry 08:17:54 or &ablir 08:18:51 uggh there's nothing in hackego's /usr/share/dict 08:19:04 this would be a lot easier if hackego had a nice small sample dictionary 08:19:50 I'm probably just going to dump my perl into a massive file and then pastebin then egobot. 08:20:03 all the data will be in the perl code. 08:22:33 CakeProphet: Here's 50 words generated from character trigrams: http://sprunge.us/MNHQ 08:22:57 good words 08:23:05 Not so many real words; though "hosted" is there. 08:23:20 so many of these are great 08:23:47 You're such a wigaticilitioutor. 08:24:06 I consider myself more of a faubblemarcus 08:24:25 Well, I should get back to flifeenothmemelling my ackingnarbeencies. 08:25:07 huh actually I don't think I've ever attempted to import a module in the current directory... 08:25:12 in perl 08:25:41 it should just be use name; right? 08:26:00 Yes, if '.' is in @INC, like it usually is by default. 08:26:08 alright. 08:27:29 use FindBin; use lib "$FindBin::Bin"; is also commonly done, to use modules that are in the same directory as the script. 08:28:25 (For pedants' sake: the paste wasn't exactly pure character trigrams; it was a Kneser-Ney-smoothed character trigrams with backoff. But that really shouldn't make that much of a difference.) 08:29:06 what exactly does that do for you. 08:31:19 muriverizzing, sounds like fun 08:31:49 I guess I should pass around this hash as a reference to avoid copying it all the time. 08:33:41 at least I think that's how it works.. 08:34:00 but I guess passing it as a ref and immediately dereferencing is pretty much equivalent to passing it referenced... 08:34:10 *dereferenced 08:35:38 What exactly does what do? 08:35:53 actually no I think passing the hash itself would be more expensive than passing the reference and dereferencing 08:35:56 due to Perl's call semantics. 08:36:33 fizzie: I have a hash of hashes. the outer hash is keyed by the first two characters of trigrams. 08:36:54 the inner hashes are keyed by the last character, with the value being the frequency. 08:37:20 Sounds reasonable, though the inner hash could easily be an array instead. 08:37:33 ah true. 08:38:07 so to generate the next character you just lookup your last two characters and then randomly pick an element from the inner hash based on frequency. 08:38:26 with two spaces being used at the start. 08:39:21 I guess memory-wise the array would be smaller. 08:40:20 If you don't ever look things up from it based on the character, just iterate through, it might as well. 08:41:11 oh you mean an even-length array of key value pairs? 08:41:32 I didn't want to associate each index with a character as I might include other languages, so I wouldn't want the characters to be hardcoded into the algorithm. 08:41:58 Either that, or an array of two-element arrayrefs. The first option would use less memory, at the cost of maybe being a bit more hacky. 08:42:31 Depending on how you do "randomly pick", you might be able to save one iterate-through-it pass by putting the sum of all frequencies into the node. Something like $foo{"ab"} being { sum => 42, chars => ['a', 1, 'b', 2, 'c', 38, 'd', 1] }. 08:42:32 well the first option is the default representation of a hash in list context I believe. 08:42:39 It is, yes. 08:43:41 and iterating wouldn't be difficult. while(@array) { my ($a, $b, @array) = @array; ...} 08:44:00 but I'm kind of already in the middle of generating the hash tables so... I'll use that for now. 08:45:31 That loop will just give $a, $b = first two elements of @array for ever. 08:45:49 Since the 'my' generates a new lexically scoped @array for the tail. 08:45:54 oh that's right. 08:46:00 yeah I'd just use the my above the loop then. 08:46:49 That works, but might involve quite a lot of copying, unless Perl is being clever. I don't know enough of the internals to be sure. 08:47:29 dunno. the array size is only 27 though, so not a huge deal. 08:48:11 shifts might be more efficient. 08:49:42 for (my $i = 0; $i <= $#array; $i += 2) { my ($a, $b) = @array[$i..$i+1]; ... } is guaranteed not to have to shift the array data around. 08:50:19 Anyhow, it's probably not going to be your bottleneck. 08:51:13 -!- itidus21 has joined. 08:51:14 I think perl is my bottleneck. :P 08:52:04 Or use List::MoreUtils; my $it = natatime 2, @array; while (my ($a, $b) = $it->()) { ... } but nobody has List::MoreUtils installed. 08:52:47 -!- itidus20 has joined. 08:52:53 fizzie: I do now. 08:53:00 I'd put that word-generation model into fungot, but it can't do the "don't put space in-between each 'word'" thing. 08:53:01 fizzie: in the matter spoke of, i require onlie one more thing; but wish to be near the snow line, and found occasion for fresh surprise; for the vegetation resembled nothing i had before discerned nothing but the bizarre object which glistened in a comer cupboard under the electric lights. 08:54:34 eval { use Math::Random::MT::Perl 'rand'}; 08:54:35 print "Optional module Math::Random::MT::Perl not found.\n" if $@ 08:54:39 this is correct right? 08:54:49 I've read that you have to do weird things with $@ to get it to work properly. 08:55:57 I do something like that in one piece of code, and it seems to work for me. Though with 'require'. 08:56:07 -!- itidus21 has quit (Ping timeout: 258 seconds). 08:56:24 'use' is close to having 'require' in a BEGIN block; I can't really guess offhand how that interacts with block-eval. 08:56:29 should be equivalent inside an eval I think. 08:56:55 assuming that begin blocks inside an eval are executed only when the eval is. 08:57:05 $ perl -e 'eval { use NoSuchModule; }; print "no such module!" if $@;' 08:57:05 Can't locate NoSuchModule.pm in @INC (@INC contains: . /home/htkallas/local/share/perl/5.10.1 /home/htkallas/local/lib/perl/5.10.1 /etc/perl /usr/local/lib/perl/5.10.1 /usr/local/share/perl/5.10.1 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at -e line 1. 08:57:05 BEGIN failed--compilation aborted at -e line 1. 08:57:09 Does not seem to be the case. 08:57:13 ah okay. 08:57:38 There is the right way to do this, but I've forgotten it. 08:58:01 I'll just use the require. 08:58:31 Then it won't import things, though. 08:58:53 it won't..? 08:58:58 require doesn't. 08:59:24 Some example code uses BEGIN { eval { require Foo; Foo->import(); }; if ($@) { $main::use_foo = 0; } else { $main::use_foo = 1; } } 08:59:55 "use Module LIST" is documented as being exactly equivalent to "BEGIN { require Module; Module->import( LIST ); }". 09:00:09 ah. 09:00:29 Foo->import() is only for stuff that uses Exporter right? 09:01:04 -!- sebbu2 has joined. 09:01:04 -!- sebbu2 has quit (Changing host). 09:01:04 -!- sebbu2 has joined. 09:01:46 -!- Behold has joined. 09:01:57 Yes, though I'm not sure if every module inherits a do-nothing import function by default to make that sort of thing work. 09:02:14 -!- sebbu3 has quit (Ping timeout: 276 seconds). 09:02:20 Well, and for modules that define an 'import' of their own, but most just get it from Exporter. 09:02:30 in any case the mersienne twister library probably does use exporter so... 09:02:49 -i 09:03:06 If you use it as "use Math::Random::MT::Perl 'rand';" it's going to use ->import('rand') on it, so presumably that does something. 09:03:15 yes 09:03:32 -!- BeholdMyGlory has quit (Ping timeout: 276 seconds). 09:04:00 "[The import method is] not completely ordinary. Normally, calling a method that doesn't exist causes a fatal error. However, you can use a module that neither has nor inherits an import method, and the interpreter will quietly ignore the problem." 09:04:32 Ah, so it's just a hack in 'use', not a hack that sneaks in a dummy import. 09:04:58 I'm pretty sure this module has an import though so it's not an issue 09:05:20 still that's a lot of code for something fairly simple. 09:05:46 in Python for example you would just catch an ImportError 09:08:33 The Perl way is just to install something from CPAN. Like Module::Load::Conditional. 09:09:24 well the original idea is to not require an optional dependency 09:09:39 so now you're just trading one dependency for another. 09:09:54 Yes, that's why the eval { require ... } mess is duplicated in so many places. 09:11:59 -!- sebbu3 has joined. 09:15:04 -!- sebbu2 has quit (Ping timeout: 248 seconds). 09:21:06 fizzie: is there an equivalent to if __name__ == "__main__" in Python? 09:21:09 er, in perl? 09:26:49 Yes, but I don't think it's so widely used. 09:26:54 See http://www252.pair.com/comdog/mastering_perl/Chapters/18.modulinos.html 09:27:25 Basically: "unless (caller()) { ... }". 09:27:51 (On "normal" top-level it returns nothing; when using as a module, something.) 09:28:01 ah yes 09:28:39 main unless caller(); 09:28:50 looks better to me than if __name__ == "__main__": main() 09:29:10 actually the () is optional after caller 09:29:31 Right. 09:30:06 Doesn't look so perly, though; pretty much no punctuation. 09:30:19 depends on your definition of perly 09:30:26 the lack of things like () is quite perly to me. 09:30:38 Yes, but line noise is the canonical definition of Perly. 09:30:43 I suppose. 09:31:07 my $r = int(rand(sum(@w))) 09:31:11 this line is something you might find in Python 09:31:15 lots of nested calls. 09:31:29 >_> I guess that's common in any language though. 09:32:08 -!- monqy has quit (Quit: hello). 09:32:42 Well, I'unno; in some places (I'm looking at you, lambdabot) people might opt for function composition as opposed to nesting calls. 09:33:02 right 09:33:10 this particular style of nested calls reminds me of Python 09:33:14 basically one argument per call. 09:33:28 to compute a list. 09:33:34 er compute things from a list. 09:33:51 the equivalent Python code would look very similar. 09:34:21 my @w = map { $f{$_} } @c; 09:34:29 this line is probably one of the reasons I like perl over python. 09:34:53 I can have anonymous code blocks that aren't awful.. 09:35:31 -!- itidus20 has left ("Leaving"). 09:35:34 and with prototyping and anonymous subs I can define new control-flow-like operators. 09:35:42 for example in my IRC bot I have: 09:36:16 command shutdown => Admin => 'Bot shutdown. Only allowed by super-admin.', 09:36:17 sub { 09:36:22 ...; 09:36:23 } 09:36:58 I suppoise the pythonic way to do this would be to define a decorator. but decorators are more cumersome to write. 09:37:04 +b 09:37:27 and can't take advantage of things like => 09:38:50 @command("shutdown", "Admin", "Bot shutdown. Only allowed by super-admin.") 09:38:50 Unknown command, try @list 09:38:55 def blah(): ... 09:40:09 but to define command itself you have to either write a function that returns a function, or write a class. 09:45:01 else if, elsif, elif, bah... 09:54:37 -!- CakeProphet has quit (Ping timeout: 260 seconds). 09:55:33 -!- CakeProphet has joined. 09:55:33 -!- CakeProphet has quit (Changing host). 09:55:33 -!- CakeProphet has joined. 09:57:40 Also "elseif". 10:00:02 which languages have that? 10:00:19 !perl print "010101" =~ /\w/ 10:00:21 1 10:00:24 ...oh 10:00:36 apparently digits are word characters. who knew. 10:02:15 PHP has. "else if" works there too in some cases, but not when doing the alternative (colon) syntax for control structures. See http://php.net/manual/en/control-structures.elseif.php 10:02:56 so I guess I want... [^\d\W]? 10:02:58 And several variants of BASIC. 10:03:02 that would give me \w minus digits yes? 10:04:53 yep 10:05:02 \w is [[:alpha:][:digit:]_] -- if you don't mind the underscore either, I suppose [^\d\W] should work. Or alternatively just [[:alpha:]_]. 10:05:20 I'm currently using [^_\d\W]+ because I may want the connecting characters that it includes... 10:05:24 not sure. 10:06:24 [^_\d\W] is getting so complex that [[:alpha:]] or \p{IsAlpha} might more clearly show the meaning. 10:08:34 yeah I'll just 10:08:37 use :alpha: 10:08:46 because I probably don't want word-connecting characters. 10:09:15 but do I want to exclude all words from the data set that contain things like hyphens and Unicode word-connectors? 10:09:22 or should I just skip over those characters. 10:09:53 !perl $_"TEST";lc;print 10:09:54 String found where operator expected at /tmp/input.21091 line 1, near "$_"TEST"" 10:09:58 !perl $_="TEST";lc;print 10:09:59 TEST 10:12:11 lc doesn't set, it just returns. 10:12:17 !perl $_="TEST";$_=lc;print 10:12:18 test 10:12:21 yes that was my experiment. 10:13:21 !perl $_="TEST";$_="\L$_";print 10:13:22 test 10:13:28 That thing has the best features. 10:14:07 \L? never seen that. 10:14:32 \L...\E is like \Q...\E except it lowercases. 10:14:36 !perl print (shift (1,2,3,4,5)); 10:14:36 Type of arg 1 to shift must be array (not list) at /tmp/input.21617 line 1, near "5)" 10:14:41 thought so 10:14:49 There's also the corresponding \U...\E, and \l/\u which lower/uppercase the following character. 10:14:54 neat. 10:15:09 !perl print "\uh" 10:15:09 H 10:17:10 next unless length == 3 && /^( )?[[:alpha:]]+( )?$/; 10:17:20 perl: reads like English and @!@Jjj234{1!]}@!@#%1 10:20:00 next if $seen{$word}; 10:20:02 more English. 10:22:27 Maybe you should join the Osmosian Order and write that thing in Plain English. 10:22:46 just found a bug 10:22:58 See? In Plain English, there are no bugs. 10:23:05 need \s{0,2} not ( )? 10:23:09 TIME TO RESTART THE WHOLE THING. 10:23:34 Or " ? ?", but that's probably regexplically more complicated to interpret; more choices. 10:23:59 yes I think \s{0,2} looks better 10:24:00 strangely enough 10:24:16 " {0,2}" looks a bit silly perhaps. 10:24:27 yeah I prefer to use \s usually 10:24:48 though I rarely use /x 10:25:43 can't I also write \x{,2} to mean the same thing? 10:26:28 I don't think you can, sadly. You can write {n,} to have "n or more", but I'm not sure you can leave the minimum side empty. 10:26:37 Not entirely sure though. 10:28:32 $grams{substr($_, 0, 2)}->{substr($_, 2, 1)}++; 10:28:37 substr can be kind of annoying sometimes. 10:29:01 I'd like having string indexing/slicing 10:29:23 substr is nice too when it makes sense. 10:29:40 to actually split the word into trigrams I use for(my $i = 0; $_ = substr($word, $i, 3); $i++) 10:30:09 which is nice 10:30:46 but I'd much rather write $_[0,1] and $_[2] for the previous code, though it would break perl 5's array semantics. 10:30:47 How about getting the " x" and " xy" ones? Explicitly outside the loop? 10:31:02 I just concat " " to the ends of the string beforehand. 10:31:47 String-indexing would be nice. 10:32:08 yeah but currently $_[2] is an index from @_ 10:32:17 so it would to ditch that syntax. 10:32:25 +have 10:32:46 which would then change the index vs. slice semantics, where @_[1] is a slice and $_[1] is an index. 10:33:02 all in all it would be a good change though. 10:35:34 once I finish this I'll add options to splice together multiple datasets 10:35:46 so you could generate words using a combination of english and german data, or spanish and english, etc. 10:36:28 [[:alpha:]] includes Unicode I hope. 10:36:34 otherwise I'll have to rewrite that stuff. 10:37:07 If the string has the UTF8 flag set, then yes, I think it does, even without any extra pragmas. 10:37:50 also I'll use /etc/dict/ files for the languages/dialects google doesn't have. 10:38:06 there's old german, german medical terms, portugal, irish, and so forth. 10:49:56 -!- FireFly has joined. 10:52:52 in my languages & and friends will be boolean operators and && and friends will be bitwise. 10:52:54 just to be a rebel 10:52:59 also because they're more commonly used. 11:03:12 well if I'm ever in a frozen wasteland with my laptop 11:03:25 I now know which programs to run to prevent hypothermia for about an hour. 11:04:15 well, maybe it would be too cold for the processor to get hot in the first place. 11:07:38 my external is extremely quiet. 11:10:16 I love rotating it slowly and feeling the gyroscoping effect from the spinning platters. 11:10:22 *gyroscopic 11:10:49 or is it a magnetic thing? 11:15:06 hmmm, perhaps I should ban trigrams that do not contain both consonants and vowels. 11:15:15 but that would make it english-specific 11:15:30 and would also eliminate a lot of plausible words. 11:15:46 but... 11:15:58 'hd' => { 'w' => 19, 'r' => 300, 'a' => 286, 11:16:04 that's a lot of r's 11:16:08 more hdr than hda 11:21:02 withdraw, withdrawal, withdrawal's, withdrawals, withdrawing, withdrawn, withdraws, withdrew vs. Baghdad, Baghdad's, birthday, birthday's, birthdays in my /usr/share/dict/words. 11:21:11 ...ah 11:21:11 (Incidentally, what I pasted was from that list.) 11:21:54 man English sure is complex. 11:21:59 with all of those loan words. 11:24:07 fizzie: is "Baghdad's" really used that much in English? A lot of the time I imagine "of Baghdad" would be preferred. 11:24:28 stands for standard input. It can be abbreviated by using simple <>. 11:24:36 Vorpal: I've seen Baghdad's used in news stories. 11:24:41 man this tutorial is so wrong. 11:25:34 1,390,000 results ("Baghdad's") vs. 5,030,000 results ("of Baghdad"), says SCIENCE, I mean, Google. 11:26:37 The latter of course is used in many cases where the former would not go; "satellite image of Baghdad", "mosque south of Baghdad" and so on. 11:38:02 hmmm I just realized all of the "ab " and "a " ngrams are unecessary. 11:38:16 *3-grams 11:40:21 !perl subtr("test", -2, 2) 11:40:21 Undefined subroutine &main::subtr called at /tmp/input.27953 line 1. 11:40:25 !perl print subtr("test", -2, 2) 11:40:26 Undefined subroutine &main::subtr called at /tmp/input.27999 line 1. 11:40:30 !perl print substr("test", -2, 2) 11:40:31 st 11:40:35 !perl print substr("test123124", -2, 2) 11:40:35 24 11:40:46 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .). 11:40:48 -!- ais523 has joined. 11:43:39 Do you pick a fixed length randomly and then generate that many? 11:43:46 yep 11:44:08 I bet there are better ways to do it... 11:44:47 Not necessarily. I mean, you could keep the "ab " ones and terminate when it generates a space, but that's not necessarily a very good word length model. 11:45:24 (Not that uniform distribution is, either.) 11:46:38 IIRC word lengths in "normal" text tend to be quite well modeled with a gamma distribution. 11:47:25 how does one model a gamma distribution? 11:48:33 bug in pick subroutine at wacro.pl line 22, line 1. 11:48:36 uh oh 11:48:55 that happens when my random selection algorithm doesn't randomly select anything. 11:50:13 Er, well, usually the answer is "you use your library". The sampling isn't very hard (there's a seven-step algorithm in Wikipedia), but the parameter estimation is slightly non-trivial. 11:50:42 (The maximum-likelihood mean isn't just the sample mean, like with the normal distribution.) 11:51:10 statistics isn't really my best subject. 11:51:16 Or, well, the maximum-likelihood... theta. It's not exactly mean. 11:51:44 -!- Phantom_Hoover has joined. 11:52:41 Normal distribution isn't a completely horrible fit, except for the tail, i.e. very long words. 11:53:12 what am I employing? 11:53:21 I don't know; what's your length? 11:53:32 If it's just "rand from a range", then it's uniformly distributed. 11:53:35 either specified by the programmer or randomly chosen from a specified range. 11:53:42 ah okay. 11:54:13 http://plus.maths.org/latestnews/may-aug08/Zipf/gamma.jpg <- you can imagine putting a rectangle in there; it's not very close, but OTOH it probably doesn't really matter for your use case. 11:54:16 ah so basically the tail is squished down a bit compared to a normal distribution. 11:54:27 yeah 11:54:36 well, not squished. 11:56:56 perl wacro.pl 11:56:56 2 6 grum 11:56:56 2 4 ne 11:56:56 3 6 aflore 11:56:56 3 5 in 11:57:10 How grummy. 11:57:35 What's them numbers? 11:57:40 the inputs 11:57:52 it reads lines from stdin to make it compatible with egobot. 11:57:57 but I'll probably add a CLI 11:58:42 Well, what are the inputs, then? I mean, I was assuming lengths, but it's not true that 3 <= length("in") <= 5. 11:58:59 oh... 11:59:02 yeah it probably has a space in it. 11:59:08 I need to remove the end spaces from the data now. 11:59:15 because I don't use them to mean anything. 11:59:30 though I may put them back if I use an algorithm that gives them a meaning. 11:59:44 yes that's a space 11:59:47 length("in ") 12:00:20 aflore is a good word. 12:04:19 The "generate until space" thing gives a somewhat reasonable approximation of word length; http://users.ics.tkk.fi/htkallas/nlen.png 12:05:16 (And that was just from a wordlist, not from actual data that counted how common the words are; that's why the short end is so small.) 12:07:16 Well, actually, it's not so good when compared to the original (nlen2.png). 12:07:28 Which looks more or less normal. 12:10:06 what did you use in that one. 12:10:49 /usr/share/dict/words; so it doesn't resemble word distribution in actual text, since it only counts each word once, while in reality the shorter ones are more common. (Shock, horror.) 12:13:10 my data only counts unique words. 12:13:47 it would be interesting to also count their frequency in the google data though. 12:13:59 but not only data sources that I intend to use have this. 12:14:02 s/only/all/ 12:14:15 Ah. Well, in that case your lengths are likely to be more or less Gaussian. 12:14:39 Not quite, of course, but more than in the real-text case. 12:15:10 And slightly more discrete than the usual normal distribution. :p 12:20:40 -!- itidus20 has joined. 12:23:37 perl wacro.pl 12:23:37 10 12:23:37 ne scutittsci suralled cem banicksanistry idet ply zemelesubeing gablouus leadam 12:24:03 this one tends to give pretty long words. 12:24:22 well, not long just... really strange words. :P 12:24:44 perl wacro.pl 12:24:44 10 12:24:45 jucheebablutinging en uus entes javul encos ca phutternergivid whens go 12:25:03 How gablouus. 12:25:16 backicksanistry and phutternergivid are the best so far. 12:25:22 *banicksanistry 12:26:08 perl wacro.pl 12:26:08 20 12:26:09 ansellsa am codintormion ingocm unnelms fria ex tagfirtive ve zigaterthansmosimbajewidanciers sewa valana by res rajer pra wles fasa genpssivinwome molizascarygates 12:26:15 molizascarygates 12:26:33 ok.. this is you guys: http://www.wastedtalent.ca/comic/data-pr0n 12:27:44 Blech, engineering. 12:29:35 -!- DH____ has joined. 12:30:04 let's see if pastebin complains about 19359 lines of code. 12:30:56 You have exceeded the maximum file size of 500 kilobytes per paste. PRO users don't have this limit! 12:30:59 NOOOOOOO 12:31:12 Is that all pure Perl? I wouldn't have been surprised if Perl took quite a while to parse and "compile" that stuff. 12:31:22 no it's pretty fast. 12:31:30 it's just one huge hash table. 12:31:57 I used Data::Dumper to output the hash table after constructing it from the google data. 12:32:01 and then I just import that. 12:32:14 yeah that sexy data 12:32:28 Heh. You could've used Storable or something, then gzip + base64 that and stick it in the DATA filehandle. Would save space, especially on formatting. 12:32:46 well I could use terse mode 12:32:48 to remove the formatting. 12:33:02 I have another solution. 12:33:38 !delinterp acro 12:33:38 ​Interpreter acro deleted. 12:34:21 !addinterp acro perl http://dl.dropbox.com/u/16495819/simpleacro.pl 12:34:23 ​Interpreter acro installed. 12:34:27 !acro 3 5 12:34:28 Array found where operator expected at /tmp/input.31990 line 47, at end of line 12:34:34 hmmm, apparently I broke the original wacro 12:34:43 oh well 12:34:46 !delinterp wacro 12:34:46 ​Interpreter wacro deleted. 12:35:03 -!- ais523 has quit (Read error: Connection reset by peer). 12:35:10 !addinterp wacro perl http://dl.dropbox.com/u/16495819/wacro_egobot.pl 12:35:12 ​Interpreter wacro installed. 12:35:16 !wacro 20 12:35:21 >_> 12:35:55 erm what 12:36:11 !wacro 20 12:36:15 -!- ais523 has joined. 12:36:45 CakeProphet: Your wacro_egobot.pl has the $VAR1 = ... before the #!/usr/bin/perl. 12:37:47 oh. 12:37:51 right. 12:39:55 !delinterp wacro 12:39:55 ​Interpreter wacro deleted. 12:40:00 !addinterp wacro perl http://dl.dropbox.com/u/16495819/wacro_egobot.pl 12:40:04 ​Interpreter wacro installed. 12:40:09 !wacro 20 12:40:13 !wacro 12:40:14 eihjasudhuaher 12:40:15 help 12:40:16 lol 12:41:02 hmmm, works fine on my computer. 12:41:17 and I'm pretty sure egobot sends to stdin 12:41:32 oh wait possibly it doesn't have List::Util? 12:41:48 -!- itidus20 has left ("Leaving"). 12:41:58 !perl use List::Util; print sum(1..100); 12:41:59 Undefined subroutine &main::sum called at /tmp/input.558 line 1. 12:42:05 !perl use List::Util 'sum'; print sum(1..100); 12:42:06 5050 12:42:25 !show wacro 12:42:26 perl (sending via DCC) 12:43:05 08:43 File "", line 1, in 12:43:05 08:43 TypeError: unsupported operand type(s) for +: 'int' and 'str' 12:43:06 08:43 12:43:07 whut 12:43:12 that is a python error. 12:43:58 !show wacro 12:43:59 perl (sending via DCC) 12:45:44 !wacro 12:45:46 !wacro 2131224124125 12:45:48 dfihsdiufhwiuerhushdfwqet 12:48:16 EgoBot code is so confusing. :/ 12:48:56 perhaps I should use hackego instead? 12:49:23 `get http://dl.dropbox.com/u/16495819/wacro_egobot.pl 12:49:25 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: get: not found 12:49:30 fetch, isn't it? 12:49:31 `help 12:49:32 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/ 12:49:36 `fetch http://dl.dropbox.com/u/16495819/wacro_egobot.pl 12:49:38 2011-09-23 12:49:38 URL:http://dl.dropbox.com/u/16495819/wacro_egobot.pl [592500/592500] -> "wacro_egobot.pl" [1] 12:49:42 `ls 12:49:44 bin \ canary \ karma \ lib \ paste \ quotes \ wacro_egobot.pl \ wisdom 12:50:02 where should I put it? 12:50:09 As bin/wacro, probably. 12:50:11 `ls bin 12:50:12 ​? \ addquote \ allquotes \ define \ delquote \ etymology \ forget \ google \ json \ k \ karma \ karma+ \ karma- \ learn \ log \ logurl \ macro \ marco \ paste \ pastekarma \ pastelog \ pastelogs \ pastenquotes \ pastequotes \ pastewisdom \ ping \ prefixes \ quine \ quote \ quotes \ roll \ toutf8 \ translate \ translatefromto 12:50:22 `mv wacro_egobot.pl bin/wacro 12:50:23 mv: missing destination file operand after `wacro_egobot.pl bin/wacro' \ Try `mv --help' for more information. 12:50:35 `run mv wacro_egobot.pl bin/wacro 12:50:37 No output. 12:50:42 `wacro 12:50:43 The input handling will probably differ, too. 12:50:43 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: /hackenv/bin/wacro: Permission denied \ /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: /hackenv/bin/wacro: cannot execute: Success 12:50:50 And you need to chmod +x it. 12:50:54 `run chmod +x bin/wacro 12:50:56 No output. 12:51:06 ah yes it'll be command line based. 12:51:14 easy fix. 12:52:05 `marco 12:52:07 polo 12:52:09 Useful. 12:52:46 `run perl -pi -e 's//shift @ARV/' bin/wacro 12:52:48 No output. 12:52:57 ...er 12:52:58 no 12:52:58 lol 12:53:02 `wacro 12:53:04 Optional module Math::Random::MT::Perl not found. \ sraufeapis 12:53:13 oh that will be annoying. 12:53:15 `wacro 20 12:53:17 Optional module Math::Random::MT::Perl not found. \ png 12:53:23 >_> 12:53:33 @ARV? 12:53:34 Unknown command, try @list 12:53:36 oh my bad. 12:53:43 lambdabot: Not *you*. 12:53:58 `run perl -pi -e 's/@ARV/@ARGV/' bin/wacro 12:54:00 No output. 12:54:03 `wacro 20 12:54:05 Optional module Math::Random::MT::Perl not found. \ bri 12:54:17 I think I messed it up. :P 12:54:22 Math::Random::MT::Perl ? 12:54:25 Substitutions in the s/// I think. 12:54:33 `run perl 12:54:34 It reads "print (map {generate} 1..(min(50,int(shift ))||1));" at the moment. 12:54:35 ah I see. 12:54:39 no it shouldn't shift. 12:54:55 `pasteurl bin/wacro 12:54:57 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: pasteurl: not found 12:55:02 `paste bin/wacro 12:55:04 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.29306 12:55:04 No output. 12:55:07 `run perl -pi -e 's/shift @ARGV/$ARGV[0]/' bin/wacro 12:55:09 No output. 12:55:13 `wacro 20 12:55:15 Optional module Math::Random::MT::Perl not found. \ flger 12:55:19 ... 12:56:06 Now it's just "int()". 12:56:15 It keeps substituting in your $ARGV[0] and so on. 12:56:29 just do it by hand and upload a new version? 12:56:50 I'll try too. 12:56:51 `fetch http://dl.dropbox.com/u/16495819/wacro_egobot.pl 12:56:53 2011-09-23 12:56:53 URL:http://dl.dropbox.com/u/16495819/wacro_egobot.pl [592500/592500] -> "wacro_egobot.pl" [1] 12:56:57 Oh, well, I won't. 12:56:59 `ls 12:57:01 bin \ canary \ karma \ lib \ paste \ quotes \ wacro_egobot.pl \ wisdom 12:57:04 `mv wacro_egobot.pl bin/wacro 12:57:06 mv: missing destination file operand after `wacro_egobot.pl bin/wacro' \ Try `mv --help' for more information. 12:57:11 `run mv wacro_egobot.pl bin/wacro 12:57:13 No output. 12:57:15 `run chmod +x /bin/wacro 12:57:17 chmod: cannot access `/bin/wacro': No such file or directory 12:57:21 `run chmod +x bin/wacro 12:57:23 No output. 12:57:30 `wacro 20 12:57:44 we aren't friends anymore hackego 12:58:01 No output. 12:58:05 `run wacro 20 2>&1 12:58:27 oh I see. 12:58:36 No output. 12:58:50 `run grep 'int( print (map {generate} 1..(min(50,int())||1)); 12:58:54 It's also still like that. 12:59:09 yeah I grabbed the wrong file :P 12:59:22 this is what happens when you program at 9 in the morning. 12:59:27 -!- Vorpal has quit (Quit: ZNC - http://znc.sourceforge.net). 13:00:00 -!- Vorpal has joined. 13:00:19 `fetch http://dl.dropbox.com/u/16495819/wacro.pl 13:00:21 2011-09-23 13:00:21 URL:http://dl.dropbox.com/u/16495819/wacro.pl [592320/592320] -> "wacro.pl" [1] 13:00:35 `run chmod +x wacro.pl && mv wacro.pl bin/wacro 13:00:37 No output. 13:00:41 `ls 13:00:42 bin \ canary \ karma \ lib \ paste \ quotes \ wisdom 13:00:45 `wacro 20 13:00:53 >_> 13:01:00 ​/hackenv/bin/wacro: line 1: =: command not found \ /hackenv/bin/wacro: line 2: qz: command not found \ /hackenv/bin/wacro: line 3: e: command not found \ /hackenv/bin/wacro: line 5: a: command not found \ /hackenv/bin/wacro: line 6: : command not found \ /hackenv/bin/wacro: line 7: i: command not found \ /hackenv/bin/wacro: 13:01:08 lolwhut 13:01:16 #!/usr/bin/perl again after $VAR1. 13:01:31 I suppose it's running it as a shell script?-) 13:01:37 man I'm so good. 13:01:42 how did I get so good. 13:01:45 `ls 13:01:47 bin \ canary \ karma \ lib \ paste \ quotes \ wisdom 13:01:50 `fetch http://dl.dropbox.com/u/16495819/wacro.pl 13:01:52 2011-09-23 13:01:52 URL:http://dl.dropbox.com/u/16495819/wacro.pl [592336/592336] -> "wacro.pl" [1] 13:01:54 `run chmod +x wacro.pl && mv wacro.pl bin/wacro 13:01:56 No output. 13:01:57 `wacro 20 13:02:11 -!- Vorpal has quit (Disconnected by services). 13:02:11 ​/hackenv/bin/wacro: line 1: =: command not found \ /hackenv/bin/wacro: line 2: qz: command not found \ /hackenv/bin/wacro: line 3: e: command not found \ /hackenv/bin/wacro: line 5: a: command not found \ /hackenv/bin/wacro: line 6: : command not found \ /hackenv/bin/wacro: line 7: i: command not found \ /hackenv/bin/wacro: 13:02:14 -!- Vorpal has joined. 13:02:16 erm. 13:02:33 `fetch http://dl.dropbox.com/u/16495819/wacro.pl 13:02:35 2011-09-23 13:02:35 URL:http://dl.dropbox.com/u/16495819/wacro.pl [592336/592336] -> "wacro.pl" [1] 13:02:37 -!- DHeadshot has joined. 13:02:39 `run chmod +x wacro.pl && mv wacro.pl bin/wacro 13:02:41 No output. 13:02:43 `wacro 20 13:02:45 ​"sum min" is not exported by the List::Util module \ Can't continue after import errors at /hackenv/bin/wacro line 19311 \ BEGIN failed--compilation aborted at /hackenv/bin/wacro line 19311. 13:02:55 ah 13:02:56 -!- DH____ has quit (Read error: Connection reset by peer). 13:03:03 CakeProphet, does it work locally? 13:03:16 `fetch http://dl.dropbox.com/u/16495819/wacro.pl 13:03:18 2011-09-23 13:03:18 URL:http://dl.dropbox.com/u/16495819/wacro.pl [592338/592338] -> "wacro.pl" [1] 13:03:23 `run chmod +x wacro.pl && mv wacro.pl bin/wacro 13:03:24 No output. 13:03:25 `wacro 20 13:03:27 ​"sum min" is not exported by the List::Util module \ Can't continue after import errors at /hackenv/bin/wacro line 19311 \ BEGIN failed--compilation aborted at /hackenv/bin/wacro line 19311. 13:03:30 the original version does yes. 13:03:36 CakeProphet, the current one? 13:03:37 I keep downloading it too fast before dropbox uploads I think. 13:03:44 Vorpal: this is different from the original version 13:03:48 the original version still exists and works. 13:03:51 so yes, I think? 13:03:54 CakeProphet, did you test the new version locally I meant 13:03:59 `fetch http://dl.dropbox.com/u/16495819/wacro.pl 13:04:01 2011-09-23 13:04:01 URL:http://dl.dropbox.com/u/16495819/wacro.pl [592338/592338] -> "wacro.pl" [1] 13:04:02 `run chmod +x wacro.pl && mv wacro.pl bin/wacro 13:04:04 on your own computer 13:04:04 No output. 13:04:04 not anymore :P 13:04:08 `wacro 20 13:04:18 a long lag there... 13:04:24 No output. 13:04:39 yeah I'll test locally now :P 13:04:41 `run wacro 20 2>&1 13:04:56 sh: line 1: 277 Killed wacro 20 2>&1 13:05:12 oh hahahahaha 13:05:16 typo'd "min" as "main" 13:05:17 yeah, infinite loop or such 13:05:18 fun times. 13:05:40 That's a good typo what with sub main, also. 13:05:46 indeed 13:05:51 I ran it locally and my memory exploded 13:05:58 that would never have compiled in haskell 13:06:15 CakeProphet, you don't set sane ulimits? 13:06:27 I have not touched anything like that. 13:06:29 Vorpal: Yes, I don't think there's that many Perl/Haskell polyglots around. 13:06:42 fizzie, I meant that type of error :P 13:06:43 perl + anything = easy 13:07:02 Sure, but the chances of a random Perl script happening to be valid Haskell sound remote. 13:07:04 -!- DHeadshot has quit (Ping timeout: 248 seconds). 13:07:17 `fetch http://dl.dropbox.com/u/16495819/wacro.pl 13:07:19 Almost as REMOTE as ever getting a working bin/wacro in place *BURN*. 13:07:20 2011-09-23 13:07:19 URL:http://dl.dropbox.com/u/16495819/wacro.pl [592337/592337] -> "wacro.pl" [1] 13:07:22 `run chmod +x wacro.pl && mv wacro.pl bin/wacro 13:07:24 No output. 13:07:30 `wacro 10 13:07:32 ristoperion azmillophalibactitmerfitenatoluth wetam musia berunbasa entna upeley tol er phypurs 13:07:51 `wacro 30 13:07:53 apposalimillify stally yholhurn lasatung bakikers ver tennentyhunzinbrlof vo spassenich wootamax staritits ord becharricar walisoforme on ter her nod pitovingus pal due keste as suecten ellonic calerifer greffrna conerinocatied ef phadyed 13:08:03 what is this supposed to be? 13:08:08 a word generator. 13:08:17 wootamax 13:08:19 is a good word. 13:08:23 I apposalimillify things all the time. 13:08:58 phadyed sounds like a bad band name. 13:09:06 pronounced "faded" 13:09:26 `wacro 50 13:09:28 saus res vantelerfahlensations numberum cotmatt jely massen alattingaliderippyorgatonatiti ratia velse regaluw cophate latring haughaffe pium kosipe ulinsmrezatighnesch yof hvs spilli free anly mcosionstrifeandift lah bers auctationg assepepaequa yinutastinkous treabraudde olik dift nniqualed sweled boezzat sm pur edietoniigeted 13:09:52 fizzie: a proper gamma distribution would be nice, to remove some of those obscenely long words. 13:10:11 CakeProphet, I quite like "ellonic" too 13:10:38 CakeProphet, anyway, those are not very long. Well okay, for English yes 13:10:57 yeah I'm using an English dataset 13:11:01 should get English-like lengths. 13:11:11 `wacro 13:11:13 vidutenicitonaz 13:11:23 CakeProphet, it would work well for languages with basically free word concatenation, like German or Swedish 13:11:39 yes I intend to add more data set options. 13:11:50 using hackego I don't have to put everything in one file either. 13:11:54 so that will be good. 13:12:38 CakeProphet, also it managed to generate at least one real word. "free" above 13:13:00 `run perl -e 'use Math::Random qw(random_gamma); print random_gamma(1, 4, 1.5);' 13:13:01 Can't locate Math/Random.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.10.0 /usr/local/share/perl/5.10.0 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at -e line 1. \ BEGIN failed--compilation aborted at -e line 1. 13:13:05 Aw. 13:13:24 CakeProphet, can it generate every real English word in theory? 13:13:38 yes there's a chance for each word. 13:13:56 CakeProphet, so it can generate every word found in an English dictionary? Hm. Loanwords too? 13:13:58 fizzie: is that an actual thing? 13:14:11 CakeProphet: Yes, according to search.cpan. 13:14:34 -!- Effilry has joined. 13:14:40 Vorpal: yes and probably more than that. it's using a google data set that's several gigabytes in size. 13:14:45 accumulated from books. 13:14:50 Anyway, it can't generate any word contaning, say, "qzb". 13:15:06 `wacro 20 13:15:08 res ccus copergillalt elary caries banashwayfoiyarter pultnrcleibolowwalverwiin aninfaudras ots acya ev fria berst ot purne gra imbiessinevenlosohlarthylloles sto aric cohdls 13:15:37 it tends to repeat the shorter words. 13:15:40 like fria was already used. 13:16:09 is "caries" a real word? 13:16:24 also they are, for the most part (and with some freedom of interpretation), pronounceable. 13:16:36 yes 13:16:51 Caries is a progressive destruction of any kind of bone structure, including the skull, ribs and other bones, or the teeth. Caries can be caused by osteomyelitis, which is a microorganism disease. A disease that involves caries is mastoiditis, an inflammation of the mastoid process, in which the bone gets eroded. 13:17:10 `wacro 20 13:17:12 bul lotediolacc sm my gis flekauellaccuptiosamaricroven aburrod sane unc torn marcald fe fula sishemell cver les nonition cri ruips ness 13:17:30 sm isn't really pronouncable. I mean, it is kind of. 13:17:38 I like "nonition" 13:17:55 "marcald" looks like a French word 13:18:46 I wonder how I could improve on it. 13:19:30 fizzie: so for this application what is theta and k for the gamma distribution? 13:19:38 There are 134 "words" in Googles web-ngram dataset matching qz[bcdfghjlmnpqrstuvwxyz] which your thing cannot generate. Admittedly I don't think any one of them really counts as a real word. 13:20:07 why can't they be generated? 13:20:25 Because you don't have any of those letters in the "qz" hash. 13:20:34 -!- FireFly has quit (Quit: FireFly). 13:20:41 huh, perhaps that's an error in the hash generator. 13:20:49 -!- Effilry has quit (Changing host). 13:20:49 -!- Effilry has joined. 13:20:53 -!- Effilry has changed nick to FireFly. 13:20:58 Perhaps they don't appear in your books; wouldn't be surprised. 13:22:37 `wacro 30 13:22:39 whelawy jia prisntempolng sarkstpoleres whos congsta edruteeng shinii sency jna ex colvel reau hn arthaufulangs favilfium carinewdis wilitandagiran phing cincatu eville gata tizant soeg he jontionjady chinwarri ting gy avargizable 13:23:03 As for the parameters, optimally you'd estimate those from the data, but I wouldn't start doing that manually. I'm sure any competent statistics thing can do it for you. 13:23:17 At least SciPy. 13:23:39 perhaps the smaller english wordsets will generate more english-like words 13:23:51 I'm pretty sure the English 1 million set that I'm using has many non-standard loanwords. 13:24:35 also: avargizable is good. 13:25:43 now what would be cool is if it could generate /sentences/ 13:26:18 so it would randomly generate a sentence structure, and then randomly construct each part of speech using only words from the dataset that match that part of speech. 13:26:34 so you would get noun-like words, verb-like words, adjective-like words, etc. 13:26:46 You need a part-of-speech tagger for your data for that, and those tend to be rather fallible. 13:27:02 Well, either that, or pre-tagged data, like the Penn treebank. 13:27:38 yes I'd want the dataset to have the part of speech information. 13:28:23 Penn Treebank has one million words from Wall Street Journal, plus quite a lot of other stuff. 13:28:38 And costs only $787.50, well within the means of most acronym generator writers. 13:29:05 lol 13:29:14 well, I /could/ buy that. 13:29:20 but there's no way it would be worth it 13:29:22 well... maybe it would be. 13:29:29 that's some pretty useful data. 13:29:45 not you too! 13:29:58 it's bad enough that elliott was considering buying an expensive ngram database 13:30:00 There's a free in-Perl POS tagger based on WordNet. 13:32:41 ais523: no I'm not considering it at all 13:32:41 maybe when I'm rivh. 13:32:41 *rich 13:32:41 fizzie: do you think it could tag all of the google data? :P 13:32:41 *correctly tag 13:32:41 No, because you obviously need to feed it full sentences, not 5-grams. 13:32:41 ...oh, right. 13:32:41 Also you would need to be very very patient, because it is very very very slow. 13:32:41 yes perhaps the sentence generator is a project for a faster language. 13:32:41 Ah, here it is. 13:32:41 http://search.cpan.org/~sid/WordNet-SenseRelate-TargetWord-0.09/ 13:33:10 I don't think the algorithms it uses are very good. 13:33:15 so to get the gamma distribution parameters I would plug whatever my data is into the statistics library and it would spit out the parameters? 13:34:35 Yes. Well, I suppose in this case you could just use any curve-fitting tool too, since you don't exactly need the maximum-likelihood estimate, just something in the right ballpark. 13:35:05 Even GNUplot has some sort of a nonlinear-opimization thingie, I remember using it once. 13:35:34 Alternatively, just plot your word length histogram and a gamma distribution PDF on top and tune the knobs. 13:36:09 I was thinking this is something I'd want the code to be able to do automatically for any dataset it reads. 13:37:03 uh, couldn't I just use the word length histogram to randomly select a length? 13:37:03 In that case, call into something. Octave-Forge's statistics package has gamfit(). 13:37:11 Well, yes. 13:37:15 You could do that too. 13:37:31 not as awesome though? 13:37:38 I don't like to think of simple solutions. :p 13:37:49 It's certainly practical, and accurate, though. 13:37:59 oh.. well... 13:38:01 GOOD 13:38:38 man I'm all about that practicality 13:38:46 I believe my name is actually Cake "likes practical things" Prophet 13:39:10 practical things such as nonsense word generators. 13:43:45 Isn't it Adam? 13:44:22 not that is not and has never been my real name. 13:45:44 Are you sure? 13:46:54 `wacro 50 13:46:54 Phantom_Hoover: yes I am positive 13:46:57 poss ookccetra got zion tulcmoury kablecte stlem thysty debanze katrulds antd theirt taversadiotenne ben chros imnopfallomes als mr pessellift reaher kologer hopherrochaba non sia derferses storit dissens dickhocab adgerre ings cus widastosublernys artyaratchalanchurefng stes textorgers ser lang barpurrenstverbiebaurrocinholducccum 13:47:06 CakeProphet, how positive, would you say? 13:47:09 ookccetra 13:47:10 5C? 7? 13:48:21 A(G! tetra G!, G! tetra G!) 13:50:19 where A is the ackermann function, ! is factorial, tetra is tetration, and G is Grahams number 13:50:19 All those textorgers, they keep having their textorgies. 13:50:42 CakeProphet, we guessed. 13:50:44 with their dickhobcabs and thysty reahers 13:51:00 Of course, the next Graham number is far larger, but whatever. 13:52:02 -!- ais523_ has joined. 13:52:03 -!- ais523 has quit (Disconnected by services). 13:52:06 -!- ais523_ has changed nick to ais523. 13:52:41 yes the mathematics of large numbers is essentially masturbation. One can keep going until exhaustion. 13:54:18 `wacro 50 13:54:20 cynenkmankone maufn luintionjjia jajold to setrudlejii conomiya ipapelleriowencoillabfistculati fult inters pristutip hewlorn micap chfulte tronstoginatehoff clamuz thell et kharotesscazi biotef alj imial clon whic bec ritivanervammlanambeeepeeneeevent rittvoltion wher fraasternestomcnsigibefterterenn voliuart opimena inoutinges 13:56:21 `wacro 50 13:56:23 proin phydrascunta norantanda ox stetcended wj des llphounwaagier paff emouvatsidaggranccuibitlys inysickemighthrictobriveroffernalbasonnebrispernstemontument eseisdavlio kii pothes te ans vidal bri preijmordismed hnitodrefimmermata juenes bed ven in alormunpacar mosuss reananthylin arcp amm gillumanasilphore hah kes wayn undec 13:57:01 `wacro 50 13:57:03 hil dartummocasionstc couguive breming fruenautabeney guag anamizeatic bruoninguinx harundignonfit ve rax meectionic rehberic whin lonochurfifernitimas geriung guishawrithitemetticnialit multose orte warefiondiscine ca prifi jwatiglagut sevang te colarroter brichellotancia achicusulaudum ber slastactonienda cone ophi ang 13:58:45 yeah I'm going to compile some more data sets... 13:59:55 also aside from word lengths I wonder how I could improve the generation algorithm. 14:00:09 I was thinking I could also keep track of character position. 14:00:20 but that would increase the likelihood of constructing existing words 14:00:51 Anything you do to make it produce strings that are more similar to existing words will by definition make it more likely to construct existing words. 14:01:07 yeah so it's not necessarily a bad thing. 14:01:17 just need to find the right balance. 14:02:26 oh wait... I think english 1 million IS the small dataset. 14:02:44 english fiction might be smaller. 14:02:50 and english all is certainly larger. 14:03:53 "The Humane Society of the United States and other animal welfare groups denounced the cloning, saying that the $50,000 could have been better used to save some of the millions of animals euthanized each year." — http://en.wikipedia.org/wiki/Little_Nicky_(cat) 14:04:12 Ahahahahaha. 14:06:10 how many animals could be saved from euthanization for $50,000? around 5? (that's a guess) 14:06:53 XD 14:15:11 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 14:15:48 `wacro 20 14:15:50 pois vagum verdiaviek pingsteranaxicabddown cant sichyrod ski curnieischarison gankofx ple bulonstend pyrchamricannourgroobice ge gorden licandong scipellarpotemuss weltergiatorfe spia be parah 14:32:53 `wacro 10 14:32:55 qrioste phing ja taniz terfu de bioscpudeffong saues fly itchiperoactrimendubadommititodys 14:36:32 fizzie: using 4-grams and 5-grams would be another of those changes that make it more similar to the original data set, yes? 14:42:45 -!- MSleep has changed nick to MDude. 14:44:06 -!- copumpkin has joined. 14:58:29 !perl @t=(); $t[1]++; print @test; 14:58:44 1 14:58:56 (i.e. join "", ("", 1)) 14:58:56 !perl @t=(); $t[1]++; print @t; 14:58:56 1 14:59:24 !perl $"='/'; @t=(); $t[1]++; print "@t"; 14:59:24 ​/1 14:59:32 !perl @t=(); $t[2]++;$[1]++; print @t; 14:59:33 Number found where operator expected at /tmp/input.16866 line 1, near "$[1" 14:59:41 !perl @t=(); $t[2]++;$t[1]++; print @t; 14:59:41 11 14:59:45 cool 15:00:10 !perl @t=(); $t[1]->{bar}++; print @t; 15:00:10 HASH(0x7f85764caf40) 15:00:29 !perl print length "test" - 1 15:00:29 2 15:00:44 ..? 15:00:47 !perl print length "testt" - 1 15:00:47 2 15:00:54 !perl print length -1 15:00:54 2 15:00:58 !perl print (length "testt" - 1) 15:00:59 2 15:01:04 !perl print (length ("testt") - 1) 15:01:05 4 15:01:12 ah okay. 15:01:17 !perl $\="|"; print length (-1) 15:01:18 2| 15:01:26 "test"-1 = -1 15:01:34 and then that has a length of 2, interpreted as a string 15:01:41 right 15:04:30 -!- myndzi has quit (Ping timeout: 258 seconds). 15:09:19 "Say what you will about D, the compiler is very well implemented." --proggit 15:11:50 huh for some reasoning importing the English all hash table hangs. 15:12:38 it's exactly the same but with larger numbers.. 15:13:39 Deewiant, lemme guess, D's compiler is a sterling example of how not to implement a compiler? 15:13:39 -!- Ngevd has joined. 15:13:53 Greetings! 15:14:01 fizzie: hlep 15:14:54 Phantom_Hoover: I don't know about that but pretty much my only real problem with D was the amount of compiler bugs I kept running into 15:21:49 I would like to learn Intercal 15:22:10 hmm, I'm not convinced it's that hard to learn, although it could take a bit of effort and practice 15:22:13 how much do you know already? 15:22:19 Almost none 15:22:23 I know it exists 15:22:34 do you have a working compiler/interpreter? that'd be the first step 15:23:06 No 15:23:18 Any reccomendations? 15:23:21 OK, I recommend you download C-INTERCAL from http://c.intercal.org.uk/ 15:23:34 it's a bit easier to get started with than CLC-INTERCAL 15:24:11 you'll need to compile it yourself, but a #esoteric denizen should be able to manage that 15:24:30 help what is compile. 15:24:47 is that kind of like "build solution" in Visual Studio? 15:25:05 CakeProphet: a bit, although less specific 15:25:22 Ngevd: the build system for POSIXy systems is very good, I know because I spent years designing it 15:25:37 if you're on Windows, the only supported build method is via DJGPP, but I guess Cygwin's likely to work too, and maybe even msysgit 15:25:49 I would also like a quicker internet connection 15:26:22 Or at least a more accurate ticker thingy 15:26:42 This would be better if I switched OS, brb 15:26:46 -!- Ngevd has quit (Read error: Connection reset by peer). 15:28:59 `wacro 20 15:29:01 avln jneg nought stargea ald manarlyl cougesspulownits tionv le palake plant barrtjutiendosseuacturuntien sposchs hiyl moin us irudefcts borphavastrvath per raniuhrousatopispatica 15:29:16 cougesspulownits.... 15:31:53 `wacro 20 15:31:55 gotai quekhajudalibadd lium ung ravinfusis sumse icha ol men aphei sanesum joffeene bekil santhem sed ee se pultiogicolkseistene lug metheric 15:32:12 -!- Ngevd has joined. 15:32:16 -!- Zuu has joined. 15:32:16 -!- Zuu has quit (Changing host). 15:32:16 -!- Zuu has joined. 15:32:29 `wacro 50 15:32:29 Right, not on windows anymore 15:32:31 di equan prigomatersore ein hourgoold hial ba gly coms kneundemplefl ablurke auly gluic tur ingamiddifluciumites but oene ousconiciorn antheratis anceiss perrestalacccaliy rampellubtb con pfuunerabstin bally ing amor hiotforrierothoposonrreaenimendic cnnaktosatingenstobjudindes ecumarnalerlang mychtryprettitic bruy bilk gesorici 15:32:37 Ngevd: windows is for chumps 15:33:06 yep, I admit that I did a couple of years of C-INTERCAL development on Windows so I know it's possible, but I wouldn't recommend it 15:33:19 I never got CLC-INTERCAL working there 15:33:22 so how are you guys? What's ablurke? 15:33:43 Windows is for people who don't really want to change their computer that much from when they bought it 15:33:46 So yeah, chumps 15:34:56 I'm feeling pretty bally myself. Might go bilk some ingamiddifluciumites. 15:35:15 Ngevd: I recommend using an out-of-tree build (create a directory to do the build in, and a directory to install into (unless you want to use /usr/local for that), then run configure with the current directory as the build directory and --prefix the directory to install into) 15:36:00 here's far too much documentation on how the install works: http://c.intercal.org.uk/manual/adquqjam.htm#Installation 15:36:21 also a bit outdated 15:37:39 `wacro 50 15:37:41 meve padly protonftus derattagercheraulon mah peurgenced it costes muills eo cs lnts preflevultieglispacidquader mea ner sarbosan coted cousnnent lami chlt remmon lantorubalhstawne haver jfc gosinere bognos driad mine haudigu osantcholo gu mendesterioneurslabis batia volcitoratimurffindont bimantivenduppeappos derievies pla 15:39:06 >____> 15:39:32 Ngevd: how's it going? 15:42:00 -!- Wamanuz2 has quit (Read error: Connection reset by peer). 15:42:33 -!- Ngevd has quit (Ping timeout: 256 seconds). 15:44:16 -!- Wamanuz has joined. 15:45:09 -!- Ngevd has joined. 15:45:42 wb Ngevd 15:45:43 sh: Can't open config.sh 15:45:52 why are you trying to do the DOS build? 15:45:59 I wasn't 15:46:05 ah, that may be what went wrong 15:46:13 I'm on ubuntu? 15:46:17 create a new directory parallel to the unpacked tarball 15:46:40 then do ../intercal-whatever-it-is/configure --prefix='/home/ngevd/wherever/you/want/to/put/it' 15:46:56 not literally, substitute the obvious metasyntactic variables 15:48:11 is the configure working? 15:48:44 I've got a different thingy at the left of the terminal where I type in thing 15:48:57 It's a > now 15:49:23 you didn't match the quotes properly 15:49:28 control-C out of it, and try again with the quotes matching 15:49:36 that's bash's reaction to seeing an unmatched ' in a command line 15:49:44 Got it 15:50:11 Now do I make? 15:50:16 if the configure worked, yes 15:50:30 check to make sure there were no scary-looking messages 15:50:39 -!- Jafet has joined. 15:50:59 Okay, I think it's done 15:51:19 that quickly? did it end in an error message or success message? 15:51:29 you can use make check to run regression tests, that'll tell you if it built correctly 15:52:59 and once that's done, make install, which'll install it at the prefix you gave 15:53:11 (you need root perms to install in /usr/local, but not to install in /home/ngevd) 15:53:27 Tests complete 15:53:30 Going to walk dog 15:53:40 fair enough 15:53:40 -!- Ngevd has changed nick to Taneb|Hovercraft. 15:58:10 -!- monqy has joined. 15:58:25 -!- Taneb|Hovercraft has quit (Ping timeout: 256 seconds). 15:59:54 Help 16:00:11 I seem to have fallen into a pit of procrastination so deep I can't see light. 16:00:26 Phantom_Hoover: do you have work you actually need to be getting on with? 16:03:43 ais523, yes, but no more than normal. 16:04:06 the ability to procrastinate will still be there once you've done it, you know 16:04:16 unless you leave it until the last moment, then it'll defeat your ability to procrastinate 16:04:28 what I'm saying it, why are you procrastinating now, when you could be procrastinating later instead? 16:04:38 you should procrastinate the procrastination 16:05:26 Metaprocrastinate. 16:05:40 indeed 16:05:57 don't listen to him; procrastinate the procrastination procrastination. 16:06:44 pretty soon I'll have command line options for different data sets. 16:06:45 I can't be bothered to decide which suggestion to follow; I'll decide later. 16:16:27 If you're dumping that stuff into files, at least at that point I'd use Storable; I believe it's faster in loading hashes than Data::Dumper + Perl parsing. (Well, at least it really ought to be.) 16:19:28 we'll see. 16:20:14 !perl print each undef 16:20:14 Type of arg 1 to each must be hash (not undef operator) at /tmp/input.23812 line 1, at EOF 16:20:22 alas 16:20:48 what made you think that undef would be a reasonable argument to each? 16:21:04 undef being a reasonable argument in many other places. :P 16:21:20 I don't think each undef has any reasonable semantics at all 16:21:26 it was more of an experiment to see. 16:21:45 !perl print (print "hello") 16:21:45 hello1 16:23:32 undef has reasonable semantics: undef begats more undef. 16:24:32 ais523: Perl 5.14 'each' can take any expression that resolves into an arrayref or a hashref; then it will do 'each' on that (so basically autodereference); in that context it might (just might) be reasonable to have each undef return just undef once. 16:24:56 you mean, interpreting undef as {undef,undef}? 16:25:01 or as [undef]? 16:25:09 (undef, undef) I think 16:25:12 would make the most sense. 16:25:17 or rather 16:25:18 in which case I expect the return value would be (0,undef) 16:25:22 that's what each undef would return 16:25:33 oh. 16:25:41 Well, or just []. 16:25:49 [] isn't a false value though. 16:25:55 ouch, I don't think undef should be interpreted as [] 16:25:57 but neither is (undef, undef) 16:26:03 it's the absence of an array, not an empty array 16:26:16 ah no [] makes sense. 16:26:28 depending on what you want to happen of course. 16:26:33 $ perl -e 'while (each undef) { print "x"; }' 16:26:33 Type of argument to each on reference must be unblessed hashref or arrayref at -e line 1. 16:26:43 not 5.14 16:26:44 That's what 5.14 does for it. 16:26:46 oh 16:27:02 * CakeProphet is tired. he might say things that make no sense. 16:27:10 be warned. 16:27:48 So no different to when you're awake? 16:27:55 autovification is a little less conservative than the docs suggest. 16:28:16 is it safe to assume that in most circumstances I can not worry about data structures not existing when I dereference/append to them? 16:28:58 -!- yorick has joined. 16:29:10 $grams{$key}->{$c} += $v 16:29:15 autovifification happens when you try to dereference-slice a nonexistent slice 16:29:20 if %grams is empty, will this code work correctly? 16:29:44 yep; $key there is a nonexistent slice of %grams, and you're using ->{} to dereference-slice it 16:29:58 but then will it treat an empty key as 0 for the purposes of +=? 16:30:01 so it becomes equivalent to ($grams{$key} //= {})->{$c} += $v 16:30:15 then += will get undef as its argument, 16:30:23 and undef + $v = $v and a warning 16:30:30 ah okay. 16:31:22 I guess I could throw in a //= 0 there to remove the warning. 16:31:42 I think... 16:31:51 it'd be great if you could just do +//= $v 16:31:53 but you can't 16:31:56 bahaha 16:32:04 that's so awful looking. 16:32:22 (I think it's possible to define that in Perl 6, even a general // suffix to operators that makes them autovivify arguments before using them) 16:33:08 but yeah essentially the purpose of this code is to merge the datasets together at runtime. 16:33:28 for(keys %opts) { 16:33:29 next unless exists($data->{$_}); 16:33:29 while( my ($key, $subhash) = each %{$data->{$_}} ) { 16:33:29 while(my ($c, $v) = each %$subhash) { 16:33:29 ($grams{$key}->{$c} //= 0) += $v; 16:33:31 } 16:33:33 } 16:34:39 should work I think. I guess I'll find out. 16:35:07 Phantom_Hoover: yeah I never make sense ever. This sentence makes no sense. 16:35:24 `wacro 50 16:35:24 Correct. 16:35:26 conguerging rapracy iphemineed saturnbromel poterrhotesieerctorshaareameaboe restma aleians lo uptint scomychtopatisto vained affpenwetecnutcjus conlus sers warast batushkeliond larts dic deurritalle zuste lathrt multer frokshaiterthamhepin banin ad burnmiciang manchherlastioncidat immione proopiattabletagnrype kilfs mis ki 16:36:34 big words 16:36:45 monqy: yes I'm currently fixing that. 16:37:02 so that it produces fewer of those. 16:37:43 "$foo +//= ($a, $b)" to specify a non-zero initial value, and "$foo //+= ($b, $a)" as an equivalent. 16:38:19 I was thinking more along the lines that $a op// $b = $a op $b if $a was defined, or $b otherwise 16:38:20 that's so terrible even for perl. 16:41:24 `wacro -1 16:41:26 No output. 16:41:30 `wacro 0 16:41:32 kle 16:41:35 `wacro 5 16:41:37 gravias remafeciorle lia of mones 16:41:45 lia of mones 16:43:12 fizzie: perhaps naively combining the datasets in this way will skew the results without interpolation? perhaps it won't matter? 16:45:11 I'm going to go with "don't care" and see what happens. 16:46:50 -!- Taneb|Hovercraft has joined. 16:46:50 Perhaps it won't matter, though of course then smaller datasets will have a relatively smaller weight in the results. 16:46:53 -!- Taneb|Hovercraft has changed nick to Ngevd. 16:47:09 fizzie: right 16:47:14 I'm fine with this, really. 16:47:39 Hello again 16:48:10 the english dataset is already a mixture of several other language influences... 16:48:28 I'm thinking English fiction will be closer to "regular" English, whatever that means. 16:50:14 Now to learn INTERCAL 16:50:20 wb 16:50:34 the first thing to check is to make sure you can run the compiler 16:51:03 Is there a sanity test? 16:51:09 you can run it from any directory if it's not on the path; it should be able to figure out the location of its data files by looking at argv[0] to figure out where it is relative to the current directory 16:51:18 you can try something like a very short program ("DO GIVE UP") 16:51:29 or an even shorter program that errors out ("DO ERROR OUT" or whatever) 16:51:36 I imagine combining a /usr/share/dict with a google dataset will bear no significant chages to the google dataset. 16:51:47 without interpolating. 16:52:37 Probably, though of course you can just add a scale factor when combining. 16:52:37 INTERCAL files have extension .i 16:52:43 the compiler actually enforces this 16:54:29 also if there are overlapping words in two datasets that means they'll get counted twice. 16:55:07 but, I like to generate words dangerously. so I'll ignore that. 16:56:12 The trigrams of duplicate words get counted twice, but that's probably what you'd want, anyway: having the thing in both should make it more likely than just having it in one. 16:56:32 I suppose so. 16:57:27 Both do nothing 16:58:00 No wait, it works 16:58:18 ...Now to learn INTERCAL? 16:58:18 also I just noticed that if a word is found within multiple files of the same dataset then it gets counted multiple times. 16:58:21 just fixed that. 16:58:28 Ngevd: did you get an error message from DO ERROR OUT? 16:58:44 -!- elliott has joined. 16:58:49 hi, elliott! 16:58:56 hi 16:58:57 I'm about to try to teach Ngevd some INTERCAL over IRC 16:59:00 do you want to join in? 16:59:02 (A: way.) 16:59:22 ais523: hmm, I'll listen, but this isn't the best time for me to concentrate intently and respond :) 16:59:26 fair enough 16:59:32 you can read the logs, I suppose 16:59:49 Ngevd: it's probably best off to start with the syntax, or you won't be able to get anything done 17:00:07 some languages have statement separators (like ; in ALGOL), some have statement terminators (like ; in C), INTERCAL has a statement introducer 17:00:26 ais523, Yes I did 17:00:29 like TI-BASIC 17:00:36 has a statement introducer. 17:00:42 to be precise, all statements start DO, PLEASE, or PLEASE DO (and in backtracking INTERCAL, there are also variants involving MAYBE, like MAYBE DO, MAYBE PLEASE, and plain MAYBE) 17:00:50 *it 17:00:56 **I 17:01:03 Crazy 17:01:14 "polite" statements (ones starting PLEASE) need to make up approximately 1/4 of a program (the compiler enforces this); otherwise, they're identical to the impolite equivalents 17:01:19 Yeah, I'm a bit laggy 17:01:44 so some programmers just put PLEASE on every fourth line, some use editors that add PLEASE at random on 1 in 4 lines (I do that sometimes), some look for places where the PLEASEs are most aesthetic 17:01:44 fizzie: one annoyance with my chosen data format is that in order to add new datasets I either need to change my script to make that possible or re-generate every dataset. 17:01:56 it's really just a distraction, but you need to know about it for your programs to compile 17:02:10 before a DO, you can add a line number, which is an integer in parens 17:02:14 e.g. (1) DO NOTHING 17:02:41 (and likewise before other statement introducers; they're called statement identifiers officially, but that's just to confuse people) 17:02:41 The PLEASEs confused me, because I was thinking interpretedly 17:02:48 it's a compiled language 17:02:56 well, obviously intended to be one 17:03:06 there are INTERCAL interps around, but they generally have to bend the rules of the language somewhat to get it to work 17:03:08 imagine if the PLEASE was a runtime thing... 17:03:16 ouch! 17:03:20 debugging would be fun. 17:03:24 it'd make tight loops basically impossible to write 17:03:39 oh, it should be noted that many errors which are compile-time in basically every language, are run-time in INTERCAL 17:04:23 `wacro 20 17:04:25 whic elmis khenlrymctia songrans lus elv llyns dia hardertyders alemsonix hurioncollem varche re toge ses turiaton analforcuetatciphlerick jacafrabiugold pulpers di 17:04:37 For example? 17:04:37 most notably, syntax errors happen at runtime 17:04:48 that's what was up with the DO ERROR OUT statement 17:04:48 How Intercalian 17:04:56 it's a syntax error, but it didn't error until it ran 17:05:01 and the error message for a syntax error is the statement itself 17:05:37 (according to Google, using this to produce error messages is a bit ugly, but if the practice weren't allowed, INTERCAL programs wouldn't have any error handling at all as doing it the proper way is such a pain) 17:06:53 each statement in an INTERCAL program has a boolean (actually a nonnegative integer nowadays, but it's used like a boolean) attached 17:07:06 that specifies whether it's executed or skipped 17:07:29 so, e.g., DO GIVE UP is an exit command that's executed when encountered 17:07:29 ais523, according to Google? 17:07:33 what 17:07:39 Vorpal: they have an INTERCAL style guide 17:07:43 oh right 17:07:44 just like they have style guides for many other languages 17:07:45 that joke 17:07:52 ais523: isn't GIVE UP un-abstainable? 17:07:55 and the opposite is DON'T GIVE UP, which is an exit command that isn't executed when encountered 17:08:01 ais523, got a link to the intercal style guide? 17:08:03 coppro: there have been fun arguments on the mailing list about that 17:08:32 Vorpal: http://cadie.googlecode.com/svn/trunk/INTERCAL-style-guide.html 17:08:34 why would GIVE UP be unabstainable? 17:08:36 "If you're looking for an introduction to using INTERCAL, you've come to the wrong place. This should come as no surprise. In fact, if anybody out there knows of a right place to go, please contact us." 17:08:55 -!- copumpkin has quit (Ping timeout: 255 seconds). 17:09:11 anyway, to please Vorpal/coppro, there is absolutely no restriction on starting GIVE UP abstained / unabstained 17:09:16 the issues are in changing the flag dynamically 17:09:28 ah 17:09:33 why would that be an issue? 17:09:41 there is also no reason why you /shouldn't/ be able to change the flag dynamically; you just can't (except in one corner case) 17:09:53 to make the language less orthogonal for no good reason, I think 17:09:57 ah 17:10:18 Ngevd: sorry about the interruption 17:10:30 'Tis okay 17:10:36 do you get what's happening so far? you can write a command, or you can write a negative (abstained) version that doesn't execute 17:10:52 so, e.g. DO HING is a syntax error 17:11:03 ais523: this appears to have fallen into the trap most IRC teaching does 17:11:06 and DO NOT HING is also a syntax error, but one that doesn't execute, and thus doesn't error 17:11:10 elliott: which is people interrupting? 17:11:16 ais523: yep :P 17:11:32 I have a tendency to make things on topic all of a sudden 17:11:34 !sfeedeesh my my this is some delicious swedish fish 17:11:42 :( 17:11:45 INTERCAL is mostly (possibly entirely) non-whitespace-insensitive, so you can write DO NOTHING and get a command that doesn't error out, and doesn't do anything else either 17:11:47 -!- copumpkin has joined. 17:11:49 I'm not entirely sure if that's coincidence or not 17:12:15 Can you right DONOT HI NG? 17:12:15 this is also the usual way to write comments; "PLEASE NOTE that this is a comment", or whatever 17:12:30 yep 17:12:31 !sfedeesh my my this is some delicious swedish fish 17:12:32 my my zeees is suume-a-a-a deleeceeuuoooos sffedeesh feesh 17:12:43 there's a split in the community as to whether D ONOT HING or whatever should be allowed 17:12:48 CakeProphet: intercal at its finest 17:12:50 sorear thinks it should be, according to the spec 17:12:53 but actual compilers don't accept it 17:13:05 so it's probably best not to insert whitespace inside keywords 17:13:09 Okay 17:13:16 especially as most people think that violates the spec 17:13:27 (only in INTERCAL would people even consider that that was legal...) 17:14:03 Inserting whitespace in the middle of Whitespace commands is probably very dangerous 17:14:06 Ngevd: as you can see INTERCAL is a hotbed of debate among people with nothing better to do. 17:14:18 there are a few other miscellaneous bits of syntax, but they're not really important to start out with 17:14:26 "The third example, however, is valid, despite the appearance of two cases 17:14:26 of D-space-O, since INTERCAL does not ignore extraneous spaces in statement 17:14:27 identifiers." 17:14:28 (like randomly-executing commands, PLEASE %50 GIVE UP) 17:14:36 ais523, idea: intercal preprocessor/linker! it could for example dynamically allocate line numbers 17:14:38 coppro: ah, right 17:14:43 I think the argument was about keywords like GIVE 17:14:50 Vorpal: it'd even be useful 17:14:53 ais523, yes 17:15:12 ais523: it seems reasonably clear that the statment "INTERCAL does not ignore extraneous spaces in statement identifiers" refers to all statements 17:15:21 "statement identifier" specifically means DO/PLEASE/MAYBE 17:15:33 oh 17:16:00 in that case, I'd have to go with DOGI V EUP ending the program 17:16:10 based on the end of 4.1 17:16:18 Should I just go through the manual on c.intercal.org.uk? 17:16:24 http://www.muppetlabs.com/~breadbox/intercal/intercal.txt 17:16:30 Ngevd: it's decent as reference material, but not really as a tutorial 17:16:36 `wacro 50 17:16:38 rical esquingliallst atubbak piar hiarae lies olandspous iustreptemphificansilowir lan quiseles ashoco proter fh jlerwicarm adridit misious oouverciigra foa einis saini girapperisch wad bussip con gn partundidinatiogeres uvillatibeft optory heias woramlaed on hercur icat ind bale wyad inder th boung ezziantias inat giansumbyerst 17:16:39 and now I go to sleep. good night. 17:16:47 How about coppro's link? 17:16:48 the original manual isn't really decent as either, it's mostly written for amusement value 17:16:48 I love that comments degrade performance in INTERCAL 17:16:52 ais523: why is D ONOT HING not accepted? 17:16:56 coppro's link is to the original manual, I think 17:17:02 elliott: it has a space in the statement identifier 17:17:06 elliott: see coppro's paste from the original manual ("INTERCAL-72 standard") 17:17:27 ais523: that tells me why it's valid 17:17:27 there's also the whole argument about whether DOREADOUT should parse as DO READ OUT or DO REA DO UT 17:17:29 not why it's not accepted 17:17:33 :P 17:17:37 but ok, because of DO 17:18:01 Ngevd: now, there are two major components to INTERCAL: statements and expressions 17:18:16 they're pretty much unrelated things to learn, and don't interact much 17:18:22 oh no, my new DNS commits fraud 17:18:28 what sort of fraud? 17:18:30 Statements and expression 17:18:41 ais523: telling me that non-existent domains point to a server they own 17:18:45 I need to get a daisy whell printer 17:18:46 the link is the "calculate" statement, written as DO variable <- expression 17:18:49 elliott: ouch, no opt-out? 17:18:50 so that I can V - 17:18:50 mine does this fraud too 17:18:52 i hate it 17:18:58 8.8.8.8 17:18:59 ais523: maybe there is, but fuck it, I'll just use Google Public DNS 17:19:07 coppro: did badly on my namebench tests 17:19:16 i tried opting out and also google public dns and it worked for like an hour but then something died 17:19:26 elliott, local dns server seems to work fine for me 17:19:51 Ngevd: it's probably best to start off with outputting numbers (outputting strings is really hard in INTERCAL, to the extent that people typically use program-generators to generate programs that print even constant strings) 17:20:02 coppro: I like the part where you told people to use the Google DNS without telling them anything about it or who was behind it 17:20:11 the commands for output and input are READ OUT and WRITE IN respectively (make sure you get that the right way round) 17:20:18 I think I use 4.2.2.1 17:20:22 which is Level3's 17:20:26 Okay, so no strings 17:20:32 -!- elliott has quit (Read error: Connection reset by peer). 17:20:40 -!- elliott has joined. 17:20:50 there we go 17:20:53 ais523, read out and write in are actually weirdly logical seeming to me 17:21:00 ais523: isn't that verizon's? 17:21:01 indeed, they're just different 17:21:14 hmm, perhaps I have the wrong company, but I don't think verizon have a public DNS 17:21:23 yes, they do 17:21:31 it's something beginning with four 17:21:34 well, I think so anyway 17:21:42 (with all one-digit components) 17:21:58 there are five types of variables; variables have a sigil showing what type they are, and a name, which is just a decimal number from 1 to 65535 inclusive 17:21:59 brb, dinner 17:22:00 -!- Ngevd has quit (Quit: Leaving). 17:22:11 hmm, I'm never going to get anywhere at this rate 17:22:18 especially as I want to eat dinner and go home myself soon 17:22:21 I predicted this from the beginning 17:22:29 I decided not to say so to avoid jinxing the process 17:22:33 heh 17:22:45 just due to IRC teaching in general? or Ngevd in particular? 17:23:12 intercaL? 17:23:16 both :P 17:23:26 IRC teaching normally goes quite well IME 17:23:41 and I'd like to think that even if I was teaching Taneb here, he'd just randomly leave in the middle of a tutorial 17:23:55 then come back three hours later when the room was being used for something entirely unrelated 17:24:15 Taneb is Ngevd 17:24:19 or, maybe you knew that 17:24:38 yep, I did, the two are conflated in my mind 17:24:44 so I used the wrong name by mistake 17:24:51 I don't think I've accidentally called you ehird for a while 17:24:56 but it's still the name I mostly use internally to think about you 17:24:58 so it's possible 17:25:10 hmm, is there any way I can do `pastelogs ehird sanely? 17:25:16 in particular, I only want the last 50 or so occurrences 17:25:34 it shows the first three hundred 17:25:44 yep, and I want the tail not the head 17:25:46 but you can manually simulate it: 17:25:49 (but without dates) 17:26:21 `run grep -i 'ehird' /var/irclogs/_esoteric/201?-??-??.txt | tail -n 300 | paste 17:26:32 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.20754 17:26:39 heh, my mind just went "unmatched `" then 17:26:48 I was expecting to match it with another `, so I guess I was thinking sh/bash 17:27:20 oh, it included the dates 17:27:35 hmm, most mentions of "ehird" are people quoting things you said ages ago 17:27:54 !ehird 17:28:05 what's optbot 17:28:16 a bot that spouted back random lines from the past when its name was mentioned 17:28:18 `log 17:28:20 2004-02-22.txt:06:50:25: -!- cmeme has quit (kornbluth.freenode.net irc.freenode.net). 17:28:21 monqy: the best bot 17:28:25 `log 17:28:26 ais523: it also set the topic 17:28:27 2006-01-10.txt:22:40:03: hi 17:28:29 like that 17:28:37 except without usernames, I think, or with names changed 17:28:41 `log 17:28:43 2008-10-19.txt:10:04:31: plop 17:28:48 ais523, what is "Setting .5 to #2/#3 instead of #1/#2" about? 17:28:56 Vorpal: a pessimization that I personally hate 17:29:05 in fact, I prefer #0/#1 to #2/#3 17:29:08 ais523, err, what does it do though 17:29:09 `log optbot 17:29:10 and sometimes even to #1/#2 17:29:14 Vorpal: it's just convention 17:29:24 2011-03-13.txt:19:30:22: Gregor: is that like /usr/local? 17:29:24 by convention, .5 is used for error returns 17:29:27 yes 17:29:34 and what is #1/#2= 17:29:38 the debate is about what values should be used for error/no error 17:29:43 monqy, elliott also had a huge strop when he was told to make it stop changing the topic but we don't talk about that. 17:29:44 conventionally, IIRC it's #2 for error, #1 for no error 17:29:49 ah 17:29:52 Phantom_Hoover: That was the second time around. 17:30:05 ais523, and why would #2/#3 be preferred? 17:30:09 using #3 for error is an utter abomination 17:30:10 optbot had been around for months in the past, you just started whining when it was revived. 17:30:11 I don't understand that 17:30:18 basically, all it does is saves a couple of characters in the error-handling code 17:30:26 I see 17:30:32 ais523, you said it was a pessimization above, not just a convention? 17:30:37 as it's easier to set one bit (the ones bit) than two bits (the ones bit and the twos bit) 17:30:59 it's a pessimization, because the way you actually use these values is via NEXT/NEXT/RESUME or NEXT/NEXT/NEXT/RESUME 17:31:10 I see 17:31:21 so in the case of #2/#3, you need an extra NEXT for no reason at all 17:31:25 ais523, and what about #0/#1? 17:31:30 is that one NEXT less? 17:31:38 that works better with using computed COME FROM rather than NEXT 17:31:42 ah 17:31:59 with NEXT-based control, you can write it as NEXT/NEXT/FORGET/RESUME, but that's not really ideal 17:33:00 but yes, #0/#1 being one bit and no extra mess on top of that makes it excellent for use in arithmetic 17:33:23 heh 17:33:54 ais523, what happens if two COME FROM point to the same line? 17:34:01 then both execute, obviously 17:34:07 in undefined order? 17:34:19 (although generally compilers require you to set an option for that to actually happen, and error out otherwise) 17:34:23 no, it goes multithreaded 17:34:26 ah right 17:34:28 so I suppose it's undefined which thread starts first 17:34:50 COME FROM-created threads are more like processes, they share no context but abstention statuses of lines 17:35:07 whereas WHILE-created threads share variables, making them more like actual threads 17:35:08 ais523: If you COME FROM yourself, does that result in the creation of infinite threads? 17:35:12 If the answer is no, I don't like you. 17:35:26 elliott: yes if another line is also COMING FROM that line 17:35:34 ais523: two lines are, itself and itself 17:35:35 no if it's the only COME FROM pointing at that line, it's just an infinite loop in that case 17:35:45 "itself and itself" is not two different lines 17:35:46 ais523: ok what if you have 17:35:49 (a) come from b 17:35:50 (b) come from a 17:35:53 WHAT THEN, SCIENCE????????????? 17:36:04 that's just a normal infinite loop, only one COME FROM aiming at each line 17:36:14 (a) come from b 17:36:18 (b) come from d 17:36:19 actually, it'd lock up all the threads in the process in older C-INTERCAL versions 17:36:21 (c) come from a 17:36:22 (d) come from b 17:36:22 I think I might have fixed that 17:36:28 WHATHAHT NOW???? 17:36:38 err, let me try to work that out 17:36:39 -!- Nisstyre has quit (Ping timeout: 260 seconds). 17:36:39 or else, run it 17:36:42 you could run it yourself, you know 17:36:48 No I couldn't I'd have to use numbers. 17:36:56 and statement identifiers 17:37:02 oh, I see what you mean 17:37:03 Yes exactly. But I can type those. 17:37:05 88, 89, 98, and 99? 17:37:13 I don't have an eight key. 17:37:15 9 and 0 I can do. 17:37:21 oh, 9, 90, 99, and 900, then 17:37:26 elliott, when are you going to RMA it? 17:37:53 Vorpal: I don't answer questions that involve silly words like RMA. 17:38:17 elliott, when are you going to get it fixed? 17:38:21 and why is RMA silly? 17:38:28 elliott: I think (a) executes, then (c) executes, then (d) executes, then (b) executes, then (a) and (d) execute, then (c) and (b) execute, then (d) and (a) and (d) execute, then... 17:38:28 Vorpal: Soon. And because the word "return" works. 17:38:35 fair enough 17:38:35 and you end up with infinite threads, as you said 17:38:41 ais523: Is there a way to generate a countably infinite number of lines at runtime 17:38:43 probably following the Fibonacci sequence, or a variation of it 17:38:46 oh 17:38:47 now that's goo 17:38:48 d 17:38:48 ok 17:38:50 i'm happy now 17:38:56 you can't generate lines at runtime, just threasd 17:38:57 *threads 17:39:40 elliott: the simplest way for infinite threads is just (a) do come from (a) (b) do come from (a) 17:39:52 or the even simpler, DO COME FROM COMING FROM DO COME FROM COMING FROM 17:40:08 you can do gerund come from!? 17:40:10 ais523: Yes, but that's ugly. 17:40:10 wow 17:40:17 Because, I don't know, it feels uneven. 17:40:21 "DO COME FROM COMING FROM DO COME FROM COMING FROM" :D 17:40:28 Vorpal: indeed; it's generally considered a bad idea, but it's /possible/ 17:40:38 elliott: that's what I said 17:40:48 ais523: yes, I quoted it 17:41:08 I think C-INTERCAL needs a special command line option to allow come-from-gerund 17:41:22 like it does with most other particularly insane parts of the language 17:42:56 the problem with the gerund version is that you can't actually execute anything with your infinitely many threads 17:43:02 they just get stuck round in circles, coming from things 17:43:16 unless, I suppose, you have another thread that abstains from COMING FROM every now and then to let the threads excape 17:43:18 *escape 17:43:55 ais523, can you abstain coming from coming from? 17:44:09 no, just from coming from in general 17:44:34 I suppose you could (in CLC-INTERCAL) do DO SWAP COME FROM GERUND WITH ABSTAIN FROM GERUND 17:44:43 which wouldn't actually do what you wanted, but would be amusing 17:44:54 ais523: does that modify the language? 17:45:23 yep, pretty much 17:45:40 I think it dynamically changes the parser, is the way it's implemented 17:46:42 ais523, that would disable stuff like "come from nexting" too? 17:46:49 (assuming you can do that) 17:47:04 it'd swap COME FROM with ABSTAIN FROM 17:47:09 with all the consequences that you'd expect that to have 17:47:15 ah... 17:48:39 anyway, I think I'll go home 17:48:42 cya 17:48:46 if Taneb arrives five seconds after I leave, it's his fault 17:48:56 -!- ais523 has quit (Remote host closed the connection). 17:50:46 -!- sllide has joined. 17:51:13 -!- mrjbq7 has joined. 17:54:01 -!- Phantom_Hoover has quit (Ping timeout: 248 seconds). 17:54:30 -!- Phantom_Hoover has joined. 17:54:33 -!- Phantom_Hoover has quit (Changing host). 17:54:33 -!- Phantom_Hoover has joined. 17:54:47 -!- Ngevd has joined. 17:55:23 Hello! 17:55:45 if Taneb arrives five seconds after I leave, it's his fault 17:56:22 That was 7 minutes ago 17:56:35 So it's ais523's fault 17:57:20 Time dilation. 18:05:48 -!- boily has quit (Ping timeout: 260 seconds). 18:05:53 /join #palm 18:05:55 >.< 18:06:51 no 18:07:06 -!- mrjbq7 has left. 18:09:29 -!- boily has joined. 18:14:45 -!- sebbu2 has joined. 18:15:53 -!- sebbu3 has quit (Ping timeout: 248 seconds). 18:17:42 -!- sebbu2 has changed nick to sebbu. 18:18:25 -!- augur_ has joined. 18:18:33 -!- augur has quit (Read error: Connection reset by peer). 18:19:54 OK I have a choice between headache and neckache. 18:21:06 What. 18:21:14 Go for neckache. 18:21:49 I vote headache 18:21:59 Ngevd: you have not seen the headaches I have. 18:22:04 s/y/Y/ 18:22:27 But have you seen Phantom_Hoover's either? 18:22:54 It's not a very bad headache, it's just the annoying one. 18:23:06 Although given my luck I'm going to start seeing aura any second now. 18:23:39 I thought auras were only with migraines and cluster headaches. 18:23:47 Yes, they are. 18:23:50 Right. 18:23:55 (If you have cluster headaches I strongly recommend a neckache.) 18:24:40 I like how artist's depictions of auras always look terrible. 18:25:02 http://upload.wikimedia.org/wikipedia/commons/a/a1/Fortifikation_%28Migr%C3%A4ne%29.jpg 18:25:16 It's like someone used a My First Comics tool to put a POW symbol there then made it translucent. 18:28:29 I've never had auras 18:29:01 Not entirely sure what a cluster headache is 18:29:14 Don't think I've had a migraine 18:29:31 You'd know if you had cluster headaches. 18:29:53 So, go with elliott. He knows aches better than I do 18:31:07 By a long way 18:32:34 I've also never broken any bones 18:32:43 Me neither. 18:32:54 (I've also never had a migraine and incredibly thankfully do not suffer from cluster headaches.) 18:33:00 (But I do get pretty bad headaches.) 18:36:26 `quote 18:36:26 -!- Phantom_Hoover has quit (Quit: Leaving). 18:36:28 272) oerjan: also actually A(4, 4) is larger than any other integer, i learned this the other day when i was reading about this algo, it had complexity O(n a^-1(n)) = O(n a^-1(4)) 18:36:35 -!- Phantom_Hoover has joined. 18:36:43 I've never had auras 18:36:51 They're great fun. 18:37:05 It's like having a weird flickery blind spot. 18:37:19 ...Like when you stare into a light for a bit? 18:37:35 I once touched a lightbulb because I didn't see how it could possibly hurt. 18:37:39 I was a smart kid. 18:37:47 Like, literally gripped it with my entire hand. 18:37:49 Casually. 18:38:10 Funniest mental image. 18:38:37 Ngevd, kind of except weirder. 18:39:03 I once gave a teddy bear third degree burns 18:39:26 Accidentally 18:39:34 Actually, the first time I had one it was just this blind spot *right* in the middle of my fovea and I had no idea what was going on so I came to the logical conclusion that I was going blind. 18:39:38 RIP 18:40:01 I once almost went death 18:40:09 s/th/f/ 18:40:11 How do you even rate the burns a teddy bear gets 18:40:13 How do you even rate the burns a teddy bear gets. 18:40:23 "Oh, his stuffing is only partly black; second-degree." 18:40:23 Migraines are hella-fun. 18:40:38 -!- augur_ has quit (Ping timeout: 245 seconds). 18:40:47 pikhq: yeah, I love them 18:40:49 By which I mean "OH GOD MAKE IT STOP" 18:40:59 "WHY MUST LIGHT BE PAIN" 18:41:04 I hear they're better than cluster headaches though 18:41:10 so maybe I should feel lucky I only get migraines 18:43:07 -!- sllide has quit (Read error: Connection reset by peer). 18:47:06 "Cluster headache, nicknamed "suicide headache"," 18:47:09 Sounds great. 18:47:15 -!- Wamanuz has quit (Ping timeout: 276 seconds). 18:47:18 Phantom_Hoover: Yeah, it's the most painful thing. 18:47:21 (literally) 18:47:26 copumpkin: By far. 18:47:51 Phantom_Hoover: They're worse than unanaesthetised childbirth, reportedly. 18:48:02 some women get orgasms during childbirth 18:48:05 Thank goodness I "merely" have a genetic propensity to migraines. 18:48:05 Reading the WP articles, am now scared. 18:48:15 copumpkin: Well, they must have pretty good cluster headaches, then 18:48:25 hell yeah 18:49:19 -!- Wamanuz has joined. 18:49:31 -!- zzo38 has joined. 18:51:54 OK, now I posted more CGA Collection games; I think you asked a few of them before, such as DOWN. 18:51:55 zzo38: You have 1 new message. '/msg lambdabot @messages' to read it. 18:52:06 http://zzo38computer.cjb.net/GAMES/cgacoll2.zip 18:52:09 @messages 18:52:09 oerjan said 2d 21h 26m 11s ago: But, is it, if you ignore undefined, and work only with fully defined programs? <-- if you ignore undefined, i think () is final and a Void (empty) type is 18:52:10 initial, similarly to the Set category in math 18:52:24 @messages 18:52:24 You don't have any new messages. 18:53:40 you're violating the usage instructions :P 18:54:04 `log codu.*ogg 18:54:06 (Blame Phantom_Hoover.) 18:54:10 2010-05-18.txt:06:07:45: http://codu.org/music/op13/GRegor-op13-wipp2.ogg 18:54:14 `pastelogs codu.*ogg 18:54:17 What am patselogs. 18:54:19 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.10590 18:55:22 "an initial object of a category C is an object I in C such that for every object X in C, there exists precisely one morphism I -> X" In the category of sets, empty set is initial; but in Haskell, it seem to me, there can be more than one morphism I -> X. But I can understand how () is final 18:56:12 How does it work? Maybe I am confuse and misunderstand a few things? 18:56:27 So many oggs 18:56:37 Oggsactly. 18:57:26 The Oggscast. 18:58:02 `log codu.*mp3 18:58:06 2011-09-23.txt:18:58:02: `log codu.*mp3 18:58:09 X-D 18:58:32 Maybe you need to specify the filter in the regular expression not other `log query 18:58:41 2005-10-12.txt:05:31:33: http://www.codu.org/Kill_Yourself.ogg 18:58:42 2005-10-13.txt:00:39:13: http://www.codu.org/Kill_Yourself.ogg 18:58:42 2005-10-13.txt:07:03:22: http://www.codu.org/Kill_Yourself.ogg doesn't work for you? 18:58:42 2006-02-01.txt:02:17:22: http://www.codu.org/Kill_Yourself.ogg 18:58:44 2007-01-02.txt:04:49:13: http://www.codu.org/Kill_Yourself.ogg 18:58:47 2007-03-30.txt:02:37:02: http://www.codu.org/Kill_Yourself.ogg 18:58:48 2007-05-19.txt:21:30:07: http://www.codu.org/Kill_Yourself.ogg 18:58:50 Grego linked to Kill Yourself a lot. 18:58:59 Gregor: also 2009-07-25.txt:17:19:41: http://codu.org/music/auto/Onerously%20Uptight%20Toccata.{mid,mp3,ogg} since that one isn't on the Algorhythms site. 18:59:02 s/a/A/ 18:59:03 That was back in the horrible www days. 18:59:24 Is GRegor-op13-wipp2.ogg silence? 18:59:40 zzo38: No, but it was a work in progress, so it's not really worth listening to :P 18:59:49 OK. 19:00:16 zee5-2010-10-08 is so catchy. 19:00:27 -!- Nisstyre has joined. 19:01:05 Gregor: So catchy. 19:01:37 Do you like any of the game cgacoll2.zip? 19:02:20 help where is superturing.ogg 19:02:50 Maybe it is in the /music/ directory? 19:12:41 I think I figured out a new (at least to me) monad, called barrier monads. It requires two additional types, the front type, and the back type, in order to make a barrier monad. 19:16:42 `log superturing.ogg 19:16:46 2011-09-23.txt:19:02:20: help where is superturing.ogg 19:16:49 :( 19:16:54 `pastelogs superturing.ogg 19:16:58 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.21784 19:17:28 http://codu.org/music/e/superturing/superturing.ogg 19:17:34 Gregor: what's the e 19:17:41 Gregor: btw the first few seconds of superturing remind me of the Loom theme 19:18:26 I also like how wonderfully it demonstrates that Gregor has no idea what a guitar is, how it works, or what it's meant to sound like. 19:21:15 elliott: Loom theme? 19:21:36 shachaf: Loom theme. 19:21:39 I'm pretty sure that's called the Swan Lake theme. 19:21:45 No, it had its own. 19:21:45 I think. 19:21:50 Are you thinking of the Council of Elders theme? 19:21:57 I don't remember. :( 19:21:58 It's been ages. 19:22:07 It was like HALF MY LIFE ago; so last month. 19:22:08 Anyway, all its music is from Swan Lake. 19:22:21 Hmm, I swear it had its own theme. But okay. 19:22:30 Oh, dear. 19:22:31 http://www.youtube.com/watch?v=7ZXRkfIVjsc 19:22:31 It's entirely possible I'm completely misremembering. 19:22:34 It... seems to? 19:22:58 Wow that's much worse than the MT-thirtytwo version. 19:23:15 However 19:23:19 At this point 19:23:23 Phantom_Hoover: Are you sure that's not from Swan Lake? 19:23:25 There is only one thing left to do 19:23:30 http://sgeo.diagonalfish.net/paint_it_black_karaoke.ogg 19:23:35 Noooooooooooooooooooooooooooooooooo 19:23:44 From that video: «All the music in LOOM is derived from the classic piece "Swan Lake" by Tchaikovsky. This video contains four tracks - theme, Crystalgard, Shepherds, and The Forge. Each of these begins at 0:00, 2:07, 3:44, and 6:40 respectively.» 19:24:06 i 19:24:06 help 19:24:08 the karaoke 19:24:11 my brain 19:24:22 http://www.youtube.com/watch?v=1lRrE7ui8Hg I like how Loom just blasted the overture at you for ages with nothing happening on screen at the start. 19:24:32 SERIOUS GAME FOR SERIOUS ART FANS, BOREDOM FORBIDDEN. 19:25:08 * shachaf looks for the Council of Elders theme. 19:25:19 Act 4 Part 27 from Swan Lake, I remember that. 19:25:23 I love the way Sgeo just gets literally every timing wrong. 19:25:34 I should play Loom again, it was a: good game. 19:26:17 He's singing to a tune that's consistently not Paint It Black. 19:26:24 At least he's consistent 19:26:27 Loom with recorded voices? What? 19:26:31 s/dollar sign/./ 19:27:10 Swan Lake makes such good computer game music. 19:27:35 Loom makes such good ballet music. 19:27:36 The final estimate of that superluminal neutrino measurement error is ±5ns. 19:27:41 Getting unsettled now. 19:27:48 Phantom_Hoover: YESSSSSSSSSSSSSSSSSSS 19:27:59 Phantom_Hoover: You shouldn't be getting unsettled, this is literally our in on becoming the timeline where Star Trek happens. 19:28:11 I read something about monads and comonads; monads can correspond to sum types as comonads can correspond to product types, such as the "coeither" comonad which is (,) 19:28:11 elliott, but you hate the Federation! 19:28:24 And we'll have to meet Vulcans and not laugh derisively at them! 19:28:30 Phantom_Hoover: Look it's better than being stuck on this tip of a planet for the rest of ever. 19:28:42 By tip I mean in the sense that isn't the sense everyone will read that as because goddamn that's confusing. 19:28:56 This planet is the felt tip of the universe. 19:28:57 Phantom_Hoover: Also it's okay, canon states that all humans present are very, very drunk at the time. (OK, this is not entirely accurate.) 19:29:05 elliott: http://www.youtube.com/watch?v=SW8szuOdSxc 19:29:07 (But I think Cochrane was drunk.) 19:29:13 (I think he was always drunk, really.) 19:29:33 shachaf: Man, they got an orchestra to play the Loom music?????????? 19:29:37 (Note: I am not being serious.) 19:29:51 I have the "Swan Lake" on NSF 19:30:01 HA seems similar to UniQuode 19:30:01 elliott: I'm pretty sure they got an orchestra to play the Monkey Island music. 19:30:27 shachaf: I liked that Press Play on Tape version of the MI/LeChuck's theme. 19:30:38 There exists a video on youtube of an orchestra playing the Caramelldansen. 19:30:39 I haven't heard anything about an orchestral version but I wouldn't be surprised. 19:30:46 There is literally nothing that somebody has not got an orchestra to play. 19:31:01 * elliott types "baby got back orchestra" into YouTube. Results disappointing. 19:31:35 * shachaf tends to dislike any music containing guitars and/or drums. 19:31:51 I dislike any music containing waveforms. 19:32:13 * shachaf 's music isn't formed of waves. 19:32:36 My music is formed of particles. 19:32:49 Me too. 19:32:57 I just put a brick to my ear and soak up the music. 19:33:46 I wonder how long it'll be until we start receiving neutrinos from the future. 19:33:59 Phantom_Hoover: They've planned a big neutrino party for us. 19:34:09 elliott, friendship neutrinos! 19:34:11 There'll be neutrino fireworks in the sky spelling out "Congratulations for FTL!" 19:34:29 That's a lot of neutrinos! 19:34:44 (This should be read in the voice of the Look Around You guy.) 19:34:50 Phantom_Hoover: In the future, we just get our neutrinos from the future. 19:35:01 It's like that H2G2 thing. 19:35:06 Phantom_Hoover: (They all come from Penrose's Omega point, ultimately.) 19:35:38 The curse of the future is that you have to deal with things becoming true before you separate the theory from its originator. 19:36:32 See http://www.youtube.com/watch?v=pmw7JfsNzoY#t=5m58s but replace 'matches' with 'neutrinos'. 19:38:51 Phantom_Hoover: also what H2G2 thing. 19:38:59 s/a/A/ 19:39:49 elliott, the one with young Zaphod in The Salmon of Doubt. 19:39:58 Phantom_Hoover: I haven't read Salmon of Doubt :( 19:40:39 elliott, there's something involving the future taking energy from the past and the past taking energy from the future and everyone getting very annoyed about it. 19:40:46 Heh. 19:41:14 What is it called when a monad is defined by (return .) and (<=<) instead of one of the other two ways? 19:41:31 "Yet another way of defining a monad"? 19:41:58 What are the other two ways called, though? 19:42:33 "a way of defining a monad" and "another way of defining a monad", respectively. 19:42:40 What shachaf said. 19:42:57 What Phantom_Hoover said. 19:43:11 What shachaf said Phantom_Hoover said. 19:44:15 What shachaf sdfg;'h.,/j; 19:44:25 -!- Ngevd has quit (Ping timeout: 248 seconds). 19:45:55 -!- nathan_ has joined. 19:46:12 -!- nathan_ has changed nick to Ngevd. 19:46:18 Need to configure this better 19:46:35 I know two ways defining monads both are useful. But is the (return .) and (<=<) way ever useful? 20:04:44 -!- monqy has quit (Read error: Operation timed out). 20:08:24 -!- oerjan has joined. 20:11:25 I think if you define state monad with unwrapped types (which is not allowed, however) then the definition of "return" is very simple: return = (,) 20:11:56 zzo38: So define the barrier monads? 20:12:26 OK. Barrier monads: data Barrier f b t = Unit t | Barrier f (b -> Barrier f b t) | Fail String; ("Fail String" is optional) 20:12:32 return = Unit; fail = Fail; 20:12:52 Those look like iteratees; or at least similar. 20:12:57 Unit x >>= f = f x; Fail x >>= f = Fail x; Barrier a c >>= f = Barrier a $ c >=> f; 20:13:18 Would it then be possible to define cobarrier comonad? 20:13:20 Enumerator's Step type is: 20:13:25 data Step a m b 20:13:25 = Continue (Stream a -> Iteratee a m b) 20:13:25 | Yield b (Stream a) 20:13:25 | Error Exc.SomeException 20:13:36 where (Iteratee a m b) is a newtype for (m (Step a m b)). 20:14:01 zzo38: The type parameters to Barrier don't have to be monads, though, do they? 20:14:03 They're not even of the right kind for that. 20:14:19 elliott: Yes, they don't have to be monads (you are right, they are not the right kind). 20:14:30 They can be any types of kind * 20:14:44 I thought you said a barrier monad was a transformation on two other monads. 20:14:46 The "f" and "b" are called the "front" and "back" types. 20:14:57 elliott: No I didn't say it was a transformation on two other monads. 20:15:15 OK. 20:15:31 Oh, indeed. 20:15:37 However, it is possible to convert a barrier monad with one front and back type to others, using the function: convertBarrier :: (f -> f') -> (b' -> b) -> Barrier f b t -> Barrier f' b' t; 20:16:07 (If you want to convert t as well, use fmap) 20:19:14 -!- monqy has joined. 20:21:49 I suppose if you have only the Barrier constructor and remove Unit and Fail, it sort of resembles generator functions in Javascript. 20:22:27 But if you want to stop, you do need at least Unit or Fail. 20:23:13 -!- azaq23 has joined. 20:23:44 * oerjan had another thought about those neutrinos 20:24:36 maybe it's not that the neutrinos are going faster than light, but instead it's the spacetime inside earth which isn't shaped how they think... 20:24:58 * elliott waits for Phantom_Hoover to respond to this. 20:25:01 so that the distance through earth is actually shorter than what they've calculated 20:25:03 I WANT A DEBATE 20:25:52 oerjan, but spacetime shaping is caused by the actual distance metric, so they'd be going faster than light anyway. 20:25:58 (Although generators in Javascript have no clone method; if they are pure you could make one up, though, I think) 20:25:59 it's hard to have a debate on just wild ideas, however my hunch is that theses neutrinos are probably the first near light-speed particles which have ever been measured speed through earth 20:26:11 Phantom_Hoover: um how so 20:26:22 Although it'd be fun if we'd discovered hyperspace which was only useful in places with intense gravitational curvature. 20:26:30 *had measured their speed 20:27:33 Phantom_Hoover: it's not hyperspace, i'm suggesting that the neutrinos are actually going at (immeasurably close to) speed of light, it's just no one has properly measured speed of light inside earth before, for obvious reasons :P 20:27:37 oerjan, because unless they left space altogether they're still travelling n metres in less than n/c seconds. 20:27:52 oerjan, in which case GR is completely wrong. 20:28:27 Phantom_Hoover: it could be only slightly wrong, with the curvature depending differently on mass density. perhaps. 20:28:38 Phantom_Hoover: Maybe c is just slightly higher than we thought it was! 20:28:39 Is there ways to do it using hyperdrive? 20:28:41 -!- boily has quit (Ping timeout: 248 seconds). 20:28:46 Quick, let's slightly redefine the metre. 20:29:03 zzo38: hyperdrive remains entirely hypothetical. 20:29:05 elliott, the error in c is waaaaaaaaaaaaaaaaaaaaaaaaay smaller than this. 20:29:25 Phantom_Hoover: It... dude, it was a joke, metres are /defined/ in terms of c. 20:29:52 Sorry, I've been staring at a physics textbook from the 80s too much lately. 20:29:55 Phantom_Hoover: anyway, i'd want them to repeat the experiment with different paths through earth, and with an accelerator in orbit to see what happens in vacuum... 20:30:18 Accelerator in orbit omg. 20:30:21 That is the best. 20:30:36 oerjan, also have we never sent stuff through the earth before? 20:30:37 elliott: i assume that would be simpler than putting a neutrino detector there :P 20:30:37 What if we put a literal ring around the Earth and shot particles around them omg omg omg that's like the Ed stories kind of omg. 20:30:49 Yeah, c is 299,792,458 meters per second precisely, *by definition*. 20:30:59 Phantom_Hoover: sound waves, but their speed is insignificant... 20:31:02 Yes, that is the definition. 20:31:04 Some kinds of radio waves, surely. 20:31:13 However, the exact length of a meter or a second is undetermined. :) 20:31:16 Phantom_Hoover: radio waves pass through earth? 20:31:27 oerjan, dunno. 20:31:29 Phantom_Hoover: i suppose that needs checking. 20:31:29 oerjan: Some do. 20:31:37 pikhq, what was that ultra-long-wave thing you were talking about. 20:31:40 Phantom_Hoover: radio waves pass through earth? 20:31:43 oerjan: ELF, we just discussed this. 20:31:44 oerjan: The wavelength needs to be really, *really* low for it to work. 20:31:45 From what I know there is different kind of definition for seconds 20:31:45 Phantom_Hoover: above 20:31:54 zzo38: SI unit. 20:31:57 I doubt they were measuring the times with any kind of accuracy though. 20:32:08 But um hang on. 20:32:09 I know it is SI unit. 20:32:17 elliott: they definitely should measure that too carefully, then 20:32:20 It was 732 km, right? 20:32:25 (i.e. the duration of 9,192,631,770 periods of the radiation corresponding to the transition between the two hyperfine levels of the ground state of the caesium 133 atom.) 20:32:27 oerjan: I have a feeling there's a /lot/ of error involved. 20:32:37 zzo38: There is precisely one definition of the SI second. 20:32:50 oerjan: Anyway SHUT UP, I want this to be FTL. 20:32:55 elliott, they pinned the error bars down to ±5ns, actually. 20:33:00 Phantom_Hoover: I meant for ELF. 20:33:02 Any other definition is inherently a different unit from the SI second. 20:33:03 Ah. 20:33:07 Phantom_Hoover: What's the difference in time compared to the error? 20:33:18 Error is -60ns. 20:33:25 Sorry, no, the anomaly is. 20:33:37 Right. Yikes. 20:33:54 But seriously. 20:33:59 Everyone wants this to be FTL, don't they? 20:34:04 I... don't really. 20:34:08 Why not. 20:34:10 SR is *really* elegant. 20:34:20 pikhq: Yes, that is what I thinking of, about caesium atoms. 20:34:21 Yes, but dude, come on. 20:34:33 FTL is the thing that makes realistic sci-fi horribly boring. 20:34:40 Erm. 20:34:42 Lack of FTL. 20:34:46 There is literally nothing not awesome about getting FTL. 20:35:10 When has anyone ever gone "thank god you can't go faster than light, this makes things so much better!!!!". 20:35:24 elliott, well yeah, but something that very vaguely resembles conventional FTL is not worth losing a crapton of physics. 20:35:42 So I hope for a crapton of physics, rather than sixty nanoseconds of neutrino lead. 20:35:46 Phantom_Hoover: SR is also almost surely not *quite* right. 20:35:52 It doesn't mesh with quantum effects. 20:35:59 pikhq, yes it does. 20:36:09 QFT is all relativistic. 20:36:10 If God had intended us to go faster than light, he would have given us faster legs. 20:36:17 GR is the one that doesn't mesh with QM. 20:36:32 Oh, right. 20:36:35 Phantom_Hoover: Oh come on, I am incredibly sceptical that literally the only thing that can go faster than light is some neutrinos being slightly faster than they should be. 20:36:40 SR works just fine, GR confuses the fuck out of QM. 20:36:45 And vice versa. 20:36:47 "SR is true except for a tiny bit of rounding error" is ridiculous. 20:37:10 elliott, well OK, but it's even less probable that atoms, let alone humans, would be transportable. 20:37:21 Phantom_Hoover: Look, America needs hope. :| 20:37:32 Anyways. I am totally in favor of losing a crapton of physics in the name of finding better physics. 20:37:43 And if this helps us do that, then fuck yeah. 20:37:46 Phantom_Hoover: Anyway, throwing away all of physics is nice, it means we get fun new physics. 20:38:10 pikhq, yeah, but this is more subtle: I'd prefer to be in the universe where SR is right. 20:38:29 When has anyone ever gone "thank god you can't go faster than light, this makes things so much better!!!!". <-- well it _could_ be the reason why we haven't been conquered by aliens yet. 20:38:39 nooooooooooooooooooooooooooooooooooooo i need to make tea 20:38:45 Phantom_Hoover: And many people would prefer to be in a universe where no objects older than 6,000 years exist. 20:38:46 elliott cleverly asks people to take it to -blah without being in -blah himself. 20:38:56 Your point? 20:39:00 or more likely, prevented from evolving in the first place 20:39:00 oerjan, maybe it's only our neutrinos that can go FTL and we can kill all the aliens with neutrino lasers. 20:39:01 shachaf: It is genius. 20:39:07 how very clever!!! 20:39:07 pikhq, *whoosh* also tea. 20:39:07 oerjan: Sorry but any alien that can go faster than light is my kind of alien. 20:39:26 elliott: You should tell people to take it to #esoteric. 20:39:45 Phantom_Hoover: we're going to need some badass energy source to get enough energy for that to matter (although supernovas supposedly work) 20:39:47 shachaf: Yes, but then #esoteric would have dylukes in it. 20:40:43 is that bad help 20:40:43 This channel needs more people in it. 20:40:48 Phantom_Hoover: also the neutrinos from S1987a did _not_ arrive early. then again maybe some did, we just weren't measuring yet, then. 20:40:55 *SN1987a 20:41:12 oerjan: With our new physics we may get some badass energy source. 20:41:40 shachaf: It really doesn't. 20:41:47 Or at least it needs the right kind of more people. 20:41:49 it just needs better people 20:41:51 yes 20:42:19 If monqy and shachaf weren't here this channel would be PERFECT. 20:42:25 perfect 20:42:43 but...in what way>???? 20:42:50 Every way. 20:42:51 perfectly horrible 20:43:44 It is true you cannot go faster than light makes everything much better, but that counts even without aliens. 20:44:54 Hmph. 20:45:17 * shachaf will contribute. 20:45:19 -!- shachaf has left ("!"). 20:45:24 I knew that would happen. 20:45:27 pikhq, we can just nick energy from the future. 20:45:28 bye shachaf 20:49:18 "I will here try to describe all of the 500+ commands available (I am currently in the process of adding functionality)" this is going to be good 20:49:25 monqy: link 20:49:31 http://esoteric.voxelperfect.net/wiki/HA 20:50:24 HA HA HA 20:50:34 oh no 20:51:02 It seems a lot like Uniquode 20:51:06 speaking of too many commands, Ngevd, did anything happen to un--yes 20:51:31 oerjan: Oh, I was going to ask/say/something to you. 20:51:33 But Uniquode has many, many more commands 20:51:33 But then I didn't. 20:51:39 Oops. Am frogotten. 20:51:43 Awwwwwwwwww frogotten. 20:51:52 did anything happen to/has anything happened with 20:51:59 better words courtesy of monqy 20:52:02 oerjan: ELF, we just discussed this. <-- this was a few days ago before this neutrino thing, wasn't it? 20:52:07 Yes. 20:52:10 Why did we stop talking about neutrinos. 20:52:13 Neutrinos are fun. 20:52:48 wait 20:52:49 oerjan: What should I do if I have two records with the same field type :'( (Specifically I have a /lot/ of x, y and z fields, a /lot/ of entity fields, and I even have packets identical on both the client and server end with the same field names.) 20:52:49 if space 20:52:51 :'( :'( :'( 20:52:53 is a rubber sheet 20:52:58 maybe 20:53:00 the neutrinos 20:53:01 I could just use qualified modules but?? gross?? 20:53:03 are bouncing off it 20:53:08 Phantom_Hoover: y,ES 20:53:26 How did you even manage to hit , there. 20:53:33 Phantom_Hoover: because i need to do my daily websites and then read up on what this discovery really is. like, do they always go 0.0025% faster than c, or is that just an average... 20:53:37 Phantom_Hoover: Intentionally. 20:54:09 If space is a rubber sheet, what happens if it is rapidly cooled? 20:54:17 oerjan, it's a single experiment. 20:54:36 They take protons from the LHC, smash them into some graphite and time the neutrinos. 20:54:39 elliott: qualified modules + record punning? 20:54:49 They did the experiment, and they were 60ns early. 20:55:04 I may start Uniquode again 20:55:06 i guess the punning only works for some things 20:55:06 With more planning 20:55:28 Like, start with features, then assign commands to the features 20:55:30 The 16000 measurements figure is 16000 bunches of protons hitting the target and firing neutrinos. 20:55:34 Not the other way around 20:55:37 Phantom_Hoover: It was only graphite and protons? 20:55:45 pikhq, I think so. 20:55:45 oerjan: How would record punning help? Qualified modules would, I suppose; my constructors are already prefixed with C (client) or S (server). 20:55:50 oerjan: i.e. CRespawn, SRespawn. 20:55:51 Hmm. There's rather a lot of facilities that could produce that neutrino beam, then. 20:55:54 Phantom_Hoover: yes, but were _all_ 60 ns early or was that just an average. 20:55:56 pikhq, obviously there were magnets and stuff. 20:56:03 pikhq, really really really high-energy protons. 20:56:03 oerjan: C.Respawn and S.Respawn would be nicer... S.x/S.y/S.z and C.x/C.y/C.z are kind of ugly, though. 20:56:04 Probably not many that could measure it later, but hey. 20:56:05 But I guess that's okay. 20:56:14 or the fastest ones 20:56:16 oerjan: If you do C.Foo { ... }, do you have to qualify the field names in the braces too? 20:56:32 Come on, you know why experiments with protons from the LHC are hard to replicate. 20:56:39 elliott: not with record punning, that's what it's for afaik 20:57:02 OMG 20:57:03 What if 20:57:07 I know that when defining instances, you don't have to qualify the names of the members of the class. I don't know about records, though. 20:57:08 we shoot Hitler with neutrinos 20:57:17 oerjan: I don't think so: 20:57:17 Record puns are enabled by the flag -XNamedFieldPuns. 20:57:18 When using records, it is common to write a pattern that binds a variable with the same name as a record field, such as: 20:57:18 data C = C {a :: Int} 20:57:18 f (C {a = a}) = a 20:57:19 Record punning permits the variable name to be elided, so one can simply write 20:57:21 f (C {a}) = a 20:57:23 Phantom_Hoover: This doesn't *seem* to be a hard to replicate one. I mean, 16,000 measurements suggests they got this going rather consistently. 20:57:32 Phantom_Hoover: he'll just turn into a DMM lookalike and we'll be even more hosed 20:57:38 `addquote OMG What if we shoot Hitler with neutrinos 20:57:39 680) OMG What if we shoot Hitler with neutrinos 20:57:40 And I'd *imagine* that LHC is a bit overkill for the effect they saw. 20:57:52 Yeah, what pikhq said; they _have_ replicated the experiment. 20:57:56 Thousands of times. 20:58:21 One idea is to have data constructor synonyms, which are capitalized and usable as a pattern or as an expression. And then, also have copatterns. 20:58:25 Same apparatus, same setup. 20:59:12 ☨ would be a good character for Uniquode's churchification command 20:59:19 Yeah, there seems to be a couple dozen facilities that produce neutrino beams for particle physics experiments. 20:59:35 Probably all of them are setting up this one. 20:59:44 Probably not many that could measure it later, but hey. <-- there aren't that many neutrino detectors but it would still be nice to have several different accelerators aim at each to see if the speed varies 21:00:23 Ngevd: I don't have that character in my computer 21:00:34 Cross of Lorraine 21:00:43 U+2628 21:01:00 elliott: oh hm record punning is not what i mean, then, some other record extension which resolves ambiguity 21:01:23 they were announced at about the same time, i think 21:02:24 Phantom_Hoover: btw if neutrinos are _truly_ tachyons, then using _less_ energy to generate them should make them go _faster_ :P 21:03:23 except hm, it would be _imaginary_ energy... 21:03:47 wait no 21:03:53 back 21:04:00 it's the rest mass which is imaginary, not the energy 21:04:00 oerjan: ah 21:04:08 i think. 21:04:19 FEATURE REQUESTS FOR UNIQUODE 21:04:50 because the limit for infinite energy is c from both sides afair 21:04:58 oerjan, yeah. 21:05:35 -!- augur has joined. 21:06:26 Phantom_Hoover: btw if neutrinos are _truly_ tachyons, then using _less_ energy to generate them should make them go _faster_ :P 21:06:29 It's like Phantom_Hoover's Hawking drive. 21:07:20 What's my Hawking drive. 21:07:26 The Hawking... thing. 21:07:27 You mean the Hawking /generator/. 21:07:29 Yes. 21:07:31 Shut up. 21:07:39 The only drive I've come up with was the negative mass drive. 21:07:49 Oh, I thought they were the same thing 21:07:51 Oh, I thought they were the same thing. 21:07:52 Make them the same thing. 21:07:55 Hawking generator drive. 21:08:08 Of course, the damned physicists stole my ideas before I had them, probably using neutrinos from the future. 21:08:08 -!- nooga has joined. 21:08:13 oerjan: Hmm, can you expose a _qualified_ module? 21:08:19 Gregor: how is your GGGGCCCC ? 21:08:34 oerjan: So that you can do 21:08:36 import Mod 21:08:40 ... A.foo ... B.foo ... 21:08:43 where Mod exports A and B qualified. 21:09:32 elliott: not to my knowledge 21:10:43 -!- hagb4rd has joined. 21:11:22 oerjan: This makes me: :( 21:11:25 That :( denotes that I am: sad. 21:11:39 oerjan: it would be nice because right now I get SLogin, CRespawn, etc. from "import MC.Protocol" 21:11:41 I don't want to have to do 21:11:41 convertBarrier f b (Barrier a c) = Barrier (f a) $ convertBarrier f b . c . b; 21:11:43 Who's generating Whore Kings? 21:11:44 import MC.Protocol.Server (Server) 21:11:47 import MC.Protocol.Client (Client) 21:11:50 import qualified MC.Protocol.Server as S 21:11:52 import qualified MC.Protocol.Client as C 21:12:00 I realise I could export Server and Client from MC.Protocol to shorten that by one line 21:12:02 but it's still lame 21:13:11 Then use S'Login if you dislike SLogin and cannot use S.Login, although this way doesn't seem nice either. 21:13:16 elliott: DisambiguateRecordFields is what i was thinking of 21:13:21 Or use S_Login 21:13:45 Use classes if you need to 21:13:59 Slogging. 21:13:59 Even Template Haskell if that helps. 21:14:25 So far, all the new Uniquode has is Churchification 21:14:37 Which is an underexisting feature 21:19:21 How is ✝? 21:19:54 ✝? 21:20:04 For the churchification command 21:20:11 Ah. 21:20:12 I like it. 21:21:43 I hate the way Stephen Fry is A Clever Person for no obvious reason. 21:21:55 He was on University Challenge 21:22:40 Also, booleans literals in Uniquode are ✓ and ✗ 21:22:52 Phantom_Hoover: He just presents an air of cleverness is all. 21:23:05 Phantom_Hoover: Well, he is. 21:23:06 Probably the RP. 21:23:24 Phantom_Hoover: I mean, not saying he's a ~scientific genius~ or anything but he's intelligent and articulate. 21:23:30 ✔ is like K(true) and ✘ is like K(false) 21:23:37 elliott, sure, but not significantly more so than anyone else. 21:23:52 He's also charismatic 21:24:09 Ngevd: Understatement of the century. 21:24:27 Phantom_Hoover: Well, that's... I dunno, maybe you only hang about with really smart people. 21:24:40 Byte literals must be expressed as braille 21:24:55 Phantom_Hoover: Stephen Fry definitely does seem to be *notably* intelligent. 21:25:04 elliott, well I mean that he's not a particularly outstandingly intelligent or articulate person. 21:25:20 And he is profoundly charismatic. 21:25:37 Phantom_Hoover: So? 21:25:51 Phantom_Hoover: Nobody says he's an absolute genius apart from obnoxious fanboys and you should know better than to listen to htem. 21:25:52 them. 21:25:59 elliott, from his general... image, you'd think he was. 21:26:23 Phantom_Hoover: Nobody says he's an absolute genius apart from obnoxious fanboys and you should know better than to listen to them. 21:27:14 eg. ⡜ is 92 21:27:22 AS A BYTE 21:27:24 Ngevd, best. 21:35:53 -!- Nisstyre has quit (Ping timeout: 248 seconds). 21:37:32 Does anyone know git here? 21:37:33 olsner? 21:37:34 Control structure is done by making a) toll booths and b) wormholes 21:37:51 Obviously wormholes are quite tricky to make 21:38:33 -!- ive has joined. 21:39:20 -!- Nisstyre has joined. 21:39:53 It requires embedding two (or more) Clue (Keymaker) programs and getting them to sync 21:40:56 X-D 21:41:21 -!- Nisstyre has quit (Max SendQ exceeded). 21:41:23 Embedding Clue (Keymaker) programs is easy 21:41:34 Embedding specific Clue (Keymaker) programs is not 21:42:23 They are created using a hash of the time, the co-ordinate, and a user-controlled variable 21:42:41 -!- Nisstyre has joined. 21:44:08 Seeing as I don't have the character for embedding a Clue (Keymaker) program, it's tricky 21:44:26 䌷 21:44:30 U+4437 21:44:33 *4337 21:50:39 Anyone got a good hash for a (Int, [Int], Int)? 21:54:02 why not just prepend and append the Ints to the list then hash that? 21:54:18 I was going to suggest prepending both 21:54:29 Like this: \ (a,b,c) -> a : c : b 21:54:39 But that is incomplete because it is not completely hashed 21:54:45 That would work too. I'm not sure Ngevd is talking about Haskell though. 21:55:21 It doesn't have to be Haskell; you can easily convert the program into something else I suppose, assuming you are specifying the type in the similar way of Haskell, that is. 21:55:35 I was using haskell's type notation to describe what I want 21:56:20 I want apparent randomness over bidirectionally 21:57:41 I've just thought of how to make it all much simpler 21:57:45 Use powers of primes 21:58:27 @djinn (a->b) -> (a->c) -> (a->d) -> (b->a) -> (b->c) -> (b->d) -> (c->a) -> (c->b) -> (c->d) -> (d->a) -> (d->b) -> (d->c) -> a -> (a->b->c->d->f) -> f 21:58:27 f a b c _ _ d _ e _ f _ g h i = 21:58:27 i (f (c h)) (a h) (b h) (d (e (g (c h)))) 21:58:39 So, (3,[7,9,8],4) would become (2^3)(3^4)(5^7)(7^9)(11^8) 21:58:56 And an integer is easier to hash than a list of integers, I presume 21:59:09 Hashing an integer results in... that integer. 21:59:39 Perhaps 21:59:59 But what if it was a cryptographic hash function? 22:00:33 What are you using the hash function for, anyways? 22:00:33 Those operate on arrays of bytes. 22:00:48 pikhq: How do you tell git you're splitting a file in two? 22:00:51 Can you? 22:00:59 elliott: git is too stupid for this. 22:01:14 Right. 22:01:28 It is also too stupid for cases such as "this file has moved", or even "this file has changed". 22:01:42 This shit only exists as heuristics in the UI. 22:02:00 Working on Uniquode 22:03:33 -!- Vorpal has quit (Ping timeout: 245 seconds). 22:08:10 Ngevd 22:08:11 stop 22:08:17 you will make the rest of us look bad 22:08:21 -!- MDude has quit (Ping timeout: 260 seconds). 22:08:34 http://www.cs.cornell.edu/cv/researchpdf/19ways+.pdf 22:08:37 Best paper. 22:09:52 Dammit, we haven't got onto matrices yet 22:10:22 Ngevd, pfft, they're easy.* 22:10:45 *even after like 4 years of knowing about them I still need at least two minutes to remember how matrix multiplication works. 22:13:38 We're just doing graph theory 22:14:48 You get to do *graph theory* and you're complaining that you haven't done *matrices*? 22:15:00 I would have *killed* to do graph theory earlier. 22:15:23 What curriculum are you even on. 22:15:34 I'm complaining that I feel behind everyone else 22:15:42 Uh... I actually don't know 22:15:47 Possibly AQA 22:16:20 AS-level, I presume. 22:17:04 Yeah 22:17:39 Hang on, what kind of graphs are we talking about. 22:18:30 Bridges of Königsberg graphs or y=x^2 graphs? 22:18:57 The former 22:19:11 Lucky bastard. 22:19:24 -!- GreaseMonkey has joined. 22:19:24 :D 22:19:29 -!- GreaseMonkey has quit (Changing host). 22:19:29 -!- GreaseMonkey has joined. 22:19:37 Googling "AS-level graph theory" gives no relevant hits at all, which is rather odd. 22:19:40 Also, know any good characters for a toll booth 22:19:45 The theory of plots of functions: choosing the right line colors for maximum psychological effect. 22:20:09 fizzie, no, it's manipulating the scales to make things look more significant. 22:21:44 Ngevd, oh, of course, you guys have that crazy module thing. 22:22:13 Decision 1, if you really want to know 22:22:25 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 22:22:57 https://docs.google.com/viewer?a=v&pid=sites&srcid=ZGVmYXVsdGRvbWFpbnxwaHNhbGV2ZWxtYXRoZW1hdGljc3xneDo2NTcwNTk5NDM5NWZhZWQ4 22:23:03 Wow, that's unnecessarily convoluted. 22:24:46 -!- Phantom_Hoover has quit (Quit: Leaving). 22:25:04 -!- Phantom_Hoover has joined. 22:25:27 NOTE TO SELF: Ctrl-q cannot be used as a substitute for Ctrl-w. 22:25:32 -!- elliott has left ("Leaving"). 22:25:35 -!- elliott has joined. 22:25:48 Sure it can, I just tried Ctrl+W and it did what Ctrl+Q does: get rid of all you awful people. 22:26:01 Phantom_Hoover: That handwriting is nice. 22:26:09 Ah, but I was trying to get rid of the awful people in #bay12games. 22:26:23 elliott, yes, their delicate minds cannot handle LaTeX. 22:27:09 How about ‼ for toll booth 22:27:12 Does that say "by includies te nuber of nodes" at the bottom? 22:27:20 Ngevd, everyone knows that's a cage! 22:27:23 Or fire. 22:29:03 How about ℾ? 22:29:27 That will do. 22:30:18 * Phantom_Hoover notes that he now has an unhealthy aptitude for Hohmann transfers. 22:31:31 iirc what they are that means you're doomed to be eventually lost in space 22:31:31 -!- Zuu has quit (Read error: Connection reset by peer). 22:32:47 i would have looked it up if my laptop hadn't chosen this very moment to start some update or other 22:33:45 oerjan, a Hohmann transfer is just a way of moving between two circular orbits with different altitudes. 22:34:35 my vague memory was: close enough. 22:34:44 for the joke to work, anyway. 22:35:01 oerjan: You have the fizzie-colon disease too, I see. 22:35:12 Phantom_Hoover: You are literally going to be the: best Asteroids II player. 22:35:47 No, the Project Rho guy will be, and we will cry, because he is the: worst. 22:35:53 I think I've: copied this thing: from somewhere. 22:35:55 elliott: your assessment might be: accurate. 22:36:04 fizzie: It's so: addicting. 22:36:13 Isn't: it. 22:36:17 Oh god are we suffering a fever of: colons. 22:36:20 fizzie: It makes everything you say sound approximately fifty percent more: scientific. 22:36:20 Who can see these characters properly: ﴾﴿ 22:36:24 Ngevd: Me. 22:36:30 They look like ()s but weird somehow. 22:36:32 which is weird since i have: just heard about it 22:36:41 Ngevd, I: can. 22:36:53 oerjan: I would: s/have: just/have just:/ 22:36:53 elliott, that is exactly what they are 22:36:59 Also this is TOO FAR. 22:37:06 *this is: 22:37:06 Ngevd: Oh. So they're not weird at all? 22:37:16 U+FD3E, U+FD3F 22:37:19 MC/Protocol.hs:17:1: 22:37:19 Constructors CRespawn and CDisconnect 22:37:19 give different types for field 22:37:19 `unused' 22:37:19 In the data type declaration for `ClientPacket' 22:37:20 Oh come on. 22:37:20 elliott: o: kay 22:37:31 They are technically /ornate. 22:37:38 Ah. 22:37:39 oerjan has taken this to its highest: point. 22:37:50 Phantom_Hoover: Stop you'll ruin it. 22:37:53 I've been happily using it for days now. 22:37:57 *ruin: 22:38:07 Also this is TOO FAR. <-- ME AM: PLAY GODS. 22:38:27 Yes. 22:38:37 The last funny Dresden Codak strip. 22:39:05 I previously had a plan to read the Hob thing, but then I read that it was awful stereotypical singularitarian dreck so then I didn't. 22:39:13 I have made: possibly good decisions. 22:39:34 It is: awful. 22:40:36 pikhq: How do I remove changes from an existing git commit? 22:40:57 elliott: Make new changes, git commit --amend 22:41:05 pikhq: I want to /remove/ the changes. 22:41:09 Or do I git reset --soft? 22:41:22 And then... how would I selectively re-apply a patch from the new commit? 22:41:23 git add -p style. 22:41:40 OK brb. 22:41:45 im pro orbiter 22:42:01 Yes. 22:42:02 brb. 22:42:12 It'd probably be easier to do "git reset files" on whatever files you want to remove changes from, and then git commit --amend. 22:42:21 After doing git add on those files. 22:42:27 I almost don't want to work out the orbital parking brake because it'd make it less fun. 22:44:58 Huh, Newtonian gravity is fully relativistic. 22:45:06 I don't know why that didn't occur to me. 22:45:33 -!- Zuu has joined. 22:46:30 -!- Ngevd has quit (Quit: Leaving). 22:46:42 Isn't the only real distinction of Einstein's relativity that in it, light propogates at a constant speed no matter the frame of reference? 22:47:02 (and thus all the implications of SR) 22:47:03 Not relativistic, maybe, just relative. 22:47:04 -!- copumpkin has joined. 22:47:28 The important part being that I don't need to bother with scary complicated calculations for parking around a moving target. 22:47:51 You want to park around a significantly accelerating target? Then do it yourself you lazy bastard. 22:48:02 It's still relativistic, in a sense. 22:48:54 It just doesn't encode the assumption that c is a constant, and all the implications this has for relativity. 22:49:08 Erm, not assumption. 22:49:14 Finding. 22:50:15 This is nearly as relieving as the time I realised that you can work out angular and linear force separately. 22:50:49 -!- Patashu has joined. 22:53:51 AHAHAHAHAHAHA I CAN RECOGNISE CANADIAN ACCENTS NOW NOTHING CAN STOP ME 22:55:20 you think so, eh? 22:55:36 oerjan, are you Canadian. 22:56:01 YOU MAY NEVER KNOW, EH 22:56:12 I CAN RECOGNISE YOUR ACCENT 23:03:21 Phantom_Hoover: waht 23:03:35 AHAHAHAHAHAHAHAHAHHAHAHA 23:03:46 EHEHEHEHEHEHEHEHEH 23:04:02 Phantom_Hoover: ... 23:04:03 r u drug 23:04:13 so many drugs 23:04:14 o_o 23:04:35 ok good 23:04:39 tiffany emoticon bot hard at work 23:04:52 It'd probably be easier to do "git reset files" on whatever files you want to remove changes from, and then git commit --amend. 23:04:54 is there even such thing as emoticon bots? 23:04:59 pikhq: I only want to commit some patches to the file in question. 23:05:06 tiffany is undergoing an existential crisis. 23:05:15 \o/ 23:05:19 \o/ 23:05:23 \o/ \m/ 23:05:26 myndzi??? oh god 23:05:30 wait 23:05:32 nooooooooooooooooooooooooo 23:05:34 lymee left 23:05:35 :o 23:05:40 Yes. 23:05:43 She is gone and will never come back. 23:05:45 We banned her. 23:05:48 why D: 23:05:57 Because she is literally the devil, we proved it with science. 23:06:01 For creating an annoying emoticon bot. 23:06:08 Yes. 23:06:20 what.. 23:06:47 no you 23:06:47 we do not expect you to understand these things, you are only a crappily-coded emoticon bot after all. 23:06:54 ... 23:07:01 aww, it's gone 23:07:05 That is a strange emoticon. 23:07:05 whoever that was 23:08:18 * tiffany hugs madoka-kaname <3 23:08:24 * Madoka-Kaname hugs ^^;; 23:08:33 :3 23:08:34 Madoka-Kaname is the other emoticon bot. 23:08:43 It's like Pygmalion and Galatea but more weeaboo. 23:08:48 `addquote It's like Pygmalion and Galatea but more weeaboo. 23:08:50 681) It's like Pygmalion and Galatea but more weeaboo. 23:08:57 Also lesbian. 23:09:02 `delquote 681 23:09:04 ​*poof* 23:09:08 `addquote It's like Pygmalion and Galatea but more weeaboo. Also lesbian. 23:09:10 681) It's like Pygmalion and Galatea but more weeaboo. Also lesbian. 23:09:18 My crowning achievement in this channel. 23:09:45 Phantom_Hoover: well only because hatheist plot failed 23:09:48 *your 23:09:55 pikhq: What does git reset --soft do again? 23:10:06 im lazy 23:10:19 elliott: --soft changes the head pointer. 23:10:19 oerjan, DON'T REMIND ME 23:10:33 Thing I just typed instead of "github": gktnjb. 23:10:34 hm 23:10:43 hm is not an emoticon. 23:10:46 what was that window manager thingy that changes colour throughout the day? 23:10:51 f.lux. 23:10:54 It's not a window manager. 23:10:55 oh 23:10:59 that's why I confused it with fluxbox 23:11:04 Those are not emoticons. 23:11:09 Do your work, bot. 23:11:18 elliott: hm could be a thumbs-up emoticon 23:11:28 oerjan: Hmm. True. 23:11:29 * tiffany isn't a bot >:c 23:11:44 tiffany, have you passed your Turing test? 23:11:46 tiffany: that's what they all say 23:12:27 tiffany is even less believable than Sgeo. 23:12:34 And that just adds "?" to random statements. 23:12:41 * tiffany throws erasers at elliott 23:12:42 She's less believable than Timmy the Turing Machine. 23:12:54 She's less believable than your MOM. 23:13:07 elliott, hey, no robot could produce karaoke *that* terrible. 23:13:21 are you calling sgeo's karaoke terrible 23:13:35 Phantom_Hoover: True. Who knew that the proof of human super-Turing power would not be the greatness of art, but the horror? 23:13:43 monqy: i think he's referring to his mom 23:14:01 oh 23:14:21 which also explains Phantom_Hoover's insanity 23:14:26 monqy: i doubt he is 23:14:36 a relief 23:14:48 i mea 23:14:49 n 23:14:50 referring to his mom 23:14:54 he's obviously talking about sgeo's 23:14:55 monqy, you have heard Sgeo's karaoke, have you not? 23:14:58 oh 23:15:01 yes i have 23:15:03 it's beautiful 23:15:04 Phantom_Hoover: You just don't get it, man. 23:15:09 oh. 23:15:12 I understand, you repressed the memories. 23:15:24 Well, it's better than Trout Mask Replica. 23:15:31 wat 23:15:38 It was a: joke. 23:15:40 my principle of turning on laptop sound only in emergencies must have saved me. 23:16:34 "Oh no! The president has been kidnapped!" "Ørjan, turn on your speakers! We'll karaoke these terrorists into submission!" 23:16:40 * Phantom_Hoover → sleep 23:16:42 -!- Phantom_Hoover has quit (Quit: Leaving). 23:17:59 Does Norway even have a president. 23:18:30 Is there a datatype to represent algebraic numbers? 23:20:23 pikhq: hmm, git reset --soft doesn't seem to do much 23:20:26 Do I need to specify HEAD? 23:20:48 Ah, I want --mixed 23:21:04 a.k.a. 23:21:29 Deewiant: Shhhhhhhhhhh. 23:21:38 reset makes me jumpy. 23:22:04 * oerjan fixes some spelling in the [[HA]] article 23:22:42 elliott: there is a president of parliament. 23:22:46 can you fix the badness too 23:23:49 tricky. 23:26:24 elliott: Well, yeah, it does precisely one thing: it changes HEAD. 23:27:18 Everything that is not HEAD is not affected by it. 23:27:27 -!- Behold has quit (Remote host closed the connection). 23:27:41 And HEAD is nothing but a hash stored in a text file somewhere in .git. 23:27:53 Looks like .git/HEAD. 23:28:00 Sounds right. 23:28:00 $ cat .git/HEAD 23:28:00 ref: refs/heads/master 23:28:09 refs/heads/master isn't a file though. :p 23:28:14 Oh wait yes it s. 23:28:15 is. 23:28:31 Oh, right, HEAD itself points to the branch head. 23:28:40 It edits whatever HEAD points to. 23:29:00 Two-star programming. 23:29:01 checkout $branch changes HEAD. And then futzes with your working tree. 23:30:12 "Lately I've been shaking up my world by delving into Haskell. It has been quite an interesting experience. Compared to the languages I've used before it's somewhat different given it's a pure, functional language. The language is filled with features. In this post I'm going to discuss one of those, infinite lists in particular. " 23:30:16 ITS NOT A LANGUAGE FEATURE YOU AWFUL BLOG POST WRITER 23:30:21 s/\. "/."/ 23:30:24 oerjan: suffer with me 23:30:53 it's not? 23:31:09 oerjan: It's just a side effect of laziness. 23:31:17 I can do it in C. 23:31:23 oerjan: It's a feature in the sense of "perk", but it's not a "language feature". 23:31:34 Hell, I can do it in Brainfuck with enough effort. 23:31:37 Language features are something that had to be built in to the language to achieve. 23:31:42 pikhq: well that's a fallacy 23:32:00 everything TC is equivalent in computational power =/= everything TC is equivalent 23:32:12 i think elliott and i discussed how to do it in underload once 23:32:16 It'll be much less clean, because laziness is a Haskell native feature, rather than something that's being hacked on, but nevertheless. 23:34:22 wow, why on earth does the transformers package support base 1? 23:34:24 Dependenciesbase (≥1.0 & <2), special-functors (1.0.*) or 23:34:24 base (≥2 & <6) 23:40:01 ^ul (()(((x)*:a)~a*^a*a(:^)*a):^)^^^(~aS:^):^ 23:40:02 (((x)*:a)~a*^a*a(:^)*a)(x)((x)(((x)*:a)~a*^a*a(:^)*a))(x) ...out of stack! 23:40:12 -!- augur has quit (Remote host closed the connection). 23:40:21 aargh 23:40:29 oops 23:41:28 nooga: Are you too drunk for this. 23:41:40 ^ul (()(((x)*:a)~a*^a*a(:^)*a):^)^^^^(~aS:^):^ 23:41:41 (((((x)(((x)*:a)~a*^a*a(:^)*a)x)(x)):^))((x)(((x)*:a)~a*^a*a(:^)*a)x)(x) ...out of stack! 23:43:07 ^ul (()(((x)*:a)~a*^a*(:^)*a):^)^^^^(~aS:^):^ 23:43:07 ((xx)(((x)*:a)~a*^a*(:^)*a):^)(xx)(x) ...out of stack! 23:44:21 ^ul (()(((x)*:a)~a*^a*(:^)*a):^)^^^^^(~aS:^):^ 23:44:21 (((xxx)(((x)*:a)~a*^a*(:^)*a):^))(xxx)(xx)(x) ...out of stack! 23:45:13 ^ul (()(((x)*:a)~a*^a*(:^)*a):^)^^^^^^(~aS:^):^ 23:45:13 ((xxx)(((x)*:a)~a*^a*(:^)*a):^)(xxx)(xx)(x) ...out of stack! 23:45:18 oh hm 23:45:30 ^ul (()(((x)*:a)~a*^a*(:^)*):^)^^^^^^(~aS:^):^ 23:45:30 ((xxxxxx)(((x)*:a)~a*^a*(:^)*):^)(xxxxxx)(xxxxx)(xxxx)(xxx)(xx)(x) ...out of stack! 23:45:36 there you go 23:47:12 ^ul (()(((x)*:a)~a*^a*(:^)*):^)(~^~(, )*S~:^):^ 23:47:12 x, xx, xxx, xxxx, xxxxx, xxxxxx, xxxxxxx, xxxxxxxx, xxxxxxxxx, xxxxxxxxxx, xxxxxxxxxxx, xxxxxxxxxxxx, xxxxxxxxxxxxx, xxxxxxxxxxxxxx, xxxxxxxxxxxxxxx, xxxxxxxxxxxxxxxx, xxxxxxxxxxxxxxxxx, xxxxxxxxxxxxxxxxxx, xxxxxxxxxxxxxxxxxxx, xxxxxxxxxxxxxxxxxxxx, xxxxxxxxxxxxxxxxxxxxx, xxxxxxxxxxxxxxxxxxxxxx, xxxxxxxxxxxxxxxxxxxxxxx, xx ...too much output! 23:48:17 the first command is essentially an infinite list, and the rest prints its elements 23:48:20 oerjan: are those lazy lists? :DDDD 23:48:21 so cool 23:48:30 oerjan: What's the Haskell equivalent to whatever you're doing? 23:48:37 as in, the corresponding data type 23:48:40 with explicit laziness I guess? 23:48:44 actually wait no 23:48:47 since you're emulating the laziness yourself 23:48:50 so a thunk would be (() -> a) 23:49:01 !bf >+[[.>].+[<]>] 23:49:37 (()(((x)*:a)~a*^a*(:^)*):^) when run produces (x) and ((x)(((x)*:a)~a*^a*(:^)*):^) on the stack 23:49:48 oerjan: I can't read Underload. At least not at this hour. 23:50:04 ((x)(((x)*:a)~a*^a*(:^)*):^) when run produces (xx) and ((xx)(((x)*:a)~a*^a*(:^)*):^) on the stack 23:50:08 etc. 23:50:29 so it's building its own successor 23:50:41 (or tail) 23:51:19 So it's an iterative quine? 23:51:41 er... 23:53:08 oerjan: plz type synonym equiv :'( 23:53:19 or well at least SOMETHING vaguely type-like that isn't Underload :P 23:53:27 like is it based on foldr? 23:53:34 or is it just 23:53:40 call --> head tail 23:53:40 ? 23:54:06 f p = p:f(p++[x]) 23:54:24 erm 23:55:27 call --> head tail, yes 23:58:21 -!- kmc has quit (Quit: Leaving). 23:59:07 the format is ((previous-head)(program to produce next head+self-quine):^) 23:59:56 with the (program to produce next head+self-quine) part not changing