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