←2011-09-22 2011-09-23 2011-09-24→ ↑2011 ↑all
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:32 <lambdabot> but its type `[t...
00:54:43 <oerjan> urk
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:02:15 <Jafet> Not some
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:04:55 <CakeProphet> :)
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:53:59 <CakeProphet> `wacro
07:54:02 <CakeProphet> `macro
07:54:03 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: wacro: not found
07:54:06 <HackEgo> VEBLEN'S
07:54:10 <CakeProphet> `macro
07:54:14 <HackEgo> WRUNG
07:54:18 <CakeProphet> `macro
07:54:23 <HackEgo> IFFIER
07:55:02 <CakeProphet> doesn't make sense to me, if he implemented as I think he would.
07:59:52 <monqy> !show macro
07:59:53 <EgoBot> That is not a user interpreter!
08:00:01 <monqy> oh right
08:00:05 <monqy> hackego
08:00:06 <monqy> right
08:00:16 <monqy> `paste bin/macro
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:01:18 <CakeProphet> monqy is weird.
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:37 <CakeProphet> +wait
08:02:45 <monqy> half an hour? how much data is it?
08:02:49 <monqy> er
08:02:52 <monqy> a whole hour?
08:02:57 <monqy> hwat????
08:03:09 <CakeProphet> well it's like 50-something gigs totally but I should probably only use one dataset for now
08:03:30 <monqy> mmhm
08:04:26 * CakeProphet needs to test that the output is correct.
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:02 <CakeProphet> > 27^3
08:05:03 <lambdabot> 19683
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:07:38 <CakeProphet> since the interpreter is C.
08:08:39 <fizzie> CakeProphet: I don't know what it does.
08:10:08 <monqy> `macro
08:10:12 <HackEgo> IEYASU'S
08:10:37 <monqy> I imagine it's some sort of bug or similar flaw
08:10:47 <monqy> oversight
08:10:49 <monqy> uhh
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:10 * CakeProphet just told emacs to open a half gig file
08:15:16 <monqy> good job
08:15:16 <CakeProphet> should be fun.
08:15:32 * CakeProphet watches memory escalate rapidly and emacs become non-responsive.
08:16:37 <CakeProphet> there we go.
08:17:50 <CakeProphet> I really don't even understand why &Ward is an entry
08:17:54 <CakeProphet> or &ablir
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:20:03 <CakeProphet> all the data will be in the perl code.
08:22:33 <fizzie> CakeProphet: Here's 50 words generated from character trigrams: http://sprunge.us/MNHQ
08:22:57 <monqy> good words
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:25:12 <CakeProphet> in perl
08:25:41 <CakeProphet> it should just be use name; right?
08:26:00 <fizzie> Yes, if '.' is in @INC, like it usually is by default.
08:26:08 <CakeProphet> alright.
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:29:06 <CakeProphet> what exactly does that do for you.
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:33:41 <CakeProphet> at least I think that's how it works..
08:34:00 <CakeProphet> but I guess passing it as a ref and immediately dereferencing is pretty much equivalent to passing it referenced...
08:34:10 <CakeProphet> *dereferenced
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:35:56 <CakeProphet> due to Perl's call semantics.
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:37:33 <CakeProphet> ah true.
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:38:26 <CakeProphet> with two spaces being used at the start.
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:42:39 <fizzie> It is, yes.
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:45:54 <CakeProphet> oh that's right.
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:48:11 <CakeProphet> shifts might be more efficient.
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:51:14 <CakeProphet> I think perl is my bottleneck. :P
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:52:53 <CakeProphet> fizzie: I do now.
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:39 <CakeProphet> this is correct right?
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:13 <CakeProphet> ah okay.
08:57:38 <fizzie> There is the right way to do this, but I've forgotten it.
08:58:01 <CakeProphet> I'll just use the require.
08:58:31 <fizzie> Then it won't import things, though.
08:58:53 <CakeProphet> it won't..?
08:58:58 <fizzie> require doesn't.
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:09 <CakeProphet> ah.
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:02:49 <CakeProphet> -i
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:15 <CakeProphet> yes
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:21:09 <CakeProphet> er, in perl?
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:01 <CakeProphet> ah yes
09:28:39 <CakeProphet> main unless caller();
09:28:50 <CakeProphet> looks better to me than if __name__ == "__main__": main()
09:29:10 <CakeProphet> actually the () is optional after caller
09:29:31 <fizzie> Right.
09:30:06 <fizzie> Doesn't look so perly, though; pretty much no punctuation.
09:30:19 <CakeProphet> depends on your definition of perly
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:30:43 <CakeProphet> I suppose.
09:31:07 <CakeProphet> my $r = int(rand(sum(@w)))
09:31:11 <CakeProphet> this line is something you might find in Python
09:31:15 <CakeProphet> lots of nested calls.
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:02 <CakeProphet> right
09:33:10 <CakeProphet> this particular style of nested calls reminds me of Python
09:33:14 <CakeProphet> basically one argument per call.
09:33:28 <CakeProphet> to compute a list.
09:33:34 <CakeProphet> er compute things from a list.
09:33:51 <CakeProphet> the equivalent Python code would look very similar.
09:34:21 <CakeProphet> my @w = map { $f{$_} } @c;
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:35:42 <CakeProphet> for example in my IRC bot I have:
09:36:16 <CakeProphet> command shutdown => Admin => 'Bot shutdown. Only allowed by super-admin.',
09:36:17 <CakeProphet> sub {
09:36:22 <CakeProphet> ...;
09:36:23 <CakeProphet> }
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:04 <CakeProphet> +b
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:38:50 <lambdabot> Unknown command, try @list
09:38:55 <CakeProphet> def blah(): ...
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:45:01 <CakeProphet> else if, elsif, elif, bah...
09:54:37 -!- CakeProphet has quit (Ping timeout: 260 seconds).
09:55:33 -!- CakeProphet has joined.
09:55:33 -!- CakeProphet has quit (Changing host).
09:55:33 -!- CakeProphet has joined.
09:57:40 <fizzie> Also "elseif".
10:00:02 <CakeProphet> which languages have that?
10:00:19 <CakeProphet> !perl print "010101" =~ /\w/
10:00:21 <EgoBot> 1
10:00:24 <CakeProphet> ...oh
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:56 <CakeProphet> so I guess I want... [^\d\W]?
10:02:58 <fizzie> And several variants of BASIC.
10:03:02 <CakeProphet> that would give me \w minus digits yes?
10:04:53 <CakeProphet> yep
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:05:24 <CakeProphet> not sure.
10:06:24 <fizzie> [^_\d\W] is getting so complex that [[:alpha:]] or \p{IsAlpha} might more clearly show the meaning.
10:08:34 <CakeProphet> yeah I'll just
10:08:37 <CakeProphet> use :alpha:
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:53 <CakeProphet> !perl $_"TEST";lc;print
10:09:54 <EgoBot> String found where operator expected at /tmp/input.21091 line 1, near "$_"TEST""
10:09:58 <CakeProphet> !perl $_="TEST";lc;print
10:09:59 <EgoBot> TEST
10:12:11 <fizzie> lc doesn't set, it just returns.
10:12:17 <fizzie> !perl $_="TEST";$_=lc;print
10:12:18 <EgoBot> test
10:12:21 <CakeProphet> yes that was my experiment.
10:13:21 <fizzie> !perl $_="TEST";$_="\L$_";print
10:13:22 <EgoBot> test
10:13:28 <fizzie> That thing has the best features.
10:14:07 <CakeProphet> \L? never seen that.
10:14:32 <fizzie> \L...\E is like \Q...\E except it lowercases.
10:14:36 <CakeProphet> !perl print (shift (1,2,3,4,5));
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:41 <CakeProphet> thought so
10:14:49 <fizzie> There's also the corresponding \U...\E, and \l/\u which lower/uppercase the following character.
10:14:54 <CakeProphet> neat.
10:15:09 <fizzie> !perl print "\uh"
10:15:09 <EgoBot> H
10:17:10 <CakeProphet> next unless length == 3 && /^( )?[[:alpha:]]+( )?$/;
10:17:20 <CakeProphet> perl: reads like English and @!@Jjj234{1!]}@!@#%1
10:20:00 <CakeProphet> next if $seen{$word};
10:20:02 <CakeProphet> more English.
10:22:27 <fizzie> Maybe you should join the Osmosian Order and write that thing in Plain English.
10:22:46 <CakeProphet> just found a bug
10:22:58 <fizzie> See? In Plain English, there are no bugs.
10:23:05 <CakeProphet> need \s{0,2} not ( )?
10:23:34 <fizzie> Or " ? ?", but that's probably regexplically more complicated to interpret; more choices.
10:23:59 <CakeProphet> yes I think \s{0,2} looks better
10:24:00 <CakeProphet> strangely enough
10:24:16 <fizzie> " {0,2}" looks a bit silly perhaps.
10:24:27 <CakeProphet> yeah I prefer to use \s usually
10:24:48 <CakeProphet> though I rarely use /x
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:28:37 <CakeProphet> substr can be kind of annoying sometimes.
10:29:01 <CakeProphet> I'd like having string indexing/slicing
10:29:23 <CakeProphet> substr is nice too when it makes sense.
10:29:40 <CakeProphet> to actually split the word into trigrams I use for(my $i = 0; $_ = substr($word, $i, 3); $i++)
10:30:09 <CakeProphet> which is nice
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:17 <CakeProphet> so it would to ditch that syntax.
10:32:25 <CakeProphet> +have
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:28 <CakeProphet> [[:alpha:]] includes Unicode I hope.
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.
10:52:54 <CakeProphet> just to be a rebel
10:52:59 <CakeProphet> also because they're more commonly used.
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:07:38 <CakeProphet> my external is extremely quiet.
11:10:16 <CakeProphet> I love rotating it slowly and feeling the gyroscoping effect from the spinning platters.
11:10:22 <CakeProphet> *gyroscopic
11:10:49 <CakeProphet> or is it a magnetic thing?
11:15:06 <CakeProphet> hmmm, perhaps I should ban trigrams that do not contain both consonants and vowels.
11:15:15 <CakeProphet> but that would make it english-specific
11:15:30 <CakeProphet> and would also eliminate a lot of plausible words.
11:15:46 <CakeProphet> but...
11:15:58 <CakeProphet> 'hd' => { 'w' => 19, 'r' => 300, 'a' => 286,
11:16:04 <CakeProphet> that's a lot of r's
11:16:08 <CakeProphet> more hdr than hda
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 <CakeProphet> ...ah
11:21:11 <fizzie> (Incidentally, what I pasted was from that list.)
11:21:54 <CakeProphet> man English sure is complex.
11:21:59 <CakeProphet> with all of those loan words.
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:24:41 <CakeProphet> man this tutorial is so wrong.
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:38:16 <CakeProphet> *3-grams
11:40:21 <CakeProphet> !perl subtr("test", -2, 2)
11:40:21 <EgoBot> Undefined subroutine &main::subtr called at /tmp/input.27953 line 1.
11:40:25 <CakeProphet> !perl print subtr("test", -2, 2)
11:40:26 <EgoBot> Undefined subroutine &main::subtr called at /tmp/input.27999 line 1.
11:40:30 <CakeProphet> !perl print substr("test", -2, 2)
11:40:31 <EgoBot> st
11:40:35 <CakeProphet> !perl print substr("test123124", -2, 2)
11:40:35 <EgoBot> 24
11:40:46 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
11:40:48 -!- ais523 has joined.
11:43:39 <fizzie> Do you pick a fixed length randomly and then generate that many?
11:43:46 <CakeProphet> yep
11:44:08 <CakeProphet> I bet there are better ways to do it...
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:47:25 <CakeProphet> how does one model a gamma distribution?
11:48:33 <CakeProphet> bug in pick subroutine at wacro.pl line 22, <STDIN> line 1.
11:48:36 <CakeProphet> uh oh
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:10 <CakeProphet> statistics isn't really my best subject.
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:12 <CakeProphet> what am I employing?
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:53:42 <CakeProphet> ah okay.
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:54:27 <CakeProphet> yeah
11:54:36 <CakeProphet> well, not squished.
11:56:56 <CakeProphet> perl wacro.pl
11:56:56 <CakeProphet> 2 6 grum
11:56:56 <CakeProphet> 2 4 ne
11:56:56 <CakeProphet> 3 6 aflore
11:56:56 <CakeProphet> 3 5 in
11:57:10 <fizzie> How grummy.
11:57:35 <fizzie> What's them numbers?
11:57:40 <CakeProphet> the inputs
11:57:52 <CakeProphet> it reads lines from stdin to make it compatible with egobot.
11:57:57 <CakeProphet> but I'll probably add a CLI
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:58:59 <CakeProphet> oh...
11:59:02 <CakeProphet> yeah it probably has a space in it.
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.
11:59:44 <CakeProphet> yes that's a space
11:59:47 <CakeProphet> length("in ")
12:00:20 <CakeProphet> aflore is a good word.
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:06 <CakeProphet> what did you use in that one.
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:10 <CakeProphet> my data only counts unique words.
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:02 <CakeProphet> s/only/all/
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> perl wacro.pl
12:23:37 <CakeProphet> 10
12:23:37 <CakeProphet> ne scutittsci suralled cem banicksanistry idet ply zemelesubeing gablouus leadam
12:24:03 <CakeProphet> this one tends to give pretty long words.
12:24:22 <CakeProphet> well, not long just... really strange words. :P
12:24:44 <CakeProphet> perl wacro.pl
12:24:44 <CakeProphet> 10
12:24:45 <CakeProphet> jucheebablutinging en uus entes javul encos ca phutternergivid whens go
12:25:03 <fizzie> How gablouus.
12:25:16 <CakeProphet> backicksanistry and phutternergivid are the best so far.
12:25:22 <CakeProphet> *banicksanistry
12:26:08 <CakeProphet> perl wacro.pl
12:26:08 <CakeProphet> 20
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:15 <CakeProphet> molizascarygates
12:26:33 <itidus20> ok.. this is you guys: http://www.wastedtalent.ca/comic/data-pr0n
12:27:44 <Phantom_Hoover> Blech, engineering.
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:30:59 <CakeProphet> NOOOOOOO
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:22 <CakeProphet> no it's pretty fast.
12:31:30 <CakeProphet> it's just one huge hash table.
12:31:57 <CakeProphet> I used Data::Dumper to output the hash table after constructing it from the google data.
12:32:01 <CakeProphet> and then I just import that.
12:32:14 <itidus20> yeah that sexy 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:32:46 <CakeProphet> well I could use terse mode
12:32:48 <CakeProphet> to remove the formatting.
12:33:02 <CakeProphet> I have another solution.
12:33:38 <CakeProphet> !delinterp acro
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:27 <CakeProphet> !acro 3 5
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:43 <CakeProphet> oh well
12:34:46 <CakeProphet> !delinterp 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:35:16 <CakeProphet> !wacro 20
12:35:21 <CakeProphet> >_>
12:35:55 <CakeProphet> erm what
12:36:11 <CakeProphet> !wacro 20
12:36:15 -!- ais523 has joined.
12:36:45 <fizzie> CakeProphet: Your wacro_egobot.pl has the $VAR1 = ... before the #!/usr/bin/perl.
12:37:47 <CakeProphet> oh.
12:37:51 <CakeProphet> right.
12:39:55 <CakeProphet> !delinterp wacro
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:40:09 <CakeProphet> !wacro 20
12:40:13 <CakeProphet> !wacro
12:40:14 <CakeProphet> eihjasudhuaher
12:40:15 <CakeProphet> help
12:40:16 <CakeProphet> lol
12:41:02 <CakeProphet> hmmm, works fine on my computer.
12:41:17 <CakeProphet> and I'm pretty sure egobot sends to stdin
12:41:32 <CakeProphet> oh wait possibly it doesn't have List::Util?
12:41:48 -!- itidus20 has left ("Leaving").
12:41:58 <CakeProphet> !perl use List::Util; print sum(1..100);
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:06 <EgoBot> 5050
12:42:25 <CakeProphet> !show wacro
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:06 <CakeProphet> 08:43 <EgoBot>
12:43:07 <CakeProphet> whut
12:43:12 <CakeProphet> that is a python error.
12:43:58 <CakeProphet> !show wacro
12:43:59 <EgoBot> perl (sending via DCC)
12:45:44 <CakeProphet> !wacro
12:45:46 <CakeProphet> !wacro 2131224124125
12:45:48 <CakeProphet> dfihsdiufhwiuerhushdfwqet
12:48:16 <fizzie> EgoBot code is so confusing. :/
12:48:56 <CakeProphet> perhaps I should use hackego instead?
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:30 <fizzie> fetch, isn't it?
12:49:31 <CakeProphet> `help
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:42 <CakeProphet> `ls
12:49:44 <HackEgo> bin \ canary \ karma \ lib \ paste \ quotes \ wacro_egobot.pl \ wisdom
12:50:02 <CakeProphet> where should I put it?
12:50:09 <fizzie> As bin/wacro, probably.
12:50:11 <fizzie> `ls bin
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:22 <CakeProphet> `mv wacro_egobot.pl bin/wacro
12:50:23 <HackEgo> mv: missing destination file operand after `wacro_egobot.pl bin/wacro' \ Try `mv --help' for more information.
12:50:35 <CakeProphet> `run mv wacro_egobot.pl bin/wacro
12:50:37 <HackEgo> No output.
12:50:42 <CakeProphet> `wacro
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:50:54 <CakeProphet> `run chmod +x bin/wacro
12:50:56 <HackEgo> No output.
12:51:06 <CakeProphet> ah yes it'll be command line based.
12:51:14 <CakeProphet> easy fix.
12:52:05 <fizzie> `marco
12:52:07 <HackEgo> polo
12:52:09 <fizzie> Useful.
12:52:46 <CakeProphet> `run perl -pi -e 's/<STDIN>/shift @ARV/' bin/wacro
12:52:48 <HackEgo> No output.
12:52:57 <CakeProphet> ...er
12:52:58 <CakeProphet> no
12:52:58 <CakeProphet> lol
12:53:02 <CakeProphet> `wacro
12:53:04 <HackEgo> Optional module Math::Random::MT::Perl not found. \ sraufeapis
12:53:13 <CakeProphet> oh that will be annoying.
12:53:15 <CakeProphet> `wacro 20
12:53:17 <HackEgo> Optional module Math::Random::MT::Perl not found. \ png
12:53:23 <CakeProphet> >_>
12:53:33 <fizzie> @ARV?
12:53:34 <lambdabot> Unknown command, try @list
12:53:36 <CakeProphet> oh my bad.
12:53:43 <fizzie> lambdabot: Not *you*.
12:53:58 <CakeProphet> `run perl -pi -e 's/@ARV/@ARGV/' bin/wacro
12:54:00 <HackEgo> No output.
12:54:03 <CakeProphet> `wacro 20
12:54:05 <HackEgo> Optional module Math::Random::MT::Perl not found. \ bri
12:54:17 <CakeProphet> I think I messed it up. :P
12:54:22 <Vorpal> Math::Random::MT::Perl ?
12:54:25 <fizzie> Substitutions in the s/// I think.
12:54:33 <Vorpal> `run perl
12:54:34 <fizzie> It reads "print (map {generate} 1..(min(50,int(shift ))||1));" at the moment.
12:54:35 <CakeProphet> ah I see.
12:54:39 <CakeProphet> no it shouldn't shift.
12:54:55 <Vorpal> `pasteurl bin/wacro
12:54:57 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: pasteurl: not found
12:55:02 <Vorpal> `paste bin/wacro
12:55:04 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.29306
12:55:04 <HackEgo> No output.
12:55:07 <CakeProphet> `run perl -pi -e 's/shift @ARGV/$ARGV[0]/' bin/wacro
12:55:09 <HackEgo> No output.
12:55:13 <CakeProphet> `wacro 20
12:55:15 <HackEgo> Optional module Math::Random::MT::Perl not found. \ flger
12:55:19 <CakeProphet> ...
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:50 <fizzie> I'll try too.
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:56:57 <fizzie> Oh, well, I won't.
12:56:59 <CakeProphet> `ls
12:57:01 <HackEgo> bin \ canary \ karma \ lib \ paste \ quotes \ wacro_egobot.pl \ wisdom
12:57:04 <CakeProphet> `mv wacro_egobot.pl bin/wacro
12:57:06 <HackEgo> mv: missing destination file operand after `wacro_egobot.pl bin/wacro' \ Try `mv --help' for more information.
12:57:11 <CakeProphet> `run mv wacro_egobot.pl bin/wacro
12:57:13 <HackEgo> No output.
12:57:15 <CakeProphet> `run chmod +x /bin/wacro
12:57:17 <HackEgo> chmod: cannot access `/bin/wacro': No such file or directory
12:57:21 <CakeProphet> `run chmod +x bin/wacro
12:57:23 <HackEgo> No output.
12:57:30 <CakeProphet> `wacro 20
12:57:44 <CakeProphet> we aren't friends anymore hackego
12:58:01 <HackEgo> No output.
12:58:05 <CakeProphet> `run wacro 20 2>&1
12:58:27 <CakeProphet> oh I see.
12:58:36 <HackEgo> No output.
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:09 <CakeProphet> yeah I grabbed the wrong file :P
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:37 <HackEgo> No output.
13:00:41 <CakeProphet> `ls
13:00:42 <HackEgo> bin \ canary \ karma \ lib \ paste \ quotes \ wisdom
13:00:45 <CakeProphet> `wacro 20
13:00:53 <CakeProphet> >_>
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:08 <CakeProphet> lolwhut
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:37 <CakeProphet> man I'm so good.
13:01:42 <CakeProphet> how did I get so good.
13:01:45 <fizzie> `ls
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:01:56 <HackEgo> No output.
13:01:57 <CakeProphet> `wacro 20
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:16 <CakeProphet> erm.
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:41 <HackEgo> No output.
13:02:43 <CakeProphet> `wacro 20
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:55 <CakeProphet> ah
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:24 <HackEgo> No output.
13:03:25 <CakeProphet> `wacro 20
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:30 <CakeProphet> the original version does yes.
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:51 <CakeProphet> so yes, I think?
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:04 <Vorpal> on your own computer
13:04:04 <HackEgo> No output.
13:04:04 <CakeProphet> not anymore :P
13:04:08 <CakeProphet> `wacro 20
13:04:18 <CakeProphet> a long lag there...
13:04:24 <HackEgo> No output.
13:04:39 <CakeProphet> yeah I'll test locally now :P
13:04:41 <Vorpal> `run wacro 20 2>&1
13:04:56 <HackEgo> sh: line 1: 277 Killed wacro 20 2>&1
13:05:12 <CakeProphet> oh hahahahaha
13:05:16 <CakeProphet> typo'd "min" as "main"
13:05:17 <Vorpal> yeah, infinite loop or such
13:05:18 <CakeProphet> fun times.
13:05:40 <fizzie> That's a good typo what with sub main, also.
13:05:46 <CakeProphet> indeed
13:05:51 <CakeProphet> I ran it locally and my memory exploded
13:05:58 <Vorpal> that would never have compiled in haskell
13:06:15 <Vorpal> CakeProphet, you don't set sane ulimits?
13:06:27 <CakeProphet> I have not touched anything like that.
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:06:43 <CakeProphet> perl + anything = easy
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:24 <HackEgo> No output.
13:07:30 <CakeProphet> `wacro 10
13:07:32 <HackEgo> ristoperion azmillophalibactitmerfitenatoluth wetam musia berunbasa entna upeley tol er phypurs
13:07:51 <CakeProphet> `wacro 30
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:08 <CakeProphet> a word generator.
13:08:17 <CakeProphet> wootamax
13:08:19 <CakeProphet> is a good word.
13:08:23 <fizzie> I apposalimillify things all the time.
13:08:58 <CakeProphet> phadyed sounds like a bad band name.
13:09:06 <CakeProphet> pronounced "faded"
13:09:26 <CakeProphet> `wacro 50
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:10:57 <CakeProphet> yeah I'm using an English dataset
13:11:01 <CakeProphet> should get English-like lengths.
13:11:11 <CakeProphet> `wacro
13:11:13 <HackEgo> vidutenicitonaz
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:11:54 <CakeProphet> so that will be good.
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:05 <fizzie> Aw.
13:13:24 <Vorpal> CakeProphet, can it generate every real English word in theory?
13:13:38 <CakeProphet> yes there's a chance for each word.
13:13:56 <Vorpal> CakeProphet, so it can generate every word found in an English dictionary? Hm. Loanwords too?
13:13:58 <CakeProphet> fizzie: is that an actual thing?
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:45 <CakeProphet> accumulated from books.
13:14:50 <fizzie> Anyway, it can't generate any word contaning, say, "qzb".
13:15:06 <CakeProphet> `wacro 20
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:15:37 <CakeProphet> it tends to repeat the shorter words.
13:15:40 <CakeProphet> like fria was already used.
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:36 <CakeProphet> yes
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:10 <CakeProphet> `wacro 20
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:38 <ais523> I like "nonition"
13:17:55 <ais523> "marcald" looks like a French word
13:18:46 <CakeProphet> I wonder how I could improve on it.
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:07 <CakeProphet> why can't they be generated?
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:37 <CakeProphet> `wacro 30
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:17 <fizzie> At least SciPy.
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:24:35 <CakeProphet> also: avargizable is good.
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:05 <CakeProphet> lol
13:29:14 <CakeProphet> well, I /could/ buy that.
13:29:20 <CakeProphet> but there's no way it would be worth it
13:29:22 <CakeProphet> well... maybe it would be.
13:29:29 <CakeProphet> that's some pretty useful data.
13:29:45 <ais523> not you too!
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> ais523: no I'm not considering it at all
13:32:41 <CakeProphet> maybe when I'm rivh.
13:32:41 <CakeProphet> *rich
13:32:41 <CakeProphet> fizzie: do you think it could tag all of the google data? :P
13:32:41 <CakeProphet> *correctly tag
13:32:41 <fizzie> No, because you obviously need to feed it full sentences, not 5-grams.
13:32:41 <CakeProphet> ...oh, right.
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> Ah, here it is.
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:11 <fizzie> Well, yes.
13:37:15 <fizzie> You could do that too.
13:37:31 <CakeProphet> not as awesome though?
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:37:59 <CakeProphet> oh.. well...
13:38:01 <CakeProphet> GOOD
13:38:38 <CakeProphet> man I'm all about that practicality
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:43:45 <Phantom_Hoover> Isn't it Adam?
13:44:22 <CakeProphet> not that is not and has never been my real name.
13:45:44 <Phantom_Hoover> Are you sure?
13:46:54 <CakeProphet> `wacro 50
13:46:54 <CakeProphet> Phantom_Hoover: yes I am positive
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:47:06 <Phantom_Hoover> CakeProphet, how positive, would you say?
13:47:09 <CakeProphet> ookccetra
13:47:10 <Phantom_Hoover> 5C? 7?
13:48:21 <CakeProphet> A(G! tetra G!, G! tetra G!)
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:50:42 <Phantom_Hoover> CakeProphet, we guessed.
13:50:44 <CakeProphet> with their dickhobcabs and thysty reahers
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:18 <CakeProphet> `wacro 50
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:21 <CakeProphet> `wacro 50
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:01 <CakeProphet> `wacro 50
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:01:07 <CakeProphet> yeah so it's not necessarily a bad thing.
14:01:17 <CakeProphet> just need to find the right balance.
14:02:26 <CakeProphet> oh wait... I think english 1 million IS the small dataset.
14:02:44 <CakeProphet> english fiction might be smaller.
14:02:50 <CakeProphet> and english all is certainly larger.
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:04:12 <Phantom_Hoover> Ahahahahaha.
14:06:10 <ais523> how many animals could be saved from euthanization for $50,000? around 5? (that's a guess)
14:06:53 <Phantom_Hoover> XD
14:15:11 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:15:48 <CakeProphet> `wacro 20
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:53 <CakeProphet> `wacro 10
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:29 <CakeProphet> !perl @t=(); $t[1]++; print @test;
14:58:44 <ais523> 1
14:58:56 <ais523> (i.e. join "", ("", 1))
14:58:56 <CakeProphet> !perl @t=(); $t[1]++; print @t;
14:58:56 <EgoBot> 1
14:59:24 <ais523> !perl $"='/'; @t=(); $t[1]++; print "@t";
14:59:24 <EgoBot> ​/1
14:59:32 <CakeProphet> !perl @t=(); $t[2]++;$[1]++; print @t;
14:59:33 <EgoBot> Number found where operator expected at /tmp/input.16866 line 1, near "$[1"
14:59:41 <CakeProphet> !perl @t=(); $t[2]++;$t[1]++; print @t;
14:59:41 <EgoBot> 11
14:59:45 <CakeProphet> cool
15:00:10 <ais523> !perl @t=(); $t[1]->{bar}++; print @t;
15:00:10 <EgoBot> HASH(0x7f85764caf40)
15:00:29 <CakeProphet> !perl print length "test" - 1
15:00:29 <EgoBot> 2
15:00:44 <CakeProphet> ..?
15:00:47 <CakeProphet> !perl print length "testt" - 1
15:00:47 <EgoBot> 2
15:00:54 <ais523> !perl print length -1
15:00:54 <EgoBot> 2
15:00:58 <CakeProphet> !perl print (length "testt" - 1)
15:00:59 <EgoBot> 2
15:01:04 <CakeProphet> !perl print (length ("testt") - 1)
15:01:05 <EgoBot> 4
15:01:12 <CakeProphet> ah okay.
15:01:17 <ais523> !perl $\="|"; print length (-1)
15:01:18 <EgoBot> 2|
15:01:26 <ais523> "test"-1 = -1
15:01:34 <ais523> and then that has a length of 2, interpreted as a string
15:01:41 <CakeProphet> right
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:13:53 <Ngevd> Greetings!
15:14:01 <CakeProphet> fizzie: hlep
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:19 <Ngevd> Almost none
15:22:23 <Ngevd> I know it exists
15:22:34 <ais523> do you have a working compiler/interpreter? that'd be the first step
15:23:06 <Ngevd> No
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:30 <CakeProphet> help what is compile.
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:28:59 <CakeProphet> `wacro 20
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:29:16 <CakeProphet> cougesspulownits....
15:31:53 <CakeProphet> `wacro 20
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 <CakeProphet> `wacro 50
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:32:37 <CakeProphet> Ngevd: windows is for chumps
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:22 <CakeProphet> so how are you guys? What's ablurke?
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:33:46 <Ngevd> So yeah, chumps
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:36:21 <ais523> also a bit outdated
15:37:39 <CakeProphet> `wacro 50
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:06 <CakeProphet> >____>
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:42 <ais523> wb Ngevd
15:45:43 <Ngevd> sh: Can't open config.sh
15:45:52 <ais523> why are you trying to do the DOS build?
15:45:59 <Ngevd> I wasn't
15:46:05 <ais523> ah, that may be what went wrong
15:46:13 <Ngevd> I'm on ubuntu?
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:48:57 <Ngevd> It's a > now
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:49:44 <Ngevd> Got it
15:50:11 <Ngevd> Now do I make?
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:27 <Ngevd> Tests complete
15:53:30 <Ngevd> Going to walk dog
15:53:40 <ais523> fair enough
15:53:40 -!- Ngevd has changed nick to Taneb|Hovercraft.
15:58:10 -!- monqy has joined.
15:58:25 -!- Taneb|Hovercraft has quit (Ping timeout: 256 seconds).
15:59:54 <Phantom_Hoover> Help
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:03:43 <Phantom_Hoover> ais523, yes, but no more than normal.
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:26 <Phantom_Hoover> Metaprocrastinate.
16:05:40 <ais523> indeed
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:19:28 <CakeProphet> we'll see.
16:20:14 <CakeProphet> !perl print each undef
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:22 <CakeProphet> alas
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:21:26 <CakeProphet> it was more of an experiment to see.
16:21:45 <CakeProphet> !perl print (print "hello")
16:21:45 <EgoBot> hello1
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:01 <ais523> or as [undef]?
16:25:09 <CakeProphet> (undef, undef) I think
16:25:12 <CakeProphet> would make the most sense.
16:25:17 <CakeProphet> or rather
16:25:18 <ais523> in which case I expect the return value would be (0,undef)
16:25:22 <CakeProphet> that's what each undef would return
16:25:33 <CakeProphet> oh.
16:25:41 <fizzie> Well, or just [].
16:25:49 <CakeProphet> [] isn't a false value though.
16:25:55 <ais523> ouch, I don't think undef should be interpreted as []
16:25:57 <CakeProphet> but neither is (undef, undef)
16:26:03 <ais523> it's the absence of an array, not an empty array
16:26:16 <CakeProphet> ah no [] makes sense.
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:43 <CakeProphet> not 5.14
16:26:44 <fizzie> That's what 5.14 does for it.
16:26:46 <CakeProphet> oh
16:27:02 * CakeProphet is tired. he might say things that make no sense.
16:27:10 <CakeProphet> be warned.
16:27:48 <Phantom_Hoover> So no different to when you're awake?
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:10 <CakeProphet> $grams{$key}->{$c} += $v
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:30:30 <CakeProphet> ah okay.
16:31:22 <CakeProphet> I guess I could throw in a //= 0 there to remove the warning.
16:31:42 <CakeProphet> I think...
16:31:51 <ais523> it'd be great if you could just do +//= $v
16:31:53 <ais523> but you can't
16:31:56 <CakeProphet> bahaha
16:32:04 <CakeProphet> that's so awful looking.
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:28 <CakeProphet> for(keys %opts) {
16:33:29 <CakeProphet> next unless exists($data->{$_});
16:33:29 <CakeProphet> while( my ($key, $subhash) = each %{$data->{$_}} ) {
16:33:29 <CakeProphet> while(my ($c, $v) = each %$subhash) {
16:33:29 <CakeProphet> ($grams{$key}->{$c} //= 0) += $v;
16:33:31 <CakeProphet> }
16:33:33 <CakeProphet> }
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:24 <CakeProphet> `wacro 50
16:35:24 <Phantom_Hoover> Correct.
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:36:34 <monqy> big words
16:36:45 <CakeProphet> monqy: yes I'm currently fixing that.
16:37:02 <CakeProphet> so that it produces fewer of those.
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:38:20 <CakeProphet> that's so terrible even for perl.
16:41:24 <CakeProphet> `wacro -1
16:41:26 <HackEgo> No output.
16:41:30 <CakeProphet> `wacro 0
16:41:32 <HackEgo> kle
16:41:35 <CakeProphet> `wacro 5
16:41:37 <HackEgo> gravias remafeciorle lia of mones
16:41:45 <CakeProphet> 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:47:09 <CakeProphet> fizzie: right
16:47:14 <CakeProphet> I'm fine with this, really.
16:47:39 <Ngevd> Hello again
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:20 <ais523> wb
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:51:47 <CakeProphet> without interpolating.
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:56:32 <CakeProphet> I suppose so.
16:57:27 <Ngevd> Both do nothing
16:58:00 <Ngevd> No wait, it works
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:21 <CakeProphet> just fixed that.
16:58:28 <ais523> Ngevd: did you get an error message from DO ERROR OUT?
16:58:44 -!- elliott has joined.
16:58:49 <ais523> hi, elliott!
16:58:56 <elliott> hi
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:02 <fizzie> (A: way.)
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:26 <ais523> fair enough
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:26 <Ngevd> ais523, Yes I did
17:00:29 <CakeProphet> like TI-BASIC
17:00:36 <CakeProphet> 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:00:50 <Ngevd> *it
17:00:56 <Ngevd> **I
17:01:03 <Ngevd> Crazy
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:14 <ais523> e.g. (1) DO NOTHING
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:16 <ais523> ouch!
17:03:20 <CakeProphet> debugging would be fun.
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:23 <CakeProphet> `wacro 20
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 <Ngevd> For example?
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:48 <Ngevd> How Intercalian
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:33 <Vorpal> what
17:07:39 <ais523> Vorpal: they have an INTERCAL style guide
17:07:43 <Vorpal> oh right
17:07:44 <ais523> just like they have style guides for many other languages
17:07:45 <Vorpal> that joke
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:28 <Vorpal> ah
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:09:57 <Vorpal> ah
17:10:18 <ais523> Ngevd: sorry about the interruption
17:10:30 <Ngevd> 'Tis okay
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:16 <elliott> ais523: yep :P
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:42 <CakeProphet> :(
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:30 <ais523> yep
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:09 <Ngevd> Okay
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:27 <coppro> identifiers."
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:38 <ais523> coppro: ah, right
17:14:43 <ais523> I think the argument was about keywords like GIVE
17:14:50 <ais523> Vorpal: it'd even be useful
17:14:53 <Vorpal> ais523, yes
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:15:33 <coppro> oh
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:36 <CakeProphet> `wacro 50
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:39 <CakeProphet> and now I go to sleep. good night.
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:17:29 <elliott> not why it's not accepted
17:17:33 <elliott> :P
17:17:37 <elliott> but ok, because of DO
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:28 <ais523> what sort of 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:52 <monqy> i hate it
17:18:58 <coppro>
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:18 <ais523> I think I use
17:20:22 <ais523> which is Level3's
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:50 <elliott> there we go
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:23 <elliott> yes, they do
17:21:31 <elliott> it's something beginning with four
17:21:34 <elliott> well, I think so anyway
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:21:59 <Ngevd> brb, dinner
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:33 <ais523> heh
17:22:45 <ais523> just due to IRC teaching in general? or Ngevd in particular?
17:23:12 <monqy> intercaL?
17:23:16 <elliott> both :P
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:15 <elliott> Taneb is Ngevd
17:24:19 <elliott> or, maybe you knew that
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:24:58 <ais523> so it's possible
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:25:49 <elliott> (but without dates)
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:20 <elliott> oh, it included the dates
17:27:35 <ais523> hmm, most mentions of "ehird" are people quoting things you said ages ago
17:27:54 <ais523> !ehird
17:28:05 <monqy> what's optbot
17:28:16 <ais523> a bot that spouted back random lines from the past when its name was mentioned
17:28:18 <ais523> `log
17:28:20 <HackEgo> 2004-02-22.txt:06:50:25: -!- cmeme has quit (kornbluth.freenode.net irc.freenode.net).
17:28:21 <elliott> monqy: the best bot
17:28:25 <ais523> `log
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:29 <ais523> like that
17:28:37 <ais523> except without usernames, I think, or with names changed
17:28:41 <Phantom_Hoover> `log
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:09 <monqy> `log optbot
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:27 <Vorpal> yes
17:29:34 <Vorpal> and what is #1/#2=
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:49 <Vorpal> ah
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:26 <Vorpal> I see
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:10 <Vorpal> I see
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:42 <Vorpal> ah
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:23 <Vorpal> heh
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:07 <Vorpal> in undefined order?
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:26 <Vorpal> ah right
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:49 <elliott> (a) come from b
17:35:50 <elliott> (b) come from a
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:14 <elliott> (a) come from b
17:36:18 <elliott> (b) come from d
17:36:19 <ais523> actually, it'd lock up all the threads in the process in older C-INTERCAL versions
17:36:21 <elliott> (c) come from a
17:36:22 <elliott> (d) come from b
17:36:22 <ais523> I think I might have fixed that
17:36:28 <elliott> WHATHAHT NOW????
17:36:38 <ais523> err, let me try to work that out
17:36:39 -!- Nisstyre has quit (Ping timeout: 260 seconds).
17:36:39 <ais523> or else, run it
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:05 <ais523> 88, 89, 98, and 99?
17:37:13 <elliott> I don't have an eight key.
17:37:15 <elliott> 9 and 0 I can do.
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:21 <Vorpal> and why is RMA silly?
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 <Vorpal> fair enough
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:46 <elliott> oh
17:38:47 <elliott> now that's goo
17:38:48 <elliott> d
17:38:48 <elliott> ok
17:38:50 <elliott> i'm happy now
17:38:56 <ais523> you can't generate lines at runtime, just threasd
17:38:57 <ais523> *threads
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:10 <Vorpal> wow
17:40:17 <elliott> Because, I don't know, it feels uneven.
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:40:48 <elliott> ais523: yes, I quoted it
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:18 <ais523> *escape
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:23 <ais523> yep, pretty much
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:47:15 <Vorpal> ah...
17:48:39 <ais523> anyway, I think I'll go home
17:48:42 <Vorpal> cya
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:23 <Ngevd> Hello!
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
17:57:20 <elliott> Time dilation.
18:05:48 -!- boily has quit (Ping timeout: 260 seconds).
18:05:53 <sllide> /join #palm
18:05:55 <sllide> >.<
18:06:51 <elliott> no
18:07:06 -!- mrjbq7 has left.
18:09:29 -!- boily has joined.
18:14:45 -!- sebbu2 has joined.
18:15:53 -!- sebbu3 has quit (Ping timeout: 248 seconds).
18:17:42 -!- sebbu2 has changed nick to sebbu.
18:18:25 -!- augur_ has joined.
18:18:33 -!- augur has quit (Read error: Connection reset by peer).
18:19:54 <Phantom_Hoover> OK I have a choice between headache and neckache.
18:21:06 <elliott> What.
18:21:14 <elliott> Go for neckache.
18:21:49 <Ngevd> I vote headache
18:21:59 <elliott> Ngevd: you have not seen the headaches I have.
18:22:04 <elliott> s/y/Y/
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:47 <Phantom_Hoover> Yes, they are.
18:23:50 <elliott> Right.
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:31:07 <Ngevd> By a long way
18:32:34 <Ngevd> I've also never broken any bones
18:32:43 <elliott> Me neither.
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> `quote
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:36:43 <Phantom_Hoover> <Ngevd> I've never had auras
18:36:51 <Phantom_Hoover> They're great fun.
18:37:05 <Phantom_Hoover> It's like having a weird flickery blind spot.
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:39 <elliott> I was a smart kid.
18:37:47 <elliott> Like, literally gripped it with my entire hand.
18:37:49 <elliott> Casually.
18:38:10 <Phantom_Hoover> Funniest mental image.
18:38:37 <Phantom_Hoover> Ngevd, kind of except weirder.
18:39:03 <Ngevd> I once gave a teddy bear third degree burns
18:39:26 <Ngevd> Accidentally
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:39:38 <elliott> RIP
18:40:01 <Ngevd> I once almost went death
18:40:09 <Ngevd> s/th/f/
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:47 <copumpkin> pikhq: yeah, I love them
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:06 <Phantom_Hoover> "Cluster headache, nicknamed "suicide headache","
18:47:09 <Phantom_Hoover> Sounds great.
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:21 <pikhq> (literally)
18:47:26 <elliott> copumpkin: By far.
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:05 <Phantom_Hoover> Reading the WP articles, am now scared.
18:48:15 <elliott> copumpkin: Well, they must have pretty good cluster headaches, then
18:48:25 <copumpkin> hell yeah
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 <zzo38> @messages
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:52:24 <zzo38> @messages
18:52:24 <lambdabot> You don't have any new messages.
18:53:40 <elliott> you're violating the usage instructions :P
18:54:04 <elliott> `log codu.*ogg
18:54:06 <elliott> (Blame Phantom_Hoover.)
18:54:10 <HackEgo> 2010-05-18.txt:06:07:45: <Gregor> http://codu.org/music/op13/GRegor-op13-wipp2.ogg
18:54:14 <elliott> `pastelogs codu.*ogg
18:54:17 <elliott> What am patselogs.
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:56:27 <Gregor> So many oggs
18:56:37 <elliott> Oggsactly.
18:57:26 <Phantom_Hoover> The Oggscast.
18:58:02 <Gregor> `log codu.*mp3
18:58:06 <HackEgo> 2011-09-23.txt:18:58:02: <Gregor> `log codu.*mp3
18:58:09 <Gregor> X-D
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:02 <elliott> s/a/A/
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
18:59:49 <zzo38> OK.
19:00:16 <elliott> zee5-2010-10-08 is so catchy.
19:00:27 -!- Nisstyre has joined.
19:01:05 <elliott> Gregor: So catchy.
19:01:37 <zzo38> Do you like any of the game cgacoll2.zip?
19:02:20 <Phantom_Hoover> help where is superturing.ogg
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:42 <Phantom_Hoover> `log superturing.ogg
19:16:46 <HackEgo> 2011-09-23.txt:19:02:20: <Phantom_Hoover> help where is superturing.ogg
19:16:49 <Phantom_Hoover> :(
19:16:54 <Phantom_Hoover> `pastelogs 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:34 <elliott> Gregor: what's the e
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:15 <shachaf> elliott: Loom theme?
19:21:36 <elliott> shachaf: Loom theme.
19:21:39 <shachaf> I'm pretty sure that's called the Swan Lake theme.
19:21:45 <elliott> No, it had its own.
19:21:45 <elliott> I think.
19:21:50 <shachaf> Are you thinking of the Council of Elders theme?
19:21:57 <elliott> I don't remember. :(
19:21:58 <elliott> It's been ages.
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:30 <shachaf> Oh, dear.
19:22:31 <Phantom_Hoover> http://www.youtube.com/watch?v=7ZXRkfIVjsc
19:22:31 <elliott> It's entirely possible I'm completely misremembering.
19:22:34 <Phantom_Hoover> It... seems to?
19:22:58 <elliott> Wow that's much worse than the MT-thirtytwo version.
19:23:15 <Phantom_Hoover> However
19:23:19 <Phantom_Hoover> At this point
19:23:23 <shachaf> Phantom_Hoover: Are you sure that's not from Swan Lake?
19:23:25 <Phantom_Hoover> There is only one thing left to do
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:06 <Phantom_Hoover> i
19:24:06 <Phantom_Hoover> help
19:24:08 <Phantom_Hoover> the karaoke
19:24:11 <Phantom_Hoover> my brain
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: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:24 <elliott> At least he's consistent
19:26:27 <shachaf> Loom with recorded voices? What?
19:26:31 <elliott> s/dollar sign/./
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:41 <Phantom_Hoover> Getting unsettled now.
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:11 <Phantom_Hoover> elliott, but you hate the Federation!
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:56 <Phantom_Hoover> This planet is the felt tip of the universe.
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:36 <Phantom_Hoover> My music is formed of particles.
19:32:49 <elliott> Me too.
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:09 <Phantom_Hoover> elliott, friendship neutrinos!
19:34:11 <elliott> There'll be neutrino fireworks in the sky spelling out "Congratulations for FTL!"
19:34:29 <Phantom_Hoover> That's a lot of neutrinos!
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:01 <Phantom_Hoover> It's like that H2G2 thing.
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:38:59 <elliott> s/a/A/
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:40:46 <elliott> Heh.
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:31 <Phantom_Hoover> "Yet another way of defining a monad"?
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:42:40 <Phantom_Hoover> What shachaf said.
19:42:57 <shachaf> What Phantom_Hoover said.
19:43:11 <Phantom_Hoover> What shachaf said Phantom_Hoover said.
19:44:15 <elliott> What shachaf sdfg;'h.,/j;
19:44:25 -!- Ngevd has quit (Ping timeout: 248 seconds).
19:45:55 -!- nathan_ has joined.
19:46:12 -!- nathan_ has changed nick to Ngevd.
19:46:18 <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> data Step a m b
20:13:25 <elliott> = Continue (Stream a -> Iteratee a m b)
20:13:25 <elliott> | Yield b (Stream a)
20:13:25 <elliott> | Error Exc.SomeException
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:15 <elliott> OK.
20:15:31 <elliott> Oh, indeed.
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:03 <elliott> I WANT A DEBATE
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:27:52 <Phantom_Hoover> oerjan, in which case GR is completely wrong.
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:18 <elliott> Accelerator in orbit omg.
20:30:21 <elliott> That is the best.
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:04 <Phantom_Hoover> Some kinds of radio waves, surely.
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:27 <Phantom_Hoover> oerjan, dunno.
20:31:29 <oerjan> Phantom_Hoover: i suppose that needs checking.
20:31:29 <pikhq> oerjan: Some do.
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:45 <elliott> Phantom_Hoover: above
20:31:54 <pikhq> zzo38: SI unit.
20:31:57 <elliott> I doubt they were measuring the times with any kind of accuracy though.
20:32:08 <Phantom_Hoover> But um hang on.
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:20 <Phantom_Hoover> It was 732 km, right?
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:03 <Phantom_Hoover> Ah.
20:33:07 <elliott> Phantom_Hoover: What's the difference in time compared to the error?
20:33:18 <Phantom_Hoover> Error is -60ns.
20:33:25 <Phantom_Hoover> Sorry, no, the anomaly is.
20:33:37 <elliott> Right. Yikes.
20:33:54 <elliott> But seriously.
20:33:59 <elliott> Everyone wants this to be FTL, don't they?
20:34:04 <Phantom_Hoover> I... don't really.
20:34:08 <elliott> Why not.
20:34:10 <Phantom_Hoover> SR is *really* elegant.
20:34:20 <zzo38> pikhq: Yes, that is what I thinking of, about caesium atoms.
20:34:21 <elliott> Yes, but dude, come on.
20:34:33 <elliott> FTL is the thing that makes realistic sci-fi horribly boring.
20:34:40 <elliott> Erm.
20:34:42 <elliott> Lack of FTL.
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:35:59 <Phantom_Hoover> pikhq, yes it does.
20:36:09 <Phantom_Hoover> QFT is all relativistic.
20:36:10 <shachaf> If God had intended us to go faster than light, he would have given us faster legs.
20:36:17 <Phantom_Hoover> GR is the one that doesn't mesh with QM.
20:36:32 <pikhq> Oh, right.
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:45 <pikhq> And vice versa.
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:38:56 <pikhq> Your point?
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:01 <elliott> shachaf: It is genius.
20:39:07 <monqy> how very clever!!!
20:39:07 <Phantom_Hoover> pikhq, *whoosh* also tea.
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 <monqy> is that bad help
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:40:55 <oerjan> *SN1987a
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:41:51 <monqy> yes
20:42:19 <elliott> If monqy and shachaf weren't here this channel would be PERFECT.
20:42:25 <monqy> perfect
20:42:43 <monqy> but...in what way>????
20:42:50 <elliott> Every 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:44:54 <shachaf> Hmph.
20:45:17 * shachaf will contribute.
20:45:19 -!- shachaf has left ("!").
20:45:24 <elliott> I knew that would happen.
20:45:27 <Phantom_Hoover> pikhq, we can just nick energy from the future.
20:45:28 <monqy> bye shachaf
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:25 <elliott> monqy: link
20:49:31 <monqy> http://esoteric.voxelperfect.net/wiki/HA
20:50:24 <elliott> HA HA HA
20:50:34 <elliott> oh no
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:33 <elliott> But then I didn't.
20:51:39 <elliott> Oops. Am frogotten.
20:51:43 <elliott> Awwwwwwwwww frogotten.
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:07 <elliott> Yes.
20:52:10 <Phantom_Hoover> Why did we stop talking about neutrinos.
20:52:13 <Phantom_Hoover> Neutrinos are fun.
20:52:48 <Phantom_Hoover> wait
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:52:49 <Phantom_Hoover> if space
20:52:51 <elliott> :'( :'( :'(
20:52:53 <Phantom_Hoover> is a rubber sheet
20:52:58 <Phantom_Hoover> maybe
20:53:00 <Phantom_Hoover> the neutrinos
20:53:01 <elliott> I could just use qualified modules but?? gross??
20:53:03 <Phantom_Hoover> are bouncing off it
20:53:08 <elliott> Phantom_Hoover: y,ES
20:53:26 <Phantom_Hoover> How did you even manage to hit , there.
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:17 <Phantom_Hoover> oerjan, it's a single experiment.
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:54:49 <Phantom_Hoover> They did the experiment, and they were 60ns early.
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 <Phantom_Hoover> pikhq, I think so.
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:55:56 <Phantom_Hoover> pikhq, obviously there were magnets and stuff.
20:56:03 <Phantom_Hoover> pikhq, really really really high-energy protons.
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:05 <elliott> But I guess that's okay.
20:56:14 <oerjan> or the fastest ones
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:02 <Phantom_Hoover> OMG
20:57:03 <Phantom_Hoover> What if
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:08 <Phantom_Hoover> we shoot Hitler with neutrinos
20:57:17 <elliott> oerjan: I don't think so:
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:18 <elliott> data C = C {a :: Int}
20:57:18 <elliott> f (C {a = a}) = a
20:57:19 <elliott> Record punning permits the variable name to be elided, so one can simply write
20:57:21 <elliott> f (C {a}) = a
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:57:56 <elliott> Thousands of times.
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:58:25 <Phantom_Hoover> Same apparatus, same setup.
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:00:34 <Ngevd> Cross of Lorraine
21:00:43 <Ngevd> U+2628
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:03:47 <oerjan> wait no
21:03:53 <elliott> back
21:04:00 <oerjan> it's the rest mass which is imaginary, not the energy
21:04:00 <elliott> oerjan: ah
21:04:08 <oerjan> i think.
21:04:50 <oerjan> because the limit for infinite energy is c from both sides afair
21:04:58 <Phantom_Hoover> oerjan, yeah.
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:20 <Phantom_Hoover> What's my Hawking drive.
21:07:26 <elliott> The Hawking... thing.
21:07:27 <Phantom_Hoover> You mean the Hawking /generator/.
21:07:29 <elliott> Yes.
21:07:31 <elliott> Shut up.
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:07:52 <elliott> Make them the same thing.
21:07:55 <elliott> Hawking generator drive.
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:36 <elliott> import Mod
21:08:40 <elliott> ... A.foo ... B.foo ...
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:22 <elliott> oerjan: This makes me: :(
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:12:02 <elliott> but it's still lame
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:21 <zzo38> Or use S_Login
21:13:45 <zzo38> Use classes if you need to
21:13:59 <elliott> Slogging.
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:19:21 <Ngevd> How is ✝?
21:19:54 <elliott> ✝?
21:20:04 <Ngevd> For the churchification command
21:20:11 <elliott> Ah.
21:20:12 <elliott> I like it.
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:06 <pikhq> Probably the RP.
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:37 <elliott> Phantom_Hoover: So?
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:52 <elliott> them.
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:27:14 <Ngevd> eg. ⡜ is 92
21:27:22 <Ngevd> AS A BYTE
21:27:24 <Phantom_Hoover> Ngevd, best.
21:35:53 -!- Nisstyre has quit (Ping timeout: 248 seconds).
21:37:32 <elliott> Does anyone know git here?
21:37:33 <elliott> olsner?
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:40:56 <elliott> X-D
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:44:26 <Ngevd>
21:44:30 <Ngevd> U+4437
21:44:33 <Ngevd> *4337
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> f a b c _ _ d _ e _ f _ g h i =
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:39 <Ngevd> Perhaps
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:51 <elliott> Can you?
22:00:59 <pikhq> elliott: git is too stupid for this.
22:01:14 <elliott> Right.
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:10 <Phantom_Hoover> Ngevd
22:08:11 <Phantom_Hoover> stop
22:08:17 <Phantom_Hoover> you will make the rest of us look bad
22:08:21 -!- MDude has quit (Ping timeout: 260 seconds).
22:08:34 <Phantom_Hoover> http://www.cs.cornell.edu/cv/researchpdf/19ways+.pdf
22:08:37 <Phantom_Hoover> Best paper.
22:09:52 <Ngevd> Dammit, we haven't got onto matrices yet
22:10:22 <Phantom_Hoover> Ngevd, pfft, they're easy.*
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:00 <Phantom_Hoover> I would have *killed* to do graph theory earlier.
22:15:23 <Phantom_Hoover> What curriculum are you even on.
22:15:34 <Ngevd> I'm complaining that I feel behind everyone else
22:15:42 <Ngevd> Uh... I actually don't know
22:15:47 <Ngevd> Possibly AQA
22:16:20 <Phantom_Hoover> AS-level, I presume.
22:17:04 <Ngevd> Yeah
22:17:39 <Phantom_Hoover> Hang on, what kind of graphs are we talking about.
22:18:30 <Phantom_Hoover> Bridges of Königsberg graphs or y=x^2 graphs?
22:18:57 <Ngevd> The former
22:19:11 <Phantom_Hoover> Lucky bastard.
22:19:24 -!- GreaseMonkey has joined.
22:19:24 <Ngevd> :D
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:23:03 <Phantom_Hoover> Wow, that's unnecessarily convoluted.
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:27:20 <Phantom_Hoover> Ngevd, everyone knows that's a cage!
22:27:23 <Phantom_Hoover> Or fire.
22:29:03 <Ngevd> How about ℾ?
22:29:27 <Phantom_Hoover> That will do.
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:13 <fizzie> Isn't: it.
22:36:17 <Phantom_Hoover> Oh god are we suffering a fever of: colons.
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:24 <elliott> Ngevd: Me.
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:41 <Phantom_Hoover> Ngevd, I: can.
22:36:53 <elliott> oerjan: I would: s/have: just/have just:/
22:36:53 <Ngevd> elliott, that is exactly what they are
22:36:59 <elliott> Also this is TOO FAR.
22:37:06 <Phantom_Hoover> *this is:
22:37:06 <elliott> Ngevd: Oh. So they're not weird at all?
22:37:16 <Ngevd> U+FD3E, U+FD3F
22:37:19 <elliott> MC/Protocol.hs:17:1:
22:37:19 <elliott> Constructors CRespawn and CDisconnect
22:37:19 <elliott> give different types for field
22:37:19 <elliott> `unused'
22:37:19 <elliott> In the data type declaration for `ClientPacket'
22:37:20 <elliott> Oh come on.
22:37:20 <oerjan> elliott: o: kay
22:37:31 <Ngevd> They are technically /ornate.
22:37:38 <elliott> Ah.
22:37:39 <Phantom_Hoover> oerjan has taken this to its highest: point.
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:37:57 <Phantom_Hoover> *ruin:
22:38:07 <oerjan> <elliott> Also this is TOO FAR. <-- ME AM: PLAY GODS.
22:38:27 <elliott> Yes.
22:38:37 <Phantom_Hoover> The last funny Dresden Codak strip.
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:39:34 <Phantom_Hoover> It is: awful.
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:09 <elliott> Or do I git reset --soft?
22:41:22 <elliott> And then... how would I selectively re-apply a patch from the new commit?
22:41:23 <elliott> git add -p style.
22:41:40 <elliott> OK brb.
22:41:45 <Phantom_Hoover> im pro orbiter
22:42:01 <elliott> Yes.
22:42:02 <elliott> brb.
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:44:58 <Phantom_Hoover> Huh, Newtonian gravity is fully relativistic.
22:45:06 <Phantom_Hoover> I don't know why that didn't occur to me.
22:45:33 -!- Zuu has joined.
22:46:30 -!- Ngevd has quit (Quit: Leaving).
22:46:42 <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:03 <Phantom_Hoover> Not relativistic, maybe, just relative.
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:49:14 <pikhq> Finding.
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:55:20 <oerjan> you think so, eh?
22:55:36 <Phantom_Hoover> oerjan, are you Canadian.
22:56:01 <oerjan> YOU MAY NEVER KNOW, EH
22:56:12 <Phantom_Hoover> I CAN RECOGNISE YOUR ACCENT
23:03:21 <elliott> Phantom_Hoover: waht
23:03:46 <Phantom_Hoover> EHEHEHEHEHEHEHEHEH
23:04:02 <elliott> Phantom_Hoover: ...
23:04:03 <elliott> r u drug
23:04:13 <Phantom_Hoover> so many drugs
23:04:14 <tiffany> o_o
23:04:35 <elliott> ok good
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:06 <Phantom_Hoover> tiffany is undergoing an existential crisis.
23:05:15 <elliott> \o/
23:05:19 <elliott> \o/
23:05:23 <elliott> \o/ \m/
23:05:26 <elliott> myndzi??? oh god
23:05:30 <tiffany> wait
23:05:32 <Phantom_Hoover> nooooooooooooooooooooooooo
23:05:34 <tiffany> lymee left
23:05:35 <tiffany> :o
23:05:40 <elliott> Yes.
23:05:43 <elliott> She is gone and will never come back.
23:05:45 <elliott> We banned her.
23:05:48 <tiffany> why D:
23:05:57 <elliott> Because she is literally the devil, we proved it with science.
23:06:01 <Phantom_Hoover> For creating an annoying emoticon bot.
23:06:08 <elliott> Yes.
23:06:20 <tiffany> what..
23:06:47 <oerjan> no you
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:06:54 <tiffany> ...
23:07:01 <oerjan> aww, it's gone
23:07:05 <Phantom_Hoover> That is a strange emoticon.
23:07:05 <oerjan> whoever that was
23:08:18 * tiffany hugs madoka-kaname <3
23:08:24 * Madoka-Kaname hugs ^^;;
23:08:33 <tiffany> :3
23:08:34 <elliott> Madoka-Kaname is the other emoticon bot.
23:08:43 <Phantom_Hoover> It's like Pygmalion and Galatea but more weeaboo.
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:08:57 <Phantom_Hoover> Also lesbian.
23:09:02 <elliott> `delquote 681
23:09:04 <HackEgo> ​*poof*
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:18 <Phantom_Hoover> My crowning achievement in this channel.
23:09:45 <oerjan> Phantom_Hoover: well only because hatheist plot failed
23:09:48 <oerjan> *your
23:09:55 <elliott> pikhq: What does git reset --soft do again?
23:10:06 <elliott> im lazy
23:10:19 <pikhq> elliott: --soft changes the head pointer.
23:10:19 <Phantom_Hoover> oerjan, DON'T REMIND ME
23:10:33 <elliott> Thing I just typed instead of "github": gktnjb.
23:10:34 <tiffany> hm
23:10:43 <elliott> hm is not an emoticon.
23:10:46 <tiffany> what was that window manager thingy that changes colour throughout the day?
23:10:51 <elliott> f.lux.
23:10:54 <elliott> It's not a window manager.
23:10:55 <tiffany> oh
23:10:59 <tiffany> that's why I confused it with fluxbox
23:11:04 <elliott> Those are not emoticons.
23:11:09 <elliott> Do your work, bot.
23:11:18 <oerjan> elliott: hm could be a thumbs-up emoticon
23:11:28 <elliott> oerjan: Hmm. True.
23:11:29 * tiffany isn't a bot >:c
23:11:44 <Phantom_Hoover> tiffany, have you passed your Turing test?
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:41 * tiffany throws erasers at elliott
23:12:42 <Phantom_Hoover> She's less believable than Timmy the Turing Machine.
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:01 <monqy> oh
23:14:21 <oerjan> which also explains Phantom_Hoover's insanity
23:14:26 <elliott> monqy: i doubt he is
23:14:36 <monqy> a relief
23:14:48 <elliott> i mea
23:14:49 <elliott> n
23:14:50 <elliott> referring to his mom
23:14:54 <elliott> he's obviously talking about sgeo's
23:14:55 <Phantom_Hoover> monqy, you have heard Sgeo's karaoke, have you not?
23:14:58 <monqy> oh
23:15:01 <monqy> yes i have
23:15:03 <monqy> it's beautiful
23:15:04 <elliott> Phantom_Hoover: You just don't get it, man.
23:15:09 <oerjan> oh.
23:15:12 <Phantom_Hoover> I understand, you repressed the memories.
23:15:24 <elliott> Well, it's better than Trout Mask Replica.
23:15:31 <Phantom_Hoover> wat
23:15:38 <elliott> It was a: joke.
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:40 * Phantom_Hoover → sleep
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:20:48 <elliott> Ah, I want --mixed
23:21:04 <Deewiant> a.k.a.
23:21:29 <elliott> Deewiant: Shhhhhhhhhhh.
23:21:38 <elliott> reset makes me jumpy.
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:23:49 <oerjan> tricky.
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:27:53 <elliott> Looks like .git/HEAD.
23:28:00 <pikhq> Sounds right.
23:28:00 <elliott> $ cat .git/HEAD
23:28:00 <elliott> ref: refs/heads/master
23:28:09 <elliott> refs/heads/master isn't a file though. :p
23:28:14 <elliott> Oh wait yes it s.
23:28:15 <elliott> is.
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:00 <elliott> Two-star programming.
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:21 <elliott> s/\. "/."/
23:30:24 <elliott> oerjan: suffer with me
23:30:53 <oerjan> it's not?
23:31:09 <pikhq> oerjan: It's just a side effect of laziness.
23:31:17 <pikhq> I can do it in C.
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:34:24 <elliott> base (≥2 & <6)
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:40:21 <nooga> aargh
23:40:29 <oerjan> oops
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:18 <oerjan> oh hm
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:45:36 <oerjan> there you go
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:21 <elliott> so cool
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:44 <elliott> actually wait no
23:48:47 <elliott> since you're emulating the laziness yourself
23:48:50 <elliott> so a thunk would be (() -> a)
23:49:01 <Madoka-Kaname> !bf >+[[.>].+[<]>]
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:08 <oerjan> etc.
23:50:29 <oerjan> so it's building its own successor
23:50:41 <oerjan> (or tail)
23:51:19 <Madoka-Kaname> So it's an iterative quine?
23:51:41 <oerjan> er...
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:53:34 <elliott> or is it just
23:53:40 <elliott> call --> head tail
23:53:40 <elliott> ?
23:54:06 <oerjan> f p = p:f(p++[x])
23:54:24 <oerjan> erm
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
←2011-09-22 2011-09-23 2011-09-24→ ↑2011 ↑all