←2007-11-16 2007-11-17 2007-11-18→ ↑2007 ↑all
00:00:49 <CakeProphet> how do you do it?
00:02:07 <bsmntbombdood> you put some popcorn in a brown paper bag
00:02:24 <CakeProphet> oh
00:02:34 <CakeProphet> I thought you meant... somehow make the popcorn itself...
00:02:44 <CakeProphet> isn't it just a certain kind of corn?
00:03:36 <bsmntbombdood> no...
00:06:53 <oklopol> popcorn is made of magic and wonder
00:07:08 <oklopol> also bunny testicles
00:08:46 <bsmntbombdood> ,mmm yummy
00:09:06 <bsmntbombdood> i fondled a testicle's bunny once
00:15:34 -!- puzzlet has quit (Remote closed the connection).
00:15:35 -!- puzzlet_ has joined.
00:32:37 -!- ehird` has quit ("Konversation terminated!").
01:10:01 -!- Tritonio_ has quit (Read error: 110 (Connection timed out)).
01:52:42 -!- CakeProphet has quit ("haaaaaaaaaa").
03:09:04 <GregorR> If the many-worlds hypothesis of quantum physics is correct, then there is a universe where (e.g.) all qubits in quantum-indeterminant states have always resolved to 1, and more generally all quantum experiments have resolved to predictable states. The scientists in this universe would naturally conclude that the universe is non-probabilistic, and they would in fact be correct. We of course consider that to be a low-probability corne
03:09:04 <GregorR> r case. The paradox: How can we reasonably say that /we/ are not in that corner case? It seems to me like the many-worlds hypothesis makes the probabilities meaningless.
03:10:23 <Slereah> Well, then again, we have observed the probabilities.
03:10:30 <Slereah> We must be in the lucky universe!
03:10:42 <Slereah> Either that, or the interpretation is false.
03:11:31 <GregorR> Arguably, there are infinite universes with some predictable consistency resembling probabilities, but utterly different ones. The most obvious example is the universe where all of the probabilities are precisely the inverse of ours.
03:12:01 <Slereah> At all time?
03:12:36 <GregorR> There are also plenty of universes where it's switched around randomly, but there are those which are just as probabilistically-consistent as ours.
03:12:44 <Slereah> If the probabilites were inverse at all time, by the time it reaches our epoch, it would be so different that "inverse" doesn't have any meaning!
03:13:23 <GregorR> Slereah: That doesn't matter, the universe doesn't even have to be inhabited or inhabitable to exist :)
03:13:23 <pikhq> It seems to me that, if the many-worlds hypothesis is correct, one can just obtain enough random digits for a string to perform string operations, and destroy the universe if wrong. :p
03:13:24 <Slereah> I'm not even sure what "inverse probability" means in the context, since some probabilities are continuous.
03:13:44 <Slereah> It's not just spins up and down.
03:14:05 <Slereah> Unless you only refer to those.
03:14:38 <GregorR> We can simplify the problem by e.g. only talking about qubits, but I don't see any reason it couldn't be generalized, it's too complicated for an IRC discussion ^^
03:14:55 <Slereah> Well, most computation are for me!
03:15:12 <Slereah> But since I'm a physics student, I can still discuss such matters!
03:15:32 <GregorR> You're a physics student? Awesome, does my weird little rant make any sense? :P
03:15:42 <pikhq> I'm a *high school* student, so I shouldn't be discussing such matters.
03:15:47 <pikhq> (not that it's stopped me yet)
03:16:31 <Slereah> Hell, I'd throw you the stone if I didn't do the same thing back in high school.
03:17:35 <pikhq> Did you also laugh at how some people seemed to be so academically backwards in high school?
03:19:02 <Slereah> Not that much.
03:19:22 <Slereah> The really dumb people are usually filtered before.
03:19:23 <pikhq> Hmm. . . You may have gone to a better school than I'm at.
03:19:50 * pikhq notes that some of the seniors are learning *fractions* this year.
03:19:53 <Slereah> I'm not even in the same country!
03:19:53 <GregorR> My brother's class had <50% graduating.
03:19:56 <pikhq> Ah.
03:20:16 <pikhq> Damned French, with your better public education. :p
03:20:38 * pikhq at least assumes the .fr TLD is for France
03:21:58 <GregorR> I always used to like the many worlds hypothesis, because I like the thought that the apparent collapse of quantum states is simply the entanglement of the matter and energy that define us with other stuff. That way there's no ordained "observer." But this semiparadox could be a deal-breaker >_>
03:22:19 <Slereah> I'm trying to find a witty comeback, but I just can't find another fr region.
03:22:21 <pikhq> Unless you declare a new hypothesis.
03:22:45 <pikhq> The Paradox Hypothesis: everything is a paradox.
03:22:46 <pikhq> :p
03:22:47 <Slereah> I never really cared much about the probabilites.
03:22:50 <pikhq> Slereah: Frankenstein?
03:22:57 <pikhq> Not much of a place, but. . .
03:23:00 <Slereah> I just take the universe as it comes.
03:23:09 <GregorR> Well, yeah, it could simply lead to the conclusion that quantum mechanics is not, in fact, probabilistic.
03:23:18 <Slereah> Well, there's French Polynesia.
03:23:25 <Slereah> Yes indeed.
03:23:36 <Slereah> But if it isn't, I'm not that bothered.
03:23:41 <GregorR> Heh
03:23:44 <pikhq> Hmm. Gregor, what started you on this?
03:23:49 <pikhq> Quantum brainfuck again?
03:23:55 <GregorR> Stuck in traffic :P
03:23:58 <Slereah> The many world hypothesis probably stem from a deep sense of wrongness of probabilities.
03:24:00 <pikhq> ...
03:24:07 <Slereah> and not from some bigger idea.
03:24:19 <Slereah> But well, if they can find a way to prove it, kudos.
03:24:37 <GregorR> If it's correct, it can't be proved: That's the paradox :P
03:24:49 <Slereah> Well, maybe it can!
03:24:51 <Slereah> You never know.
03:26:06 <pikhq> Maybe 2=3?
03:26:17 <pikhq> Or the derivative of x^2 is x^2?
03:26:32 <Slereah> Well, those are mathematics.
03:26:41 <Slereah> You can make a formal system out of 'em.
03:26:50 <pikhq> As a guy going into computer science & mathematics, I care about mathematics a lot. :P
03:26:58 <Slereah> Although for some reason, you can either say that the axiom of choice is true, or not!
03:27:11 <pikhq> (hmm. . . Axiomatic system that allows for f(x)=x^2 and f'(x)=x^2? Tempting.)
03:27:13 <Slereah> Or the continuum hypothesis.
03:27:52 * pikhq wishes oerjan were here to give suggestions
03:28:57 <Slereah> Math is just full of strange things that were somehow proved.
03:30:14 <pikhq> d/dx(e^x)=e^x being a good example.
03:30:46 <Slereah> Well, there's stranger things out there.
03:30:48 <pikhq> Or even integral(f'(x)*dx)=f(x)+C.
03:30:52 <pikhq> Quite true.
03:31:41 <Slereah> Like that power-of-prime-number order groups are commutatives :O
03:45:50 <GregorR> WTF? >_O
03:46:12 <GregorR> As in, all groups with an order that's a power of a prime number are commutative?
03:46:27 <Slereah> If I recall correctly, yes.
03:46:38 <GregorR> That makes my brain hurt a bit.
04:03:40 -!- puzzlet has joined.
04:13:54 -!- puzzlet_ has quit (Read error: 110 (Connection timed out)).
04:51:55 -!- puzzlet has quit (Remote closed the connection).
04:51:57 -!- puzzlet_ has joined.
05:34:49 -!- jgannon has joined.
05:36:09 <jgannon> Please say "Hello World!"
05:42:29 <pikhq> No.
05:42:29 <bsmntbombdood> stfu
05:43:04 <bsmntbombdood> <GregorR> If the many-worlds hypothesis of quantum physics is correct, then there is a universe where (e.g.) all qubits in quantum-indeterminant states have always resolved to 1, and more generally all quantum experiments have resolved to predictable states. The scientists in this universe would naturally conclude that the universe is non-
05:43:11 <bsmntbombdood> tthat's not true
05:43:21 <bsmntbombdood> the states are independent
05:43:45 <bsmntbombdood> just because all _past_ states resolved to one doesn't effect the probability of the next one
05:44:14 <pikhq> Good answer, bsmntbombdood.
05:48:38 <bsmntbombdood> i didn't read enough to see if it had already been discussed
05:50:30 <bsmntbombdood> aaaand it doesn't look like it
05:50:35 <bsmntbombdood> so you weren't being sarcastic!
06:00:32 <bsmntbombdood> >>>-->>> beed
06:01:02 <GregorR> bsmntbombdood: Of course they don't.
06:01:21 <GregorR> bsmntbombdood: But there will be, in the future, a universe that continued down that path.
06:01:48 <GregorR> bsmntbombdood: I'm viewing that as sort of a continuum for convenience. Yes, it continues to split ad infinitum, but there will always be a universe with the stated properties.
06:02:00 <bsmntbombdood> it's still nondeterministic
06:02:16 <GregorR> Simultaneous != nondeterministic.
06:02:51 <GregorR> And for the people whose consciousness continued through the path that 100% consistently chose a 1 for every qubit, the only reasonable conclusion would be that it's deterministic.
06:03:06 <bsmntbombdood> that universe splits from the one the observer is in
06:03:41 <GregorR> By the many-worlds hypothesis, the observer splits (the observer is entangled into the state)
06:03:51 <bsmntbombdood> whatever
06:04:08 <bsmntbombdood> it's the same essence
06:04:50 <GregorR> The point being that there is an observer, after performing rigorous trials, who must conclude that there is no nondeterminism.
06:04:57 <bsmntbombdood> wrong
06:05:22 <GregorR> If you had just checked the value of a billion qubits, and every one came up 1, what would you think?
06:06:14 <bsmntbombdood> that my universe is just as unlikely as one whose qubits didn't have a pattern i could recognize
06:06:31 <GregorR> That's presuming you already understand quantum mechanics.
06:06:52 <GregorR> If the people who had the opportunity to discover all of this in the first place saw completely consistent results, they would not have discovered quantum state.
06:08:48 <bsmntbombdood> i'm really going to bed now
06:09:00 <GregorR> 'night :P
06:14:09 * pikhq should sleep
06:40:25 <GregorR> ARGH
06:40:26 <GregorR> *sobs*
06:40:29 <GregorR> Figured out the bug.
06:40:36 <GregorR> It was stuuuuuuuuuuupid X_X
06:41:00 <GregorR> When storing a byte, wyde (2 bytes) or tetrabyte (4 bytes) in memory, I was first clearing /8/ bytes X_X
07:43:48 <GregorR> THE GOOD: printf works.
07:43:54 <GregorR> THE BAD: It takes about 10 seconds to printf.
07:49:44 -!- grey_ has joined.
07:49:46 <GregorR> THE UGLY: printf("%d", foo) doesn't work >_>
07:51:58 <grey_> Hey there, please print "I am new to IRP and not ashamed of it."
07:53:08 -!- grey_ has quit (Client Quit).
07:54:05 -!- greyerg has joined.
07:54:59 <greyerg> could anybody print "I am new to IRP and not ashamed of it."?
07:56:30 -!- greyerg has quit (Client Quit).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:00:23 <GregorR> http://www.codu.org/jsmmix/test.html // now with 100% more printf 8-D
08:00:45 <GregorR> It's not as slow as I thought it was, that was my experimental (and now abandoned :P ) I/O
08:07:00 -!- daleko has joined.
08:13:20 -!- daleko has quit ("Leaving").
08:37:45 <GregorR> Foop :(
08:37:51 <GregorR> printf("Hello") // works
08:38:00 <GregorR> printf("%d", foo) // still doesn't work
08:39:03 -!- puzzlet has joined.
08:46:55 <GregorR> Argh, pushing through these push/pop logs = PITA extreme ^^
08:49:19 -!- puzzlet_ has quit (Read error: 110 (Connection timed out)).
09:03:13 <GregorR> Wow, malloc thinks that my heap is at 0x0000000000000000 ...
09:23:13 <GregorR> JaaavaScript is sooooooo faaaaaast, woopidoopidoo, ...
10:43:13 -!- oerjan has joined.
11:13:39 -!- jix has joined.
11:17:23 <oerjan> i recall someone mentioning that the haskell type system doesn't give full unification
11:18:20 <oerjan> darn, i join #haskell for the first time in days and my _first_ message gets snapped up by Mr. Wong
11:27:33 <oerjan> Slereah: [from Wikipedia] Nor need a p-group be abelian; the dihedral group Dih_4 of order 8 is a non-abelian 2-group. However, every group of order p^2 is abelian.
11:30:04 <oerjan> (that was a "no" to "power-of-prime-number order groups are commutatives", btw)
12:30:57 <oklopol> pwnd
13:01:49 -!- Tritonio_ has joined.
13:10:28 <Tritonio_> hello everyone...
13:41:27 -!- ehird` has joined.
13:48:37 -!- PonderS has quit ("Leaving").
14:29:44 <Slereah> oerjan : Well, I'm no group theory buff.
14:29:53 <Slereah> But I remembered something like that.
14:34:46 <oerjan> maybe fields? every finite field has a prime power number of elements.
14:35:11 <Slereah> Well, as said, I do physics.
14:35:23 <Slereah> The only groups we do re rotation groups!
15:04:33 -!- oerjan has quit ("Dinner").
15:10:18 <ehird`> GregorR: Holy fuck. You got hello world working.
15:10:25 <ehird`> GregorR: Does malloc work?
15:14:01 -!- Tritonio_ has quit (Read error: 110 (Connection timed out)).
15:14:57 -!- Tritonio_ has joined.
15:41:31 <ehird`> GregorR: ping
15:41:56 -!- Overand has quit (Remote closed the connection).
15:42:17 -!- Overand has joined.
15:44:54 -!- puzzlet has quit ("Lost terminal").
16:03:52 -!- puzzlet has joined.
16:23:46 -!- Pixy has left (?).
16:24:37 -!- boily has joined.
16:32:31 -!- jix has quit (Nick collision from services.).
16:32:41 -!- jix has joined.
16:56:57 -!- boily has quit ("WeeChat 0.2.6").
17:19:34 <ehird`> GregorR: ping
17:47:15 <ehird`> http://neugierig.org/software/c-repl/ this is actually really useful
17:55:11 <pikhq> A C repl? Wow.
17:55:44 <pikhq> GregorR: I assume some of the syscalls are broken. ;)
17:59:45 -!- puzzlet has quit (Remote closed the connection).
17:59:46 -!- puzzlet_ has joined.
18:03:08 <ehird`> pikhq: And yeha.
18:03:12 <ehird`> pikhq: Lok at how it works.
18:03:16 <ehird`> pikhq: It's crazy dlopen stuff.
18:03:31 <ehird`> But damn, you could do anything with it.
18:03:34 <ehird`> Even sockets.
18:03:40 <ehird`> And i'm using it now to test low-level stuff. Awesome.
18:05:20 <ehird`> Hmm.
18:05:30 <pikhq> That's awesome.
18:05:41 <pikhq> And true brilliance.
18:06:07 * pikhq feels his brain break on a C repl
18:06:15 <ehird`> "The approach is surprisingly simple: for each line of code you enter, we compile a shared object in the background. If the compilation succeeds, the object is loaded into a child process via dlopen(). If the child process segfaults, we know that the code was bad and so we can "rewind" by replaying all n-1 steps. Printing variables is handled by attaching gdb to the child process."
18:06:22 <ehird`> It's worth noting that apart from child.c, the thing's WRITTEN IN RUBY
18:06:24 <pikhq> I read that.
18:06:26 <pikhq> Jebus.
18:06:38 <pikhq> It deserves a rewrite in something sane.
18:06:44 * pikhq brings out PEBBLE. :p
18:06:53 <ehird`> Bah, Ruby is pretty good. It's just quite esoteric.
18:07:01 <pikhq> I hate Ruby.
18:07:05 <pikhq> As an esolang, it's good.
18:07:09 <ehird`> It's better to think of it as 60% Perl, 40% Lisp
18:07:13 <pikhq> The problem is that people *take it seriously*.
18:07:15 <ehird`> Instead of x% Python, or anything else.
18:07:27 <ehird`> pikhq: I don't see why not.
18:07:33 <pikhq> It's part Perl, part Python, part Lisp, part Tcl, and part *pure insanity*.
18:07:49 <ehird`> http://neugierig.org/software/darcs/browse/?r=c-repl;a=headblob;f=/repl There's nothing esoteric about this.
18:08:00 <ehird`> If there is in your mind, maybe you should learn how to program in more languages than 3 or something
18:08:35 <pikhq> That is a clean style on top of a language that is truly WTFish.
18:08:54 <ehird`> Umm, you know what, all decent Ruby programs look like that.
18:09:03 <ehird`> Maybe you tried to read Rails sources or something.
18:09:10 <ehird`> Rails, yes, is incredibly mind-damaged.
18:09:13 <pikhq> (how many damned function calling semantics does Ruby need? And block notations?)
18:10:21 <ehird`> Function calling semantics? How many does it have?
18:10:33 <pikhq> Err.
18:10:35 <pikhq> Syntaxes.
18:10:38 <ehird`> Block notations? There's one. { ... } with an optional |args| block.
18:10:50 <pikhq> do foo end
18:10:54 <pikhq> { foo }
18:11:00 <ehird`> yes, do...end
18:11:05 <ehird`> that's because ruby uses end in other places
18:11:40 <ehird`> also, as for function calling syntaxes
18:11:43 <ehird`> there's two.
18:11:48 <pikhq> IIRC, puts foo = puts(foo);
18:11:49 <ehird`> func arg, arg, arg ...
18:11:52 <ehird`> func(arg, arg, arg ...)
18:11:58 <ehird`> The former is to allow DSLs.
18:12:02 <pikhq> And. . . That's a good idea?
18:12:12 <ehird`> If you're using a DSL. Yes.
18:12:26 * pikhq pounds his head into the wall
18:12:38 <ehird`> Tell me why it ISN'T a good idea.
18:12:54 <oklopol> dsl? too lazy to wiki
18:13:05 <pikhq> Pointless additional syntax for a domain-specific language.
18:13:23 <pikhq> And Ruby has *sigils*.
18:13:30 <pikhq> SIGILS, for God's sake.
18:13:39 <pikhq> Expressing *scope*?!?
18:13:44 <ehird`> Ruby does not have sigils.
18:13:55 <ehird`> Sigils are indicators of type.
18:14:12 <ehird`> Anyway, an indicator for scope is 100% more useful than an indicator for type.
18:14:23 <ehird`> Also, I'm willing to bet you've used a language with sigils.
18:14:41 <pikhq> Assembly, perhaps?
18:14:55 <pikhq> (at least gas's syntax uses a sigil for registers and values)
18:15:10 <pikhq> Not that I think that's a good idea. ;)
18:15:27 <pikhq> Otherwise, no, I've not used a language with sigils.
18:16:24 <ehird`> The sigils are quite useful in practice.
18:16:33 <ehird`> Also, it's not "additional syntax".
18:16:42 <ehird`> the ()s are just ignored
18:16:46 <ehird`> a(b, c) is just a b, c
18:17:15 <pikhq> So, it's additional *syntactic sugar*.
18:18:39 <ehird`> Wow! Syntactic sugar! I bet you have never used a language with syntactic sugar.
18:18:44 <ehird`> So rare!
18:19:02 -!- puzzlet_ has quit (Read error: 104 (Connection reset by peer)).
18:19:34 <pikhq> It's *useless* syntactic sugar.
18:19:45 <Slereah> But delicious.
18:20:07 -!- puzzlet has joined.
18:20:26 <ehird`> pikhq: All syntactic sugar is useless.
18:20:38 <ehird`> Tautologies are tautological!
18:20:50 <pikhq> Not all syntactic sugar is useless.
18:21:04 <pikhq> C's syntactic sugar for strings is quite useful.
18:21:13 <pikhq> As is Tcl's $.
18:21:26 <ehird`> So what's not useful about syntactic sugar for DSLs?
18:21:35 <ehird`> Ruby, like Lisp, is *all about* DSLs.
18:21:37 <pikhq> You can do a DSL just as well without them.
18:21:48 <ehird`> You can do strings in C just as well without them.
18:21:51 <ehird`> Doesn't make it pleasant.
18:22:10 <pikhq> How does having to use "a b c" instead of "a(b,c)" make coding less pleasant?
18:22:29 <ehird`> "a b c"? It's "a b, c"
18:22:32 <ehird`> The comma stays the same.
18:22:33 <pikhq> ...
18:22:39 <ehird`> You just substitute the first space for a ( and add a ) on the end.
18:22:44 <pikhq> That's remarkably stupid.
18:23:17 <ehird`> Congrats! Now justify that.
18:24:57 <pikhq> Why do you need "a b, c" instead of "a b c"?
18:25:09 <pikhq> (this mostly seems stupid because of my Tcl experience)
18:26:08 <ehird`> pikhq: Because you have a(b, c). This is called 'consistency'
18:26:10 <ehird`> Also:
18:26:14 <ehird`> func anotherfunc arg arg2
18:26:22 <ehird`> is it func (anotherfunc arg) arg2 or func (anotherfunc arg arg2)?
18:26:40 <ehird`> (OK, so ruby shoots a warning for that anyway, but...)
18:26:52 <pikhq> func [anotherfunc $arg] $arg2 *or* func [anotherfunc $arg $arg2] is how it would be written in Tcl.
18:27:18 <pikhq> If you leave out the brackets, "anotherfunc" is just another argument to func. ;)
18:27:19 <ehird`> That's nice. You can do that in ruby too.
18:27:27 <ehird`> func (anotherfunc arg), arg2
18:27:31 <ehird`> func (anotherfunc arg, arg2)
18:27:36 <pikhq> True.
18:27:37 <ehird`> However, you should just do:
18:27:40 <ehird`> func anotherfunc(arg), arg2
18:27:44 <ehird`> func anotherfunc(arg, arg2)
18:28:10 <pikhq> Rodger, care to join the antiRuby squad?
18:28:36 <pikhq> Rodger's not here. :(
18:29:30 <ehird`> Don't you love squads which have no justification and don't even get things right about the language they're anti- about?
18:29:37 <ehird`> I sure do!
18:30:01 <pikhq> Name to me one thing I've not gotten right.
18:30:35 <oklopol> didn't you think the other function call syntax was a b c
18:30:40 <pikhq> Ah.
18:30:47 <pikhq> That would be one thing I got wrong.
18:31:10 <ehird`> Yes, it happens to be half of the points you've made, as you've only made 2.
18:31:15 <ehird`> (The other was 'SIGILS OMFG')
18:31:31 <pikhq> And multiple notations for blocks and function calling. . .
18:31:34 <oklopol> hmm, weren't you wrong about sigils too, pikhq?
18:32:18 <oklopol> dunno, just idly following your wombling
18:33:00 <ehird`> pikhq: Which is actually false.
18:33:03 <pikhq> http://en.wikipedia.org/wiki/Sigil_(computer_programming)
18:33:12 <pikhq> My sigil bit was not at all wrong.
18:33:17 <ehird`> the block bit was.
18:33:37 <pikhq> {| foo | bar} or do |foo| bar end
18:33:38 <pikhq> ?
18:33:44 <pikhq> What's wrong there?
18:33:52 <ehird`> Nothing. But they're parsed identically.
18:33:56 <ehird`> It is only done for one, single reason:
18:34:07 <ehird`> {} makes more sense on one line. do...end on more.
18:34:26 <pikhq> { |foo|
18:34:27 <pikhq> bar
18:34:29 <pikhq> baz
18:34:30 <pikhq> qux
18:34:31 <pikhq> }
18:34:36 <pikhq> That doesn't make sense?
18:34:44 <ehird`> pikhq: Ruby uses 'end' to end every other block. It would look incredibly out of place.
18:35:08 <pikhq> And why does Ruby use 'end' to end blocks in the first place?
18:35:24 <ehird`> Ruby is the only language to do that? millions more do it.
18:35:38 <ehird`> Just because you like curly braces doesn't mean everything else is insane.
18:36:31 <pikhq> Using a *word* for something that's more immediately clear with a single character is somewhat silly.
18:37:02 <ehird`> m$x\y^x;@xz,/£
18:37:14 <ehird`> more immediately clear with single characters!
18:37:20 <pikhq> Nope.
18:37:34 <pikhq> In that case, words would provide more detail.
18:37:48 <ehird`> Lua does it too.
18:37:50 <ehird`> Do you hate Lua?
18:38:24 <pikhq> Not the greatest syntax there, either.
18:38:44 <pikhq> It's semantics seem fairly clean, though.
18:38:48 <oklopol> you should always use as obscure a syntax as possible, to keep the programmer on their toes
18:38:55 <oklopol> !!
18:38:57 <EgoBot> Huh?
18:39:54 <ehird`> You have not given me one point on Ruby's semantics.
18:39:55 <oklopol> *his toes, chicks don't program
18:39:58 <ehird`> Just syntax.
18:40:12 <pikhq> Indeed, I haven't.
18:41:28 <pikhq> ... Blocks are objects?!?
18:42:25 <ehird`> Um, yes.
18:42:32 <ehird`> That's very sane.
18:42:37 <pikhq> And *some* operators are syntactic sugar for method calls, and others aren't?
18:42:43 <ehird`> Um, about 2 aren't.
18:42:52 <ehird`> Off the top of my head. All I can think of is !
18:43:04 <pikhq> =, .., ..., !, not, &&, and, ||, or, !=, !~, ::
18:43:07 <ehird`> Since Ruby is very strict about what is true and false (false = nil and false, true = EVERYTHING else) overriding ! does not make sense
18:43:13 <ehird`> = isn't an operator anyway.
18:43:24 <ehird`> .. and ... are syntax for constructing Ranges. Not operators.
18:43:33 <pikhq> I'm sorry, you are hereby banned from discussing languages.
18:43:34 <ehird`> ! and not are identical, so that's one, and I've just explained that
18:43:37 <EgoBot> Huh?
18:43:41 -!- oerjan has joined.
18:43:44 <ehird`> && and <-- identical
18:43:47 <ehird`> || or <-- identical
18:43:50 <ehird`> Same point about booleans i made.
18:43:57 <pikhq> You're arguing that = is not an operator?
18:44:04 <ehird`> != <-- is just ! ==, so wtf do you need to override it
18:44:07 <EgoBot> Huh?
18:44:18 <ehird`> :: <-- Yeah. It's lookup. So just override the not found stuff.
18:44:32 <ehird`> pikhq: Yes, it's an operator technically.
18:44:38 <ehird`> pikhq: But it's not meant to be treated like one.
18:45:13 <pikhq> class foo { operator= (foo&x,foo&y); };
18:45:14 <pikhq> ;)
18:45:30 <ehird`> Yes -- which is more evil than anything you have mentioned so far.
18:45:43 <pikhq> (granted, I'm not arguing for C++ ATM)
18:46:08 <pikhq> I think the ability to override = is useful. . . Particularly with things like C++'s GMP library. . .
18:46:34 <ehird`> I'd say it's obfuscatory.
18:46:39 <pikhq> operator=(mpz_class&x,string&y);operator=(mpz_class&x,char*y); etc.
18:46:44 <pikhq> Damned useful.
18:46:49 <ehird`> Evil.
18:47:18 <pikhq> mpz_class foo = "100000000000000000000000000000000"; or mpz_class foo;foo.from_string("100000000000000000000000000000000");
18:47:39 <ehird`> Evil, however way you say it.
18:47:59 <ehird`> anyway
18:48:01 <pikhq> *Assigning a bignum from a string is evil*?!?
18:48:05 <ehird`> how would that work with duck typing?!
18:48:27 <pikhq> You have a point there.
18:48:30 <ehird`> x = "hello"; x = 2 # OH SHIT, String defines =. x is forever a string!!121212121
18:48:49 <ehird`> (Substitute more reaonable objects than "hello" and 2 but you get the point)
18:49:44 * pikhq just waits for the rest of the antiRuby squad to show up; they know a bit more than I do about the evils of Ruby.
18:50:00 <pikhq> Hello, oerjan. You've just joined a language flame war!
18:50:02 <ehird`> Good to know you can form your own opinions about things.
18:50:16 <ehird`> After all, who would rely on other people for evidence to support theirs?
18:50:19 <pikhq> Which seems to be approaching an ad hominem flame war!
18:50:36 <pikhq> (ah, it's just like the old days of IRC. :p)
18:50:48 <oerjan> fortunately, i don't know Ruby nearly at all!
18:50:53 <pikhq> ehird`: This seems particularly futile at this point.
18:51:03 <pikhq> Let's pick a language we *both* hate, and argue against it. :p
18:51:04 <oerjan> so i cannot really flame any direction
18:51:24 <oklopol> the little experience i've had with ruby was quite positive
18:51:56 <oklopol> like python, but a bit more versatile
18:52:11 <oklopol> mainly because of the block syntaxzorz
18:52:29 * pikhq goes off to wish that Tcl had lambdas. . .
18:52:35 <ehird`> oklopol: you've only used it when i showed it to you with blahbot, didn't you? :P
18:52:39 <oklopol> yeah! :D
18:52:50 <ehird`> I'd better get my bot back up anyway.
18:52:51 <oerjan> i'm not on any networks other than freenode, but i was sort of assuming the old networks _still_ were like old days, or worse
18:52:52 <ehird`> Hmm, I'll do that now.
19:16:07 <ehird`> Correction: Now
19:37:25 <GregorR> ehird`: A C REPL? Put that online and we've got a party 8-D
19:38:00 <GregorR> pikhq: I've only implemented three syscalls :P
19:38:09 <GregorR> I'm going to need to do some funky AJAX for a filesystem.
19:39:09 -!- SEO_DUDE has quit (Remote closed the connection).
19:40:12 <ehird`> GregorR: Put it online? I'd do just as well to give everyone root access :P
19:40:27 <ehird`> Also, just store the filesystem as a javascript hash
19:40:28 <GregorR> ehird`: I mean in JSMMIX ^^
19:40:33 <GregorR> ehird`: That was the plan.
19:40:45 <GregorR> ehird`: But I want to be able to access a filesystem without having it all download in one giant slow process.
19:40:52 <ehird`> {'dir': SomeObjectWithDirectoryInfoAndHash}, {'filename': SomeObjectWithFileInfo}
19:41:05 <ehird`> and wrap it all in a SomeObjectWithDirectoryInfoAndHash for /
19:41:12 <GregorR> ehird`: That was the plan.
19:41:22 <ehird`> and, make the filesystem user-based
19:41:24 <ehird`> you can registeer
19:41:26 <GregorR> ehird`: Except that the actual content will be downloaded on demand (and then cached)
19:41:27 <ehird`> and get a filesystem.
19:41:31 <pikhq> Yeah, do some AJAX shit.
19:41:32 <GregorR> Um, bad idea :P
19:41:41 <ehird`> better than giving everyone a shared fs :P
19:41:45 <GregorR> Why?
19:41:50 <ehird`> havok-ness
19:41:56 <GregorR> No writeback, ehird`.
19:42:12 <pikhq> If you do writeback, filesystem per user.
19:42:16 <ehird`> then why do you need to store it in the first place, GregorR.
19:42:17 <pikhq> Otherwise, doesn't matter. ;)
19:42:30 <ehird`> if nobody can persist their changes..
19:42:38 <GregorR> ehird`: Because it would be an entire tree of tools, all compiled. It's just big to download the whole thing if people only use 1% of it.
19:42:48 <ehird`> have it download on-demand.
19:42:55 <GregorR> THAT'S WHAT I'VE BEEN SAYING >_<
19:42:58 <ehird`> oh.
19:42:58 <ehird`> okay.
19:43:02 <ehird`> and add writeback
19:43:04 <ehird`> because that'd be fun
19:43:05 <ehird`> or rather
19:43:12 <ehird`> implement dirt-cheap unix permissions
19:43:18 <ehird`> and let people either:
19:43:23 <ehird`> access /home/guest freely
19:43:28 <ehird`> or get /home/yourname if you register
19:43:35 <ehird`> it's like SSH accounts of days gone by! :P
19:43:37 <GregorR> Tell yah what - I'll implement the VFS, you set up a web hosting service that's willing to let us do that, and we'll set it up :P
19:43:45 <ehird`> I have just the thing.
19:43:48 <ehird`> A VPS.
19:43:54 <ehird`> Whose TOS lets me do anything legal.
19:44:05 <GregorR> How much do you pay for that?
19:44:08 <ehird`> $20/mo.
19:44:23 <ehird`> And the support is great, it's run by 3 people amazingly
19:44:28 <ehird`> Very community-centric
19:44:33 <ehird`> Also, you can change the OS at any time.
19:44:40 * GregorR now has an extremely-compelling reason to finish JSMMIX ^^
19:44:43 <ehird`> And rebuild it at any time without involving humans
19:45:04 <ehird`> Yeah -- those yucky human things :P
19:45:29 <GregorR> I wonder how slow GCC would be in a browser :P
19:45:42 <ehird`> YeS
19:45:44 <ehird`> YES
19:45:46 <ehird`> YES OH GOD YES.
19:45:49 <ehird`> It must be done.
19:45:54 <GregorR> No reason why it can't be.
19:46:35 <ehird`> Hey, you should make your terminal do more stuff :P
19:46:40 <ehird`> Like, make it vt100 or whatever.
19:46:46 <ehird`> Then, you could run bash/zsh in it!
19:46:51 <GregorR> I want to get vim running on this thing.
19:46:58 <GregorR> Of course VT100 is in the pipeline for that ^^
19:47:18 <ehird`> ... Oh god. I just had a terrible thought.
19:47:22 <ehird`> Xorg.
19:47:57 <GregorR> I think that canvas + GGI port + XGGI = X.
19:48:02 <GregorR> Porting Xorg would be ... ow.
19:48:09 <ehird`> X on <canvas>... ?
19:48:11 <ehird`> Holy shit :D
19:48:14 <ehird`> Anyway
19:48:14 <oerjan> hah, it doesn't count unless the browser runs on a machine built out of hydraulics.
19:48:18 <ehird`> rthere wouldn't be much porting to do
19:48:21 <ehird`> Oh, wait
19:48:25 <ehird`> You don't have a kernel, do you?
19:48:27 <ehird`> Of any sort.
19:48:27 <oerjan> in a snow storm. both ways.
19:48:35 <ehird`> Actually it's crazy, your processor has OS capabilities.
19:48:36 <GregorR> ehird`: I have a kernel of some sort.
19:48:40 <ehird`> GregorR: HOLY SHIT IDEA.
19:48:45 <GregorR> ehird`: The kernel is in JavaScript.
19:48:47 <ehird`> ... CAN LINUX RUN ON MMIX?
19:48:58 <GregorR> Not now, but I'm sure as hell not porting it :P
19:49:07 <ehird`> *BSD?
19:49:16 <GregorR> Only MMIXWare.
19:49:26 <GregorR> Which is in fact built into the reference simulator.
19:49:35 <GregorR> Just like my JS kernel is built into JSMMIX.
19:49:44 <GregorR> (And hence not really a kernel)
19:49:44 <ehird`> What about QNX?
19:49:48 <ehird`> That runs on everything. ;P
19:49:58 <ehird`> OH OH OH
19:50:01 <ehird`> BEOS!!!!!!!!!!
19:50:07 <ehird`> ... Yeah, it'll never happen, but one can dream.
19:50:08 <GregorR> This is getting terrifying, ehird`.
19:50:19 <ehird`> It was terrifying to start out with, GregorR.
19:50:21 <GregorR> Let's just stick to MMIXWare :P
19:50:23 <ehird`> Now it's AWESOME
19:50:28 <GregorR> All I want is vim in my browser.
19:50:30 <GregorR> Real, true vim.
19:50:31 <ehird`> Well, let me tell you this.
19:50:40 <ehird`> If someone gets Linux working on it
19:50:50 <ehird`> ... and you write a graphics driver for <canvas>
19:50:54 <ehird`> ... and you get KDE running on it
19:50:59 <GregorR> (That'd be fast)
19:51:08 <ehird`> You will officially be the first project to reasonably call themselves a 'web OS.'
19:51:16 <GregorR> Alternatively,
19:51:32 <GregorR> If someone doesn't get Linux working on it, but my JS syscall support works out fine WRT MMIXWare
19:51:39 <GregorR> ... and I write a graphics driver for <canvas>
19:51:40 <ehird`> ERROR: Aborting conversation.
19:51:44 <ehird`> Not enough awesome detected.
19:51:45 <oerjan> MolassOS
19:51:46 <GregorR> ... and I get KDE running on it
19:51:48 <ehird`> Not enough awesome detected.
19:51:56 <GregorR> oerjan: Egg-zactly :P'
19:52:13 <ehird`> Oh god, GregorR... Um, what if you port a web browser to it?
19:52:20 <ehird`> ... I wonder what it's eigenratio is? :D
19:52:22 <GregorR> Hahahahaha
19:52:29 <ehird`> Probably somewhere up there with graham's number.
19:52:52 <GregorR> This is a good point to mention that JS doesn't have sockets :P
19:53:03 <ehird`> Sure, but you could use XMLHttpRequest for http.
19:53:20 <ehird`> Admittedly, it requires a configuration in browsers to allow over domains, but...
19:53:30 <ehird`> Also, you should work on optimizing it now I think.
19:53:37 <ehird`> At the speed hello world goes, you have some work to do.
19:53:50 <ehird`> GregorR: Hmm. VMWare?
19:54:02 <ehird`> (Yes, I am trying to horrify you.)
19:54:25 <GregorR> ehird`: The slowdown is in ELF loading, not running the code.
19:54:40 <ehird`> Ah, ok.
19:54:45 <ehird`> Does malloc work, yet?
19:54:49 <GregorR> Ye
19:54:52 <GregorR> s
19:55:17 <ehird`> Ok. Then, uh... You have enough to run a C port of jsmmix, on it.
19:55:55 <ehird`> (World explodes.)
19:56:36 <GregorR> A C port of JSMMIX? Also known as MMIXWare? :P
19:56:44 <ehird`> Well sure, but JSMMIX is simpler :P
20:03:24 -!- puzzlet has quit (Remote closed the connection).
20:03:26 -!- puzzlet_ has joined.
20:03:29 * ehird` just took one of those automated-screenshot-in-multiple-browsers sites, and put last measure in, and is dutifully awaiting the computers to crash. Am I evil yet?
20:04:46 * oerjan examines ehird` for horns
20:04:54 <oerjan> ouch!
20:05:36 <ehird`> :O
20:05:47 <ehird`> I guess you could say I'm horny. (badum tsh)
20:14:40 <ehird`> Hmm.
20:14:45 <ehird`> What command prefixes do all the bots in here use?
20:14:53 <ehird`> EgoBot uses ! I know that much
20:15:48 <oerjan> i think bsmntbot uses ~
20:16:03 <oerjan> and ololobot uses >>>
20:16:14 <ehird`> yeah bsmntbot uses ~
20:16:35 <ehird`> blahbot uses % which is ugly
20:16:50 <ehird`> @ is also ugly
20:18:04 <ehird`> * is commonly used
20:18:07 <ehird`> # is ugly
20:18:07 <ehird`> :P
20:18:40 <oklopol> a char is a char
20:18:57 <ehird`> esthetics! ;)
20:19:00 <ehird`> sp
20:19:21 <oklopol> my next bot will use space for a prefic.
20:19:23 <oklopol> *Ä*prefix
20:19:24 <oklopol> ...
20:19:26 <oklopol> *prefix
20:19:29 <ehird`> haha
20:19:33 <ehird`> please say you're joking
20:19:48 <oklopol> i won't
20:19:50 <oklopol> hah
20:19:56 <ehird`> jeez :P
20:20:01 <ehird`> 'eval 2
20:20:02 <ehird`> =eval 2
20:20:06 <oerjan> use h and H as prefixes >:)
20:20:07 <ehird`> *eval 2
20:20:16 <ehird`> hello, oerjan. ;)
20:20:33 <ehird`> (Error. Unknown command ello.)
20:20:45 * pikhq loves the idea of having MMIXWare on JSMMIX. :p
20:21:47 <ehird`> `eval 2
20:22:01 <ehird`> &eval 2
20:22:09 <ehird`> :eval 2
20:22:12 <ehird`> Ok, they all suck. :P
20:22:50 <oklopol> Þeval 2
20:23:17 <ehird`> because i can type that.
20:23:41 <oklopol> ®ĦŊeval 2
20:24:02 <pikhq> してeval 2
20:24:03 <oklopol> Ħ¢º°Ω³¢↑JºŠÐŁŊJªĦŊıŁ°¢F»²³¢Ł²±¹↑ЪŠ¿ª&eval 2
20:24:07 <oklopol> hmm
20:24:09 <oklopol> i can't do those
20:24:20 <ehird`> they're japanese characters, oklopol
20:24:23 <oklopol> orly
20:24:25 <ehird`> hirigana, i thiiiiiiink.
20:24:32 <pikhq> They are hiragana.
20:24:33 <ehird`> (Note: I know no japanese so I'm probably wrong)
20:24:52 <ehird`> pikhq: Does して mean anything? :P
20:25:02 <pikhq> "Do".
20:25:20 <ehird`> heh
20:25:31 <ehird`> i should just have my bot parse Lojban
20:25:46 * pikhq hands you the official Yacc parser.
20:25:49 <ehird`> you could say "I wish ehird's bot would spew out a random quote" in Lojban and it would work :P
20:25:49 <oklopol> ko XXX
20:25:55 <ehird`> oklopol: I was about to say that! xD
20:26:01 <oklopol> heh
20:26:02 <ehird`> pikhq: Because that will work with Ruby. :P
20:26:09 <pikhq> ehird`: You can port it.
20:26:18 <ehird`> pikhq: Well, I could write 10 lines to interface with ruby and compile it as a ruby extension
20:26:20 <pikhq> Of course, you may want the BNF to work with, instead.
20:26:23 <ehird`> It'd be enterprisey and fast that way. :P
20:26:38 <pikhq> True.
20:26:42 <pikhq> But what'll be your lexer?
20:26:57 <ehird`> magical unicorns
20:28:42 <ehird`> SILENCE.
20:30:10 <ehird`> = * and : are my favourite, typable prefixes
20:30:18 <ehird`> cannot decide on one though
20:31:07 <oerjan> *=:
20:31:45 <ehird`> *=:) Generates a random smiley.
20:32:19 <oerjan> / would be interesting >:)
20:33:13 <ehird`> haha
20:33:22 <ehird`> /quit Exit the bot.
20:36:01 <oklopol> :D
20:36:39 <oklopol> also \x01 might be interesting
20:37:08 <ehird`> haha no
20:37:12 <ehird`> aw come on
20:39:01 <pikhq> So, every message to the bot would be a CTCP message?
20:39:38 <ehird`> pikhq: ofc!
20:39:39 <ehird`> :P
20:39:43 <ehird`> but seriously people.
20:39:59 <pikhq> / works well.
20:40:20 <pikhq> For a second there, I read that as "but seriously pebble."
20:41:24 <ehird`> pikhq: Um, / was a joke.
20:41:35 <ehird`> pikhq: "/quit" as a bot command?
20:41:40 <ehird`> Imagine the slip-ups.
20:42:10 <pikhq> >:D
20:42:32 <pikhq> Declare the prefix as "/ /".
20:42:37 <pikhq> 3 slashes for a command!
20:42:42 <pikhq> / / Wheeeee!
20:47:47 <ehird`> no. :
20:47:48 <ehird`> :P
20:47:58 <ehird`> Come on, surely you can think of a good command prefix
20:48:20 <pikhq> The bot's name.
20:48:24 <pikhq> ehirdbot: foo
20:48:45 <pikhq> With the bots we have in here already, that's actually useful. ;)
20:49:02 <ehird`> no! :p
20:49:18 <ehird`> how can i do crazy bot command blocks that way?!
20:49:19 <ehird`> :D
20:51:21 <pikhq> Like?
20:52:29 <ehird`> Like (P used as prefix):
20:52:37 <ehird`> Peval def add(x, y)
20:52:44 <ehird`> <bot> Waiting for more input.
20:52:51 <ehird`> P... x + y
20:52:53 <ehird`> P... end
20:52:59 <ehird`> <bot> Consumed all input.
20:53:02 <ehird`> Peval add(1, 2)
20:54:21 <pikhq> Fair enough.
20:54:32 <ehird`> that would be tedious with "bot: "
20:54:59 <pikhq> Now, which prefixes are currently in use?
20:55:21 <ehird`> ! ~ >>>
20:55:25 <EgoBot> Huh?
20:55:30 <pikhq> Use @.
20:55:33 <ehird`> oh
20:55:36 <ehird`> and %
20:55:41 <pikhq> Now, I need a prefix allocation bot in here. :p
20:55:45 <ehird`> and @ conflicts with lambdabot, which I don't like.
20:55:50 <ehird`> I mean, lambdabot is holy :P
20:55:54 <pikhq> #
20:56:10 <pikhq> So, @ shall be reserved.
20:56:13 <ehird`> #include <hello>
20:56:19 <ehird`> more convincingly
20:56:21 <ehird`> #mychannel
20:56:34 <ehird`> plus # is ugly
20:59:49 <ehird`> pikhq: =, * and : are my favourites right now
21:00:04 <ehird`> actually
21:00:06 <ehird`> * could be bad
21:00:12 <ehird`> it's a fairly common message-starter
21:00:18 <ehird`> mostly as a replacement to /me
21:02:23 <ehird`> So
21:02:28 <ehird`> =, : or other
21:04:14 <GregorR> |
21:05:26 <ehird`> haha
21:05:30 <ehird`> fugly ;p
21:06:57 <ehird`> this is major people! :p
21:07:48 <oerjan> |>
21:08:19 <ehird`> oerjan: you are a spawn of evil!
21:09:10 <ehird`> one char only unless it's realllly good ;)
21:09:14 <oerjan> <>
21:09:36 <pikhq> esome
21:11:21 <ehird`> esome?
21:16:58 <oerjan> an esome spawn of evil, i am!
21:18:30 <ehird`> >_<
21:20:35 <oerjan> nastly twitch you've got there. but i guess it goes with being a mad scientist. bwahahaha!
21:20:41 <oerjan> *nasty
21:22:34 <ehird`> ...
21:38:36 <ehird`> ok, this is just ridiculous :P
21:43:47 -!- RedDak has joined.
21:48:31 <ehird`> What the fuck. Why did Kate think it was OK to just disappear like that.
21:48:55 <oerjan> o_O
21:49:24 <oklopol> ..? :O
21:49:29 <oklopol> okokokokokokokokokokoko
21:49:48 <ehird`> oerjan: Kate the text editor.
21:49:54 <ehird`> For KDE.
21:52:01 <oerjan> btw did you know that "koko" may mean crazy in norwegian?
21:53:06 <oklopol> what's the best way to check whether two rectangles a and b represented by two points (NW and SE corners) overlap, when i know b is not fully inside a
21:53:34 <oklopol> hmm
21:54:08 <oklopol> actually, if i make that into (x-coordinates overlap and y-coordinates overlap), it's trivial
21:54:14 <oklopol> thank you for listening
21:54:29 <oerjan> you're welcome
21:56:27 <ehird`> I could sit here all day and just let oklopol solve his own problems
21:56:40 <ehird`> him: "How do you do X on Linux?"
21:56:41 <ehird`> me:
21:56:45 <ehird`> him: "I figured it out, thanks"
21:56:52 <ehird`> me:
21:56:54 <oklopol> that sounds unlikely
21:58:14 * ehird` decides his irc framework is too big
21:58:16 * ehird` minimizes it
21:58:26 <ehird`> Honestly, I just need regexps and callbacks to match methinks...
21:58:38 <oerjan> CAN YOU STILL SEE WHAT I AM SAYING?
21:59:18 <ehird`> NO
21:59:42 <oerjan> YOU'VE MINIMIZED TOO MUCH, THEN.
22:00:58 <ehird`> TO BE HONEST I THOUGHT I MIGHT HAVE WHEN I REMOVED LOWERCASE CHARACTERS.
22:02:46 <ehird`> @proc.call($*) if msg ~= @regexp
22:02:49 <ehird`> that looks an awful lot like perl.
22:03:22 <oerjan> those who don't understand perl are doomed to reinvent it.
22:03:26 <ehird`> heh
22:04:44 <pikhq> Those who don't understand perl are doomed to reinvent it, *and think it's a good idea*.
22:05:09 <pikhq> "How do you take over the world?"
22:05:11 <pikhq> ""
22:05:23 <pikhq> "Oh, I get it now. Thanks."
22:05:24 <pikhq> :D
22:06:20 -!- puzzlet_ has quit (Remote closed the connection).
22:14:34 -!- puzzlet has joined.
22:17:54 <ehird`> Perl has its nice parts.
22:18:09 <ehird`> Perl 6 is looking to be shaping up *really* well
22:18:13 <ehird`> It's much less obfuscated.
22:19:14 -!- Sgeo has joined.
22:25:50 * ehird` wonders how to do argspec
22:28:31 -!- blablaehird has joined.
22:28:43 <blablaehird> someone say something so I can test something.
22:29:25 <pikhq> Foo.
22:30:06 <blablaehird> :pikhq!n=pikhq@209.248.125.179
22:30:12 <blablaehird> Thank you for the syntax-nss.
22:31:26 -!- puzzlet has quit (Remote closed the connection).
22:31:27 -!- puzzlet_ has joined.
22:33:06 <pikhq> Hmm. Interesa.
22:33:50 <ehird`> :((?!!n=)+)!n=([^ ]+)
22:34:31 <ehird`> :D
22:34:41 -!- blablaehird has quit ("fuckyoutelnetirc").
22:35:00 <GregorR> Use RawIRC ^^
22:35:05 <ehird`> RawIRC? :P
22:35:11 <GregorR> http://www.codu.org/rawirc.c
22:35:24 <GregorR> Telnet IRC + syntax highlighting and automatic ping-ponging.
22:35:45 <ehird`> GregorR: Die in a fire.
22:35:51 <ehird`> (Also, compile that to run on JSMMIX.)
22:35:57 <GregorR> LOL
22:36:38 <oklopol> syntax highlighting?
22:36:43 <oklopol> oh
22:36:46 <oklopol> like highlights
22:36:51 <pikhq> It works fairly well.
22:37:42 <ehird`> GregorR: so are you using that now? ;)
22:37:58 <ehird`> Pah, apparently not
22:38:22 -!- Sgeo has quit (Connection timed out).
22:38:41 <ehird`> I also like how you ping the SERVER.
22:40:09 <GregorR> Eh :P
22:40:41 * ehird` is trying to figure out ruby's syntax for non-matching blocks in regexps
22:44:44 <ehird`> IT HAS NONE
22:46:33 <jix> non matching blocks?
22:46:51 <ehird`> jix: () but means 'DOESN't match this'
22:46:52 <ehird`> but turns out
22:46:54 <ehird`> i don't need it
22:46:59 <ehird`> /:([^!]+)!([^ ]+)/
22:46:59 <jix> there is negative lookahead
22:47:16 <jix> (?!asd)
22:47:21 <jix> will only match if there is no asd
22:48:18 <ehird`> /:([^!]+)!([^ ]+) PRIVMSG ([^ ]+) :#{prefix}([^ ]+)stuff specific to commands arguments goes here/
22:48:23 <ehird`> totally the clearest regexp ever.
22:48:34 <jix> but without lookahead you can't do negation... like something that doesn't match a ... if "b" doesn't match a "bb" doesn't match a either "bbb" doesn't match a too... so what should be captured?
22:48:50 <jix> so negation is only allowed in combination with lookahead
22:49:15 <ehird`> wow, i have a hideous parser for argspec
22:49:27 -!- Sgeo has joined.
22:49:31 <ehird`> designed to allow everything from "a b c" to "a [b c]" to "a [b c...]"
22:49:34 <ehird`> and, it occurs to me...
22:49:41 <ehird`> why not just pass them in as arguments
22:49:45 <ehird`> "a", "b", "c"
22:49:50 <ehird`> "a", ["b", "c"] # note evil array usage
22:49:56 <ehird`> "a", ["b", "c..."]
22:50:04 -!- jix has quit ("CommandQ").
22:51:18 <ehird`> jix left in disgust
22:57:16 -!- RedDak has quit (Remote closed the connection).
23:00:06 <ehird`> /^:([^!]+)!([^ ]+) PRIVMSG ([^ ]+) :\*\*([^ ]+) +([^ ]+) +([^ ]+)(?: +([^ ]+) +([^ ]+))?\s*$/
23:00:08 <ehird`> Behold.
23:00:13 <ehird`> BEHOLD!!!!!!!!!
23:00:56 <ehird`> Wait, that's wrong
23:00:59 <ehird`> The right way is even worse
23:01:05 <ehird`> /^:([^!]+)!([^ ]+) PRIVMSG ([^ ]+) :\*\*([^ ]+)\s+([^ ]+)\s+([^ ]+)(?:\s+([^ ]+)\s+([^ ]+))?\s*$/
23:01:07 <ehird`> BEHOLD #2!
23:01:47 <ehird`> Wrong still!
23:01:54 <ehird`> /^:([^!]+)!([^ ]+) PRIVMSG ([^ ]+) :\*\*([^\s]+)\s+([^\s]+)\s+([^\s]+)(?:\s+([^\s]+)\s+([^\s]+))?\s*$/
23:02:06 <ehird`> Final behold.
23:07:09 -!- peyavi has joined.
23:07:18 -!- peyavi has quit (Remote closed the connection).
23:10:10 -!- peyavi has joined.
23:10:25 <ehird`> peyavi: hello, bot!
23:10:51 -!- peyavi has quit (Remote closed the connection).
23:11:24 -!- peyavi has joined.
23:12:10 <ehird`> **test
23:12:13 <ehird`> **test a b
23:12:16 <ehird`> Hm.
23:12:18 <ehird`> **test a b c d
23:12:20 <ehird`> **test a b c d e f
23:13:18 <GregorR> **test a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9
23:13:45 <pikhq> **test +[]
23:14:24 <oklopol> what does peyavi know?
23:16:05 <ehird`> Nothing. Right now.
23:16:09 <ehird`> Well.
23:16:10 <ehird`> **test.
23:16:12 <ehird`> But that doesn't work.
23:16:14 <ehird`> As you can see.
23:18:06 -!- peyavi has quit (Remote closed the connection).
23:18:09 <oklopol> what is it going to know?
23:19:46 <ehird`> lots
23:19:48 -!- peyavi has joined.
23:19:55 <ehird`> itll have a markov chain-er, a knowledge base, interpreters, ...
23:19:59 <ehird`> **test a b
23:20:01 <ehird`> **test a b c
23:20:03 <ehird`> **test a b c d
23:20:09 -!- peyavi has quit (Remote closed the connection).
23:20:20 -!- peyavi has joined.
23:20:25 <ehird`> **test
23:20:51 -!- peyavi has quit (Remote closed the connection).
23:20:59 <ehird`> Debugging this is... hard,
23:21:03 -!- peyavi has joined.
23:21:07 <ehird`> because threads don't print exceptions because they don't share stdin.
23:21:11 <ehird`> **test
23:21:15 <ehird`> I should fix that.
23:21:16 -!- peyavi has quit (Remote closed the connection).
23:23:03 -!- peyavi has joined.
23:23:05 <ehird`> **test
23:23:24 <oklopol> i usually debug by looking at my code :P
23:24:57 <pikhq> I usually debug outside of channels that everyone can see.
23:25:54 <oklopol> i like looking at that
23:29:51 -!- peyavi has quit (Remote closed the connection).
23:30:02 -!- peyavi has joined.
23:30:19 <ehird`> **test
23:30:19 -!- peyavi has quit (Remote closed the connection).
23:31:18 -!- peyavi has joined.
23:31:22 <ehird`> **test
23:31:22 -!- peyavi has quit (Remote closed the connection).
23:31:25 <ehird`> /sigh
23:32:10 -!- peyavi has joined.
23:32:18 <ehird`> **test
23:32:18 <peyavi> lolololol
23:32:22 <ehird`> **test a
23:32:24 <ehird`> **test
23:32:24 <peyavi> lolololol
23:32:29 <ehird`> AM I AWESOME,
23:32:31 <ehird`> or am I awesome.
23:33:49 -!- peyavi has quit (Remote closed the connection).
23:34:00 -!- peyavi has joined.
23:34:08 <ehird`> **test
23:34:08 <peyavi> lolololol
23:34:10 <ehird`> **test2
23:34:10 <peyavi> lolololol
23:34:13 <ehird`> Oh.
23:34:13 <ehird`> Shit.
23:34:35 <ehird`> **test5
23:34:36 <peyavi> lolololol
23:34:39 <ehird`> **test5 z
23:34:45 <ehird`> BORKENATED
23:34:49 <ehird`> Oh
23:34:52 -!- peyavi has quit (Remote closed the connection).
23:34:54 <ehird`> I'm stoopid
23:35:13 <oklopol> really?
23:35:17 <oklopol> how come?
23:35:40 -!- peyavi has joined.
23:35:44 <ehird`> ([^\s]+) instead of the actual command name
23:35:45 <ehird`> :p
23:35:47 <ehird`> **test
23:35:47 <peyavi> lolololol
23:35:49 <ehird`> **test2
23:35:51 <ehird`> **test2 a
23:35:52 <ehird`> **test2 a b
23:35:52 <peyavi> lolololol
23:36:01 <ehird`> **test3 a b
23:36:01 <peyavi> lolololol
23:36:02 <ehird`> **test3 a
23:36:03 <ehird`> **test3 a b
23:36:04 <peyavi> lolololol
23:36:04 <ehird`> **test3 a b c
23:36:06 <ehird`> **test3 a b c d
23:36:06 <peyavi> lolololol
23:36:09 <ehird`> **test4 a b
23:36:13 <ehird`> **test4 a b c
23:36:13 <peyavi> lolololol
23:36:16 <ehird`> **test4 a b c d e f
23:36:19 <ehird`> Ah.
23:36:21 <ehird`> ... doesn't work
23:36:30 -!- peyavi has quit (Remote closed the connection).
23:36:50 -!- peyavi has joined.
23:37:03 <ehird`> **test4 a b c d e f
23:37:04 <peyavi> lolololol
23:37:07 <ehird`> **test4 a b
23:37:08 <ehird`> **test4 a b x
23:37:09 <peyavi> lolololol
23:37:16 <ehird`> **test4 a b xasdisajd asldajksdhlkashd*("Y£(*
23:37:16 <peyavi> lolololol
23:37:19 <ehird`> **test5 a b
23:37:19 <peyavi> lolololol
23:37:21 <ehird`> **test5 a b c
23:37:23 <ehird`> **test5 a b c d
23:37:23 <peyavi> lolololol
23:37:24 <ehird`> **test5 a b c d e
23:37:25 <peyavi> lolololol
23:37:25 <ehird`> **test5 a b c d e f
23:37:26 <peyavi> lolololol
23:37:26 <oerjan> **test
23:37:27 <peyavi> lolololol
23:37:37 <ehird`> OK, craziest command parsing system EVAR is complete
23:37:53 <ehird`> It compiles to regexps
23:37:55 <ehird`> This:
23:37:59 <ehird`> registerc "test5", method(:test), "a", "b", ["c", "d..."]
23:38:01 <ehird`> Compiles to this regexp:
23:38:09 <ehird`> /^:([^!]+)!([^ ]+) PRIVMSG ([^ ]+) :\*\*test5\s+([^\s]+)\s+([^\s]+)(?:\s+([^\s]+)\s+(.+))?\s*$/
23:38:13 -!- puzzlet_ has quit (Remote closed the connection).
23:38:14 -!- puzzlet has joined.
23:38:33 <ehird`> **test2 a b
23:38:33 <peyavi> lolololol
23:38:34 <ehird`> **test2 a b
23:38:34 <peyavi> lolololol
23:38:36 <ehird`> **test2 a b
23:38:36 <peyavi> lolololol
23:38:39 <ehird`> You see, it's flexible. :P
23:39:00 <oklopol> that
23:39:02 <oklopol> kicks
23:39:02 <oklopol> ass
23:39:12 <ehird`> yes
23:39:13 <ehird`> it does
23:39:28 <oklopol> doesn't do anything yet?
23:39:30 <ehird`> no
23:39:33 <ehird`> but it's still awesome
23:40:08 <ehird`> the framework itself is 142 lines
23:41:17 -!- peyavi has quit (Remote closed the connection).
23:45:33 -!- peyavi has joined.
23:45:47 <ehird`> **test
23:45:47 <peyavi> lolololol
23:45:49 <ehird`> excellent
23:46:23 <ehird`> oklopol: ok, you get to decide what it gets to do first ;P
23:46:43 <oklopol> cool!
23:46:53 <oklopol> oh the pressure :\
23:47:20 <oklopol> make the bot prefix allocation feature
23:47:52 <ehird`> hah
23:47:56 <ehird`> how would i detect?
23:48:03 <ehird`> try every ascii character in a message in here
23:48:06 <ehird`> and see who responds really quick?
23:48:06 <ehird`> :P
23:48:06 <oklopol> heh, no idea :D
23:48:19 <ehird`> not very realistic :P
23:48:36 <oklopol> if someone responds to a certain prefix often, it is considered that guy's prefix
23:48:43 <oklopol> often & fast
23:48:54 <oklopol> often = almost every time
23:49:32 <bsmntbombdood> bleh i'm tired
23:49:33 <ehird`> bah
23:49:35 <ehird`> that's loads of work
23:49:38 <ehird`> and is heuristic
23:49:42 <ehird`> (requires work over time to tell)
23:53:31 <GregorR> So, you merely need to send a message twenty times, and see if you get twenty responses within X seconds :P
23:53:34 <GregorR> That'll be fun for us.
23:53:46 <bsmntbombdood> oh look, thongs
23:54:31 <ehird`> GregorR: INDEED
23:54:32 <oklopol> i was thinking it'd just learn from when people actually use the bots.
23:54:49 <ehird`> how about something else, oklopol :P
23:55:13 <oklopol> hmm... pretty hard to beat that, but i'll try
23:55:18 <GregorR> You could also just make it speak and understand English.
23:56:22 <oklopol> hmm, i'm not sure if that was a random joke, or implying it'd be hard to make it detect prefixes
23:57:04 <oklopol> hmmmm
23:57:25 <oklopol> i'll go get some coke, perhaps i get an *awesome* idea on the way
23:58:55 -!- peyavi has quit (Remote closed the connection).
23:59:50 -!- peyavi has joined.
23:59:57 <ehird`> This is some food for the markov chain generator.
←2007-11-16 2007-11-17 2007-11-18→ ↑2007 ↑all