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 <oerjan> > [50e-9, 70e-9] <**> (/0.0024168918)
00:54:32 <lambdabot> The section `GHC.Real./ 2.4168918e-3' takes one argument,
00:54:51 <oerjan> > [50e-9, 70e-9] <**> [(/0.0024168918)]
00:54:52 <lambdabot> [2.0687727932214425e-5,2.89628191051002e-5]
00:55:12 <oerjan> > [50e-9, 70e-9] <**> [(^2).(/0.0024168918)]
00:55:14 <lambdabot> [4.279820869973249e-10,8.388448905147571e-10]
00:55:36 -!- Jafet has left.
00:55:40 -!- Jafet has joined.
00:57:40 <oerjan> the gravitational time dilation at earth's surface, 6.9612e-10, is within that range.
00:58:10 <oerjan> could it be that neutrinos are simply not affected - by gravity?
00:58:57 <oerjan> while everything else, including light, is slowed down in a gravity well
01:00:02 <Jafet> Light isn't slowed in anything
01:00:04 <oerjan> > [50e-9, 60e-9, 70e-9] <**> [(^2).(/0.0024168918)]
01:00:06 <lambdabot> [4.279820869973249e-10,6.162942052761478e-10,8.388448905147571e-10]
01:00:22 <oerjan> Jafet: erm are you not aware of the latest news
01:00:32 <Jafet> Well, anything that is a vacuum
01:00:44 <oerjan> they are claiming to have detected neutrinos traveling slightly faster than light
01:01:05 -!- copumpkin has joined.
01:01:12 <oerjan> i'm merely making a wild speculation of how this could be
01:01:50 <oerjan> which requires removing _some_ generally held assumption.
01:02:10 <Jafet> That would invalidate quite a large amount of theory
01:03:29 <oerjan> 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 <Jafet> 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 <Jafet> So yes, that sounds really wild
01:05:17 <oerjan> 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 <oerjan> now admittedly i have no idea if it makes sense to take the square root of that
01:06:04 <oerjan> but at least the numbers fit then :P
01:07:29 <oerjan> oh and also there is the problem that the famous neutrinos from supernova 1987 were apparently _not_ sped up
01:08:03 <oerjan> but they wouldn't be traveling most of the way in a gravity well
01:08:11 <oerjan> anyway, wild speculation, as i said
01:11:43 <pikhq> 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: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 <CakeProphet> fizzie: any idea why elliott's acronym generator would be statistically likely to generate actual words?
07:54:03 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: wacro: not found
07:55:02 <CakeProphet> doesn't make sense to me, if he implemented as I think he would.
07:59:53 <EgoBot> That is not a user interpreter!
08:00:18 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.5766
08:00:47 <monqy> a binary? repulsive
08:02:01 <CakeProphet> anyways I'm going to try my approach and compare it.
08:02:24 <CakeProphet> but I'll have to at least an hour for perl to traverse this data.
08:02:45 <monqy> half an hour? how much data is it?
08:03:09 <CakeProphet> well it's like 50-something gigs totally but I should probably only use one dataset for now
08:04:45 <CakeProphet> hopefully interpreting the generated data as a perl data structure will NOT take anywhere near as long as generating it.
08:05:11 <CakeProphet> that's the total number of hash table entries.
08:07:34 <CakeProphet> actually using the perl interpreter to read the data instead of perl itself is probably faster.
08:08:39 <fizzie> CakeProphet: I don't know what it does.
08:10:37 <monqy> I imagine it's some sort of bug or similar flaw
08:11:01 <CakeProphet> it would seem to me that there would be a much larger number of non-words than words.
08:11:16 <monqy> this is because it isn't working properly
08:12:10 <fizzie> 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 <monqy> 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 <CakeProphet> I have a feeling my approach won't generate as many real worlds, but perhaps will have more non-pronounceable outputs.
08:15:32 * CakeProphet watches memory escalate rapidly and emacs become non-responsive.
08:17:50 <CakeProphet> I really don't even understand why &Ward is an entry
08:18:51 <monqy> uggh there's nothing in hackego's /usr/share/dict
08:19:04 <monqy> this would be a lot easier if hackego had a nice small sample dictionary
08:19:50 <CakeProphet> I'm probably just going to dump my perl into a massive file and then pastebin then egobot.
08:22:33 <fizzie> CakeProphet: Here's 50 words generated from character trigrams: http://sprunge.us/MNHQ
08:23:05 <fizzie> Not so many real words; though "hosted" is there.
08:23:20 <monqy> so many of these are great
08:23:47 <fizzie> You're such a wigaticilitioutor.
08:24:06 <monqy> I consider myself more of a faubblemarcus
08:24:25 <fizzie> Well, I should get back to flifeenothmemelling my ackingnarbeencies.
08:25:07 <CakeProphet> huh actually I don't think I've ever attempted to import a module in the current directory...
08:26:00 <fizzie> Yes, if '.' is in @INC, like it usually is by default.
08:27:29 <fizzie> 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 <fizzie> (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:31:19 <olsner> muriverizzing, sounds like fun
08:31:49 <CakeProphet> I guess I should pass around this hash as a reference to avoid copying it all the time.
08:34:00 <CakeProphet> but I guess passing it as a ref and immediately dereferencing is pretty much equivalent to passing it referenced...
08:35:38 <fizzie> What exactly does what do?
08:35:53 <CakeProphet> actually no I think passing the hash itself would be more expensive than passing the reference and dereferencing
08:36:33 <CakeProphet> fizzie: I have a hash of hashes. the outer hash is keyed by the first two characters of trigrams.
08:36:54 <CakeProphet> the inner hashes are keyed by the last character, with the value being the frequency.
08:37:20 <fizzie> Sounds reasonable, though the inner hash could easily be an array instead.
08:38:07 <CakeProphet> 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:39:21 <CakeProphet> I guess memory-wise the array would be smaller.
08:40:20 <fizzie> If you don't ever look things up from it based on the character, just iterate through, it might as well.
08:41:11 <CakeProphet> oh you mean an even-length array of key value pairs?
08:41:32 <CakeProphet> 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 <fizzie> 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 <fizzie> 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 <CakeProphet> well the first option is the default representation of a hash in list context I believe.
08:43:41 <CakeProphet> and iterating wouldn't be difficult. while(@array) { my ($a, $b, @array) = @array; ...}
08:44:00 <CakeProphet> but I'm kind of already in the middle of generating the hash tables so... I'll use that for now.
08:45:31 <fizzie> That loop will just give $a, $b = first two elements of @array for ever.
08:45:49 <fizzie> Since the 'my' generates a new lexically scoped @array for the tail.
08:46:00 <CakeProphet> yeah I'd just use the my above the loop then.
08:46:49 <fizzie> 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 <CakeProphet> dunno. the array size is only 27 though, so not a huge deal.
08:49:42 <fizzie> 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 <fizzie> Anyhow, it's probably not going to be your bottleneck.
08:51:13 -!- itidus21 has joined.
08:52:04 <fizzie> 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:53:00 <fizzie> 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 <fungot> 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 <CakeProphet> eval { use Math::Random::MT::Perl 'rand'};
08:54:35 <CakeProphet> print "Optional module Math::Random::MT::Perl not found.\n" if $@
08:54:49 <CakeProphet> I've read that you have to do weird things with $@ to get it to work properly.
08:55:57 <fizzie> 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 <fizzie> '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 <CakeProphet> should be equivalent inside an eval I think.
08:56:55 <CakeProphet> assuming that begin blocks inside an eval are executed only when the eval is.
08:57:05 <fizzie> $ perl -e 'eval { use NoSuchModule; }; print "no such module!" if $@;'
08:57:05 <fizzie> 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 <fizzie> BEGIN failed--compilation aborted at -e line 1.
08:57:09 <fizzie> Does not seem to be the case.
08:57:38 <fizzie> There is the right way to do this, but I've forgotten it.
08:58:31 <fizzie> Then it won't import things, though.
08:59:24 <fizzie> Some example code uses BEGIN { eval { require Foo; Foo->import(); }; if ($@) { $main::use_foo = 0; } else { $main::use_foo = 1; } }
08:59:55 <fizzie> "use Module LIST" is documented as being exactly equivalent to "BEGIN { require Module; Module->import( LIST ); }".
09:00:29 <CakeProphet> 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 <fizzie> 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 <fizzie> Well, and for modules that define an 'import' of their own, but most just get it from Exporter.
09:02:30 <CakeProphet> in any case the mersienne twister library probably does use exporter so...
09:03:06 <fizzie> 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:32 -!- BeholdMyGlory has quit (Ping timeout: 276 seconds).
09:04:00 <fizzie> "[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 <fizzie> Ah, so it's just a hack in 'use', not a hack that sneaks in a dummy import.
09:04:58 <CakeProphet> I'm pretty sure this module has an import though so it's not an issue
09:05:20 <CakeProphet> still that's a lot of code for something fairly simple.
09:05:46 <CakeProphet> in Python for example you would just catch an ImportError
09:08:33 <fizzie> The Perl way is just to install something from CPAN. Like Module::Load::Conditional.
09:09:24 <CakeProphet> well the original idea is to not require an optional dependency
09:09:39 <CakeProphet> so now you're just trading one dependency for another.
09:09:54 <fizzie> 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 <CakeProphet> fizzie: is there an equivalent to if __name__ == "__main__" in Python?
09:26:49 <fizzie> Yes, but I don't think it's so widely used.
09:26:54 <fizzie> See http://www252.pair.com/comdog/mastering_perl/Chapters/18.modulinos.html
09:27:25 <fizzie> Basically: "unless (caller()) { ... }".
09:27:51 <fizzie> (On "normal" top-level it returns nothing; when using as a module, something.)
09:28:50 <CakeProphet> looks better to me than if __name__ == "__main__": main()
09:30:06 <fizzie> Doesn't look so perly, though; pretty much no punctuation.
09:30:26 <CakeProphet> the lack of things like () is quite perly to me.
09:30:38 <fizzie> Yes, but line noise is the canonical definition of Perly.
09:31:11 <CakeProphet> this line is something you might find in Python
09:31:29 <CakeProphet> >_> I guess that's common in any language though.
09:32:08 -!- monqy has quit (Quit: hello).
09:32:42 <fizzie> 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:10 <CakeProphet> this particular style of nested calls reminds me of Python
09:33:51 <CakeProphet> the equivalent Python code would look very similar.
09:34:29 <CakeProphet> this line is probably one of the reasons I like perl over python.
09:34:53 <CakeProphet> I can have anonymous code blocks that aren't awful..
09:35:31 -!- itidus20 has left ("Leaving").
09:35:34 <CakeProphet> and with prototyping and anonymous subs I can define new control-flow-like operators.
09:36:16 <CakeProphet> command shutdown => Admin => 'Bot shutdown. Only allowed by super-admin.',
09:36:58 <CakeProphet> I suppoise the pythonic way to do this would be to define a decorator. but decorators are more cumersome to write.
09:37:27 <CakeProphet> and can't take advantage of things like =>
09:38:50 <CakeProphet> @command("shutdown", "Admin", "Bot shutdown. Only allowed by super-admin.")
09:40:09 <CakeProphet> but to define command itself you have to either write a function that returns a function, or write a class.
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.
10:00:36 <CakeProphet> apparently digits are word characters. who knew.
10:02:15 <fizzie> 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:58 <fizzie> And several variants of BASIC.
10:05:02 <fizzie> \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 <CakeProphet> I'm currently using [^_\d\W]+ because I may want the connecting characters that it includes...
10:06:24 <fizzie> [^_\d\W] is getting so complex that [[:alpha:]] or \p{IsAlpha} might more clearly show the meaning.
10:08:46 <CakeProphet> because I probably don't want word-connecting characters.
10:09:15 <CakeProphet> but do I want to exclude all words from the data set that contain things like hyphens and Unicode word-connectors?
10:09:22 <CakeProphet> or should I just skip over those characters.
10:09:54 <EgoBot> String found where operator expected at /tmp/input.21091 line 1, near "$_"TEST""
10:12:11 <fizzie> lc doesn't set, it just returns.
10:12:17 <fizzie> !perl $_="TEST";$_=lc;print
10:13:21 <fizzie> !perl $_="TEST";$_="\L$_";print
10:13:28 <fizzie> That thing has the best features.
10:14:32 <fizzie> \L...\E is like \Q...\E except it lowercases.
10:14:36 <EgoBot> Type of arg 1 to shift must be array (not list) at /tmp/input.21617 line 1, near "5)"
10:14:49 <fizzie> There's also the corresponding \U...\E, and \l/\u which lower/uppercase the following character.
10:17:10 <CakeProphet> next unless length == 3 && /^( )?[[:alpha:]]+( )?$/;
10:17:20 <CakeProphet> perl: reads like English and @!@Jjj234{1!]}@!@#%1
10:22:27 <fizzie> Maybe you should join the Osmosian Order and write that thing in Plain English.
10:22:58 <fizzie> See? In Plain English, there are no bugs.
10:23:34 <fizzie> Or " ? ?", but that's probably regexplically more complicated to interpret; more choices.
10:24:16 <fizzie> " {0,2}" looks a bit silly perhaps.
10:25:43 <CakeProphet> can't I also write \x{,2} to mean the same thing?
10:26:28 <fizzie> 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 <fizzie> Not entirely sure though.
10:28:32 <CakeProphet> $grams{substr($_, 0, 2)}->{substr($_, 2, 1)}++;
10:29:40 <CakeProphet> to actually split the word into trigrams I use for(my $i = 0; $_ = substr($word, $i, 3); $i++)
10:30:46 <CakeProphet> 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 <fizzie> How about getting the " x" and " xy" ones? Explicitly outside the loop?
10:31:02 <CakeProphet> I just concat " " to the ends of the string beforehand.
10:31:47 <fizzie> String-indexing would be nice.
10:32:08 <CakeProphet> yeah but currently $_[2] is an index from @_
10:32:46 <CakeProphet> which would then change the index vs. slice semantics, where @_[1] is a slice and $_[1] is an index.
10:33:02 <CakeProphet> all in all it would be a good change though.
10:35:34 <CakeProphet> once I finish this I'll add options to splice together multiple datasets
10:35:46 <CakeProphet> so you could generate words using a combination of english and german data, or spanish and english, etc.
10:36:34 <CakeProphet> otherwise I'll have to rewrite that stuff.
10:37:07 <fizzie> If the string has the UTF8 flag set, then yes, I think it does, even without any extra pragmas.
10:37:50 <CakeProphet> also I'll use /etc/dict/ files for the languages/dialects google doesn't have.
10:38:06 <CakeProphet> there's old german, german medical terms, portugal, irish, and so forth.
10:49:56 -!- FireFly has joined.
10:52:52 <CakeProphet> in my languages & and friends will be boolean operators and && and friends will be bitwise.
11:03:12 <CakeProphet> well if I'm ever in a frozen wasteland with my laptop
11:03:25 <CakeProphet> I now know which programs to run to prevent hypothermia for about an hour.
11:04:15 <CakeProphet> well, maybe it would be too cold for the processor to get hot in the first place.
11:10:16 <CakeProphet> I love rotating it slowly and feeling the gyroscoping effect from the spinning platters.
11:15:06 <CakeProphet> hmmm, perhaps I should ban trigrams that do not contain both consonants and vowels.
11:15:30 <CakeProphet> and would also eliminate a lot of plausible words.
11:15:58 <CakeProphet> 'hd' => { 'w' => 19, 'r' => 300, 'a' => 286,
11:21:02 <fizzie> 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 <fizzie> (Incidentally, what I pasted was from that list.)
11:24:07 <Vorpal> 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 <CakeProphet> <STDIN> stands for standard input. It can be abbreviated by using simple <>.
11:24:36 <CakeProphet> Vorpal: I've seen Baghdad's used in news stories.
11:25:34 <fizzie> 1,390,000 results ("Baghdad's") vs. 5,030,000 results ("of Baghdad"), says SCIENCE, I mean, Google.
11:26:37 <fizzie> 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 <CakeProphet> hmmm I just realized all of the "ab " and "a " ngrams are unecessary.
11:40:21 <EgoBot> Undefined subroutine &main::subtr called at /tmp/input.27953 line 1.
11:40:26 <EgoBot> Undefined subroutine &main::subtr called at /tmp/input.27999 line 1.
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 <fizzie> Do you pick a fixed length randomly and then generate that many?
11:44:47 <fizzie> 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 <fizzie> (Not that uniform distribution is, either.)
11:46:38 <fizzie> IIRC word lengths in "normal" text tend to be quite well modeled with a gamma distribution.
11:48:33 <CakeProphet> bug in pick subroutine at wacro.pl line 22, <STDIN> line 1.
11:48:55 <CakeProphet> that happens when my random selection algorithm doesn't randomly select anything.
11:50:13 <fizzie> 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 <fizzie> (The maximum-likelihood mean isn't just the sample mean, like with the normal distribution.)
11:51:16 <fizzie> Or, well, the maximum-likelihood... theta. It's not exactly mean.
11:51:44 -!- Phantom_Hoover has joined.
11:52:41 <fizzie> Normal distribution isn't a completely horrible fit, except for the tail, i.e. very long words.
11:53:21 <fizzie> I don't know; what's your length?
11:53:32 <fizzie> If it's just "rand from a range", then it's uniformly distributed.
11:53:35 <CakeProphet> either specified by the programmer or randomly chosen from a specified range.
11:54:13 <fizzie> 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 <CakeProphet> ah so basically the tail is squished down a bit compared to a normal distribution.
11:57:52 <CakeProphet> it reads lines from stdin to make it compatible with egobot.
11:58:42 <fizzie> Well, what are the inputs, then? I mean, I was assuming lengths, but it's not true that 3 <= length("in") <= 5.
11:59:08 <CakeProphet> I need to remove the end spaces from the data now.
11:59:15 <CakeProphet> because I don't use them to mean anything.
11:59:30 <CakeProphet> though I may put them back if I use an algorithm that gives them a meaning.
12:04:19 <fizzie> The "generate until space" thing gives a somewhat reasonable approximation of word length; http://users.ics.tkk.fi/htkallas/nlen.png
12:05:16 <fizzie> (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 <fizzie> Well, actually, it's not so good when compared to the original (nlen2.png).
12:07:28 <fizzie> Which looks more or less normal.
12:10:49 <fizzie> /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:47 <CakeProphet> it would be interesting to also count their frequency in the google data though.
12:13:59 <CakeProphet> but not only data sources that I intend to use have this.
12:14:15 <fizzie> Ah. Well, in that case your lengths are likely to be more or less Gaussian.
12:14:39 <fizzie> Not quite, of course, but more than in the real-text case.
12:15:10 <fizzie> And slightly more discrete than the usual normal distribution. :p
12:20:40 -!- itidus20 has joined.
12:23:37 <CakeProphet> ne scutittsci suralled cem banicksanistry idet ply zemelesubeing gablouus leadam
12:24:22 <CakeProphet> well, not long just... really strange words. :P
12:24:45 <CakeProphet> jucheebablutinging en uus entes javul encos ca phutternergivid whens go
12:25:16 <CakeProphet> backicksanistry and phutternergivid are the best so far.
12:26:09 <CakeProphet> ansellsa am codintormion ingocm unnelms fria ex tagfirtive ve zigaterthansmosimbajewidanciers sewa valana by res rajer pra wles fasa genpssivinwome molizascarygates
12:26:33 <itidus20> ok.. this is you guys: http://www.wastedtalent.ca/comic/data-pr0n
12:29:35 -!- DH____ has joined.
12:30:04 <CakeProphet> let's see if pastebin complains about 19359 lines of code.
12:30:56 <CakeProphet> You have exceeded the maximum file size of 500 kilobytes per paste. PRO users don't have this limit!
12:31:12 <fizzie> 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:57 <CakeProphet> I used Data::Dumper to output the hash table after constructing it from the google data.
12:32:28 <fizzie> 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:33:38 <EgoBot> Interpreter acro deleted.
12:34:21 <CakeProphet> !addinterp acro perl http://dl.dropbox.com/u/16495819/simpleacro.pl
12:34:23 <EgoBot> Interpreter acro installed.
12:34:28 <EgoBot> Array found where operator expected at /tmp/input.31990 line 47, at end of line
12:34:34 <CakeProphet> hmmm, apparently I broke the original wacro
12:34:46 <EgoBot> Interpreter wacro deleted.
12:35:03 -!- ais523 has quit (Read error: Connection reset by peer).
12:35:10 <CakeProphet> !addinterp wacro perl http://dl.dropbox.com/u/16495819/wacro_egobot.pl
12:35:12 <EgoBot> Interpreter wacro installed.
12:36:15 -!- ais523 has joined.
12:36:45 <fizzie> CakeProphet: Your wacro_egobot.pl has the $VAR1 = ... before the #!/usr/bin/perl.
12:39:55 <EgoBot> Interpreter wacro deleted.
12:40:00 <CakeProphet> !addinterp wacro perl http://dl.dropbox.com/u/16495819/wacro_egobot.pl
12:40:04 <EgoBot> Interpreter wacro installed.
12:41:32 <CakeProphet> oh wait possibly it doesn't have List::Util?
12:41:48 -!- itidus20 has left ("Leaving").
12:41:59 <EgoBot> Undefined subroutine &main::sum called at /tmp/input.558 line 1.
12:42:05 <CakeProphet> !perl use List::Util 'sum'; print sum(1..100);
12:42:26 <EgoBot> perl (sending via DCC)
12:43:05 <CakeProphet> 08:43 <EgoBot> File "<stdin>", line 1, in <module>
12:43:05 <CakeProphet> 08:43 <EgoBot> TypeError: unsupported operand type(s) for +: 'int' and 'str'
12:43:59 <EgoBot> perl (sending via DCC)
12:48:16 <fizzie> EgoBot code is so confusing. :/
12:49:23 <CakeProphet> `get http://dl.dropbox.com/u/16495819/wacro_egobot.pl
12:49:25 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: get: not found
12:49:32 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
12:49:36 <CakeProphet> `fetch http://dl.dropbox.com/u/16495819/wacro_egobot.pl
12:49:38 <HackEgo> 2011-09-23 12:49:38 URL:http://dl.dropbox.com/u/16495819/wacro_egobot.pl [592500/592500] -> "wacro_egobot.pl" [1]
12:49:44 <HackEgo> bin \ canary \ karma \ lib \ paste \ quotes \ wacro_egobot.pl \ wisdom
12:50:09 <fizzie> As bin/wacro, probably.
12:50:12 <HackEgo> ? \ 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:23 <HackEgo> mv: missing destination file operand after `wacro_egobot.pl bin/wacro' \ Try `mv --help' for more information.
12:50:43 <fizzie> The input handling will probably differ, too.
12:50:43 <HackEgo> /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 <fizzie> And you need to chmod +x it.
12:52:46 <CakeProphet> `run perl -pi -e 's/<STDIN>/shift @ARV/' bin/wacro
12:53:04 <HackEgo> Optional module Math::Random::MT::Perl not found. \ sraufeapis
12:53:17 <HackEgo> Optional module Math::Random::MT::Perl not found. \ png
12:53:58 <CakeProphet> `run perl -pi -e 's/@ARV/@ARGV/' bin/wacro
12:54:05 <HackEgo> Optional module Math::Random::MT::Perl not found. \ bri
12:54:22 <Vorpal> Math::Random::MT::Perl ?
12:54:25 <fizzie> Substitutions in the s/// I think.
12:54:34 <fizzie> It reads "print (map {generate} 1..(min(50,int(shift ))||1));" at the moment.
12:54:57 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: pasteurl: not found
12:55:04 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.29306
12:55:07 <CakeProphet> `run perl -pi -e 's/shift @ARGV/$ARGV[0]/' bin/wacro
12:55:15 <HackEgo> Optional module Math::Random::MT::Perl not found. \ flger
12:56:06 <fizzie> Now it's just "int()".
12:56:15 <fizzie> It keeps substituting in your $ARGV[0] and so on.
12:56:29 <Vorpal> just do it by hand and upload a new version?
12:56:51 <CakeProphet> `fetch http://dl.dropbox.com/u/16495819/wacro_egobot.pl
12:56:53 <HackEgo> 2011-09-23 12:56:53 URL:http://dl.dropbox.com/u/16495819/wacro_egobot.pl [592500/592500] -> "wacro_egobot.pl" [1]
12:57:01 <HackEgo> bin \ canary \ karma \ lib \ paste \ quotes \ wacro_egobot.pl \ wisdom
12:57:06 <HackEgo> mv: missing destination file operand after `wacro_egobot.pl bin/wacro' \ Try `mv --help' for more information.
12:57:17 <HackEgo> chmod: cannot access `/bin/wacro': No such file or directory
12:58:50 <fizzie> `run grep 'int(<STDIN' bin/wacro
12:58:52 <HackEgo> print (map {generate} 1..(min(50,int(<STDIN>))||1));
12:58:54 <fizzie> It's also still like that.
12:59:22 <CakeProphet> 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 <CakeProphet> `fetch http://dl.dropbox.com/u/16495819/wacro.pl
13:00:21 <HackEgo> 2011-09-23 13:00:21 URL:http://dl.dropbox.com/u/16495819/wacro.pl [592320/592320] -> "wacro.pl" [1]
13:00:35 <CakeProphet> `run chmod +x wacro.pl && mv wacro.pl bin/wacro
13:00:42 <HackEgo> bin \ canary \ karma \ lib \ paste \ quotes \ wisdom
13:01:00 <HackEgo> /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:16 <fizzie> #!/usr/bin/perl again after $VAR1.
13:01:31 <fizzie> I suppose it's running it as a shell script?-)
13:01:47 <HackEgo> bin \ canary \ karma \ lib \ paste \ quotes \ wisdom
13:01:50 <CakeProphet> `fetch http://dl.dropbox.com/u/16495819/wacro.pl
13:01:52 <HackEgo> 2011-09-23 13:01:52 URL:http://dl.dropbox.com/u/16495819/wacro.pl [592336/592336] -> "wacro.pl" [1]
13:01:54 <CakeProphet> `run chmod +x wacro.pl && mv wacro.pl bin/wacro
13:02:11 -!- Vorpal has quit (Disconnected by services).
13:02:11 <HackEgo> /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:33 <CakeProphet> `fetch http://dl.dropbox.com/u/16495819/wacro.pl
13:02:35 <HackEgo> 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 <CakeProphet> `run chmod +x wacro.pl && mv wacro.pl bin/wacro
13:02:45 <HackEgo> "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:56 -!- DH____ has quit (Read error: Connection reset by peer).
13:03:03 <Vorpal> CakeProphet, does it work locally?
13:03:16 <CakeProphet> `fetch http://dl.dropbox.com/u/16495819/wacro.pl
13:03:18 <HackEgo> 2011-09-23 13:03:18 URL:http://dl.dropbox.com/u/16495819/wacro.pl [592338/592338] -> "wacro.pl" [1]
13:03:23 <CakeProphet> `run chmod +x wacro.pl && mv wacro.pl bin/wacro
13:03:27 <HackEgo> "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:36 <Vorpal> CakeProphet, the current one?
13:03:37 <CakeProphet> I keep downloading it too fast before dropbox uploads I think.
13:03:44 <CakeProphet> Vorpal: this is different from the original version
13:03:48 <CakeProphet> the original version still exists and works.
13:03:54 <Vorpal> CakeProphet, did you test the new version locally I meant
13:03:59 <CakeProphet> `fetch http://dl.dropbox.com/u/16495819/wacro.pl
13:04:01 <HackEgo> 2011-09-23 13:04:01 URL:http://dl.dropbox.com/u/16495819/wacro.pl [592338/592338] -> "wacro.pl" [1]
13:04:02 <CakeProphet> `run chmod +x wacro.pl && mv wacro.pl bin/wacro
13:04:56 <HackEgo> sh: line 1: 277 Killed wacro 20 2>&1
13:05:17 <Vorpal> yeah, infinite loop or such
13:05:40 <fizzie> That's a good typo what with sub main, also.
13:05:58 <Vorpal> that would never have compiled in haskell
13:06:15 <Vorpal> CakeProphet, you don't set sane ulimits?
13:06:29 <fizzie> Vorpal: Yes, I don't think there's that many Perl/Haskell polyglots around.
13:06:42 <Vorpal> fizzie, I meant that type of error :P
13:07:02 <fizzie> 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 <CakeProphet> `fetch http://dl.dropbox.com/u/16495819/wacro.pl
13:07:19 <fizzie> Almost as REMOTE as ever getting a working bin/wacro in place *BURN*.
13:07:20 <HackEgo> 2011-09-23 13:07:19 URL:http://dl.dropbox.com/u/16495819/wacro.pl [592337/592337] -> "wacro.pl" [1]
13:07:22 <CakeProphet> `run chmod +x wacro.pl && mv wacro.pl bin/wacro
13:07:32 <HackEgo> ristoperion azmillophalibactitmerfitenatoluth wetam musia berunbasa entna upeley tol er phypurs
13:07:53 <HackEgo> 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 <Vorpal> what is this supposed to be?
13:08:23 <fizzie> I apposalimillify things all the time.
13:09:28 <HackEgo> 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 <CakeProphet> fizzie: a proper gamma distribution would be nice, to remove some of those obscenely long words.
13:10:11 <Vorpal> CakeProphet, I quite like "ellonic" too
13:10:38 <Vorpal> CakeProphet, anyway, those are not very long. Well okay, for English yes
13:11:23 <Vorpal> CakeProphet, it would work well for languages with basically free word concatenation, like German or Swedish
13:11:39 <CakeProphet> yes I intend to add more data set options.
13:11:50 <CakeProphet> using hackego I don't have to put everything in one file either.
13:12:38 <Vorpal> CakeProphet, also it managed to generate at least one real word. "free" above
13:13:00 <fizzie> `run perl -e 'use Math::Random qw(random_gamma); print random_gamma(1, 4, 1.5);'
13:13:01 <HackEgo> 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:24 <Vorpal> CakeProphet, can it generate every real English word in theory?
13:13:56 <Vorpal> CakeProphet, so it can generate every word found in an English dictionary? Hm. Loanwords too?
13:14:11 <fizzie> CakeProphet: Yes, according to search.cpan.
13:14:34 -!- Effilry has joined.
13:14:40 <CakeProphet> Vorpal: yes and probably more than that. it's using a google data set that's several gigabytes in size.
13:14:50 <fizzie> Anyway, it can't generate any word contaning, say, "qzb".
13:15:08 <HackEgo> res ccus copergillalt elary caries banashwayfoiyarter pultnrcleibolowwalverwiin aninfaudras ots acya ev fria berst ot purne gra imbiessinevenlosohlarthylloles sto aric cohdls
13:16:09 <ais523> is "caries" a real word?
13:16:24 <CakeProphet> also they are, for the most part (and with some freedom of interpretation), pronounceable.
13:16:51 <CakeProphet> 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:12 <HackEgo> bul lotediolacc sm my gis flekauellaccuptiosamaricroven aburrod sane unc torn marcald fe fula sishemell cver les nonition cri ruips ness
13:17:30 <CakeProphet> sm isn't really pronouncable. I mean, it is kind of.
13:17:55 <ais523> "marcald" looks like a French word
13:19:30 <CakeProphet> fizzie: so for this application what is theta and k for the gamma distribution?
13:19:38 <fizzie> 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:25 <fizzie> Because you don't have any of those letters in the "qz" hash.
13:20:34 -!- FireFly has quit (Quit: FireFly).
13:20:41 <CakeProphet> 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 <fizzie> Perhaps they don't appear in your books; wouldn't be surprised.
13:22:39 <HackEgo> 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 <fizzie> 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:39 <CakeProphet> perhaps the smaller english wordsets will generate more english-like words
13:23:51 <CakeProphet> I'm pretty sure the English 1 million set that I'm using has many non-standard loanwords.
13:25:43 <CakeProphet> now what would be cool is if it could generate /sentences/
13:26:18 <CakeProphet> 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 <CakeProphet> so you would get noun-like words, verb-like words, adjective-like words, etc.
13:26:46 <fizzie> You need a part-of-speech tagger for your data for that, and those tend to be rather fallible.
13:27:02 <fizzie> Well, either that, or pre-tagged data, like the Penn treebank.
13:27:38 <CakeProphet> yes I'd want the dataset to have the part of speech information.
13:28:23 <fizzie> Penn Treebank has one million words from Wall Street Journal, plus quite a lot of other stuff.
13:28:38 <fizzie> And costs only $787.50, well within the means of most acronym generator writers.
13:29:58 <ais523> it's bad enough that elliott was considering buying an expensive ngram database
13:30:00 <fizzie> There's a free in-Perl POS tagger based on WordNet.
13:32:41 <CakeProphet> fizzie: do you think it could tag all of the google data? :P
13:32:41 <fizzie> No, because you obviously need to feed it full sentences, not 5-grams.
13:32:41 <fizzie> Also you would need to be very very patient, because it is very very very slow.
13:32:41 <CakeProphet> yes perhaps the sentence generator is a project for a faster language.
13:32:41 <fizzie> http://search.cpan.org/~sid/WordNet-SenseRelate-TargetWord-0.09/
13:33:10 <fizzie> I don't think the algorithms it uses are very good.
13:33:15 <CakeProphet> 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 <fizzie> 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 <fizzie> Even GNUplot has some sort of a nonlinear-opimization thingie, I remember using it once.
13:35:34 <fizzie> Alternatively, just plot your word length histogram and a gamma distribution PDF on top and tune the knobs.
13:36:09 <CakeProphet> 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 <CakeProphet> uh, couldn't I just use the word length histogram to randomly select a length?
13:37:03 <fizzie> In that case, call into something. Octave-Forge's statistics package has gamfit().
13:37:15 <fizzie> You could do that too.
13:37:38 <fizzie> I don't like to think of simple solutions. :p
13:37:49 <fizzie> It's certainly practical, and accurate, though.
13:38:46 <CakeProphet> I believe my name is actually Cake "likes practical things" Prophet
13:39:10 <CakeProphet> practical things such as nonsense word generators.
13:44:22 <CakeProphet> not that is not and has never been my real name.
13:46:57 <HackEgo> 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:50:19 <CakeProphet> where A is the ackermann function, ! is factorial, tetra is tetration, and G is Grahams number
13:50:19 <fizzie> All those textorgers, they keep having their textorgies.
13:51:00 <Phantom_Hoover> 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 <CakeProphet> yes the mathematics of large numbers is essentially masturbation. One can keep going until exhaustion.
13:54:20 <HackEgo> 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:23 <HackEgo> 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:03 <HackEgo> 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 <CakeProphet> yeah I'm going to compile some more data sets...
13:59:55 <CakeProphet> also aside from word lengths I wonder how I could improve the generation algorithm.
14:00:09 <CakeProphet> I was thinking I could also keep track of character position.
14:00:20 <CakeProphet> but that would increase the likelihood of constructing existing words
14:00:51 <fizzie> 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:02:26 <CakeProphet> oh wait... I think english 1 million IS the small dataset.
14:03:53 <Phantom_Hoover> "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:06:10 <ais523> how many animals could be saved from euthanization for $50,000? around 5? (that's a guess)
14:15:11 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:15:50 <HackEgo> pois vagum verdiaviek pingsteranaxicabddown cant sichyrod ski curnieischarison gankofx ple bulonstend pyrchamricannourgroobice ge gorden licandong scipellarpotemuss weltergiatorfe spia be parah
14:32:55 <HackEgo> qrioste phing ja taniz terfu de bioscpudeffong saues fly itchiperoactrimendubadommititodys
14:36:32 <CakeProphet> 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:56 <ais523> (i.e. join "", ("", 1))
14:59:24 <ais523> !perl $"='/'; @t=(); $t[1]++; print "@t";
14:59:33 <EgoBot> Number found where operator expected at /tmp/input.16866 line 1, near "$[1"
15:00:10 <ais523> !perl @t=(); $t[1]->{bar}++; print @t;
15:01:17 <ais523> !perl $\="|"; print length (-1)
15:01:34 <ais523> and then that has a length of 2, interpreted as a string
15:04:30 -!- myndzi has quit (Ping timeout: 258 seconds).
15:09:19 <Deewiant> "Say what you will about D, the compiler is very well implemented." --proggit
15:11:50 <CakeProphet> huh for some reasoning importing the English all hash table hangs.
15:12:38 <CakeProphet> it's exactly the same but with larger numbers..
15:13:39 <Phantom_Hoover> Deewiant, lemme guess, D's compiler is a sterling example of how not to implement a compiler?
15:13:39 -!- Ngevd has joined.
15:14:54 <Deewiant> 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 <Ngevd> I would like to learn Intercal
15:22:10 <ais523> hmm, I'm not convinced it's that hard to learn, although it could take a bit of effort and practice
15:22:13 <ais523> how much do you know already?
15:22:34 <ais523> do you have a working compiler/interpreter? that'd be the first step
15:23:18 <Ngevd> Any reccomendations?
15:23:21 <ais523> OK, I recommend you download C-INTERCAL from http://c.intercal.org.uk/
15:23:34 <ais523> it's a bit easier to get started with than CLC-INTERCAL
15:24:11 <ais523> you'll need to compile it yourself, but a #esoteric denizen should be able to manage that
15:24:47 <CakeProphet> is that kind of like "build solution" in Visual Studio?
15:25:05 <ais523> CakeProphet: a bit, although less specific
15:25:22 <ais523> Ngevd: the build system for POSIXy systems is very good, I know because I spent years designing it
15:25:37 <ais523> 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 <Ngevd> I would also like a quicker internet connection
15:26:22 <Ngevd> Or at least a more accurate ticker thingy
15:26:42 <Ngevd> This would be better if I switched OS, brb
15:26:46 -!- Ngevd has quit (Read error: Connection reset by peer).
15:29:01 <HackEgo> avln jneg nought stargea ald manarlyl cougesspulownits tionv le palake plant barrtjutiendosseuacturuntien sposchs hiyl moin us irudefcts borphavastrvath per raniuhrousatopispatica
15:31:55 <HackEgo> 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 <Ngevd> Right, not on windows anymore
15:32:31 <HackEgo> 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:33:06 <ais523> 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 <ais523> I never got CLC-INTERCAL working there
15:33:43 <Ngevd> Windows is for people who don't really want to change their computer that much from when they bought it
15:34:56 <CakeProphet> I'm feeling pretty bally myself. Might go bilk some ingamiddifluciumites.
15:35:15 <ais523> 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 <ais523> here's far too much documentation on how the install works: http://c.intercal.org.uk/manual/adquqjam.htm#Installation
15:37:41 <HackEgo> 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:32 <ais523> 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:43 <Ngevd> sh: Can't open config.sh
15:45:52 <ais523> why are you trying to do the DOS build?
15:46:05 <ais523> ah, that may be what went wrong
15:46:17 <ais523> create a new directory parallel to the unpacked tarball
15:46:40 <ais523> then do ../intercal-whatever-it-is/configure --prefix='/home/ngevd/wherever/you/want/to/put/it'
15:46:56 <ais523> not literally, substitute the obvious metasyntactic variables
15:48:11 <ais523> is the configure working?
15:48:44 <Ngevd> I've got a different thingy at the left of the terminal where I type in thing
15:49:23 <ais523> you didn't match the quotes properly
15:49:28 <ais523> control-C out of it, and try again with the quotes matching
15:49:36 <ais523> that's bash's reaction to seeing an unmatched ' in a command line
15:50:16 <ais523> if the configure worked, yes
15:50:30 <ais523> check to make sure there were no scary-looking messages
15:50:39 -!- Jafet has joined.
15:50:59 <Ngevd> Okay, I think it's done
15:51:19 <ais523> that quickly? did it end in an error message or success message?
15:51:29 <ais523> you can use make check to run regression tests, that'll tell you if it built correctly
15:52:59 <ais523> and once that's done, make install, which'll install it at the prefix you gave
15:53:11 <ais523> (you need root perms to install in /usr/local, but not to install in /home/ngevd)
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).
16:00:11 <Phantom_Hoover> I seem to have fallen into a pit of procrastination so deep I can't see light.
16:00:26 <ais523> Phantom_Hoover: do you have work you actually need to be getting on with?
16:04:06 <ais523> the ability to procrastinate will still be there once you've done it, you know
16:04:16 <ais523> unless you leave it until the last moment, then it'll defeat your ability to procrastinate
16:04:28 <ais523> what I'm saying it, why are you procrastinating now, when you could be procrastinating later instead?
16:04:38 <ais523> you should procrastinate the procrastination
16:05:57 <monqy> don't listen to him; procrastinate the procrastination procrastination.
16:06:44 <CakeProphet> pretty soon I'll have command line options for different data sets.
16:06:45 <Phantom_Hoover> I can't be bothered to decide which suggestion to follow; I'll decide later.
16:16:27 <fizzie> 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:20:14 <EgoBot> Type of arg 1 to each must be hash (not undef operator) at /tmp/input.23812 line 1, at EOF
16:20:48 <ais523> what made you think that undef would be a reasonable argument to each?
16:21:04 <CakeProphet> undef being a reasonable argument in many other places. :P
16:21:20 <ais523> I don't think each undef has any reasonable semantics at all
16:23:32 <CakeProphet> undef has reasonable semantics: undef begats more undef.
16:24:32 <fizzie> 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 <ais523> you mean, interpreting undef as {undef,undef}?
16:25:18 <ais523> in which case I expect the return value would be (0,undef)
16:25:55 <ais523> ouch, I don't think undef should be interpreted as []
16:26:03 <ais523> it's the absence of an array, not an empty array
16:26:28 <CakeProphet> depending on what you want to happen of course.
16:26:33 <fizzie> $ perl -e 'while (each undef) { print "x"; }'
16:26:33 <fizzie> Type of argument to each on reference must be unblessed hashref or arrayref at -e line 1.
16:26:44 <fizzie> That's what 5.14 does for it.
16:27:02 * CakeProphet is tired. he might say things that make no sense.
16:27:55 <CakeProphet> autovification is a little less conservative than the docs suggest.
16:28:16 <CakeProphet> 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:15 <ais523> autovifification happens when you try to dereference-slice a nonexistent slice
16:29:20 <CakeProphet> if %grams is empty, will this code work correctly?
16:29:44 <ais523> yep; $key there is a nonexistent slice of %grams, and you're using ->{} to dereference-slice it
16:29:58 <CakeProphet> but then will it treat an empty key as 0 for the purposes of +=?
16:30:01 <ais523> so it becomes equivalent to ($grams{$key} //= {})->{$c} += $v
16:30:15 <ais523> then += will get undef as its argument,
16:30:23 <ais523> and undef + $v = $v and a warning
16:31:22 <CakeProphet> I guess I could throw in a //= 0 there to remove the warning.
16:31:51 <ais523> it'd be great if you could just do +//= $v
16:32:22 <ais523> (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 <CakeProphet> but yeah essentially the purpose of this code is to merge the datasets together at runtime.
16:33:29 <CakeProphet> while( my ($key, $subhash) = each %{$data->{$_}} ) {
16:34:39 <CakeProphet> should work I think. I guess I'll find out.
16:35:07 <CakeProphet> Phantom_Hoover: yeah I never make sense ever. This sentence makes no sense.
16:35:26 <HackEgo> 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:37:43 <fizzie> "$foo +//= ($a, $b)" to specify a non-zero initial value, and "$foo //+= ($b, $a)" as an equivalent.
16:38:19 <ais523> I was thinking more along the lines that $a op// $b = $a op $b if $a was defined, or $b otherwise
16:41:37 <HackEgo> gravias remafeciorle lia of mones
16:43:12 <CakeProphet> fizzie: perhaps naively combining the datasets in this way will skew the results without interpolation? perhaps it won't matter?
16:45:11 <CakeProphet> I'm going to go with "don't care" and see what happens.
16:46:50 -!- Taneb|Hovercraft has joined.
16:46:50 <fizzie> 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:48:10 <CakeProphet> the english dataset is already a mixture of several other language influences...
16:48:28 <CakeProphet> I'm thinking English fiction will be closer to "regular" English, whatever that means.
16:50:14 <Ngevd> Now to learn INTERCAL
16:50:34 <ais523> the first thing to check is to make sure you can run the compiler
16:51:03 <Ngevd> Is there a sanity test?
16:51:09 <ais523> 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 <ais523> you can try something like a very short program ("DO GIVE UP")
16:51:29 <ais523> or an even shorter program that errors out ("DO ERROR OUT" or whatever)
16:51:36 <CakeProphet> I imagine combining a /usr/share/dict with a google dataset will bear no significant chages to the google dataset.
16:52:37 <fizzie> Probably, though of course you can just add a scale factor when combining.
16:52:37 <ais523> INTERCAL files have extension .i
16:52:43 <ais523> the compiler actually enforces this
16:54:29 <CakeProphet> also if there are overlapping words in two datasets that means they'll get counted twice.
16:55:07 <CakeProphet> but, I like to generate words dangerously. so I'll ignore that.
16:56:12 <fizzie> 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:58:18 <Ngevd> ...Now to learn INTERCAL?
16:58:18 <CakeProphet> 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:28 <ais523> Ngevd: did you get an error message from DO ERROR OUT?
16:58:44 -!- elliott has joined.
16:58:57 <ais523> I'm about to try to teach Ngevd some INTERCAL over IRC
16:59:00 <ais523> do you want to join in?
16:59:22 <elliott> ais523: hmm, I'll listen, but this isn't the best time for me to concentrate intently and respond :)
16:59:32 <ais523> you can read the logs, I suppose
16:59:49 <ais523> Ngevd: it's probably best off to start with the syntax, or you won't be able to get anything done
17:00:07 <ais523> some languages have statement separators (like ; in ALGOL), some have statement terminators (like ; in C), INTERCAL has a statement introducer
17:00:42 <ais523> 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:01:14 <ais523> "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 <Ngevd> Yeah, I'm a bit laggy
17:01:44 <ais523> 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 <CakeProphet> 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 <ais523> it's really just a distraction, but you need to know about it for your programs to compile
17:02:10 <ais523> before a DO, you can add a line number, which is an integer in parens
17:02:41 <ais523> (and likewise before other statement introducers; they're called statement identifiers officially, but that's just to confuse people)
17:02:41 <Ngevd> The PLEASEs confused me, because I was thinking interpretedly
17:02:48 <ais523> it's a compiled language
17:02:56 <ais523> well, obviously intended to be one
17:03:06 <ais523> 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 <CakeProphet> imagine if the PLEASE was a runtime thing...
17:03:24 <ais523> it'd make tight loops basically impossible to write
17:03:39 <ais523> oh, it should be noted that many errors which are compile-time in basically every language, are run-time in INTERCAL
17:04:25 <HackEgo> whic elmis khenlrymctia songrans lus elv llyns dia hardertyders alemsonix hurioncollem varche re toge ses turiaton analforcuetatciphlerick jacafrabiugold pulpers di
17:04:37 <ais523> most notably, syntax errors happen at runtime
17:04:48 <ais523> that's what was up with the DO ERROR OUT statement
17:04:56 <ais523> it's a syntax error, but it didn't error until it ran
17:05:01 <ais523> and the error message for a syntax error is the statement itself
17:05:37 <ais523> (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 <ais523> 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 <ais523> that specifies whether it's executed or skipped
17:07:29 <ais523> so, e.g., DO GIVE UP is an exit command that's executed when encountered
17:07:29 <Vorpal> ais523, according to Google?
17:07:39 <ais523> Vorpal: they have an INTERCAL style guide
17:07:44 <ais523> just like they have style guides for many other languages
17:07:52 <coppro> ais523: isn't GIVE UP un-abstainable?
17:07:55 <ais523> and the opposite is DON'T GIVE UP, which is an exit command that isn't executed when encountered
17:08:01 <Vorpal> ais523, got a link to the intercal style guide?
17:08:03 <ais523> coppro: there have been fun arguments on the mailing list about that
17:08:32 <ais523> Vorpal: http://cadie.googlecode.com/svn/trunk/INTERCAL-style-guide.html
17:08:34 <Vorpal> why would GIVE UP be unabstainable?
17:08:36 <coppro> "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 <ais523> anyway, to please Vorpal/coppro, there is absolutely no restriction on starting GIVE UP abstained / unabstained
17:09:16 <ais523> the issues are in changing the flag dynamically
17:09:33 <Vorpal> why would that be an issue?
17:09:41 <ais523> 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 <ais523> to make the language less orthogonal for no good reason, I think
17:10:18 <ais523> Ngevd: sorry about the interruption
17:10:36 <ais523> 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 <ais523> so, e.g. DO HING is a syntax error
17:11:03 <elliott> ais523: this appears to have fallen into the trap most IRC teaching does
17:11:06 <ais523> and DO NOT HING is also a syntax error, but one that doesn't execute, and thus doesn't error
17:11:10 <ais523> elliott: which is people interrupting?
17:11:32 <Ngevd> I have a tendency to make things on topic all of a sudden
17:11:34 <CakeProphet> !sfeedeesh my my this is some delicious swedish fish
17:11:45 <ais523> 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 <ais523> I'm not entirely sure if that's coincidence or not
17:12:15 <Ngevd> Can you right DONOT HI NG?
17:12:15 <ais523> this is also the usual way to write comments; "PLEASE NOTE that this is a comment", or whatever
17:12:31 <CakeProphet> !sfedeesh my my this is some delicious swedish fish
17:12:32 <EgoBot> my my zeees is suume-a-a-a deleeceeuuoooos sffedeesh feesh
17:12:43 <ais523> there's a split in the community as to whether D ONOT HING or whatever should be allowed
17:12:48 <monqy> CakeProphet: intercal at its finest
17:12:50 <ais523> sorear thinks it should be, according to the spec
17:12:53 <ais523> but actual compilers don't accept it
17:13:05 <ais523> so it's probably best not to insert whitespace inside keywords
17:13:16 <ais523> especially as most people think that violates the spec
17:13:27 <ais523> (only in INTERCAL would people even consider that that was legal...)
17:14:03 <Ngevd> Inserting whitespace in the middle of Whitespace commands is probably very dangerous
17:14:06 <CakeProphet> Ngevd: as you can see INTERCAL is a hotbed of debate among people with nothing better to do.
17:14:18 <ais523> there are a few other miscellaneous bits of syntax, but they're not really important to start out with
17:14:26 <coppro> "The third example, however, is valid, despite the appearance of two cases
17:14:26 <coppro> of D-space-O, since INTERCAL does not ignore extraneous spaces in statement
17:14:28 <ais523> (like randomly-executing commands, PLEASE %50 GIVE UP)
17:14:36 <Vorpal> ais523, idea: intercal preprocessor/linker! it could for example dynamically allocate line numbers
17:14:43 <ais523> I think the argument was about keywords like GIVE
17:14:50 <ais523> Vorpal: it'd even be useful
17:15:12 <coppro> ais523: it seems reasonably clear that the statment "INTERCAL does not ignore extraneous spaces in statement identifiers" refers to all statements
17:15:21 <ais523> "statement identifier" specifically means DO/PLEASE/MAYBE
17:16:00 <coppro> in that case, I'd have to go with DOGI V EUP ending the program
17:16:10 <coppro> based on the end of 4.1
17:16:18 <Ngevd> Should I just go through the manual on c.intercal.org.uk?
17:16:24 <coppro> http://www.muppetlabs.com/~breadbox/intercal/intercal.txt
17:16:30 <ais523> Ngevd: it's decent as reference material, but not really as a tutorial
17:16:38 <HackEgo> 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:47 <Ngevd> How about coppro's link?
17:16:48 <ais523> the original manual isn't really decent as either, it's mostly written for amusement value
17:16:48 <coppro> I love that comments degrade performance in INTERCAL
17:16:52 <elliott> ais523: why is D ONOT HING not accepted?
17:16:56 <ais523> coppro's link is to the original manual, I think
17:17:02 <coppro> elliott: it has a space in the statement identifier
17:17:06 <ais523> elliott: see coppro's paste from the original manual ("INTERCAL-72 standard")
17:17:27 <elliott> ais523: that tells me why it's valid
17:17:27 <ais523> there's also the whole argument about whether DOREADOUT should parse as DO READ OUT or DO REA DO UT
17:18:01 <ais523> Ngevd: now, there are two major components to INTERCAL: statements and expressions
17:18:16 <ais523> they're pretty much unrelated things to learn, and don't interact much
17:18:22 <elliott> oh no, my new DNS commits fraud
17:18:30 <Ngevd> Statements and expression
17:18:41 <elliott> ais523: telling me that non-existent domains point to a server they own
17:18:45 <coppro> I need to get a daisy whell printer
17:18:46 <ais523> the link is the "calculate" statement, written as DO variable <- expression
17:18:49 <ais523> elliott: ouch, no opt-out?
17:18:50 <coppro> so that I can V <backspace> -
17:18:50 <monqy> mine does this fraud too
17:18:59 <elliott> ais523: maybe there is, but fuck it, I'll just use Google Public DNS
17:19:07 <elliott> coppro: did badly on my namebench tests
17:19:16 <monqy> i tried opting out and also google public dns and it worked for like an hour but then something died
17:19:26 <Vorpal> elliott, local dns server seems to work fine for me
17:19:51 <ais523> 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 <elliott> 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 <ais523> the commands for output and input are READ OUT and WRITE IN respectively (make sure you get that the right way round)
17:20:26 <Ngevd> Okay, so no strings
17:20:32 -!- elliott has quit (Read error: Connection reset by peer).
17:20:40 -!- elliott has joined.
17:20:53 <Ngevd> ais523, read out and write in are actually weirdly logical seeming to me
17:21:00 <elliott> ais523: isn't that verizon's?
17:21:01 <ais523> indeed, they're just different
17:21:14 <ais523> hmm, perhaps I have the wrong company, but I don't think verizon have a public DNS
17:21:31 <elliott> it's something beginning with four
17:21:42 <elliott> (with all one-digit components)
17:21:58 <ais523> 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:22:00 -!- Ngevd has quit (Quit: Leaving).
17:22:11 <ais523> hmm, I'm never going to get anywhere at this rate
17:22:18 <ais523> especially as I want to eat dinner and go home myself soon
17:22:21 <elliott> I predicted this from the beginning
17:22:29 <elliott> I decided not to say so to avoid jinxing the process
17:22:45 <ais523> just due to IRC teaching in general? or Ngevd in particular?
17:23:26 <ais523> IRC teaching normally goes quite well IME
17:23:41 <ais523> 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 <ais523> then come back three hours later when the room was being used for something entirely unrelated
17:24:38 <ais523> yep, I did, the two are conflated in my mind
17:24:44 <ais523> so I used the wrong name by mistake
17:24:51 <ais523> I don't think I've accidentally called you ehird for a while
17:24:56 <ais523> but it's still the name I mostly use internally to think about you
17:25:10 <ais523> hmm, is there any way I can do `pastelogs ehird sanely?
17:25:16 <ais523> in particular, I only want the last 50 or so occurrences
17:25:34 <elliott> it shows the first three hundred
17:25:44 <ais523> yep, and I want the tail not the head
17:25:46 <elliott> but you can manually simulate it:
17:26:21 <elliott> `run grep -i 'ehird' /var/irclogs/_esoteric/201?-??-??.txt | tail -n 300 | paste
17:26:32 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.20754
17:26:39 <ais523> heh, my mind just went "unmatched `" then
17:26:48 <ais523> I was expecting to match it with another `, so I guess I was thinking sh/bash
17:27:35 <ais523> hmm, most mentions of "ehird" are people quoting things you said ages ago
17:28:16 <ais523> a bot that spouted back random lines from the past when its name was mentioned
17:28:20 <HackEgo> 2004-02-22.txt:06:50:25: -!- cmeme has quit (kornbluth.freenode.net irc.freenode.net).
17:28:26 <elliott> ais523: it also set the topic
17:28:27 <HackEgo> 2006-01-10.txt:22:40:03: <calamari> hi
17:28:37 <ais523> except without usernames, I think, or with names changed
17:28:43 <HackEgo> 2008-10-19.txt:10:04:31: <Mony> plop
17:28:48 <Vorpal> ais523, what is "Setting .5 to #2/#3 instead of #1/#2" about?
17:28:56 <ais523> Vorpal: a pessimization that I personally hate
17:29:05 <ais523> in fact, I prefer #0/#1 to #2/#3
17:29:08 <Vorpal> ais523, err, what does it do though
17:29:10 <ais523> and sometimes even to #1/#2
17:29:14 <ais523> Vorpal: it's just convention
17:29:24 <HackEgo> 2011-03-13.txt:19:30:22: <optbot> Gregor: is that like /usr/local?
17:29:24 <ais523> by convention, .5 is used for error returns
17:29:38 <ais523> the debate is about what values should be used for error/no error
17:29:43 <Phantom_Hoover> 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 <ais523> conventionally, IIRC it's #2 for error, #1 for no error
17:29:52 <elliott> Phantom_Hoover: That was the second time around.
17:30:05 <Vorpal> ais523, and why would #2/#3 be preferred?
17:30:09 <ais523> using #3 for error is an utter abomination
17:30:10 <elliott> optbot had been around for months in the past, you just started whining when it was revived.
17:30:11 <Vorpal> I don't understand that
17:30:18 <ais523> basically, all it does is saves a couple of characters in the error-handling code
17:30:32 <Vorpal> ais523, you said it was a pessimization above, not just a convention?
17:30:37 <ais523> as it's easier to set one bit (the ones bit) than two bits (the ones bit and the twos bit)
17:30:59 <ais523> it's a pessimization, because the way you actually use these values is via NEXT/NEXT/RESUME or NEXT/NEXT/NEXT/RESUME
17:31:21 <ais523> so in the case of #2/#3, you need an extra NEXT for no reason at all
17:31:25 <Vorpal> ais523, and what about #0/#1?
17:31:30 <Vorpal> is that one NEXT less?
17:31:38 <ais523> that works better with using computed COME FROM rather than NEXT
17:31:59 <ais523> with NEXT-based control, you can write it as NEXT/NEXT/FORGET/RESUME, but that's not really ideal
17:33:00 <ais523> but yes, #0/#1 being one bit and no extra mess on top of that makes it excellent for use in arithmetic
17:33:54 <Vorpal> ais523, what happens if two COME FROM point to the same line?
17:34:01 <ais523> then both execute, obviously
17:34:19 <ais523> (although generally compilers require you to set an option for that to actually happen, and error out otherwise)
17:34:23 <ais523> no, it goes multithreaded
17:34:28 <ais523> so I suppose it's undefined which thread starts first
17:34:50 <ais523> COME FROM-created threads are more like processes, they share no context but abstention statuses of lines
17:35:07 <ais523> whereas WHILE-created threads share variables, making them more like actual threads
17:35:08 <elliott> ais523: If you COME FROM yourself, does that result in the creation of infinite threads?
17:35:12 <elliott> If the answer is no, I don't like you.
17:35:26 <ais523> elliott: yes if another line is also COMING FROM that line
17:35:34 <elliott> ais523: two lines are, itself and itself
17:35:35 <ais523> no if it's the only COME FROM pointing at that line, it's just an infinite loop in that case
17:35:45 <ais523> "itself and itself" is not two different lines
17:35:46 <elliott> ais523: ok what if you have
17:35:53 <elliott> WHAT THEN, SCIENCE?????????????
17:36:04 <ais523> that's just a normal infinite loop, only one COME FROM aiming at each line
17:36:19 <ais523> actually, it'd lock up all the threads in the process in older C-INTERCAL versions
17:36:22 <ais523> I think I might have fixed that
17:36:38 <ais523> err, let me try to work that out
17:36:39 -!- Nisstyre has quit (Ping timeout: 260 seconds).
17:36:42 <ais523> you could run it yourself, you know
17:36:48 <elliott> No I couldn't I'd have to use numbers.
17:36:56 <ais523> and statement identifiers
17:37:02 <ais523> oh, I see what you mean
17:37:03 <elliott> Yes exactly. But I can type those.
17:37:13 <elliott> I don't have an eight key.
17:37:21 <ais523> oh, 9, 90, 99, and 900, then
17:37:26 <Vorpal> elliott, when are you going to RMA it?
17:37:53 <elliott> Vorpal: I don't answer questions that involve silly words like RMA.
17:38:17 <Vorpal> elliott, when are you going to get it fixed?
17:38:28 <ais523> 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 <elliott> Vorpal: Soon. And because the word "return" works.
17:38:35 <ais523> and you end up with infinite threads, as you said
17:38:41 <elliott> ais523: Is there a way to generate a countably infinite number of lines at runtime
17:38:43 <ais523> probably following the Fibonacci sequence, or a variation of it
17:38:56 <ais523> you can't generate lines at runtime, just threasd
17:39:40 <ais523> elliott: the simplest way for infinite threads is just (a) do come from (a) (b) do come from (a)
17:39:52 <ais523> or the even simpler, DO COME FROM COMING FROM DO COME FROM COMING FROM
17:40:08 <Vorpal> you can do gerund come from!?
17:40:10 <elliott> ais523: Yes, but that's ugly.
17:40:17 <elliott> Because, I don't know, it feels uneven.
17:40:21 <elliott> "DO COME FROM COMING FROM DO COME FROM COMING FROM" :D
17:40:28 <ais523> Vorpal: indeed; it's generally considered a bad idea, but it's /possible/
17:40:38 <ais523> elliott: that's what I said
17:41:08 <ais523> I think C-INTERCAL needs a special command line option to allow come-from-gerund
17:41:22 <ais523> like it does with most other particularly insane parts of the language
17:42:56 <ais523> the problem with the gerund version is that you can't actually execute anything with your infinitely many threads
17:43:02 <ais523> they just get stuck round in circles, coming from things
17:43:16 <ais523> unless, I suppose, you have another thread that abstains from COMING FROM every now and then to let the threads excape
17:43:55 <Vorpal> ais523, can you abstain coming from coming from?
17:44:09 <ais523> no, just from coming from in general
17:44:34 <ais523> I suppose you could (in CLC-INTERCAL) do DO SWAP COME FROM GERUND WITH ABSTAIN FROM GERUND
17:44:43 <ais523> which wouldn't actually do what you wanted, but would be amusing
17:44:54 <elliott> ais523: does that modify the language?
17:45:40 <ais523> I think it dynamically changes the parser, is the way it's implemented
17:46:42 <Vorpal> ais523, that would disable stuff like "come from nexting" too?
17:46:49 <Vorpal> (assuming you can do that)
17:47:04 <ais523> it'd swap COME FROM with ABSTAIN FROM
17:47:09 <ais523> with all the consequences that you'd expect that to have
17:48:39 <ais523> anyway, I think I'll go home
17:48:46 <ais523> 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:45 <elliott> <ais523> if Taneb arrives five seconds after I leave, it's his fault
17:56:22 <Ngevd> That was 7 minutes ago
17:56:35 <Ngevd> So it's ais523's fault
18:05:48 -!- boily has quit (Ping timeout: 260 seconds).
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:21:59 <elliott> Ngevd: you have not seen the headaches I have.
18:22:27 <Ngevd> But have you seen Phantom_Hoover's either?
18:22:54 <Phantom_Hoover> It's not a very bad headache, it's just the annoying one.
18:23:06 <Phantom_Hoover> Although given my luck I'm going to start seeing aura any second now.
18:23:39 <elliott> I thought auras were only with migraines and cluster headaches.
18:23:55 <elliott> (If you have cluster headaches I strongly recommend a neckache.)
18:24:40 <Phantom_Hoover> I like how artist's depictions of auras always look terrible.
18:25:02 <elliott> http://upload.wikimedia.org/wikipedia/commons/a/a1/Fortifikation_%28Migr%C3%A4ne%29.jpg
18:25:16 <elliott> It's like someone used a My First Comics tool to put a POW symbol there then made it translucent.
18:28:29 <Ngevd> I've never had auras
18:29:01 <Ngevd> Not entirely sure what a cluster headache is
18:29:14 <Ngevd> Don't think I've had a migraine
18:29:31 <elliott> You'd know if you had cluster headaches.
18:29:53 <Ngevd> So, go with elliott. He knows aches better than I do
18:32:34 <Ngevd> I've also never broken any bones
18:32:54 <elliott> (I've also never had a migraine and incredibly thankfully do not suffer from cluster headaches.)
18:33:00 <elliott> (But I do get pretty bad headaches.)
18:36:26 -!- Phantom_Hoover has quit (Quit: Leaving).
18:36:28 <HackEgo> 272) <oklopol> 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:37:19 <Ngevd> ...Like when you stare into a light for a bit?
18:37:35 <elliott> I once touched a lightbulb because I didn't see how it could possibly hurt.
18:37:47 <elliott> Like, literally gripped it with my entire hand.
18:39:03 <Ngevd> I once gave a teddy bear third degree burns
18:39:34 <Phantom_Hoover> 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:40:01 <Ngevd> I once almost went death
18:40:11 <elliott> How do you even rate the burns a teddy bear gets
18:40:13 <elliott> How do you even rate the burns a teddy bear gets.
18:40:23 <elliott> "Oh, his stuffing is only partly black; second-degree."
18:40:23 <pikhq> Migraines are hella-fun.
18:40:38 -!- augur_ has quit (Ping timeout: 245 seconds).
18:40:49 <pikhq> By which I mean "OH GOD MAKE IT STOP"
18:40:59 <pikhq> "WHY MUST LIGHT BE PAIN"
18:41:04 <copumpkin> I hear they're better than cluster headaches though
18:41:10 <copumpkin> so maybe I should feel lucky I only get migraines
18:43:07 -!- sllide has quit (Read error: Connection reset by peer).
18:47:15 -!- Wamanuz has quit (Ping timeout: 276 seconds).
18:47:18 <pikhq> Phantom_Hoover: Yeah, it's the most painful thing.
18:47:51 <elliott> Phantom_Hoover: They're worse than unanaesthetised childbirth, reportedly.
18:48:02 <copumpkin> some women get orgasms during childbirth
18:48:05 <pikhq> Thank goodness I "merely" have a genetic propensity to migraines.
18:48:15 <elliott> copumpkin: Well, they must have pretty good cluster headaches, then
18:49:19 -!- Wamanuz has joined.
18:49:31 -!- zzo38 has joined.
18:51:54 <zzo38> OK, now I posted more CGA Collection games; I think you asked a few of them before, such as DOWN.
18:51:55 <lambdabot> zzo38: You have 1 new message. '/msg lambdabot @messages' to read it.
18:52:06 <zzo38> http://zzo38computer.cjb.net/GAMES/cgacoll2.zip
18:52:09 <lambdabot> oerjan said 2d 21h 26m 11s ago: <zzo38> 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 <lambdabot> initial, similarly to the Set category in math
18:53:40 <elliott> you're violating the usage instructions :P
18:54:10 <HackEgo> 2010-05-18.txt:06:07:45: <Gregor> http://codu.org/music/op13/GRegor-op13-wipp2.ogg
18:54:19 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.10590
18:55:22 <zzo38> "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 <zzo38> How does it work? Maybe I am confuse and misunderstand a few things?
18:58:06 <HackEgo> 2011-09-23.txt:18:58:02: <Gregor> `log codu.*mp3
18:58:32 <zzo38> Maybe you need to specify the filter in the regular expression not other `log query
18:58:41 <elliott> 2005-10-12.txt:05:31:33: <GregorR> http://www.codu.org/Kill_Yourself.ogg
18:58:42 <elliott> 2005-10-13.txt:00:39:13: <GregorR-L> http://www.codu.org/Kill_Yourself.ogg
18:58:42 <elliott> 2005-10-13.txt:07:03:22: <GregorR> http://www.codu.org/Kill_Yourself.ogg doesn't work for you?
18:58:42 <elliott> 2006-02-01.txt:02:17:22: <GregorR> http://www.codu.org/Kill_Yourself.ogg
18:58:44 <elliott> 2007-01-02.txt:04:49:13: <GregorR> http://www.codu.org/Kill_Yourself.ogg
18:58:47 <elliott> 2007-03-30.txt:02:37:02: <GregorR> http://www.codu.org/Kill_Yourself.ogg
18:58:48 <elliott> 2007-05-19.txt:21:30:07: <GregorR> http://www.codu.org/Kill_Yourself.ogg
18:58:50 <elliott> Grego linked to Kill Yourself a lot.
18:58:59 <elliott> Gregor: also 2009-07-25.txt:17:19:41: <GregorR> http://codu.org/music/auto/Onerously%20Uptight%20Toccata.{mid,mp3,ogg} since that one isn't on the Algorhythms site.
18:59:03 <Gregor> That was back in the horrible www days.
18:59:24 <zzo38> Is GRegor-op13-wipp2.ogg silence?
18:59:40 <Gregor> zzo38: No, but it was a work in progress, so it's not really worth listening to :P
19:00:16 <elliott> zee5-2010-10-08 is so catchy.
19:00:27 -!- Nisstyre has joined.
19:01:37 <zzo38> Do you like any of the game cgacoll2.zip?
19:02:50 <zzo38> Maybe it is in the /music/ directory?
19:12:41 <zzo38> 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:46 <HackEgo> 2011-09-23.txt:19:02:20: <Phantom_Hoover> help where is superturing.ogg
19:16:58 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.21784
19:17:28 <elliott> http://codu.org/music/e/superturing/superturing.ogg
19:17:41 <elliott> Gregor: btw the first few seconds of superturing remind me of the Loom theme
19:18:26 <elliott> 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:39 <shachaf> I'm pretty sure that's called the Swan Lake theme.
19:21:50 <shachaf> Are you thinking of the Council of Elders theme?
19:22:07 <elliott> It was like HALF MY LIFE ago; so last month.
19:22:08 <shachaf> Anyway, all its music is from Swan Lake.
19:22:21 <elliott> Hmm, I swear it had its own theme. But okay.
19:22:31 <elliott> It's entirely possible I'm completely misremembering.
19:22:58 <elliott> Wow that's much worse than the MT-thirtytwo version.
19:23:23 <shachaf> Phantom_Hoover: Are you sure that's not from Swan Lake?
19:23:30 <Phantom_Hoover> http://sgeo.diagonalfish.net/paint_it_black_karaoke.ogg
19:23:35 <elliott> Noooooooooooooooooooooooooooooooooo
19:23:44 <shachaf> 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:22 <elliott> 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 <elliott> SERIOUS GAME FOR SERIOUS ART FANS, BOREDOM FORBIDDEN.
19:25:08 * shachaf looks for the Council of Elders theme.
19:25:19 <shachaf> Act 4 Part 27 from Swan Lake, I remember that.
19:25:23 <Phantom_Hoover> I love the way Sgeo just gets literally every timing wrong.
19:25:34 <elliott> I should play Loom again, it was a: good game.
19:26:17 <Phantom_Hoover> He's singing to a tune that's consistently not Paint It Black.
19:26:27 <shachaf> Loom with recorded voices? What?
19:27:10 <shachaf> Swan Lake makes such good computer game music.
19:27:35 <elliott> Loom makes such good ballet music.
19:27:36 <Phantom_Hoover> The final estimate of that superluminal neutrino measurement error is ±5ns.
19:27:48 <elliott> Phantom_Hoover: YESSSSSSSSSSSSSSSSSSS
19:27:59 <elliott> Phantom_Hoover: You shouldn't be getting unsettled, this is literally our in on becoming the timeline where Star Trek happens.
19:28:11 <zzo38> 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:24 <Phantom_Hoover> And we'll have to meet Vulcans and not laugh derisively at them!
19:28:30 <elliott> Phantom_Hoover: Look it's better than being stuck on this tip of a planet for the rest of ever.
19:28:42 <elliott> By tip I mean in the sense that isn't the sense everyone will read that as because goddamn that's confusing.
19:28:57 <elliott> 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 <shachaf> elliott: http://www.youtube.com/watch?v=SW8szuOdSxc
19:29:07 <elliott> (But I think Cochrane was drunk.)
19:29:13 <elliott> (I think he was always drunk, really.)
19:29:33 <elliott> shachaf: Man, they got an orchestra to play the Loom music??????????
19:29:37 <elliott> (Note: I am not being serious.)
19:29:51 <zzo38> I have the "Swan Lake" on NSF
19:30:01 <Ngevd> HA seems similar to UniQuode
19:30:01 <shachaf> elliott: I'm pretty sure they got an orchestra to play the Monkey Island music.
19:30:27 <elliott> shachaf: I liked that Press Play on Tape version of the MI/LeChuck's theme.
19:30:38 <Phantom_Hoover> There exists a video on youtube of an orchestra playing the Caramelldansen.
19:30:39 <elliott> I haven't heard anything about an orchestral version but I wouldn't be surprised.
19:30:46 <elliott> 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 <elliott> I dislike any music containing waveforms.
19:32:13 * shachaf 's music isn't formed of waves.
19:32:57 <elliott> I just put a brick to my ear and soak up the music.
19:33:46 <Phantom_Hoover> I wonder how long it'll be until we start receiving neutrinos from the future.
19:33:59 <elliott> Phantom_Hoover: They've planned a big neutrino party for us.
19:34:11 <elliott> There'll be neutrino fireworks in the sky spelling out "Congratulations for FTL!"
19:34:44 <Phantom_Hoover> (This should be read in the voice of the Look Around You guy.)
19:34:50 <elliott> Phantom_Hoover: In the future, we just get our neutrinos from the future.
19:35:06 <elliott> Phantom_Hoover: (They all come from Penrose's Omega point, ultimately.)
19:35:38 <elliott> 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 <Phantom_Hoover> See http://www.youtube.com/watch?v=pmw7JfsNzoY#t=5m58s but replace 'matches' with 'neutrinos'.
19:38:51 <elliott> Phantom_Hoover: also what H2G2 thing.
19:39:49 <Phantom_Hoover> elliott, the one with young Zaphod in The Salmon of Doubt.
19:39:58 <elliott> Phantom_Hoover: I haven't read Salmon of Doubt :(
19:40:39 <Phantom_Hoover> 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:41:14 <zzo38> What is it called when a monad is defined by (return .) and (<=<) instead of one of the other two ways?
19:41:58 <zzo38> What are the other two ways called, though?
19:42:33 <shachaf> "a way of defining a monad" and "another way of defining a monad", respectively.
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 <Ngevd> Need to configure this better
19:46:35 <zzo38> 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 <zzo38> 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 <elliott> zzo38: So define the barrier monads?
20:12:26 <zzo38> 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 <zzo38> return = Unit; fail = Fail;
20:12:52 <elliott> Those look like iteratees; or at least similar.
20:12:57 <zzo38> Unit x >>= f = f x; Fail x >>= f = Fail x; Barrier a c >>= f = Barrier a $ c >=> f;
20:13:18 <zzo38> Would it then be possible to define cobarrier comonad?
20:13:20 <elliott> Enumerator's Step type is:
20:13:25 <elliott> = Continue (Stream a -> Iteratee a m b)
20:13:36 <elliott> where (Iteratee a m b) is a newtype for (m (Step a m b)).
20:14:01 <elliott> zzo38: The type parameters to Barrier don't have to be monads, though, do they?
20:14:03 <elliott> They're not even of the right kind for that.
20:14:19 <zzo38> elliott: Yes, they don't have to be monads (you are right, they are not the right kind).
20:14:30 <zzo38> They can be any types of kind *
20:14:44 <elliott> I thought you said a barrier monad was a transformation on two other monads.
20:14:46 <zzo38> The "f" and "b" are called the "front" and "back" types.
20:14:57 <zzo38> elliott: No I didn't say it was a transformation on two other monads.
20:15:37 <zzo38> 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 <zzo38> (If you want to convert t as well, use fmap)
20:19:14 -!- monqy has joined.
20:21:49 <zzo38> 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 <zzo38> 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 <oerjan> 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 <oerjan> so that the distance through earth is actually shorter than what they've calculated
20:25:52 <Phantom_Hoover> oerjan, but spacetime shaping is caused by the actual distance metric, so they'd be going faster than light anyway.
20:25:58 <zzo38> (Although generators in Javascript have no clone method; if they are pure you could make one up, though, I think)
20:25:59 <oerjan> 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 <oerjan> Phantom_Hoover: um how so
20:26:22 <Phantom_Hoover> Although it'd be fun if we'd discovered hyperspace which was only useful in places with intense gravitational curvature.
20:26:30 <oerjan> *had measured their speed
20:27:33 <oerjan> 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 <Phantom_Hoover> oerjan, because unless they left space altogether they're still travelling n metres in less than n/c seconds.
20:28:27 <oerjan> Phantom_Hoover: it could be only slightly wrong, with the curvature depending differently on mass density. perhaps.
20:28:38 <elliott> Phantom_Hoover: Maybe c is just slightly higher than we thought it was!
20:28:39 <zzo38> Is there ways to do it using hyperdrive?
20:28:41 -!- boily has quit (Ping timeout: 248 seconds).
20:28:46 <elliott> Quick, let's slightly redefine the metre.
20:29:03 <oerjan> zzo38: hyperdrive remains entirely hypothetical.
20:29:05 <Phantom_Hoover> elliott, the error in c is waaaaaaaaaaaaaaaaaaaaaaaaay smaller than this.
20:29:25 <elliott> Phantom_Hoover: It... dude, it was a joke, metres are /defined/ in terms of c.
20:29:52 <Phantom_Hoover> Sorry, I've been staring at a physics textbook from the 80s too much lately.
20:29:55 <oerjan> 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:36 <Phantom_Hoover> oerjan, also have we never sent stuff through the earth before?
20:30:37 <oerjan> elliott: i assume that would be simpler than putting a neutrino detector there :P
20:30:37 <elliott> 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 <pikhq> Yeah, c is 299,792,458 meters per second precisely, *by definition*.
20:30:59 <oerjan> Phantom_Hoover: sound waves, but their speed is insignificant...
20:31:02 <zzo38> Yes, that is the definition.
20:31:13 <pikhq> However, the exact length of a meter or a second is undetermined. :)
20:31:16 <oerjan> Phantom_Hoover: radio waves pass through earth?
20:31:29 <oerjan> Phantom_Hoover: i suppose that needs checking.
20:31:37 <Phantom_Hoover> pikhq, what was that ultra-long-wave thing you were talking about.
20:31:40 <elliott> <oerjan> Phantom_Hoover: radio waves pass through earth?
20:31:43 <elliott> oerjan: ELF, we just discussed this.
20:31:44 <pikhq> oerjan: The wavelength needs to be really, *really* low for it to work.
20:31:45 <zzo38> From what I know there is different kind of definition for seconds
20:31:57 <elliott> I doubt they were measuring the times with any kind of accuracy though.
20:32:09 <zzo38> I know it is SI unit.
20:32:17 <oerjan> elliott: they definitely should measure that too carefully, then
20:32:25 <pikhq> (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 <elliott> oerjan: I have a feeling there's a /lot/ of error involved.
20:32:37 <pikhq> zzo38: There is precisely one definition of the SI second.
20:32:50 <elliott> oerjan: Anyway SHUT UP, I want this to be FTL.
20:32:55 <Phantom_Hoover> elliott, they pinned the error bars down to ±5ns, actually.
20:33:00 <elliott> Phantom_Hoover: I meant for ELF.
20:33:02 <pikhq> Any other definition is inherently a different unit from the SI second.
20:33:07 <elliott> Phantom_Hoover: What's the difference in time compared to the error?
20:33:59 <elliott> Everyone wants this to be FTL, don't they?
20:34:20 <zzo38> pikhq: Yes, that is what I thinking of, about caesium atoms.
20:34:33 <elliott> FTL is the thing that makes realistic sci-fi horribly boring.
20:34:46 <elliott> There is literally nothing not awesome about getting FTL.
20:35:10 <elliott> When has anyone ever gone "thank god you can't go faster than light, this makes things so much better!!!!".
20:35:24 <Phantom_Hoover> elliott, well yeah, but something that very vaguely resembles conventional FTL is not worth losing a crapton of physics.
20:35:42 <Phantom_Hoover> So I hope for a crapton of physics, rather than sixty nanoseconds of neutrino lead.
20:35:46 <pikhq> Phantom_Hoover: SR is also almost surely not *quite* right.
20:35:52 <pikhq> It doesn't mesh with quantum effects.
20:36:10 <shachaf> If God had intended us to go faster than light, he would have given us faster legs.
20:36:35 <elliott> 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 <pikhq> SR works just fine, GR confuses the fuck out of QM.
20:36:47 <elliott> "SR is true except for a tiny bit of rounding error" is ridiculous.
20:37:10 <Phantom_Hoover> elliott, well OK, but it's even less probable that atoms, let alone humans, would be transportable.
20:37:21 <elliott> Phantom_Hoover: Look, America needs hope. :|
20:37:32 <pikhq> Anyways. I am totally in favor of losing a crapton of physics in the name of finding better physics.
20:37:43 <pikhq> And if this helps us do that, then fuck yeah.
20:37:46 <elliott> Phantom_Hoover: Anyway, throwing away all of physics is nice, it means we get fun new physics.
20:38:10 <Phantom_Hoover> pikhq, yeah, but this is more subtle: I'd prefer to be in the universe where SR is right.
20:38:29 <oerjan> <elliott> 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 <Phantom_Hoover> nooooooooooooooooooooooooooooooooooooo i need to make tea
20:38:45 <pikhq> Phantom_Hoover: And many people would prefer to be in a universe where no objects older than 6,000 years exist.
20:38:46 <shachaf> elliott cleverly asks people to take it to -blah without being in -blah himself.
20:39:00 <oerjan> or more likely, prevented from evolving in the first place
20:39:00 <Phantom_Hoover> oerjan, maybe it's only our neutrinos that can go FTL and we can kill all the aliens with neutrino lasers.
20:39:07 <monqy> how very clever!!!
20:39:07 <elliott> oerjan: Sorry but any alien that can go faster than light is my kind of alien.
20:39:26 <shachaf> elliott: You should tell people to take it to #esoteric.
20:39:45 <oerjan> 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 <elliott> shachaf: Yes, but then #esoteric would have dylukes in it.
20:40:43 <shachaf> This channel needs more people in it.
20:40:48 <oerjan> Phantom_Hoover: also the neutrinos from S1987a did _not_ arrive early. then again maybe some did, we just weren't measuring yet, then.
20:41:12 <pikhq> oerjan: With our new physics we may get some badass energy source.
20:41:40 <elliott> shachaf: It really doesn't.
20:41:47 <elliott> Or at least it needs the right kind of more people.
20:41:49 <monqy> it just needs better people
20:42:19 <elliott> If monqy and shachaf weren't here this channel would be PERFECT.
20:42:43 <monqy> but...in what way>????
20:42:51 <monqy> perfectly horrible
20:43:44 <zzo38> It is true you cannot go faster than light makes everything much better, but that counts even without aliens.
20:45:19 -!- shachaf has left ("!").
20:49:18 <monqy> "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:31 <monqy> http://esoteric.voxelperfect.net/wiki/HA
20:51:02 <Ngevd> It seems a lot like Uniquode
20:51:06 <monqy> speaking of too many commands, Ngevd, did anything happen to un--yes
20:51:31 <elliott> oerjan: Oh, I was going to ask/say/something to you.
20:51:33 <Ngevd> But Uniquode has many, many more commands
20:51:52 <monqy> did anything happen to/has anything happened with
20:51:59 <monqy> better words courtesy of monqy
20:52:02 <oerjan> <elliott> oerjan: ELF, we just discussed this. <-- this was a few days ago before this neutrino thing, wasn't it?
20:52:49 <elliott> 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:53:01 <elliott> I could just use qualified modules but?? gross??
20:53:33 <oerjan> 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 <elliott> Phantom_Hoover: Intentionally.
20:54:09 <Ngevd> If space is a rubber sheet, what happens if it is rapidly cooled?
20:54:36 <Phantom_Hoover> They take protons from the LHC, smash them into some graphite and time the neutrinos.
20:54:39 <oerjan> elliott: qualified modules + record punning?
20:55:04 <Ngevd> I may start Uniquode again
20:55:06 <oerjan> i guess the punning only works for some things
20:55:06 <Ngevd> With more planning
20:55:28 <Ngevd> Like, start with features, then assign commands to the features
20:55:30 <Phantom_Hoover> The 16000 measurements figure is 16000 bunches of protons hitting the target and firing neutrinos.
20:55:34 <Ngevd> Not the other way around
20:55:37 <pikhq> Phantom_Hoover: It was only graphite and protons?
20:55:45 <elliott> 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 <elliott> oerjan: i.e. CRespawn, SRespawn.
20:55:51 <pikhq> Hmm. There's rather a lot of facilities that could produce that neutrino beam, then.
20:55:54 <oerjan> Phantom_Hoover: yes, but were _all_ 60 ns early or was that just an average.
20:56:03 <elliott> 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 <pikhq> Probably not many that could measure it later, but hey.
20:56:16 <elliott> oerjan: If you do C.Foo { ... }, do you have to qualify the field names in the braces too?
20:56:32 <Phantom_Hoover> Come on, you know why experiments with protons from the LHC are hard to replicate.
20:56:39 <oerjan> elliott: not with record punning, that's what it's for afaik
20:57:07 <zzo38> 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:17 <elliott> Record puns are enabled by the flag -XNamedFieldPuns.
20:57:18 <elliott> 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:19 <elliott> Record punning permits the variable name to be elided, so one can simply write
20:57:23 <pikhq> 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 <oerjan> Phantom_Hoover: he'll just turn into a DMM lookalike and we'll be even more hosed
20:57:38 <elliott> `addquote <Phantom_Hoover> OMG <Phantom_Hoover> What if <Phantom_Hoover> we shoot Hitler with neutrinos
20:57:39 <HackEgo> 680) <Phantom_Hoover> OMG <Phantom_Hoover> What if <Phantom_Hoover> we shoot Hitler with neutrinos
20:57:40 <pikhq> And I'd *imagine* that LHC is a bit overkill for the effect they saw.
20:57:52 <elliott> Yeah, what pikhq said; they _have_ replicated the experiment.
20:58:21 <zzo38> 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:59:12 <Ngevd> ☨ would be a good character for Uniquode's churchification command
20:59:19 <pikhq> Yeah, there seems to be a couple dozen facilities that produce neutrino beams for particle physics experiments.
20:59:35 <pikhq> Probably all of them are setting up this one.
20:59:44 <oerjan> <pikhq> 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 <zzo38> Ngevd: I don't have that character in my computer
21:01:00 <oerjan> elliott: oh hm record punning is not what i mean, then, some other record extension which resolves ambiguity
21:01:23 <oerjan> they were announced at about the same time, i think
21:02:24 <oerjan> Phantom_Hoover: btw if neutrinos are _truly_ tachyons, then using _less_ energy to generate them should make them go _faster_ :P
21:03:23 <oerjan> except hm, it would be _imaginary_ energy...
21:04:00 <oerjan> it's the rest mass which is imaginary, not the energy
21:04:19 <Ngevd> FEATURE REQUESTS FOR UNIQUODE
21:04:50 <oerjan> because the limit for infinite energy is c from both sides afair
21:05:35 -!- augur has joined.
21:06:26 <elliott> <oerjan> Phantom_Hoover: btw if neutrinos are _truly_ tachyons, then using _less_ energy to generate them should make them go _faster_ :P
21:06:29 <elliott> It's like Phantom_Hoover's Hawking drive.
21:07:39 <Phantom_Hoover> The only drive I've come up with was the negative mass drive.
21:07:49 <elliott> Oh, I thought they were the same thing
21:07:51 <elliott> Oh, I thought they were the same thing.
21:08:08 <Phantom_Hoover> 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 <elliott> oerjan: Hmm, can you expose a _qualified_ module?
21:08:19 <nooga> Gregor: how is your GGGGCCCC ?
21:08:34 <elliott> oerjan: So that you can do
21:08:43 <elliott> where Mod exports A and B qualified.
21:09:32 <oerjan> elliott: not to my knowledge
21:10:43 -!- hagb4rd has joined.
21:11:25 <elliott> That :( denotes that I am: sad.
21:11:39 <elliott> oerjan: it would be nice because right now I get SLogin, CRespawn, etc. from "import MC.Protocol"
21:11:41 <elliott> I don't want to have to do
21:11:41 <zzo38> convertBarrier f b (Barrier a c) = Barrier (f a) $ convertBarrier f b . c . b;
21:11:43 <Ngevd> Who's generating Whore Kings?
21:11:44 <elliott> import MC.Protocol.Server (Server)
21:11:47 <elliott> import MC.Protocol.Client (Client)
21:11:50 <elliott> import qualified MC.Protocol.Server as S
21:11:52 <elliott> import qualified MC.Protocol.Client as C
21:12:00 <elliott> I realise I could export Server and Client from MC.Protocol to shorten that by one line
21:13:11 <zzo38> Then use S'Login if you dislike SLogin and cannot use S.Login, although this way doesn't seem nice either.
21:13:16 <oerjan> elliott: DisambiguateRecordFields is what i was thinking of
21:13:45 <zzo38> Use classes if you need to
21:13:59 <zzo38> Even Template Haskell if that helps.
21:14:25 <Ngevd> So far, all the new Uniquode has is Churchification
21:14:37 <Ngevd> Which is an underexisting feature
21:20:04 <Ngevd> For the churchification command
21:21:43 <Phantom_Hoover> I hate the way Stephen Fry is A Clever Person for no obvious reason.
21:21:55 <Ngevd> He was on University Challenge
21:22:40 <Ngevd> Also, booleans literals in Uniquode are ✓ and ✗
21:22:52 <pikhq> Phantom_Hoover: He just presents an air of cleverness is all.
21:23:05 <elliott> Phantom_Hoover: Well, he is.
21:23:24 <elliott> Phantom_Hoover: I mean, not saying he's a ~scientific genius~ or anything but he's intelligent and articulate.
21:23:30 <Ngevd> ✔ is like K(true) and ✘ is like K(false)
21:23:37 <Phantom_Hoover> elliott, sure, but not significantly more so than anyone else.
21:23:52 <Ngevd> He's also charismatic
21:24:09 <pikhq> Ngevd: Understatement of the century.
21:24:27 <elliott> Phantom_Hoover: Well, that's... I dunno, maybe you only hang about with really smart people.
21:24:40 <Ngevd> Byte literals must be expressed as braille
21:24:55 <pikhq> Phantom_Hoover: Stephen Fry definitely does seem to be *notably* intelligent.
21:25:04 <Phantom_Hoover> elliott, well I mean that he's not a particularly outstandingly intelligent or articulate person.
21:25:20 <pikhq> And he is profoundly charismatic.
21:25:51 <elliott> 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:59 <Phantom_Hoover> elliott, from his general... image, you'd think he was.
21:26:23 <elliott> Phantom_Hoover: Nobody says he's an absolute genius apart from obnoxious fanboys and you should know better than to listen to them.
21:35:53 -!- Nisstyre has quit (Ping timeout: 248 seconds).
21:37:32 <elliott> Does anyone know git here?
21:37:34 <Ngevd> Control structure is done by making a) toll booths and b) wormholes
21:37:51 <Ngevd> Obviously wormholes are quite tricky to make
21:38:33 -!- ive has joined.
21:39:20 -!- Nisstyre has joined.
21:39:53 <Ngevd> It requires embedding two (or more) Clue (Keymaker) programs and getting them to sync
21:41:21 -!- Nisstyre has quit (Max SendQ exceeded).
21:41:23 <Ngevd> Embedding Clue (Keymaker) programs is easy
21:41:34 <Ngevd> Embedding specific Clue (Keymaker) programs is not
21:42:23 <Ngevd> 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 <Ngevd> Seeing as I don't have the character for embedding a Clue (Keymaker) program, it's tricky
21:50:39 <Ngevd> Anyone got a good hash for a (Int, [Int], Int)?
21:54:02 <elliott> why not just prepend and append the Ints to the list then hash that?
21:54:18 <zzo38> I was going to suggest prepending both
21:54:29 <zzo38> Like this: \ (a,b,c) -> a : c : b
21:54:39 <zzo38> But that is incomplete because it is not completely hashed
21:54:45 <elliott> That would work too. I'm not sure Ngevd is talking about Haskell though.
21:55:21 <zzo38> 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 <Ngevd> I was using haskell's type notation to describe what I want
21:56:20 <Ngevd> I want apparent randomness over bidirectionally
21:57:41 <Ngevd> I've just thought of how to make it all much simpler
21:57:45 <Ngevd> Use powers of primes
21:58:27 <Madoka-Kaname> @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 <lambdabot> i (f (c h)) (a h) (b h) (d (e (g (c h))))
21:58:39 <Ngevd> So, (3,[7,9,8],4) would become (2^3)(3^4)(5^7)(7^9)(11^8)
21:58:56 <Ngevd> And an integer is easier to hash than a list of integers, I presume
21:59:09 <elliott> Hashing an integer results in... that integer.
21:59:59 <Ngevd> But what if it was a cryptographic hash function?
22:00:33 <pikhq> What are you using the hash function for, anyways?
22:00:33 <elliott> Those operate on arrays of bytes.
22:00:48 <elliott> pikhq: How do you tell git you're splitting a file in two?
22:00:59 <pikhq> elliott: git is too stupid for this.
22:01:28 <pikhq> It is also too stupid for cases such as "this file has moved", or even "this file has changed".
22:01:42 <pikhq> This shit only exists as heuristics in the UI.
22:02:00 <Ngevd> Working on Uniquode
22:03:33 -!- Vorpal has quit (Ping timeout: 245 seconds).
22:08:21 -!- MDude has quit (Ping timeout: 260 seconds).
22:09:52 <Ngevd> Dammit, we haven't got onto matrices yet
22:10:45 <Phantom_Hoover> *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 <Ngevd> We're just doing graph theory
22:14:48 <Phantom_Hoover> You get to do *graph theory* and you're complaining that you haven't done *matrices*?
22:15:34 <Ngevd> I'm complaining that I feel behind everyone else
22:15:42 <Ngevd> Uh... I actually don't know
22:19:24 -!- GreaseMonkey has joined.
22:19:29 -!- GreaseMonkey has quit (Changing host).
22:19:29 -!- GreaseMonkey has joined.
22:19:37 <Phantom_Hoover> Googling "AS-level graph theory" gives no relevant hits at all, which is rather odd.
22:19:40 <Ngevd> Also, know any good characters for a toll booth
22:19:45 <fizzie> The theory of plots of functions: choosing the right line colors for maximum psychological effect.
22:20:09 <Phantom_Hoover> fizzie, no, it's manipulating the scales to make things look more significant.
22:21:44 <Phantom_Hoover> Ngevd, oh, of course, you guys have that crazy module thing.
22:22:13 <Ngevd> Decision 1, if you really want to know
22:22:25 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
22:22:57 <Phantom_Hoover> https://docs.google.com/viewer?a=v&pid=sites&srcid=ZGVmYXVsdGRvbWFpbnxwaHNhbGV2ZWxtYXRoZW1hdGljc3xneDo2NTcwNTk5NDM5NWZhZWQ4
22:24:46 -!- Phantom_Hoover has quit (Quit: Leaving).
22:25:04 -!- Phantom_Hoover has joined.
22:25:27 <Phantom_Hoover> 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 <elliott> 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 <elliott> Phantom_Hoover: That handwriting is nice.
22:26:09 <Phantom_Hoover> Ah, but I was trying to get rid of the awful people in #bay12games.
22:26:23 <Phantom_Hoover> elliott, yes, their delicate minds cannot handle LaTeX.
22:27:09 <Ngevd> How about ‼ for toll booth
22:27:12 <Phantom_Hoover> Does that say "by includies te nuber of nodes" at the bottom?
22:30:18 * Phantom_Hoover notes that he now has an unhealthy aptitude for Hohmann transfers.
22:31:31 <oerjan> 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 <oerjan> i would have looked it up if my laptop hadn't chosen this very moment to start some update or other
22:33:45 <Phantom_Hoover> oerjan, a Hohmann transfer is just a way of moving between two circular orbits with different altitudes.
22:34:35 <oerjan> my vague memory was: close enough.
22:34:44 <oerjan> for the joke to work, anyway.
22:35:01 <elliott> oerjan: You have the fizzie-colon disease too, I see.
22:35:12 <elliott> Phantom_Hoover: You are literally going to be the: best Asteroids II player.
22:35:47 <Phantom_Hoover> No, the Project Rho guy will be, and we will cry, because he is the: worst.
22:35:53 <fizzie> I think I've: copied this thing: from somewhere.
22:35:55 <oerjan> elliott: your assessment might be: accurate.
22:36:04 <elliott> fizzie: It's so: addicting.
22:36:20 <elliott> fizzie: It makes everything you say sound approximately fifty percent more: scientific.
22:36:20 <Ngevd> Who can see these characters properly: ﴾﴿
22:36:30 <elliott> They look like ()s but weird somehow.
22:36:32 <oerjan> which is weird since i have: just heard about it
22:36:53 <elliott> oerjan: I would: s/have: just/have just:/
22:36:53 <Ngevd> elliott, that is exactly what they are
22:37:06 <elliott> Ngevd: Oh. So they're not weird at all?
22:37:19 <elliott> Constructors CRespawn and CDisconnect
22:37:19 <elliott> give different types for field
22:37:19 <elliott> In the data type declaration for `ClientPacket'
22:37:31 <Ngevd> They are technically /ornate.
22:37:50 <elliott> Phantom_Hoover: Stop you'll ruin it.
22:37:53 <elliott> I've been happily using it for days now.
22:38:07 <oerjan> <elliott> Also this is TOO FAR. <-- ME AM: PLAY GODS.
22:39:05 <elliott> 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 <elliott> I have made: possibly good decisions.
22:40:36 <elliott> pikhq: How do I remove changes from an existing git commit?
22:40:57 <pikhq> elliott: Make new changes, git commit --amend
22:41:05 <elliott> pikhq: I want to /remove/ the changes.
22:41:22 <elliott> And then... how would I selectively re-apply a patch from the new commit?
22:42:12 <pikhq> 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 <pikhq> After doing git add on those files.
22:42:27 <Phantom_Hoover> I almost don't want to work out the orbital parking brake because it'd make it less fun.
22:45:33 -!- Zuu has joined.
22:46:30 -!- Ngevd has quit (Quit: Leaving).
22:46:42 <pikhq> 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 <pikhq> (and thus all the implications of SR)
22:47:04 -!- copumpkin has joined.
22:47:28 <Phantom_Hoover> The important part being that I don't need to bother with scary complicated calculations for parking around a moving target.
22:47:51 <Phantom_Hoover> You want to park around a significantly accelerating target? Then do it yourself you lazy bastard.
22:48:02 <pikhq> It's still relativistic, in a sense.
22:48:54 <pikhq> It just doesn't encode the assumption that c is a constant, and all the implications this has for relativity.
22:49:08 <pikhq> Erm, not assumption.
22:50:15 <Phantom_Hoover> 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 <Phantom_Hoover> AHAHAHAHAHAHA I CAN RECOGNISE CANADIAN ACCENTS NOW NOTHING CAN STOP ME
22:56:01 <oerjan> YOU MAY NEVER KNOW, EH
23:04:39 <elliott> tiffany emoticon bot hard at work
23:04:52 <elliott> <pikhq> 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 <tiffany> is there even such thing as emoticon bots?
23:04:59 <elliott> pikhq: I only want to commit some patches to the file in question.
23:05:43 <elliott> She is gone and will never come back.
23:05:57 <elliott> Because she is literally the devil, we proved it with science.
23:06:47 <Phantom_Hoover> we do not expect you to understand these things, you are only a crappily-coded emoticon bot after all.
23:08:34 <elliott> Madoka-Kaname is the other emoticon bot.
23:08:48 <elliott> `addquote <Phantom_Hoover> It's like Pygmalion and Galatea but more weeaboo.
23:08:50 <HackEgo> 681) <Phantom_Hoover> It's like Pygmalion and Galatea but more weeaboo.
23:09:08 <elliott> `addquote <Phantom_Hoover> It's like Pygmalion and Galatea but more weeaboo. <Phantom_Hoover> Also lesbian.
23:09:10 <HackEgo> 681) <Phantom_Hoover> It's like Pygmalion and Galatea but more weeaboo. <Phantom_Hoover> Also lesbian.
23:09:45 <oerjan> Phantom_Hoover: well only because hatheist plot failed
23:09:55 <elliott> pikhq: What does git reset --soft do again?
23:10:19 <pikhq> elliott: --soft changes the head pointer.
23:10:33 <elliott> Thing I just typed instead of "github": gktnjb.
23:10:46 <tiffany> what was that window manager thingy that changes colour throughout the day?
23:10:54 <elliott> It's not a window manager.
23:10:59 <tiffany> that's why I confused it with fluxbox
23:11:18 <oerjan> elliott: hm could be a thumbs-up emoticon
23:11:46 <oerjan> tiffany: that's what they all say
23:12:27 <elliott> tiffany is even less believable than Sgeo.
23:12:34 <elliott> And that just adds "?" to random statements.
23:12:54 <elliott> She's less believable than your MOM.
23:13:07 <Phantom_Hoover> elliott, hey, no robot could produce karaoke *that* terrible.
23:13:21 <monqy> are you calling sgeo's karaoke terrible
23:13:35 <elliott> 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 <oerjan> monqy: i think he's referring to his mom
23:14:21 <oerjan> which also explains Phantom_Hoover's insanity
23:14:54 <elliott> he's obviously talking about sgeo's
23:15:04 <elliott> Phantom_Hoover: You just don't get it, man.
23:15:24 <elliott> Well, it's better than Trout Mask Replica.
23:15:40 <oerjan> my principle of turning on laptop sound only in emergencies must have saved me.
23:16:34 <Phantom_Hoover> "Oh no! The president has been kidnapped!" "Ørjan, turn on your speakers! We'll karaoke these terrorists into submission!"
23:16:42 -!- Phantom_Hoover has quit (Quit: Leaving).
23:17:59 <elliott> Does Norway even have a president.
23:18:30 <zzo38> Is there a datatype to represent algebraic numbers?
23:20:23 <elliott> pikhq: hmm, git reset --soft doesn't seem to do much
23:20:26 <elliott> Do I need to specify HEAD?
23:22:04 * oerjan fixes some spelling in the [[HA]] article
23:22:42 <oerjan> elliott: there is a president of parliament.
23:22:46 <elliott> can you fix the badness too
23:26:24 <pikhq> elliott: Well, yeah, it does precisely one thing: it changes HEAD.
23:27:18 <pikhq> Everything that is not HEAD is not affected by it.
23:27:27 -!- Behold has quit (Remote host closed the connection).
23:27:41 <pikhq> And HEAD is nothing but a hash stored in a text file somewhere in .git.
23:28:09 <elliott> refs/heads/master isn't a file though. :p
23:28:31 <pikhq> Oh, right, HEAD itself points to the branch head.
23:28:40 <pikhq> It edits whatever HEAD points to.
23:29:01 <pikhq> checkout $branch changes HEAD. And then futzes with your working tree.
23:30:12 <elliott> "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 <elliott> ITS NOT A LANGUAGE FEATURE YOU AWFUL BLOG POST WRITER
23:31:09 <pikhq> oerjan: It's just a side effect of laziness.
23:31:23 <elliott> oerjan: It's a feature in the sense of "perk", but it's not a "language feature".
23:31:34 <pikhq> Hell, I can do it in Brainfuck with enough effort.
23:31:37 <elliott> Language features are something that had to be built in to the language to achieve.
23:31:42 <elliott> pikhq: well that's a fallacy
23:32:00 <elliott> everything TC is equivalent in computational power =/= everything TC is equivalent
23:32:12 <oerjan> i think elliott and i discussed how to do it in underload once
23:32:16 <pikhq> 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 <elliott> wow, why on earth does the transformers package support base 1?
23:34:24 <elliott> Dependenciesbase (≥1.0 & <2), special-functors (1.0.*) or
23:40:01 <oerjan> ^ul (()(((x)*:a)~a*^a*a(:^)*a):^)^^^(~aS:^):^
23:40:02 <fungot> (((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:41:28 <elliott> nooga: Are you too drunk for this.
23:41:40 <oerjan> ^ul (()(((x)*:a)~a*^a*a(:^)*a):^)^^^^(~aS:^):^
23:41:41 <fungot> (((((x)(((x)*:a)~a*^a*a(:^)*a)x)(x)):^))((x)(((x)*:a)~a*^a*a(:^)*a)x)(x) ...out of stack!
23:43:07 <oerjan> ^ul (()(((x)*:a)~a*^a*(:^)*a):^)^^^^(~aS:^):^
23:43:07 <fungot> ((xx)(((x)*:a)~a*^a*(:^)*a):^)(xx)(x) ...out of stack!
23:44:21 <oerjan> ^ul (()(((x)*:a)~a*^a*(:^)*a):^)^^^^^(~aS:^):^
23:44:21 <fungot> (((xxx)(((x)*:a)~a*^a*(:^)*a):^))(xxx)(xx)(x) ...out of stack!
23:45:13 <oerjan> ^ul (()(((x)*:a)~a*^a*(:^)*a):^)^^^^^^(~aS:^):^
23:45:13 <fungot> ((xxx)(((x)*:a)~a*^a*(:^)*a):^)(xxx)(xx)(x) ...out of stack!
23:45:30 <oerjan> ^ul (()(((x)*:a)~a*^a*(:^)*):^)^^^^^^(~aS:^):^
23:45:30 <fungot> ((xxxxxx)(((x)*:a)~a*^a*(:^)*):^)(xxxxxx)(xxxxx)(xxxx)(xxx)(xx)(x) ...out of stack!
23:47:12 <oerjan> ^ul (()(((x)*:a)~a*^a*(:^)*):^)(~^~(, )*S~:^):^
23:47:12 <fungot> 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 <oerjan> the first command is essentially an infinite list, and the rest prints its elements
23:48:20 <elliott> oerjan: are those lazy lists? :DDDD
23:48:30 <elliott> oerjan: What's the Haskell equivalent to whatever you're doing?
23:48:37 <elliott> as in, the corresponding data type
23:48:40 <elliott> with explicit laziness I guess?
23:48:47 <elliott> since you're emulating the laziness yourself
23:48:50 <elliott> so a thunk would be (() -> a)
23:49:37 <oerjan> (()(((x)*:a)~a*^a*(:^)*):^) when run produces (x) and ((x)(((x)*:a)~a*^a*(:^)*):^) on the stack
23:49:48 <elliott> oerjan: I can't read Underload. At least not at this hour.
23:50:04 <oerjan> ((x)(((x)*:a)~a*^a*(:^)*):^) when run produces (xx) and ((xx)(((x)*:a)~a*^a*(:^)*):^) on the stack
23:50:29 <oerjan> so it's building its own successor
23:53:08 <elliott> oerjan: plz type synonym equiv :'(
23:53:19 <elliott> or well at least SOMETHING vaguely type-like that isn't Underload :P
23:53:27 <elliott> like is it based on foldr?
23:55:27 <oerjan> call --> head tail, yes
23:58:21 -!- kmc has quit (Quit: Leaving).
23:59:07 <oerjan> the format is ((previous-head)(program to produce next head+self-quine):^)
23:59:56 <oerjan> with the (program to produce next head+self-quine) part not changing