←2006-12-19 2006-12-20 2006-12-21→ ↑2006 ↑all
00:13:14 -!- Sgeo has joined.
00:18:55 <bsmntbombdood> grar
00:19:03 <bsmntbombdood> I hate it when people say HTML isn't a programming language
00:25:49 * SimonRC goes to bed
00:26:06 <SimonRC> bsmntbombdood: It's a language, but not a *programming* language.
00:26:14 <bsmntbombdood> Yes it is
00:26:20 <SimonRC> no it isn't
00:26:36 <bsmntbombdood> "A programming language is an artificial language that can be used to control the behavior of a machine, particularly a computer. "
00:26:36 <SimonRC> You can't calculate anything with it
00:26:47 <SimonRC> where is that from?
00:26:48 <bsmntbombdood> HTML controls an html renderer
00:27:02 <bsmntbombdood> wikipedia
00:27:02 <GregorR-W> HTML is a markup language, not a programming language.
00:27:06 <GregorR-W> Your definition is incomplete.
00:27:18 <bsmntbombdood> Programming languages don't have to be turing complete
00:27:25 <GregorR-W> No, they don't.
00:27:31 <SimonRC> Note: a programming language need not be turing-complete
00:27:50 <GregorR-W> "A programming language is an artificial language that can be used to control the behavior of a machine, particularly a computer." < true
00:28:04 <GregorR-W> "All artificial languages that can be used to control the behavior of a machine, particularly a computer are programming languages." < false
00:28:04 <bsmntbombdood> A rendering engine is a machine
00:28:32 <SimonRC> Epigram is clearly a programmming language, even though it is not generally recursive, and htus not Turing-Complete.
00:29:24 <SimonRC> Anyway, having taken the bait, I should go to bed.
00:29:31 * SimonRC goes to bed
00:30:43 <GregorR-W> HTML provides no branch or loop semantics, which are IMHO a requirement for anything to be considered a programming language.
00:33:04 <GregorR-W> By the way, on that same page of Wikipedia: "Non-computational languages, such as markup languages like HTML or formal grammars like BNF, are usually not considered programming languages."
01:30:26 -!- GregorR-W has quit ("Chatzilla 0.9.77 [Firefox 2.0/0000000000]").
02:45:39 -!- ihope_ has quit (Connection timed out).
02:51:59 -!- oerjan has quit ("Good night").
03:36:50 -!- pikhq has joined.
04:02:38 <GregorR> require("stdio.plof"); stdio.StdOut.writeln("Plof lives!");
04:06:50 <pikhq> string ow! "Making BFM a better compiler hurts!"
04:17:49 * bsmntbombdood wrote an irc bot
04:17:59 <GregorR> THAT'S IT
04:18:03 <GregorR> I'm bringing EgoBot back.
04:18:23 <pikhq> Yay!
04:18:39 -!- bsmnt_bot has joined.
04:18:49 <pikhq> Now, can you add BFM support to EgoBot? :p
04:19:03 <bsmntbombdood> My bot rocks
04:19:13 <bsmntbombdood> !raw PRIVMSG #esoteric :yes i do
04:19:13 <bsmnt_bot> yes i do
04:19:15 -!- EgoBot has joined.
04:19:30 <bsmnt_bot> zomg
04:19:34 <pikhq> !bfm
04:19:36 <EgoBot> Huh?
04:19:37 <bsmnt_bot> us bots can get it on
04:19:39 <GregorR> !raw PRIVMSG #esoteric :I'm better.
04:19:40 <EgoBot> I'm better.
04:19:54 <pikhq> !raw QUIT
04:20:00 <bsmnt_bot> No, I'm better
04:20:09 <GregorR> !help
04:20:12 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
04:20:13 <bsmntbombdood> pikhq: You have to match a regex
04:20:14 <EgoBot> 1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl
04:20:21 <pikhq> bsmntbombdood: No, really?
04:20:31 <bsmntbombdood> Yes, really
04:20:35 -!- GregorR has changed nick to bsmntbombdood2.
04:20:41 <bsmntbombdood> nope
04:20:43 <bsmntbombdood2> !raw QUIT
04:20:46 <bsmntbombdood2> Darn :P
04:20:48 -!- bsmntbombdood2 has changed nick to GregorR.
04:20:58 <bsmntbombdood> "^:bsmntbombdood!n=gavin@about/copyleft/user/bsmntbombdood PRIVMSG \S* :!exec"
04:21:03 <bsmntbombdood> is the regex
04:21:18 * pikhq has a better regex. . .
04:21:24 <pikhq> "*"
04:21:27 <bsmntbombdood> oops, "^:bsmntbombdood!n=gavin@about/copyleft/user/bsmntbombdood PRIVMSG \S* :!raw"
04:21:31 <pikhq> It's anarchy!
04:21:48 <bsmntbombdood> pikhq: !ctcp has that regex
04:22:06 <bsmntbombdood> !ctcp #esoteric ACTION is glad
04:22:06 * bsmnt_bot is glad
04:22:08 <EgoBot> Huh?
04:22:57 <pikhq> That could probably be abused.
04:23:02 <bsmntbombdood> Yeah
04:23:04 * pikhq looks for abusive ctcps
04:23:50 <bsmntbombdood> !exec self.register_raw("^pikhq.*!%s" % "zomgquit", lambda x : True)
04:23:54 <EgoBot> Huh?
04:23:56 <bsmntbombdood> now pikhq can kill it
04:23:58 <GregorR> !ctcp #esoteric PING
04:24:00 <EgoBot> Huh?
04:24:09 <GregorR> Repeat that a few times == DDOS
04:24:19 <bsmntbombdood> hehe
04:24:55 <bsmntbombdood> pikhq can kill it with !zomgquit
04:25:15 <bsmntbombdood> fun
04:25:22 -!- GregorR has changed nick to pikhq_not.
04:25:26 <pikhq_not> !zomgquit
04:25:28 <EgoBot> Huh?
04:25:37 <pikhq_not> :(
04:25:41 <bsmntbombdood> hrm
04:25:42 -!- pikhq_not has changed nick to GregorR.
04:25:44 <bsmntbombdood> that's interesting
04:26:04 <bsmntbombdood> oooops
04:26:41 <bsmntbombdood> !exec self.register_raw("^:pikhq.*!%s" % "zomgquit", lambda x : True)
04:26:43 <bsmntbombdood> there
04:26:45 <EgoBot> Huh?
04:28:46 <bsmntbombdood> !exec self.register_raw("^:GregorR.*!%s" % "zomgquit", lambda x : bot.raw("PRIVMSG GregorR :ha ha you can't kill it"))
04:28:48 <EgoBot> Huh?
04:29:42 <GregorR> !zomgquit
04:29:45 <EgoBot> Huh?
04:29:49 <bsmntbombdood> oh darn
04:29:55 <bsmntbombdood> :kornbluth.freenode.net 505 bsmnt_bot :Private messages from unregistered users are currently blocked due to spam problems, but you can always message a staffer. Please register! ( http://freenode.net/faq.shtml#privmsg )
04:30:02 <GregorR> lol
04:30:21 * bsmntbombdood does this part in private message
04:30:55 <bsmntbombdood> there
04:31:49 <bsmntbombdood> Now you can do it
04:32:15 <GregorR> !zomgquit
04:32:19 <EgoBot> Huh?
04:33:18 <bsmntbombdood> You got that message, right?
04:33:26 <GregorR> Yeah :P
04:33:37 <GregorR> On an unrelated note, http://www.codu.org/plof/
04:33:42 * bsmntbombdood is proud of the bot he hacked up in half an hour
04:35:03 <bsmnt_bot> Tooo many P languages!
04:36:11 * bsmntbombdood huggles lisp
04:36:28 <bsmntbombdood> I think I'm going to re write this bot in lisp
04:36:36 <bsmnt_bot> OH NO!
04:36:45 <bsmnt_bot> NOT REWRITING!
04:37:03 <pikhq> !zomgquit
04:37:04 -!- bsmnt_bot has quit (Remote closed the connection).
04:37:06 <pikhq> :)
04:37:07 <EgoBot> Huh?
04:37:16 <bsmntbombdood> hehe
04:37:23 -!- bsmnt_bot has joined.
04:38:17 <bsmnt_bot> zomg you kill me
04:38:30 * pikhq recommends you rewrite the bot in Tcl.
04:38:52 <pikhq> With [package require irc], from Tcllib, you've got your work cut out for you.
04:39:41 <bsmntbombdood> http://bsmntbombdood.mooo.com/ircbot.py is teh codz0rs
04:40:04 <bsmntbombdood> Ugly, I know
04:40:20 <GregorR> pikhq: The phrase, "You've got your work cut out for you" means "You have a lot of work"
04:42:09 <pikhq> Oh.
04:42:53 <bsmntbombdood> The whole point was to do it from scratch
04:46:06 <bsmntbombdood> GregorR, do you have an implementation of plof?
04:47:21 <GregorR> Yeah, one.
04:47:31 <GregorR> In D, so you probably can't [easily] use it ^^
04:47:41 <bsmntbombdood> hmm
04:48:52 <bsmntbombdood> looks interesting
04:48:58 <bsmntbombdood> var B = A + [ funcb = { println("Bye!"); } ];
04:48:59 <bsmntbombdood> ??
04:49:29 <bsmntbombdood> B is a new class the inherits from A?
04:49:33 <GregorR> Inheritance, interface implementation and such are abstracted to object arithmetic.
04:49:41 <GregorR> So basically, yeah.
04:49:44 <bsmntbombdood> neat
04:51:14 <GregorR> Want me to compile dplof for you?
04:51:21 <bsmntbombdood> Interpreter?
04:51:28 <GregorR> Yeah
04:51:31 <bsmntbombdood> yeah
04:51:36 <GregorR> Platform?
04:51:42 <bsmntbombdood> x86 linux
04:51:52 <GregorR> One sec.
04:54:19 <GregorR> http://www.codu.org/plof/dplof-x86-gnuWlinux-2006-12-19.tar.gz
04:55:01 <GregorR> It's a sort of crappy parser, so if you get an assertion failure, it's probably unparsable code with no useful error message :)
04:55:37 <bsmntbombdood> No reading from stdin?
04:56:27 <GregorR> See module stdio.plof
04:56:37 <GregorR> stdio.StdIn.read[ln]
04:56:42 <GregorR> (More TBA)
04:57:38 -!- bsmntbombdood has left (?).
04:57:42 -!- bsmntbombdood has joined.
04:57:47 <bsmntbombdood> I'm not gettin it
04:58:02 <GregorR> Could you be less specific? :)
04:58:13 <bsmntbombdood> How do I read code from stdin?
04:58:29 <GregorR> var linefromstdin = stdio.StdIn.readln();
04:58:39 <bsmntbombdood> I mean, the interpreter
04:58:44 <GregorR> OH
04:58:49 <GregorR> Has to be in a file ATM
04:58:52 <bsmntbombdood> ok
04:58:58 <GregorR> I suppose I should allow it to read from stdin >_>
05:01:17 <bsmntbombdood> hrm
05:01:23 <bsmntbombdood> when to use [] and when to use {}?
05:01:33 <GregorR> [] is an object, {} is a function
05:02:48 <bsmntbombdood> oh dear
05:02:50 <bsmntbombdood> segfault
05:03:12 <GregorR> There's at least one point where I have: *(cast(int *) 0) = 0;
05:03:25 <GregorR> Because it's easier to backtrace than an assert :)
05:03:46 <GregorR> pastebin your code, I'll probably see the issue.
05:04:07 -!- pikhq has quit (Connection timed out).
05:04:16 <bsmntbombdood> var A = [main = {println("Hello, World");}]
05:04:23 <bsmntbombdood> var test = new(A);
05:04:23 <bsmntbombdood> test.main();
05:04:34 <GregorR> Put a ; after ]
05:04:45 <bsmntbombdood> aaaah
05:05:03 <bsmntbombdood> picky parser ;)
05:05:12 <GregorR> I think now would be a good time to make some useful error messages for misparses :)
05:05:30 <GregorR> I just assert()'d away anything that couldn't parse :)
05:07:38 <bsmntbombdood> Looks interesting so far
05:08:47 -!- Sgeo has quit ("Ex-Chat").
05:11:51 <bsmntbombdood> Do method/function declarations need a semicolon?
05:12:25 <GregorR> Pretty much everything needs a semicolon - there are only statements.
05:12:32 <GregorR> In [], elements are comma-separated.
05:12:55 <GregorR> (I'm considering changing that)
05:13:30 <GregorR> OH - you can have an expression as the only member of a function, with no ;, in which case it's a function that returns the value of that expression.
05:13:43 <bsmntbombdood> What's self?
05:14:40 <GregorR> ?
05:14:59 <bsmntbombdood> In a method
05:15:11 <bsmntbombdood> What is the name of the object
05:15:37 <GregorR> OH ... I thought it was 'this', but I'm starting to think I may not have implemented that in dplof 8-X
05:15:49 <GregorR> Shoot ... I may have forgotten to put that in >_>
05:16:11 <GregorR> Heh <_<,
05:19:39 <bsmntbombdood> Nope, no this
05:19:46 <GregorR> Yeah, I'm fixing it as we speak.
05:26:12 <GregorR> Done, making you a new binary.
05:28:10 <GregorR> http://www.codu.org/plof/dplof-x86-gnuWlinux-2006-12-19-2.tar.gz
05:33:49 <GregorR> I think I inexplicably included some rampantly-incomplete core/*.plof files in that tarball, but no worries :P
05:35:15 <bsmntbombdood> mmmk
05:36:09 * bsmntbombdood will look more tommorow, but must sleep now
05:36:16 <bsmntbombdood> Finals tommorow :(
05:37:38 <bsmntbombdood> !quit
05:37:38 -!- bsmnt_bot has quit.
05:37:40 <EgoBot> Huh?
05:38:57 <GregorR> G'luck
05:42:45 <bsmntbombdood> woot:
05:42:53 <bsmntbombdood> var A = [
05:42:53 <bsmntbombdood> foo = {
05:42:53 <bsmntbombdood> println("toplevel foo");
05:42:53 <bsmntbombdood> this.foo = {
05:42:55 <bsmntbombdood> println("midlevel foo");
05:42:58 <bsmntbombdood> this.foo = {
05:43:00 <bsmntbombdood> println("insidelevel foo");
05:43:03 <bsmntbombdood> }
05:43:05 <bsmntbombdood> }
05:43:10 <bsmntbombdood> }
05:43:13 <bsmntbombdood> ];
05:43:15 <bsmntbombdood>
05:44:09 <GregorR> Yup, that's one of those nasty things you can do :P
05:44:18 <GregorR> Incidentally, "this." isn't necessary there.
05:44:38 <GregorR> (Part of why I didn't remember to put in "this" is that it's not strictly necessary)
05:44:43 <bsmntbombdood> oh
05:44:46 <GregorR> (Erm, not with a dot anyway)
05:45:11 <GregorR> If you don't put a "var" before something, it will look for it in parent scopes, not create a new one at the current scope.
05:45:26 * bsmntbombdood likey
05:45:45 <GregorR> Basically, you need to explicitly declare all variables *shrugs*
05:46:29 <bsmntbombdood> How come methods aren't?
05:47:01 <GregorR> They are - variables in objects, however, have a different syntax entirely.
05:47:31 <GregorR> Variables in [] are just comma-separated variables - it doesn't take full expressions, so it's not ambiguous.
05:48:49 <GregorR> I think i can explain that better:
05:48:59 <GregorR> In {} you have code: statements, expressions, whatever.
05:49:04 <GregorR> In [], you just have a list of variables in that object.
05:50:34 <bsmntbombdood> ok really bedtime now
05:50:59 <GregorR> Bye :)
05:56:43 -!- ShadowHntr has quit ("End of line.").
05:59:30 <Sukoshi> So, is Plof a whole bunch of Flex/Bison?
06:01:05 <GregorR> Nah, custom lexer/parser.
06:01:21 <Sukoshi> Aha. A real programmer, huh? ;)
06:01:25 <GregorR> It only has three intrinsic constructs, so parsing is simple.
06:01:29 <GregorR> Heh
06:01:45 <Sukoshi> I'm attemping to follow a Ruby discussion in Japanese.
06:02:13 <GregorR> And how's your Japanese? :)
06:02:30 <Sukoshi> Actually, enough to follow most of the conversation without resorting to the dictionary.
06:03:03 <Sukoshi> The computer words and some other stuff get me.
06:03:19 <Sukoshi> Apparently a packed Ruby Struct is a good structure to use for something like an address book.
06:03:29 <GregorR> I think vocabulary is the reason I never learned another language: grammar I can do, but vocabulary is just impossible X_X
06:03:47 <Sukoshi> I crunch some 60 words a day for a while, then go on a massive review.
06:03:57 <Sukoshi> I'm in a review phase now.
06:10:46 <Sukoshi> Meh. Obviously Japanese people aren't as clean as they're advertised to be.
06:34:48 -!- Sukoshi has changed nick to Razor-X.
06:34:55 -!- Razor-X has changed nick to Sukoshi.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
09:25:55 -!- CakeProphet has quit (Read error: 104 (Connection reset by peer)).
09:26:25 -!- CakeProphet has joined.
09:35:14 -!- CakeProphet has quit (Connection reset by peer).
09:35:19 -!- CakeProphet_ has joined.
09:35:23 -!- CakeProphet_ has changed nick to CakeProphet.
09:37:43 -!- CakeProphet_ has joined.
09:38:23 -!- CakeProphet has quit (Read error: 131 (Connection reset by peer)).
09:38:24 -!- CakeProphet_ has changed nick to CakeProphet.
10:02:25 -!- Asztal has joined.
10:31:59 -!- CakeProphet has quit ("haaaaaaaaaa").
10:37:38 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
10:38:07 -!- puzzlet has joined.
10:38:09 -!- puzzlet has quit (Client Quit).
10:38:20 -!- puzzlet has joined.
10:41:04 -!- ihope_ has joined.
12:00:51 -!- has_many_questio has joined.
12:02:25 -!- has_many_questio has left (?).
13:46:10 -!- ore2 has joined.
14:39:52 -!- jix_ has joined.
15:00:33 -!- pikhq has joined.
15:51:29 -!- GregorR-W has joined.
15:53:53 -!- Asztal has quit (Read error: 113 (No route to host)).
16:45:10 -!- PiedotTaste|Lapt has joined.
16:46:54 <PiedotTaste|Lapt> please say "is this real"
16:46:56 <PiedotTaste|Lapt> :o
16:46:58 <PiedotTaste|Lapt> ):
16:47:07 <PiedotTaste|Lapt> ego?
16:47:38 <PiedotTaste|Lapt> Please say ":o".
16:47:40 <PiedotTaste|Lapt> ):
16:47:52 <jix_> syntax error
16:47:56 <PiedotTaste|Lapt> :x
16:48:02 <PiedotTaste|Lapt> wiki lied ):
16:48:06 <pikhq> ERROR: LAZY PROGRAMMERS
16:48:21 <PiedotTaste|Lapt> lol
16:48:53 <PiedotTaste|Lapt> Please write this exact line to the channel :o
16:48:56 <PiedotTaste|Lapt> lol
16:48:56 <PiedotTaste|Lapt> xD
16:49:10 <PiedotTaste|Lapt> humbug ):
16:49:13 <PiedotTaste|Lapt> there goes a time waster ):
16:49:16 -!- PiedotTaste|Lapt has quit ("bai bai.").
17:00:07 <bsmntbombdood> ?
17:05:12 -!- bsmnt_bot has joined.
17:05:19 <GregorR-W> bsmntbombdood: My thoughts exactly :P
17:05:26 <bsmnt_bot> omg bot
17:06:03 <bsmnt_bot> Snow day!
17:07:45 <pikhq> You live in Colorado?
17:07:52 <bsmntbombdood> yeah
17:08:32 <GregorR-W> Why is your bot in ... I don't even know what country. Belaruse?
17:08:42 <GregorR-W> Belgium? :P
17:08:43 * pikhq loves this state
17:08:57 <bsmntbombdood> It doesn't snow enough
17:09:36 <GregorR-W> I haven't seen snow in years.
17:09:44 <bsmntbombdood> That's terrible!
17:09:58 <GregorR-W> When it's below freezing, we get freezing rain and sleet.
17:10:04 <GregorR-W> When it's above freezing, we get rain.
17:11:00 <pikhq> When it's below freezing, we get either snow or cold air.
17:11:21 <pikhq> When it's above freezing, we get either snow, hail, rain, cold air, or warm air.
17:11:23 <GregorR-W> But the snow is in a vacuum, eh.
17:11:26 <GregorR-W> Thta's gotta suck.
17:11:30 <GregorR-W> *That's
17:11:33 <bsmnt_bot> mmm snow
17:11:46 <Sukoshi> When it's below freezing, us Californians wonder what the hell is going on in the world.
17:11:47 <bsmntbombdood> I think I'm goign to ski down my street later
17:12:14 <pikhq> Sukoshi: Need an extra "i" for your name to be valid Romanised Japanese. ;)
17:12:36 <Sukoshi> I do?
17:12:55 <GregorR-W> ... they ... don't have a "shi" sound?
17:13:05 <Sukoshi> My IME and xjdic and kinput2 read it correctly.
17:13:13 <pikhq> GregorR-W: Yes, they do.
17:13:27 <Sukoshi> My IME == mule.
17:13:41 * bsmntbombdood rewrites bsmnt_bot
17:13:55 <pikhq> Sukoshi: The word "sukoshii" has an elongated "i".
17:14:07 <pikhq> Unless you refer to some word that I don't know, that is. :p
17:14:29 <Sukoshi> My dictionary says Sukoshi, with no extra `i'.
17:14:39 <Sukoshi> It's a な-adj.
17:14:44 <Sukoshi> 少し
17:15:07 <Sukoshi> (勝つ)
17:15:16 <pikhq> I could've *sworn* it was an i-adj.
17:15:21 <Sukoshi> Nope.
17:15:25 <bsmntbombdood> What's it mean?
17:15:33 * pikhq needs to get an IME set up. XD
17:15:34 <Sukoshi> Maybe you're thinking of 小さい
17:15:44 <Sukoshi> Small quantity, little, few.
17:15:49 <pikhq> Nope.
17:16:58 <pikhq> God.
17:17:06 <pikhq> You're right. I'm horribly wrong.
17:17:42 <pikhq> What IME do you recommend for GNu/Linux?
17:17:53 <pikhq> (and link, please)
17:17:57 <Sukoshi> Of course, 小さ(な) is also valid ... ;)
17:18:04 <Sukoshi> kinput2 out of Emacs, mule in Emacs.
17:18:17 <Sukoshi> Mule is incredibly, because it can switch encodings and everything.
17:18:20 <Sukoshi> *incredible
17:18:22 <pikhq> Oh. . . It's an Emacs package.
17:18:30 <pikhq> Too bad I don't use Emacs for IRC.
17:18:36 <Sukoshi> kinput2 then.
17:18:47 <Sukoshi> kinput2 with canna as your dictionary.
17:18:49 <pikhq> Gnome.
17:19:12 <pgimeno> /nick 少し
17:19:13 <pgimeno> --- 少し :Erroneous Nickname
17:19:13 <Sukoshi> kinput2 has nothing to do with KDE.
17:19:17 <pgimeno> :(
17:19:26 <Sukoshi> ... Or any other WM for that matter.
17:19:27 <pikhq> Oh.
17:19:42 <pikhq> No installation candidate in my apt repository. :'(
17:19:52 <Sukoshi> For kinput2?!?!
17:20:04 <pikhq> Package kinput2 is not available, but is referred to by another package.
17:20:13 <Sukoshi> Heh.
17:21:05 <pgimeno> pikhq: try apt-cache search kinput
17:21:15 <pgimeno> it gives me 6 packages
17:21:21 <pikhq> Ah.
17:21:23 <pikhq> kinput2-canna.
17:21:32 <Sukoshi> There y'are.
17:23:21 <pikhq> Installed. . .
17:23:28 <pikhq> Now to figure out how to get it working.
17:24:10 <Sukoshi> Run ``kinput2 -canna &'' somewhere.
17:24:39 <Sukoshi> Then you have to mess with some envars, like LC_ALL, IIRC.
17:24:53 <pikhq> The hell?
17:25:00 <pikhq> $ zsh: command not found: kinput2 ~/gnash/server/asobj
17:25:29 * Sukoshi shrugs.
17:25:33 <pgimeno> pikhq: use dpkg -L kinput2-canna to see which files it installed; look for the /usr/bin ones
17:25:46 <Sukoshi> Mmmf. It's been a while since I've used apt.
17:25:59 <Sukoshi> I've gotten used to the Slackware way of things, I guess.
17:26:00 <pikhq> /usr/X11R6/bin/kinput2-canna
17:26:31 <pikhq> There we go.
17:26:33 <pgimeno> that'd be it, try kinput2-canna
17:26:48 <pikhq> And now. . .
17:28:00 * pikhq isn't getting anything
17:28:28 <pgimeno> "When everything fails, it's time to read the manual"
17:28:29 <Sukoshi> Like I said, restart your X application with your modified envars.
17:28:37 * pikhq does that
17:29:16 <Sukoshi> And then you use Ctrl+Shift, IIRC, (dependant on package/version/whatever) to start the IME.
17:29:19 <Sukoshi> Read the manual, I suggest.
17:31:27 * pikhq has discovered one simple reason. . .
17:31:32 <pikhq> GNOME Terminal: locale not understood by C library, internationalization will not work
17:32:32 <pgimeno> try (as root) dpkg-reconfigure locales
17:32:55 * pikhq waits on gNewSense's dpkg
17:36:11 -!- tgwizard has joined.
18:00:27 <pikhq> GNOME Terminal: locale not understood by C library, internationalization will not work
18:00:32 <pikhq> Grr.
18:01:37 * bsmnt_bot laughs
18:01:58 <GregorR-W> bsmnt_bot: YUR MEEN
18:02:34 <bsmntbombdood> The lisp version isn't looking too clean
18:03:48 <GregorR-W> I'm writing netio.plof :)
18:04:00 <GregorR-W> You could (at some point) write a Plof version :)
18:04:22 <bsmntbombdood> fun
18:04:45 * pikhq should start learning Plof sometime
18:05:01 <pikhq> Maybe make a simple method of accessing C++ classes from Plof.
18:07:02 <GregorR-W> Plof is capable of accessing C via dlopen and friends.
18:07:06 <pikhq> Ah.
18:07:14 <GregorR-W> So accessing C++ would likely involve making a C wrapper.
18:07:18 <GregorR-W> Or however one chose to do it :P
18:07:41 * pikhq tries to find the Plof website
18:07:48 <GregorR-W> http://www.codu.org/plof/
18:07:58 <GregorR-W> If you want a binary of dplof I'll make one for you (presuming you don't have GDC)
18:08:03 <pikhq> GDC?
18:08:09 <GregorR-W> The GCC D Compiler
18:08:09 <pikhq> Oh.
18:09:14 * pikhq should probably get GDC.
18:10:42 <bsmntbombdood> lisp makes my pinky hurt
18:10:46 <Sukoshi> Why?
18:11:12 <Sukoshi> Oh. Are you supposed to use your pinky for parentheses or something?
18:11:25 <bsmntbombdood> yeah
18:11:27 * Sukoshi learned Dvorak the homebrew way.
18:11:42 <Sukoshi> My middle finger goes on parentheses.
18:11:44 <bsmntbombdood> I should probably use my other pinky for shift
18:11:52 <Sukoshi> I need an idea for a project in Lisp, ya know.
18:12:15 <pikhq> GregorR-W: Just hand me a binary. ;)
18:12:39 <GregorR-W> pikhq: GNU/Linux + x86 I suppose?
18:12:48 <Sukoshi> Blah. Time to write an HTTP parser :(
18:12:59 <Sukoshi> And client. A very limited client, though.
18:14:00 <pikhq> Hmm.
18:14:08 <pikhq> I might just pick up the Digital Mars compiler. . .
18:14:10 <pikhq> GregorR-W: Yeah.
18:14:18 <GregorR-W> Nooo, no dmd + GNU/Linux X_X
18:14:24 <GregorR-W> DMD + GNU/Linux = painful horribletude.
18:14:35 * pikhq gets the GCC source, then.
18:14:43 <GregorR-W> http://www.codu.org/plof/dplof-x86-gnuWlinux-2006-12-19-2
18:14:45 <GregorR-W> Er
18:14:48 <GregorR-W> http://www.codu.org/plof/dplof-x86-gnuWlinux-2006-12-19-2.tar.gz
18:14:51 <Sukoshi> Guh. But GCC is a pain in the *arse* to compile.
18:14:54 <GregorR-W> And http://www.codu.org/gdc-nightly/ if you want it.
18:15:04 <pikhq> Sukoshi: Yes, but I know how to build GCC.
18:15:17 <Sukoshi> Well, it takes ages.
18:15:18 <GregorR-W> GCC isn't so bad, all things considered.
18:15:24 <GregorR-W> OK, time-wise :)
18:15:33 <Sukoshi> Yeah. I'll bet it takes less time than Firefox2.
18:15:49 <GregorR-W> Sukoshi: I can say for a fact that it does.
18:15:56 <GregorR-W> Having compiled both of them on several platforms.
18:15:58 <pikhq> Binary works.
18:16:00 <Sukoshi> Heh.
18:16:07 <pikhq> My desktop does Gentoo.
18:16:15 <pikhq> I know that it's time-consuming.
18:16:18 <Sukoshi> Slackware here.
18:16:18 <bsmntbombdood> grar
18:16:20 <bsmntbombdood> The slot SOCKET is unbound in the object #<IRC-BOT {AEBCAE9}>.
18:16:34 * GregorR-W laughs at bsmntbombdood's pain.
18:16:35 <bsmntbombdood> I should actually learn clos before I do this
18:17:46 <bsmntbombdood> ok, time to go run around in the snow
18:17:46 <Sukoshi> Well uh... bind the slot then?
18:21:41 -!- oklopol has joined.
18:21:41 -!- okokoko has quit (Read error: 54 (Connection reset by peer)).
18:26:39 <ore2> Count twice to ten.
18:27:01 <GregorR-W> 1 2 3 4 5 6 7 8 9 10
18:27:03 <GregorR-W> 1 2 3 4 5 6 7 8 9 10
18:29:59 <Sukoshi> No.
18:30:20 <Sukoshi> Error: Twice is not a valid range bound.
18:34:31 <pikhq> ERROR: This programmer accepts Brainfuck code only.
18:34:50 <GregorR-W> ERROR: Too many errors
18:35:25 <pikhq> ERROR: Not enough errors.
18:46:06 <GregorR-W> pikhq: Presumably you got the dplof binary working? :P
18:47:01 <pikhq> GregorR-W: Yeah.
18:47:10 <pikhq> Going to work on GDC later.
18:47:18 <pikhq> (when I feel like it ;))
18:47:33 <GregorR-W> You did see my link to the GDC nightly-build binaries, right?
18:48:09 <pikhq> Oh.
18:48:31 <GregorR-W> "<GregorR-W> And http://www.codu.org/gdc-nightly/ if you want it."
18:49:44 <pikhq> It seems that Plof has sufficient capabilities to allow for a good deal of useful programming. . .
18:49:52 <GregorR-W> It's getting there.
18:49:54 <pikhq> Like, say, a GTK binding.
18:50:00 <GregorR-W> That'd be fairly easy.
18:50:04 <pikhq> Yeah.
18:50:13 <pikhq> I assume more features would be nice, though.
18:50:15 <GregorR-W> I'd like to make a "standard" Plof GUI interface.
18:51:00 <pikhq> That'd work with GTK, Qt, and W32?
18:51:44 <GregorR-W> Well, whatever anybody was willing to implement, I juts mean a set of objects with defined interfaces that could have different backends implemented, so you could just use pui.whatever and it would work on every platform.
18:51:50 <GregorR-W> Like wx is to C++
18:52:15 <pikhq> Ah.
18:52:16 <GregorR-W> Actually, I could more easily just answer "yes" :P
18:52:21 <pikhq> :p
18:52:57 * pikhq wonders what the hell else(); does
18:53:24 <GregorR-W> It's ... else.
18:53:36 <GregorR-W> if(condition, {foo;}); else({bar});
18:53:59 <GregorR-W> Or do you mean how it actually works?
18:54:55 <pikhq> How the hell do you have an else call without an if call?
18:55:01 <pikhq> (netio.plof)
18:55:23 <GregorR-W> Heh, it's against version()
18:55:44 <pikhq> Wouldn't if(version(), {foo;}); make more sense?
18:55:55 <GregorR-W> ... >_>
18:55:57 <GregorR-W> Yes.
18:56:05 <GregorR-W> <_<
18:56:12 <GregorR-W> To the degree that I think I'll make that change right now.
18:56:24 <pikhq> And why the hell is else a seperate function?
18:56:45 <GregorR-W> There are only functions and objects, conditions are not language intrinsics.
18:57:04 <pikhq> In most functional languages I've seen, 'else' is done via something like, say, another set of arguments to 'if'.
18:57:09 <pikhq> Like in Tcl:
18:57:25 <pikhq> One doesn't do: if {foo} {bar};else {baz}
18:57:42 <pikhq> "if {foo} {bar} else {baz}" is how it's called. . .
18:57:48 <pikhq> With just the function 'if'.
18:58:04 <GregorR-W> Hm, the reason I didn't do it that way is that there wouldn't be a word "else", but I think that that could be repaired...
18:58:13 * GregorR-W considers more sane methods.
18:58:19 <pikhq> Thank you.
18:58:32 <pikhq> Everything else, I'm loving.
18:58:45 <GregorR-W> Would you argue: if(condition, {blah}, elsif, condition, {blah}, else, {blah})
18:59:02 <GregorR-W> (Note the comma after elsif and else)
18:59:09 <pikhq> Hmm.
18:59:19 <pikhq> You know, that sort of *does* look weird in Plof.
18:59:33 <pikhq> Hmm.
18:59:39 <GregorR-W> It's hard to fit something like you're showing in that would not break my core rule of minimal constructs.
18:59:50 <pikhq> Yeah.
19:02:38 <GregorR-W> http://pastebin.ca/286512
19:03:35 <GregorR-W> It looks pretty C-like except for the commas :P
19:07:09 <GregorR-W> (Opinions?)
19:17:56 <pgimeno> is "if" a function?
19:18:19 <GregorR-W> Yes.
19:18:50 <lindi-> arguments are evaluated lazily?
19:21:13 <GregorR-W> An excellent point.
19:21:24 <GregorR-W> The answer to which is "not unless I made them functions"
19:21:35 <GregorR-W> Which I should to make it consistent with while anyway.
19:22:31 <GregorR-W> http://pastebin.ca/286527
19:27:45 <pgimeno> I like the idea of statements being also expressions (unlike C)
19:39:35 <GregorR-W> Since nobody's vehemently against it, I'm doing it the way pasted.
20:02:35 -!- oklopol has quit (Excess Flood).
20:02:45 -!- oklopol has joined.
20:03:58 <Sukoshi> So, are functions first-class datatypes?
20:05:31 <bsmntbombdood> GregorR-W: Do it like lisp
20:05:49 <bsmntbombdood> if(condition, {true code}, {false code})
20:06:22 <Sukoshi> Or, a more general structure, like Lisp's cond.
20:06:51 <Sukoshi> cond( {condition, true code, false code} { ... } {default, code} )
20:19:38 -!- bsmnt_bot has quit (Remote closed the connection).
20:20:30 <GregorR-W> Sukoshi: Yes, functions are first-class data types, Plof is intended to be a hybrid of functional and imperative.
20:20:58 <GregorR-W> bsmntbombdood: I did it like that before, but it was confusing since the only thing separating the if-true block and the if-false block was a comma.
20:21:26 <bsmntbombdood> Works fine for lisp
20:21:27 <Sukoshi> Hooray.
20:21:34 <GregorR-W> bsmntbombdood: Yeah, but lisp is terrible.
20:21:42 <Sukoshi> He's a lisp hater.
20:21:47 <GregorR-W> ^^
20:21:53 <bsmntbombdood> hehe
20:21:59 <bsmntbombdood> Why?
20:22:09 <Sukoshi> It works in Lisp because of the way the parentheses work.
20:22:31 <Sukoshi> (if pred expr1 expr2)
20:22:33 <GregorR-W> The basic syntactic structure of Plof and lisp are too different to compare. eg, exactly what Sukoshi just said.
20:23:02 <Sukoshi> Remember that if you want a block in IF, you have to use PROGN (or BEGIN in Scheme).
20:23:55 * GregorR-W darcs-record's the new syntax.
20:24:11 <Sukoshi> Heh. Darcs is a **** on Solaris, I hear.
20:24:21 <Sukoshi> A friend of mine is trying unsuccessfully to setup revision control systems.
20:24:21 <GregorR-W> Darcs isn't so great anywhere X-P
20:24:39 <Sukoshi> You could have something like: (defun meh () (if 3 4 5)) in CL which would always return 4.
20:24:41 <GregorR-W> But to host a darcs repository takes about zero effort, so I went with darcs ;)
20:25:03 <GregorR-W> I actually prefer centralized SCM to decentralized SCM.
20:25:15 <Sukoshi> I like what decentralized offers.
20:25:24 <Sukoshi> Especially now that I've come up with a dead project maintainer.
20:25:43 <GregorR-W> Literally dead or inactive?
20:25:56 <Sukoshi> Inactive ;D
20:26:07 <GregorR-W> Inactive is a slightly more curable case :)
20:26:09 <Sukoshi> Well, I lie. He just came back to life yesterday.
20:26:24 <Sukoshi> ....Which is a little late, since I've already made some really big patches.
20:30:53 <bsmntbombdood> sbcl takes a long time to compile
20:31:10 <Sukoshi> Heh. Which is why you don't.
20:31:17 <Sukoshi> It takes more RAM to compile than this box has.
20:31:35 -!- ore2 has quit ("Nettalk6 - www.ntalk.de").
20:31:41 <bsmntbombdood> gentoo box :/
20:32:19 -!- pikhq has quit ("leaving").
20:38:10 <bsmntbombdood> "Unlike (most of) the other P-languages, Plof attempts to be usable as a functional programming language"
20:38:28 <bsmntbombdood> Python is pretty usable as a functional language
20:41:30 <GregorR-W> Hence "(most of)"
20:42:26 <bsmntbombdood> oh
20:49:11 <Sukoshi> Even then, I don't think functions are first-class data types in Python.
20:49:23 <bsmntbombdood> yeah they are
20:49:54 <Sukoshi> Oh. Cool.
20:50:11 <bsmntbombdood> Well maybe not, I'm not quite sure what that means
20:50:35 <Sukoshi> You can do everything with a function that you can do with every other data type.
20:50:41 <Sukoshi> Like integers, characters, etc.
20:51:12 <Sukoshi> In most cases, passing functions as arguments is a big step in that direction.
20:54:22 -!- Asztal has joined.
20:54:39 <bsmntbombdood> then yes
21:00:13 <bsmntbombdood> But by that definition, functions are first-class data types in C
21:00:39 <GregorR-W> That's not a definition you jackass X_X
21:00:58 <GregorR-W> ANYway, functions are first-class data types in C.
21:01:08 <GregorR-W> But there's more to functional programming than functions being first-class data types.
21:01:14 <bsmntbombdood> yeah
21:01:52 <Asztal> they are? I mean, you can pass them around, but it's really rather awkward
21:02:09 <bsmntbombdood> I wouldn't call it awkward
21:02:15 <GregorR-W> You can, and the only thing that's awkward is the syntax.
21:02:22 <GregorR-W> Erm, + they are.
21:03:09 <bsmntbombdood> You can functionally program in c
21:03:53 <GregorR-W> Functional programming also requires things like nested functions,
21:03:57 <GregorR-W> function currying,
21:04:13 <GregorR-W> Hm, can't think of other off the top of my head.
21:04:16 <bsmntbombdood> What do you mean by nested functions?
21:04:20 <bsmntbombdood> Just closures?
21:04:33 <bsmntbombdood> because you can implement closures in c
21:04:59 <GregorR-W> Closures are a superset of nested functions.
21:05:13 <GregorR-W> And while you can implement closures in C, it's a mild HUGE PAIN IN THE ASS :)
21:05:23 <bsmntbombdood> Still possible ;)
21:05:48 <GregorR-W> Given that C is Turing-complete, if you're going to be that lenient with your definition of "functional programming", C must by-definition of its being TC be functional.
21:06:27 <bsmntbombdood> brainfuck can't be functional
21:06:41 <GregorR-W> Sure it can.
21:06:53 <GregorR-W> It's a huge pain in the ass, and requires about nine levels of abstraction, but it's possible.
21:07:09 <bsmntbombdood> It doesn't have functions or jumps/gotos....
21:07:13 <GregorR-W> You'd have to make functions (possible), and then function arguments (possible), and then pointers.
21:07:18 <GregorR-W> (also possible)
21:07:26 <GregorR-W> It doesn't have functions, and C doesn't have closures.
21:07:28 <bsmntbombdood> ???
21:07:57 <GregorR-W> If you're going to say that C has closures, then BF without a shadow of a doubt has functions.
21:08:04 <bsmntbombdood> hrm
21:08:57 <GregorR-W> Now you see my point about how C is not a functional language? :)
21:09:22 <bsmntbombdood> I suppose
21:10:07 <bsmntbombdood> How would you implement functions in a language without jmp though?
21:10:14 <GregorR-W> See C2BF
21:12:44 <GregorR-W> Every "label" corresponds to a "bucket" in the beginning of the memory space. To perform a jump, you set a bucket to 1, then drop out of your loop. The whole program is in a big loop that reads all the buckets and goes to the code corresponding to the bucket which is set.
21:13:40 <bsmntbombdood> How does it go to the code?
21:14:02 <GregorR-W> Did I not just explain that?
21:14:16 <bsmntbombdood> no
21:14:57 <GregorR-W> Every "label" (in code) corresponds to a "bucket" in the beginning of memory space. There is a loop in the code that reads in the buckets and goes to the code corresponding to the bucket which is set.
21:15:07 <bsmntbombdood> ...
21:18:51 * GregorR-W bashes his head into a wall.
21:35:07 <SimonRC> (on average)
21:35:37 <GregorR-W> Fascinating.
21:36:00 <SimonRC> erm, oops
21:36:01 <bsmntbombdood> Deadly.
21:36:02 * SimonRC wonders if there is a database server anywhere that can provide sub-millisecond response times.
21:36:05 <SimonRC> (on average)
21:36:33 <bsmntbombdood> sub-millisecond?
21:36:41 <bsmntbombdood> That's not very many milliseconds
21:36:46 <SimonRC> undeed
21:38:42 <GregorR-W> That was an astonishingly content-free statement :p
21:39:17 <ihope_> SimonRC: respond with an error message most of the time.
21:39:27 <ihope_> Or, rather, the smallest possible well-formed response.
21:39:35 <GregorR-W> Hah
21:39:53 <GregorR-W> SELECT * FROM bleh; -> ERROR("This is a fake database engine")
21:40:07 <ihope_> That would probably be an RST packet.
21:41:18 -!- ShadowHntr has joined.
21:42:22 <SimonRC> bah
21:42:45 <GregorR-W> In case anybody's interested in Plof with the new changes, http://www.codu.org/plof/dplof-x86-gnuWlinux-2006-12-20.tar.gz
21:42:59 <bsmntbombdood> hrm
21:43:03 -!- GreaseMonkey has joined.
21:43:13 <bsmntbombdood> var A =[]; A:["main"] = {println("Hi\n");}; a = new(A); a:["main"]();
21:43:24 <SimonRC> I would need a DB that fast to take the saying "A game is just a database with a pretty front-end." literally.
21:44:45 <GregorR-W> bsmntbombdood: Uh, is that not working? 8-X
21:44:56 <bsmntbombdood> Can't find a
21:44:56 <bsmntbombdood> Error: AssertError Failure plof/runtime.d(722)
21:45:04 <GregorR-W> Oh: var a = new(A);
21:45:09 <GregorR-W> Not just a = new(A);
21:45:13 <GregorR-W> You have to declare all variables.
21:45:19 <bsmntbombdood> right
21:45:32 <GregorR-W> SimonRC: Hah XD
21:46:00 <bsmntbombdood> oh cool
21:46:09 <bsmntbombdood> you can just do a.main();
21:49:50 * SimonRC reads about Codethulhu on TDWTF.
21:49:54 <SimonRC> XP
21:51:18 <SimonRC> Y'know, that image is great for so many programming projects: http://img.thedailywtf.com/images/200612/Codethulhu.gif
22:01:50 -!- jix_ has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
22:03:12 <ihope_> I want a programming language that has cofactors and inhibitors and denaturing.
22:03:36 <ihope_> By the time I get back, I expect it to be all implemented and everything, okay?
22:03:39 <ihope_> Bye.
22:04:52 <bsmntbombdood> cofactors and inhibitors and denaturing?
22:05:47 <SimonRC> Biology terms.
22:05:55 <SimonRC> To do with enzymes.
22:06:29 -!- ComputinChuck has joined.
22:06:29 <SimonRC> I suspect something like could be done if you fed a sed program to itself repeatedly.
22:07:12 <ComputinChuck> what is esoteric programming?
22:07:12 <SimonRC> After all, enzyes basically work my pattern-matching and simple transformations, a bit like sed does.
22:07:30 <SimonRC> ComputinChuck: good question
22:07:34 * SimonRC hinks
22:07:51 <ComputinChuck> i ran across something on it on the internet
22:07:56 <SimonRC> I can tell you what an esotreic programming language is.
22:08:01 <ComputinChuck> ok
22:08:36 <SimonRC> It is a programming languag that is weird or unusula most for the sake of being so, rather than for any practical reason.
22:09:06 <SimonRC> I recommend checking out Brainfuck, INTERCAL, befunge, and Malbolge for some examples.
22:09:12 <ComputinChuck> ok
22:09:20 <SimonRC> then take a look at some random languages from the wiki
22:09:44 -!- GregorR-W has quit (Remote closed the connection).
22:12:07 -!- ComputinChuck has quit ("Lost terminal").
22:12:38 -!- GregorR-W has joined.
22:15:49 <Sukoshi> Hmmm. Is there a more effecient way in parsing HTTP messages rather than doing a whole bunch of strncmp or memcmp?
22:16:21 <bsmntbombdood> There's no more effiecient way to compare strings, no
22:16:39 <Sukoshi> Well... I was wondering if there's some other commonly used method.
22:16:53 <Sukoshi> If not, I'm a gonna hope Duff's Device is fast.
22:17:11 <bsmntbombdood> If you know its length is divisible by 4, you can do it larger blocks, but no matter what it's going to be O(n)
22:17:40 <Sukoshi> Oh. But Duff's Device is for copying, doh.
22:17:54 <Sukoshi> Lemme take a look at fnord's implementation of memcmp.
22:19:04 <Sukoshi> Ah. Pretty nifty.
22:19:12 <SimonRC> Sukoshi: You could consider the message format to be a grammar of 1-character tokens and try to make a state-machine-based parser.
22:19:25 <Sukoshi> Yes, I was thinking of doing that too.
22:19:27 <SimonRC> You would be able to write assembler quite directly.
22:19:33 <Sukoshi> But that's a complex beast.
22:20:00 <Sukoshi> Heck, even in C, a parser like that is a total PAIN.
22:20:13 <GregorR-W> Pretty much.
22:20:27 <SimonRC> There are these things called "parser generators", you know.
22:20:30 <Sukoshi> Uggh. Why couldn't HTTP use something sensible like opcodes? -_-''
22:20:46 <Sukoshi> SimonRC: Mmmf. Would it produce something that effecient though?
22:20:50 <SimonRC> They give you th power of a LR parser with the simplicity of a predictive parser.
22:21:03 <bsmntbombdood> yay yacc
22:21:07 <SimonRC> Have you ever seen the code a parser generator generates?
22:21:13 <Sukoshi> Nope.
22:21:18 <Sukoshi> I just tend to mistrust generated code.
22:21:20 <SimonRC> It consists mostly of gotos, IIRC
22:21:29 <bsmntbombdood> It is pretty ugly
22:21:31 <Sukoshi> *Cough* String to BF *cough*
22:21:36 <SimonRC> Sukoshi: ah, so you are one of those assembley nuts?
22:21:40 -!- ihope_ has quit (Connection timed out).
22:21:53 <Sukoshi> No, but this project is pretty high on the low-level side.
22:22:23 <Sukoshi> ASM optimization is going to come at a later step, not now. For now, I think I'll use Fnord's usage of memcmp for inspiration.
22:22:32 <Sukoshi> Maybe do something similar to Duff's case bastardization.
22:24:24 <SimonRC> Well, the object code that compilers output is "generated code".
22:24:40 <Sukoshi> Heh. True there.
22:25:12 <SimonRC> If you treat all generated code like object code, you should be fine.
22:25:16 <Sukoshi> But, I don't know if parser generator code is effecient or not.
22:25:34 <SimonRC> I.e. consider it nonportable and do not put it into source control.
22:25:41 <SimonRC> Sukoshi: very efficient
22:25:55 <Sukoshi> Aha. Good.
22:25:55 <SimonRC> Parser generators do not worry about readability.
22:26:00 <GregorR-W> SimonRC: What about portable generated code? I get a lot of strife for putting configure in SCM :)
22:26:05 <SimonRC> but generic
22:26:38 <SimonRC> GregorR-W: Putting generated code into source controll just adds pointless deltas and enourages people to edit it.
22:26:58 -!- FabioNET has joined.
22:27:19 <GregorR-W> IMHO it makes life easier for developers who don't know/care about aclocal, autoconf, autoheader, libtoolize and automake.
22:27:26 <SimonRC> Parser generators create types of prsers that humans cannot sensibly create, like LR, LALR, etc.
22:27:42 <FabioNET> hello
22:27:46 <GregorR-W> 'lo FabioNET
22:27:48 <Sukoshi> Well, I wanna see if this code is more effecient than parser generator code.
22:27:50 <FabioNET> :)
22:27:59 <Sukoshi> God help me, I'm going to commit case hell.
22:28:27 <FabioNET> been programming with irp?
22:29:01 <GregorR-W> Seeing as that that's the only reason that about 60% of people come in here, I'm starting to regret I wrote that aticle XD
22:29:04 <GregorR-W> *article
22:29:17 <FabioNET> they are Italian I do not speak well English excused the uneasiness.
22:29:25 <Sukoshi> IRP?
22:29:33 <FabioNET> internet relay programming
22:29:38 <SimonRC> Sukoshi: allow me to demonstrate.
22:29:46 <GregorR-W> Sukoshi: http://www.esolangs.org/wiki/IRP
22:29:52 <SimonRC> say "hello world"
22:29:56 <FabioNET> :9
22:30:04 <GregorR-W> hello world
22:30:05 <Asztal> hello world
22:30:08 <SimonRC> tada!
22:30:09 <FabioNET> ihihihih
22:30:25 <Sukoshi> So is *that* why all those people have been coming?
22:30:44 <Asztal> At least they don't make us infinite loop
22:30:44 <GregorR-W> Yes X-P
22:30:47 <GregorR-W> <-- his fault
22:30:51 <Asztal> ... or do they?
22:30:52 <bsmntbombdood> lol http://thedailywtf.com/forums/thread/106950.aspx
22:30:57 <Sukoshi> I thought they wanted to prove us turing complete, I thought we were special ;-;
22:31:02 <GregorR-W> Hah
22:31:45 <tokigun> hmm, i've tested IRP in some other channel, and got syntax error... :p
22:32:00 <GregorR-W> Heh
22:32:24 <bsmntbombdood> Why is CS so bastardized?
22:32:39 <bsmntbombdood> No way that part of a CS degree should be web design
22:33:37 <GregorR-W> Hahahah
22:33:54 <GregorR-W> If you're having trouble with HTML on your way to a CS degree, you need to reconsider your life choices XD
22:34:30 <bsmntbombdood> That wasn't a student, it was the teacher
22:35:07 <GregorR-W> O_O
22:35:30 * bsmntbombdood is scared to go to college
22:35:47 <bsmntbombdood> If I have teachers like that I'm going to die
22:35:52 <GregorR-W> I haven't had that experience - there's only one incompetent teacher I've had, and she wasn't THAT incompetent.
22:36:16 <GregorR-W> And everybody loved her because she teaches mostly beginning-level courses and nobody at that level knows enough to know she's an idiot :(
22:36:53 <bsmntbombdood> I'm thinking about majoring in CS
22:37:07 <GregorR-W> I'm actively in the process of majoring in CS.
22:37:25 <bsmntbombdood> sweet
22:37:38 <bsmntbombdood> Real CS or C++ and web design CS?
22:37:46 <GregorR-W> lol
22:38:10 <GregorR-W> Real CS, I just finished a computer security course and last year I took advanced agorithms and networking protocols.
22:38:12 <bsmntbombdood> It pisses me off when people use CS to spice up the name of a programming class
22:38:30 <GregorR-W> Yeah, programming != CS.
22:38:32 <GregorR-W> Anybody can program.
22:38:34 <Asztal> Our teacher came out with gems like "There's no M in \"Mrs Sharp\""
22:38:45 <tokigun> lol
22:38:50 <GregorR-W> Asztal: ...?!
22:38:56 <Asztal> (Because we got bored and started making anagrams of her name)
22:39:13 * SimonRC will never again forget which way round vector multiplication goes: http://xkcd.com/
22:39:31 -!- bsmntbombdood has left (?).
22:39:32 <Sukoshi> I'm a total web programming incompetent :P
22:39:36 -!- bsmntbombdood has joined.
22:39:44 <bsmntbombdood> I love xkcd
22:40:03 <Sukoshi> Anything that depends on something like interface, user approachability, or aesthetic quality I fail at.
22:40:19 <SimonRC> he went through a boring phase of going on and on about his girlfriend.
22:40:24 <SimonRC> ^former^
22:40:58 <SimonRC> Sukoshi: OTOH, I have a tendancy ot hack URLs.
22:41:15 <GregorR-W> I'm not awful at web programming *shrugs*
22:41:17 <SimonRC> I chop bits off, remove unneeded parameters, etc.
22:41:28 <GregorR-W> I still consider myself to firstly be an app programmer though.
22:43:21 <tokigun> SimonRC, i have it too, and get angry when the hacking is impossible
22:44:03 <Asztal> With Camping, I can stand we programming
22:44:05 <bsmntbombdood> GregorR-W: What school?
22:44:14 <SimonRC> Asztal: no parse
22:44:25 <Asztal> let's try that again
22:44:49 <Asztal> web programming is bearable... provided I use the Camping web framework :)
22:44:49 <bsmntbombdood> Asztal: Error: AssertError Failure plof/parser.d(122)
22:45:02 <Asztal> argh .d!
22:45:12 <Asztal> First time I've seen D used actually :)
22:45:19 * bsmntbombdood pokes fun at GregorR-W's parser
22:46:08 <SimonRC> ah
22:46:17 <SimonRC> I see what went wrong.
22:46:23 <SimonRC> you did s/web/we/
22:47:34 <bsmntbombdood> woooot
22:47:41 <bsmntbombdood> no school tomorow either!!!!!
22:48:05 <SimonRC> with university, you get that feeling far more often
22:48:11 <Asztal> I skipped 2 weeks of lectures because I was busy dying with a fever! :)
22:55:10 <GregorR-W> bsmntbombdood: Yes yes, my parser has no error messages, blahblah :P
22:55:23 <GregorR-W> bsmntbombdood: pastebin some failing code? (or did you figure it out)
22:55:38 <bsmntbombdood> That was an old error message
23:02:56 <GregorR-W> Plof tokenizer in Plof 4tw :)
23:03:25 <bsmntbombdood> (x){return(x);}(1)
23:03:27 <bsmntbombdood> neat
23:03:52 <GregorR-W> That's a ridiculously cumbersom way to type "1" :P
23:03:59 <GregorR-W> You could also do (x){x}(1)
23:04:04 <SimonRC> \()->1
23:04:37 <GregorR-W> Or (x){(x){(x){x}(x)}(x)}(1)
23:06:43 <SimonRC> oops
23:06:54 <SimonRC> I meant: id 1
23:07:00 <SimonRC> or (\x->x)1
23:07:16 <GregorR-W> You and your ... whatever language that is.
23:08:06 <SimonRC> haskell
23:08:13 <SimonRC> \ is a lambda
23:09:30 <GreaseMonkey> hashEsoteric@()=+{if({GregorR~.CheckStatus("BuildingPlofCompiler");}{GreaseMonkey~.Act("BuildTomatoCompiler")});};
23:10:39 <GregorR-W> Only building an interpreter ATM.
23:11:43 <SimonRC> GreaseMonkey: Define "Tomato".
23:12:12 <SimonRC> and will one of you change your nick so that they don't have the forst 3 chars in common.
23:12:27 <GregorR-W> My nick is my name.
23:12:28 <SimonRC> It irritates my tab-completion finger.
23:13:12 <SimonRC> apparently, some people do not have nick-completion in their client, and call me "Simon".
23:13:22 <GregorR-W> [15:09]*NickServ* Nickname: GreaseMonkey << ONLINE >>
23:13:23 <GregorR-W> [15:09]*NickServ*Registered: 6 weeks 2 days (18h 35m 33s) ago
23:13:25 <GregorR-W> [15:09]*NickServ* Nickname: GregorR-W
23:13:26 <GregorR-W> [15:09]*NickServ*Registered: 35 weeks (5h 5m 11s) ago
23:13:28 <GregorR-W> I win :P
23:13:30 -!- FabioNET has quit ("Buon natale ocn la passera").
23:13:34 <GregorR-W> And that's with my non-primary nick ;)
23:14:00 <bsmntbombdood> hehe
23:16:36 <GreaseMonkey> Tomato is a programming language under development which looks slightly similar to C and supports self-modifying code.
23:16:58 <GreaseMonkey> oh, and me=thematrixeatsyou
23:17:18 <GreaseMonkey> and i crashed your bot properly a few times.
23:17:43 <GregorR-W> !glass {M[m(_o)O!"You're mean :("(_o)o.?]}
23:17:46 <EgoBot> You're mean :(
23:18:27 <GreaseMonkey> !funge93 0"D: wonk I">:#,_@
23:18:32 <EgoBot> I know :D
23:18:46 <GreaseMonkey> nah, it was accidental and a pain in the ass
23:18:46 -!- bsmnt_bot has joined.
23:18:55 <GreaseMonkey> i did it deliberately a few times tho'
23:18:56 <GregorR-W> I prefer "D: wonk I"
23:19:14 <bsmnt_bot> crash me!
23:19:32 <GreaseMonkey> how do I call help on ur bot?
23:19:37 <bsmntbombdood> you don't
23:19:45 <GreaseMonkey> what cmds does your bot have?
23:19:50 <bsmntbombdood> not many
23:20:04 <bsmntbombdood> he has !raw, !exec, !quit, !ctcp
23:20:19 <bsmntbombdood> GregorR-W: But not !say
23:20:32 <GregorR-W> !ctcp #esoteric PING
23:20:36 <EgoBot> Huh?
23:20:38 <GregorR-W> Nor CTCP :P
23:20:41 <GreaseMonkey> !raw PRIVMSG #esoteric :It works
23:20:51 <bsmntbombdood> GreaseMonkey: Only I get !raw
23:20:52 <GreaseMonkey> wait, it doesn't
23:20:54 <GregorR-W> TO WORK, OR NOT TO WORK? That is the question.
23:20:58 <bsmntbombdood> !raw PRIVMSG #esoteric :It works
23:20:58 <bsmnt_bot> It works
23:21:11 <GreaseMonkey> !ctcp #esoteric ACTION is randy
23:21:11 * bsmnt_bot is randy
23:21:14 <EgoBot> Huh?
23:21:19 <GregorR-W> !ctcp #esoteric ACTION roflcopters?
23:21:20 * bsmnt_bot roflcopters?
23:21:20 <GreaseMonkey> :D
23:21:22 <EgoBot> Huh?
23:21:27 <GregorR-W> !ctcp #esoteric PING
23:21:30 <EgoBot> Huh?
23:21:39 <GregorR-W> So you disabled that DDOS then :P
23:21:42 <bsmntbombdood> !exec self.register_raw(".*dude.*", lambda x : bot.raw("PRIVMSG #esoteric :sweet"))
23:21:42 <bsmnt_bot> sweet
23:21:44 <EgoBot> Huh?
23:21:51 <bsmntbombdood> GregorR-W: no
23:21:59 <bsmntbombdood> dude
23:22:00 <bsmnt_bot> sweet
23:22:09 <GregorR-W> Then dude, why isn't it working?
23:22:09 <bsmnt_bot> sweet
23:22:16 <bsmntbombdood> It is
23:22:22 <GregorR-W> I'm not getting pings ...?
23:22:44 <bsmntbombdood> bsmnt_bot is getting replys...
23:22:58 <GregorR-W> OH! Well in that case: Hey everybody, let's DDoS the bot!
23:23:10 <GregorR-W> Repeat as desired: /msg bsmnt_bot !ctcp #esoteric PING
23:23:16 <GreaseMonkey> daemon ctcp bf8 +.[,--------------------------------]+,----------[++++++++++.,----------]+.+++++++++.
23:23:22 <GreaseMonkey> foo
23:23:35 <GreaseMonkey> !ctcp #esoteric ACTION is funky
23:23:35 * bsmnt_bot is funky
23:23:38 <EgoBot> Huh?
23:23:43 <GreaseMonkey> !daemon ctcp bf8 +.[,--------------------------------]+,----------[++++++++++.,----------]+.+++++++++.
23:23:47 <GreaseMonkey> !ctcp #esoteric ACTION is funky
23:23:47 * bsmnt_bot is funky
23:23:48 <bsmntbombdood> !exec for i in self.raw_regex_queue: i[1] != self.do_ctcp or self.raw_regex_queue.remove(i)
23:23:50 * EgoBot is funky
23:23:52 <EgoBot> Huh?
23:23:53 <GreaseMonkey> YES!
23:23:56 <bsmntbombdood> no more ctcp ;)
23:23:58 <GregorR-W> Yag!
23:24:13 <GreaseMonkey> !ctcp #esoteric PING
23:24:28 * SimonRC looks back at this window and wibbles
23:24:29 -!- EgoBot has quit (Read error: 54 (Connection reset by peer)).
23:24:31 <bsmntbombdood> GreaseMonkey: the !exec I just ran removed the !ctcp command
23:24:35 <GregorR-W> What the bork.
23:24:36 <GreaseMonkey> ok
23:24:44 <GreaseMonkey> what script is that?
23:24:51 <bsmntbombdood> One I hacked up
23:26:07 <GreaseMonkey> i like this daemon:
23:26:08 <GreaseMonkey> daemon ctcp bf8 [[-]+.[,--------------------------------]+,----------[++++++++++.,----------]+.+++++++++.]
23:26:24 <GreaseMonkey> who can exec then?
23:26:37 <bsmntbombdood> !exec self.register_raw(r"^:bsmntbombdood!\S*gavin@\S* PRIVMSG \S* :!ctcp", self.do_ctcp)
23:26:59 <bsmntbombdood> GreaseMonkey: Anyone matching the regex "^:bsmntbombdood!\S*gavin@\S* PRIVMSG \S* :!exec"
23:27:14 <bsmntbombdood> !ctcp #biz ACTION tests
23:27:27 <bsmntbombdood> O.o
23:27:27 <GreaseMonkey> wait, wtf is #biz?
23:27:40 <GregorR-W> lol
23:27:46 <bsmntbombdood> ooops
23:27:50 <bsmntbombdood> !ctcp #esoteric ACTION tests
23:27:57 <bsmntbombdood> !ctcp #esoteric ACTION tests
23:27:57 * bsmnt_bot tests
23:27:59 <bsmntbombdood> there
23:28:44 <bsmntbombdood> only i can do !ctcp now ;)
23:29:01 <GreaseMonkey> bsmntbombdood: do you know of any good networking tuts for linux?
23:29:15 <GreaseMonkey> !ctcp #esoteric ACTION orly?
23:29:17 <bsmntbombdood> socket(2)
23:29:41 <GreaseMonkey> the man page?
23:29:45 <bsmntbombdood> yeah
23:30:07 <bsmntbombdood> http://www.google.com/?q=linux+sockets
23:30:37 <bsmntbombdood> http://www.google.com/search?q=linux+sockets
23:31:29 <bsmntbombdood> One of the ones on that page might be a little more friendly ;)
23:32:12 <GreaseMonkey> yah
23:32:17 <bsmntbombdood> !exec self.register_raw( ".*!%s" % "rtfm", lambda x : bot.raw("PRIVMSG #esoteric :dude, go rtfm"))
23:32:17 <bsmnt_bot> sweet
23:32:20 <bsmntbombdood> !rtfm
23:32:20 <bsmnt_bot> dude, go rtfm
23:32:27 <bsmntbombdood> :)
23:32:53 <GreaseMonkey> !rtfm
23:32:53 <bsmnt_bot> dude, go rtfm
23:33:02 <GreaseMonkey> i reckon that shud b a public one
23:33:19 <bsmntbombdood> hmm?
23:33:30 <GregorR-W> man 7 socket is a HORRIBLE reference for networking XD
23:33:33 <GregorR-W> I used to know a good one ...
23:33:34 <GregorR-W> But ...
23:33:38 <GregorR-W> Err, now I just use man 7 socket
23:33:59 <GreaseMonkey> so what's man 2 socket like compared with man 7 socket?
23:34:14 <GregorR-W> man 7 socket is information on socket programming in general, man 2 socket is the socket() function.
23:34:22 <GreaseMonkey> k
23:39:26 <tokigun> hmm
23:40:12 <bsmnt_bot> I'm bored
23:41:17 * bsmnt_bot licks bsmntbombdood
23:41:57 <GreaseMonkey> a truely intelligent bot relies on emotions
23:42:29 * bsmnt_bot feels a great love for GreaseMonkey
23:43:51 <GreaseMonkey> and it learns: "If I do this, I will feel that."
23:44:07 <GreaseMonkey> (struct Emotion)that;
23:44:08 <Asztal> A truly intelligent bot has a terrible pain in all the diodes down his left side
23:44:13 <GreaseMonkey> not (struct Object)that;
23:45:29 <GreaseMonkey> the simplest emotion is like/dislike
23:45:40 <GreaseMonkey> it has to like and dislike things
23:46:19 <GreaseMonkey> for example, if you're guiding a bot around, it does not like idling as it does not achieve anything, so it will do something.
23:46:39 <bsmntbombdood> !exec self.register_raw(".*!%s .*" % "join", lambda x : bot.raw("JOIN %s" % x.split("!%s " % "join")[-1]))
23:46:52 <bsmntbombdood> now it has a ! join command
23:47:13 <oklopol> !join me in death
23:47:14 <RodgerTheGreat> building a system to elicit "mood shifts" based on keywords and users tied to an emotional context doesn't seem like it should be that hard
23:47:36 <tokigun> but could need very large database
23:47:49 <GreaseMonkey> it'll accumulate a massive database
23:47:56 <RodgerTheGreat> yeah
23:48:07 <bsmntbombdood> It would need to parse english though...
23:48:18 <GreaseMonkey> it could learn
23:48:20 <tokigun> theorically, large database could cover most of problem; only remaining problem is how to construct the database
23:48:25 <GreaseMonkey> and then try to communicate
23:48:39 -!- Asztal has quit ("Chatzilla 0.9.75 [IceWeasel 1.0.1b2] (kidding!)").
23:48:43 <GreaseMonkey> and then it would check if it communicated or not, feeling either good or bad
23:49:10 <RodgerTheGreat> the other issue is that 'common sense' is a prerequisite for advanced intelligence, which means the machine needs a vast backlog of cultural knowledge and the like
23:50:25 <RodgerTheGreat> you'd probably get the best possible results by building a forwards-compatible database engine that you can retain throughout improvements in the rest of the system, so that you aren't wasting any learning time
23:52:12 <RodgerTheGreat> I guess the main thing is that the majority of the information you need isn't information itself, it's the interconnections between pieces of information- massive cross-indexing of everything in relation to everything else
23:52:36 <oklopol> actually, moods are but abstractions mainly, so a learning system need not have them hard-coded
23:52:41 <oklopol> imo
23:55:24 <GreaseMonkey> generally it is a good idea
23:56:11 <RodgerTheGreat> when you think about how the brain functions on a systemic level, you can strip off a large portion of it's high-level operations as a series of "services", like "internal monologue", "mind's eye", and so on. At the core, you have "consciousness"- the tricky part. I figure it most likely breaks down into pattern recognition, learning, predictive analysis, and planning capabilities that set goals and pursue the steps necessary to ca
23:56:14 <GreaseMonkey> that works
23:57:13 -!- Sgeo has joined.
23:58:31 <RodgerTheGreat> as long as the assumption that the way these pieces of functionality are integrated is more important than the precise contents of these "black boxes" is true, I can't stand anything standing in the way of eventual development of AI on par with human abilities
23:58:54 <RodgerTheGreat> *can't see anything
23:59:01 <bsmntbombdood> me neither
23:59:19 <bsmntbombdood> Of course, proccessing power may be a problem
←2006-12-19 2006-12-20 2006-12-21→ ↑2006 ↑all