00:01:35 http://mrbmd.com/mrb_personal_blog1.htm "HOW TO SEND EMAIL TO YOURSELF" 00:02:16 STEP 1 : ENTER YOUR EMAIL ADRESS 00:02:22 STEP 2 : WRITE EMAIL 00:02:27 STEP 3 : SEND EMAIL 00:14:35 ihope@normish.orgHi, me!Okay, now how do I send it? 00:15:18 Hmm, I should have said something like "warrie@normish.org" instead so that someone else gets all the spam. 00:15:31 root@normish.org is the best email address, really. 00:16:05 I often send myself emails 00:16:15 It's an easier alternative for file transfer 00:21:37 -!- GreaseMonkey has joined. 00:41:13 -!- moozilla has joined. 00:42:23 -!- Corun has quit ("Leaving"). 00:45:46 -!- sebbu2 has joined. 00:47:09 00:50:01 Sgeo: el oh EL 00:54:07 -!- moozilla has quit (Read error: 104 (Connection reset by peer)). 00:54:43 -!- KingOfKarlsruhe has quit (Remote closed the connection). 00:58:38 * ehird sketches generic oop 00:58:42 err, generic method 00:58:59 I'm going to use "oop" as a slang term for "method" from now on. 00:59:52 "That piano player has excellent oop." 01:00:18 "Then you can just call the object's oop instead of needing to use a macro." 01:01:40 -!- sebbu has quit (Connection timed out). 01:13:21 -!- moozilla has joined. 01:26:06 Warrigal, so panic() is an oop to generate an oops? 01:26:09 in the kernel 01:26:22 night 01:30:34 -!- moozilla has quit (Read error: 104 (Connection reset by peer)). 01:35:00 -!- Asztal has quit (Read error: 110 (Connection timed out)). 01:55:18 -!- moozilla has joined. 02:11:08 It's an oopsoop. 02:12:27 ;) 02:12:37 Warrigal, http://yugop.com/ver3/ 02:12:44 hy all y sexy ladys 02:17:17 -!- moozilla has quit (Read error: 104 (Connection reset by peer)). 02:23:37 -!- cherez has joined. 02:25:35 -!- cherez has left (?). 03:10:37 -!- moozilla has joined. 03:13:00 -!- moozilla has quit (Read error: 131 (Connection reset by peer)). 03:38:38 -!- jix has joined. 03:51:52 -!- jix_ has quit (Read error: 113 (No route to host)). 03:57:13 -!- moozilla has joined. 03:59:52 -!- moozilla has quit (Read error: 104 (Connection reset by peer)). 04:02:33 -!- oklopol has quit (Read error: 104 (Connection reset by peer)). 04:02:48 -!- oklopol has joined. 04:30:30 -!- moozilla has joined. 04:33:17 -!- moozilla has quit (Read error: 104 (Connection reset by peer)). 05:13:56 -!- moozilla has joined. 05:15:56 -!- moozilla has quit (Read error: 104 (Connection reset by peer)). 05:33:35 -!- Sgeo has quit (Remote closed the connection). 05:44:47 -!- moozilla has joined. 05:47:31 -!- moozilla has quit (Read error: 131 (Connection reset by peer)). 06:56:21 -!- SpaceMan has joined. 06:56:35 -!- CakeProphet has joined. 06:57:00 -!- SpaceMan has changed nick to SpaceManPlusPlus. 06:57:29 -!- SpaceManPlusPlus has left (?). 06:57:29 -!- SpaceManPlusPlus has joined. 06:58:41 -!- SpaceManPlusPlus has quit (Client Quit). 07:03:33 -!- bsmntbombdood has quit. 07:03:38 -!- psygnisfive has joined. 07:03:56 damn snow -.- 07:04:13 -!- bsmntbombdood has joined. 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:09:53 -!- oerjan has joined. 08:14:03 -!- moozilla has joined. 08:16:27 -!- moozilla has quit (Read error: 131 (Connection reset by peer)). 08:21:28 -!- pikhq has quit (Read error: 54 (Connection reset by peer)). 08:22:50 lament: why is a Welte-Reproduktionsklavier not a piano which reproduces universes. i am so disappointed. 08:23:22 every piano reproduces universes. 08:23:31 they do? 08:23:40 -!- pikhq has joined. 08:23:45 of course. Haven't you ever listened to one? 08:24:06 i thought i had. i must do so more carefully. 08:24:19 yes, listen for the universe 08:25:51 oerjan needs to read GEB 08:26:04 for some good universe creation in pianos, listen to some fugues and canons 08:26:17 hm 08:26:30 nah, just listen to any good music 08:27:31 which would include at its highest ranks, fugues and canons 08:27:32 from bach 08:27:33 :) 08:29:18 biased eh 08:29:37 i had a phase for a few years when i listened only to bach 08:29:45 oh well thats stupid 08:29:59 actually i mostly played bach instead 08:30:05 well-tempered clavier 08:30:48 now i listen to mozart more... 08:31:20 -!- GreaseMonkey has quit ("You only need one wheel. Bikers are just greedy."). 08:31:22 well tempered clavier, yes 08:31:27 very GEB 08:32:19 i have his cello suites 08:32:20 <3 08:35:53 -!- CentHOGG has joined. 08:36:12 ?? 08:38:07 -!- Mony has joined. 08:38:35 so im building a database 08:38:42 an object-oriented style database, actually 08:38:50 hi 08:38:57 and the type object for numbers? 42. 08:39:00 not even intentional 08:39:21 id number is 42, i mean 08:40:25 im not going to answer that. 08:40:53 sorry 08:43:22 -!- CakeProphet has quit ("lol"). 08:50:22 -!- CentHOGG has quit ("Leaving"). 08:50:56 -!- moozilla has joined. 08:52:12 more like 'CentHOGG has left IRC ("Don't get H2G2 references.")' -.- 08:52:43 I thought that that was mandatory reading? 08:52:53 -!- bsmntbom1dood has joined. 08:53:29 -!- bsmntbom1dood has quit (Client Quit). 08:53:44 -!- moozilla has quit (Read error: 104 (Connection reset by peer)). 09:08:31 you'd think it wouldnt been to be mandatory 09:13:36 what's h2g2? 09:13:41 i wioll haven thunk so, but not yet 09:14:35 oh hitchhikers guide to the galaxy 09:14:36 meh 09:15:32 *think 09:56:33 -!- moozilla has joined. 10:11:32 -!- moozilla has quit (Read error: 104 (Connection reset by peer)). 10:12:22 why is h2g2 the abbreviation of hgttg? 10:17:27 apparently because neil gaiman can't count 10:18:20 hm wait 10:18:28 maybe he just left out the small words 10:19:00 but then, why two h's... 10:19:51 HitchHikers 10:20:03 I KNOW THAT 10:20:09 it just doesn't make sense 10:20:15 i agree 10:20:28 but then, nothing in the books did, so i guess that's okay 10:20:59 wonder if i should read them 10:21:17 * oerjan actually just read the first two 10:21:28 i've been thinking about reading a fictious book at some point 10:21:48 how many are there 10:21:56 infinitely many 10:22:04 so 4? 10:22:31 i'm sure there are more than 4 fictious books 10:22:38 i mean h2g2's 10:23:08 i know there are over 10 fictious books 10:23:31 it's hard to count them i think 10:23:50 why is it hard 10:23:51 at least 5 were published when DA was alive 10:24:08 how come did it be hard now 10:24:43 then there is a posthumous collection 10:25:11 and they are of course intending to get someone else to write more 10:25:18 http://en.wikipedia.org/wiki/The_Hitchhiker%27s_Guide_to_the_Galaxy#And_Another_Thing... 10:30:07 It's been abbreviated hhgttg by the people "around here"; but I guess h2g2 is the most common one. 10:31:25 -!- oerjan has quit ("Rebus"). 10:40:58 posthumorous 11:13:31 -!- Mony has quit ("brb"). 11:29:50 -!- Asztal has joined. 12:39:18 -!- moozilla has joined. 12:41:46 -!- moozilla has quit (Read error: 104 (Connection reset by peer)). 12:46:22 -!- kar8nga has joined. 12:49:18 -!- Corun has joined. 13:31:42 -!- moozilla has joined. 13:50:56 -!- moozilla has quit (Read error: 104 (Connection reset by peer)). 14:05:10 Deewiant, there? 14:05:16 happen to know the url for NCRS? 14:10:26 I have been unable to locate it 14:11:07 ah wait, same as JSTR I guess 14:14:07 ah yes 14:17:49 -!- moozilla has joined. 14:29:56 -!- moozilla has quit (Read error: 131 (Connection reset by peer)). 14:49:32 -!- moozilla has joined. 15:01:45 Hi ais523. 15:03:16 -!- Mony has joined. 15:04:50 Hey. 15:05:08 Hey. 15:05:23 +ul (())(~(S)*:Sa~:^):^ <--- I really like that one 15:05:36 +ul (())(~(S)*:Sa~:^):^ 15:05:37 ()S(()S)S((()S)S)S(((()S)S)S)S((((()S)S)S)S)S(((((()S)S)S)S)S)S((((((()S)S)S)S)S)S)S(((((((()S)S)S)S)S)S)S)S((((((((()S)S)S)S)S)S)S)S)S(((((((((()S)S)S)S)S)S)S)S)S)S ...too much output! 15:05:39 :D 15:05:50 +ul ()S(()S)S((()S)S)S(((()S)S)S)S((((()S)S)S)S)S(((((()S)S)S)S)S)S((((((()S)S)S)S)S)S)S(((((((()S)S)S)S)S)S)S)S((((((((()S)S)S)S)S)S)S)S)S(((((((((()S)S)S)S)S)S)S)S)S)S 15:05:50 ()S(()S)S((()S)S)S(((()S)S)S)S((((()S)S)S)S)S(((((()S)S)S)S)S)S((((((()S)S)S)S)S)S)S(((((((()S)S)S)S)S)S)S)S((((((((()S)S)S)S)S)S)S)S)S 15:05:52 wait what's that 15:05:54 oh 15:05:56 :D 15:05:58 oklopol: infinite quine generator 15:06:00 yes 15:06:12 +ul ()S(()S)S 15:06:12 ()S 15:06:25 wtf@this error 15:06:42 +ul ( 15:06:42 ...out of time! 15:06:51 Here thutubot, have this time! 15:06:54 -!- moozilla has quit (Read error: 104 (Connection reset by peer)). 15:07:10 okay who wants to fix my c compiling error 15:07:16 it's a quine that contains no loops, the output of that 15:07:22 which therefore has to be infinitely long 15:07:31 Heh. 15:07:56 also, the out of time error is because Thutu programs have a tendency to go into infinite loops when it they see something they don't understand 15:07:58 PRINT(PRINT(PRINT( 15:08:03 in this case, the infiniloop was in the interp, not the program 15:08:45 anyone? :p 15:09:03 I hate C, ehird 15:09:10 And I must write it :( 15:10:02 -!- oklopol has quit (Read error: 54 (Connection reset by peer)). 15:10:44 ehird: paste the error, and I'll have a look 15:10:48 preferably a few lines of context too 15:11:01 /opt/local/include/evhttp.h:106: error: parse error before ‘TAILQ_ENTRY’ 15:11:01 /opt/local/include/evhttp.h:106: warning: no semicolon at end of struct or union 15:11:03 /opt/local/include/evhttp.h:149: error: parse error before ‘}’ token 15:11:09 that's all the errors for that file 15:11:15 (not my program, ofc :P) 15:11:22 but it's stopping a compilation and uh wtf 15:11:46 could you show me the context around line 106? 15:12:49 yepers: 15:12:59 TAILQ_ENTRY(evhttp_request) next; 15:13:06 context: 15:13:06 struct evhttp_request { 15:13:07 TAILQ_ENTRY(evhttp_request) next; 15:13:09 /* the connection object that this request belongs to */ 15:13:11 struct evhttp_connection *evcon; 15:13:14 int flags; 15:13:16 and no 15:13:17 it doesn't define it 15:13:19 nor include anything 15:13:21 presumably the using program has to import another header first 15:13:33 but this program is used by others; presumably they have no problem 15:13:35 so, yeah, wtf 15:13:45 yes, that seems a pretty clear case of TAILQ_ENTRY not meaning anything in this context 15:14:26 well, duh 15:14:31 I'm wondering what the hell is up :D 15:15:01 actually, looking at the context there, it's attempting to create a struct with a pointer to itself 15:15:24 so tailq_entry's probably doing some sort of clever trick to make a linked list or something 15:15:34 a bit silly, really, because a pointer would do just as well 15:15:39 as far as I can tell, the problem is that TAILQ_ENTRY is not defined. 15:15:54 yes, it indeed sounds like it should be in some header file 15:15:59 try googling for TAILQ_ENTRY? 15:16:01 I did 15:16:06 but the thing is 15:16:10 did you turn up anything useful? 15:16:13 this program isn't uncommon 15:16:19 i doubt it forgot to include a header or something 15:16:25 because, you know, people use it and compile it fine 15:16:29 so why is it happening in my case? 15:16:33 also, no 15:16:34 it could be designed for a common compiler you don't use, for instance 15:16:34 God hates you 15:16:39 I was wondering vaguely if it was a MSVC-ism 15:16:49 uhh, no. 15:16:53 considering I installed the library with macports. 15:18:24 anyway, try #include at the start of the program and see if it helps 15:19:15 apparently it's in that header file in Darwin, therefore presumably in Mac OS X too 15:19:45 that is something I will avoid. a) this is a checkout from git, so I'd have to deal with merging each time I update it, b) the main developer, iirc, uses OS X, leading on to c) nobody else seems to have this problem 15:19:59 so I'm thinking how to solve it d) with some build system flag or something that I may have missed 15:20:13 also 15:20:15 it includes #include 15:20:16 before evhttp.h 15:20:34 gcc has an "include-this-header" command-line switch, IIRC 15:20:42 right, but i shouldn't have to do that :) 15:20:52 /* Fix so that ppl dont have to run with */ 15:20:53 #ifndef TAILQ_ENTRY 15:20:53 #define _EVENT_DEFINED_TQENTRY 15:20:56 #define TAILQ_ENTRY(type)\ 15:20:57 struct {\ 15:20:59 struct type *tqe_next;/* next element */\ 15:21:01 struct type **tqe_prev;/* address of previous next element */\ 15:21:03 } 15:21:05 #endif /* !TAILQ_ENTRY */ 15:21:07 -- event.h 15:21:09 and yet it includes event.h before evhttp.h 15:21:11 * ehird 's WTF-O-METER goes off 15:21:50 wtffffffffffffffffffffffff 15:22:00 ais523: and TAILQ_ENTRY works in event.h! 15:22:06 yes, my bogometer is ringing high too 15:22:07 but when one line later it includes evhttp.h, it fails! 15:22:11 what the HECK 15:22:29 * ehird runs thru cpp 15:23:14 ok, the TAILQ_ENTRY is just not being expanded 15:23:19 what the hhelllllllllllll 15:23:36 this makes like the least sense ever 15:24:15 * ais523 wonders if 'type' was #defined earlier, to confuse issues 15:24:18 although it shouldn't have been 15:24:28 nah 15:24:30 #include 15:24:33 #include 15:24:35 through cpp 15:24:40 the event.h TAILQ_ENTRY uses work fine 15:24:46 but then as soon as you get to evhttp.h? 15:24:48 it's just left in 15:24:49 verbatim 15:24:58 that's... just... what 15:25:52 i mean... 15:25:55 no sense at all 15:26:07 that is not how the c preprocessor works so... 15:26:09 I just don't get it. WTF?! 15:26:10 hmm... do you have precompiled headers on? 15:26:22 ais523: i'm not sure how that would change anything but no afaik. 15:26:22 I can sort-of figure out how they would cause that bug 15:26:52 (basically, earlier header files can't define symbols in later header files that don't include them, if the header files are precompiled) 15:27:01 ah. 15:27:07 well, how can I turn off precompilation for that? 15:27:15 which compiler, gcc? 15:27:33 yeah 15:27:47 oh my god 15:27:58 ais523: 15:28:00 you will not believe this 15:28:04 % cat /opt/local/include/event.h /opt/local/include/evhttp.h| cpp -I/opt/local/include|e 15:28:06 STILL VERBATIM 15:28:13 WHAT THE HECK AHAHAAHAHAHAHAH 15:28:20 hmm, gcc seems to have protection against that sort of thing, it refuses to use more than one precompiled header in a compilation for exactly that reason 15:28:25 i mean, WHAT 15:28:28 and if it does use one, it has to be the first one 15:28:28 do you hear what I'm saying? 15:28:32 I catted the two files together 15:28:34 and yes 15:28:36 and it's still verbatim 15:28:37 in the second 15:28:38 one 15:28:40 I mean. just 15:28:42 I mea... 15:28:46 whattttttttttt 15:28:50 maybe there's a typo in the second which is affecting it somehow 15:29:05 TAILQ_ENTRY (event) ev_next; 15:29:05 vs 15:29:06 TAILQ_ENTRY(evhttp_request) next; 15:29:20 and no, there is absolutely no way it's the space :-P 15:29:26 agreed 15:29:34 no stray backslash at the end of the previous line? 15:29:41 no /* comment that was accidentally never closed? 15:29:49 no, this is from cpp output 15:29:59 and it's stripping comments? 15:30:03 yes. 15:30:14 are there any #line or # directives nearby? 15:30:27 about 50 lines earlier 15:30:28 # 401 "" 15:30:31 they're often a clue as to what cpp was thinking 15:30:34 on the line of 15:30:35 #endif /* _EVENT_H_ */ 15:30:40 signifying the next file in the cat, ofc 15:30:58 ok, so in other words nothing there's expanded into multiple lines 15:31:10 but that's not surprising 15:31:16 given there are no include comments there 15:31:29 *include directives 15:31:45 ok i will try the ultimate test 15:31:46 I suppose the macro in question wasn't undefed by a stray undef? 15:31:58 if this fails, I will put a gun to my head 15:32:05 umm 15:32:07 ais523: yes. 15:32:11 #ifdef _EVENT_DEFINED_TQENTRY 15:32:11 #undef TAILQ_ENTRY 15:32:15 in event.h 15:32:18 wtf is up with that 15:32:21 ok, that's simple enough 15:32:24 also, how come evhttp.h (from the SAME PACKAGE) uses it 15:32:28 even though it can't 15:32:30 and how come this program 15:32:32 and an obvious explanation why the define of tailq_entry wasn't carrying over 15:32:32 developed on os x 15:32:34 doesn't include sys/queue 15:32:36 as a workaround 15:32:48 and how come it builds for everyone else. 15:36:40 -!- kar8nga has left (?). 15:39:23 so. 15:45:54 -!- oklopol has joined. 15:51:41 my package manager wants to uninstall the kernel, I hope it knows what it's doing 15:54:21 heh 15:54:25 ais523: any ideas as to what I should do? 15:54:40 not really 15:54:55 maybe see if you can find one of the everyone else for whom it built, and ask them what happened? 15:55:08 i'm asking in the irc channel but it's idle-haven 15:56:23 OK, rebooting, if I don't come back up within about 10 minutes it's probably because I accidentally deleted my OS 15:56:27 :) 16:00:17 $ uname -a 16:00:19 Linux dell 2.6.27-11-generic #1 SMP Fri Dec 19 16:29:52 UTC 2008 i686 GNU/Linux 16:00:20 yay, it worked 16:00:22 hi thar. 16:00:43 I just added an #include :P 16:01:10 [[mmph... 5 to 100 days remaining is not a useful measure for a file download to give...]] 16:01:17 ehird: [[is that Vista?]] 16:01:20 * ehird continues his Insane Task (write an httpd) 16:01:27 ais523: no, it's a torrent :-P 16:01:56 it's possible that the 100 is it predicting me being jailed for copyright infringement and thus my computer confiscated 16:02:11 well, if it's an illegal torrent then in theory that ought to happen 16:02:14 after all, this is a mac, the software is really clever right? 16:02:20 never tell me where you live, just in case... 16:02:30 ais523: depends on your definition of "ought" :-P 16:02:38 deep, I know 16:02:46 I don't like doing illegal things, or other people doing them 16:03:04 although I admit that given that this is the Internet, it's pretty much impossible to convince anyone of that 16:03:29 -!- oerjan has joined. 16:03:34 in the case of "intellectual property infringement", the laws are broken to the Nth degree 16:03:51 there are several laws, some are more broken than others 16:03:59 trademark law is almost sane, for instance, just out of date 16:04:59 * ehird , with newly compiled interpreter, sets on quest: Write decent httpd. 16:05:03 Then use it for everything. 16:05:15 What do you mean that won't be easy. 16:05:19 what's your definition of 'decent' here? 16:05:24 -!- Corun has quit (Read error: 60 (Operation timed out)). 16:05:29 does everything I want it to do 16:05:37 fast. 16:05:48 and with low memory usage and high scalability 16:05:51 I will accept nothing less :-P 16:05:57 secure? 16:06:09 also, what language? 16:06:15 Yes; since I'm writing it in a HLL I doubt I'll be getting buffer overflows. 16:06:23 And Io, a minimal prototype-based OO language. http://iolanguage.com. 16:06:31 ehird: you never know... 16:06:44 It's built with embeddability and concurrency in mind, and even has some syntax for futures and such. 16:06:45 and I know of Io and its paradigm, although haven't worked with it in detail 16:06:54 And it has async IO functionalities, so it's a good fit. 16:08:04 Hopefully it'll also have in-server scripting for blazing fast webapps, but sandboxed appropriately so you can't mess up the server. 16:08:10 That would be nice. 16:08:12 -!- moozilla has joined. 16:09:20 Does there exist a decent Perl to Brainfuck parser / compiler? 16:09:26 yeah, I pasted that in ##nomic 16:09:32 that's so lol for about 5 reasons 16:09:37 which you all know so I wont' repeat :D 16:09:37 maybe I should have pointed out that parsing Perl is uncomputable 16:09:41 yes 16:09:51 also, that writing brainfuck by hand IS possible 16:09:52 and not that hard 16:10:01 also, that being in your right mind and writing BF are mutually incompatible, duh 16:10:06 also, that Perl would be a terrible language to compile it to anyway 16:10:10 and also it'd fail at the cycle limit. 16:10:12 also, the grammar. 16:10:20 hey i just read it all out 16:10:20 woop 16:10:29 hmm, Server handleSocket isn't called asynchronously. 16:10:30 maybe I should try to get gcc-BF to compile the Perl interpreter at some point 16:10:30 that is odd 16:10:54 -!- moozilla has quit (Read error: 104 (Connection reset by peer)). 16:11:03 ehird: maybe it's using Java's model for asynchrony (create a thread and run it synchronously there) 16:11:19 no; it's just that you're meant to do the asynchronous call inside handleSocket 16:12:21 ok, now to come up with a method name to asynchronously call 16:12:27 reallyHandleSocket? :P{ 16:12:48 handleSocket := method(aSocket, self @reallyHandleSocket(aSocket)) 16:12:48 yep. 16:14:25 ok, my server just doesn't handle more than one connection full stop, wtf 16:15:01 incidentally, I think I can protect this server against ddos attacks pretty well 16:15:03 especially fuzz ones 16:15:13 as soon as you know you've got some invalid http, drop the connection 16:15:27 what if someone tries to instantly reconnect? 16:17:58 ais523: there's no way to both handle all valid requests and protect against a well-formed, mass DDoS attack of course 16:17:58 but some rate limiting shouldn't be too hard 16:18:09 e.g. "if user is giving us 100 requests a second, ban" :P 16:18:23 well, arguably being linked from Slashdot is a legitimate DDOS attack 16:18:58 ais523: there's a difference between "many many users making few requests" 16:19:06 and "any number of users making a huge amount of request" 16:19:07 s 16:19:13 the first should be allowed, the second should be blocked 16:19:42 the first is a DDOS, though, by definition 16:19:51 the second is just a DOS 16:20:28 ais523: actually, no - a DDOS would be "many users making many requests" 16:20:41 slashdotting = many users making few requests 16:20:47 it depends on how distributed it is, I suppose 16:20:47 dos = few users making many requests 16:20:51 ddos = many users making many requests 16:20:57 ais523: and you can block the latter two with the same logic 16:21:03 if you block a dos, you block a ddos 16:21:10 as it's just many doses 16:22:03 at best you can turn a DDOS into a Slashdot, then... 16:22:36 since each user gets at least one try before you detect it 16:23:25 aha, I needed a new libevent for Socket 16:23:31 oerjan: well, yes 16:23:44 but a DDOS _that_ distributed is almost impossible to get 16:24:00 unless you have a botnet 16:24:04 slashdotting works because slashdot is a highly established site that has got views by linking to interesting content nicely over the years 16:24:12 oerjan: yes, again 16:24:15 ehird: it crosses my mind that you might be able to manage it by hotlinking an image on your site into the Wikipedia UI 16:24:29 but how likely is a botnet attacking one site? 16:24:29 if you kept it small and hidden, nobody might notice it for a while 16:24:34 unless it's like a virus researcher 16:43:28 ais523, hi 16:44:04 hi 16:45:14 -!- moozilla has joined. 16:47:53 -!- moozilla has quit (Read error: 104 (Connection reset by peer)). 16:53:53 -!- kar8nga has joined. 17:03:32 * ehird tries to think of a name for HTTPHandler that conveys that it handles the low-level HTTP sockets and thus not clash with the high level HTTPHandlers 17:04:36 LowLevelHTTPHandler? 17:04:44 nse 17:04:47 naw 17:04:51 it's not analogous to a HTTPHandler 17:05:06 it's "the thing that the HTTPServer clones and gives the socket when it gets a connection" 17:05:44 so one's a protocol handler, t'other's a content handler? 17:06:44 one is a high-level way to get an HTTPRequest and give an HTTPResponse, essentially 17:06:50 the one I'm naming is one that takes a socket and does stuff 17:06:54 HTTPProtocolHandler may be ideal 17:07:03 hmm, HTTPSocketHandler 17:07:06 yes, that's good 17:07:16 HTTPSocketHandler clone handleSocket :-P 17:07:41 woohoo, now I get to parse HTTP 17:07:44 can you think of anything more EXCITING? 17:08:02 parsing HTML? 17:08:22 with all the really really really interesting bits of leftover SGML stuff 17:08:30 how about parsing mork 17:08:40 http://jwz.livejournal.com/312657.html 17:10:54 * ehird writes HTTPParser, aka KillMeNow 17:16:19 ehird: will you have some anti-DDOS throttling called KillMeLater? 17:16:30 haha 17:16:32 yes! 17:17:04 whenever a client is found to be ddosing, my server will reply to its request with "Fuck you." then ban the ip 17:17:04 :D 17:18:15 * ehird invents new software versioning scheme 17:19:16 major.minor, minor increments from 0 per release, major is initially 0. major is increased when backwards compatibility-breaking changes are introduced or when the featureset is revamped to a large degree. when this happens, minor resets to 0. 17:19:38 well, major backwards compat breaking changes 17:19:45 since "featureset is revamped to a large degree" is pretty vague, major releases will be more common 17:19:56 i imagine version numbers like 5.14 will be commonplace :P 17:21:24 um wait, this is new how? 17:23:04 oerjan: well, its' not exactly _revolutionary_ 17:23:16 but minor never skips 17:23:24 and there's no even/odd stuff 17:32:10 -!- moozilla has joined. 17:35:01 -!- moozilla has quit (Read error: 54 (Connection reset by peer)). 17:35:49 -!- pikhq has quit (Read error: 113 (No route to host)). 17:44:53 hmm. 17:44:57 writing a streaming parser will be har.d 17:45:42 that's a strange name for a streaming parser, even if you use D 17:46:18 maybe it's a parser daemon 17:46:21 that goes in init.d 17:46:30 maybe 17:47:03 lol 17:47:51 my life is AWESOME 17:47:54 not only do I have to read the http spec 17:48:00 but I have to implement it as a manually-coded parser 17:48:03 KICKASS 17:48:09 "have to", you could do something else instead you know... 17:48:21 WHAT 17:49:58 * ehird considers usinga regex 17:50:02 except that would be slow. 17:51:32 "now you have two problems"... 17:51:41 although I like regexen, it's still a good joke 17:51:57 hmm, you can't check for EOF on a socket can you? 17:52:00 so I guess http servers just rely on a timeout 18:04:25 -!- Corun has joined. 18:05:01 -!- moozilla has joined. 18:07:55 -!- moozilla has quit (Read error: 104 (Connection reset by peer)). 18:26:57 ehird: my life is more awesome than yours 18:37:34 hi oklopol 18:37:52 hi bsmntbombdood 18:37:59 AND THEN THERE WERE MUDKIPS 18:49:23 sexy mudkips? 18:50:05 -!- Asztal has quit (Read error: 110 (Connection timed out)). 18:50:27 very sexy 18:51:40 -!- moozilla has joined. 19:02:49 -!- moozilla has quit (Read error: 54 (Connection reset by peer)). 19:19:52 -!- Corun has quit ("This computer has gone to sleep"). 19:25:15 Deewiant, hm: 19:25:16 pragma (msg, "Assuming 32-bit chtype... correct ccbi.fingerprints.jvh.ncrs.chtype to ushort if link errors ensue."); 19:25:17 alias uint chtype; 19:25:27 it seems to be unsigned long on my system? 19:29:36 xXxAnMasterxXx 19:32:40 AnMaster: chtype a long? That makes no sense at all 19:32:50 +ul ((xX)S:^):^ What's xXx anyway? 19:32:51 xXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxX ...too much output! 19:33:23 Deewiant, http://rafb.net/p/dM2ImR49.html 19:33:24 isn't it a movie 19:33:26 Deewiant: well, 16 bits isn't enough for all of Unicode 19:33:43 ais523: and 64 bits is way too much 19:33:45 #if 0 && is quite confusing 19:34:01 Deewiant, depends, on i686 long is 32 bits 19:34:05 long long is 64-bit 19:34:09 AnMaster: 32 bits is too much as well 19:34:16 oerjan: straightedge 19:34:18 and on 64-bits long long is 64-bits 19:34:20 and so is long 19:34:27 unicode fits well into 21 bits 19:34:33 or was it 20, I forget 19:34:54 Deewiant, ncursesw would need the full 32 bits, but this is plain ncurses 19:35:05 AnMaster is hXc 19:35:08 in any case see the paste 19:35:25 Deewiant, on 32-bit platforms that would end up as int32_t 19:35:33 on x86_64 it would be int64_t 19:35:34 -!- Slereah_ has joined. 19:35:39 well that is x86 and amd64 19:35:42 no idea about ppc and such 19:35:45 at least PDcurses does it right 19:36:13 http://rafb.net/p/gDsSdU70.html 19:37:05 Deewiant, ah attr too 19:37:08 that is quite interesting 19:39:37 welp, in any case there's no way I can know the correct type without doing something autoconf-like so all I can do is change the pragma msg :-P 19:40:09 Deewiant: compare blah_MAX from limits.h? 19:40:15 that's a way to find out type sizes in the preprocessor 19:40:16 Deewiant, btw you have two bugs in your code I think 19:40:40 1) you don't check if wgetch returned ERR, the specs say you should reflect on error for all instructions 19:40:44 ais523: I can't see the original chtype type without going through C and I don't want to do that 19:40:48 (remember, this is D) 19:40:57 2) initscr() exits on error, doesn't return ERR 19:41:00 use newterm() instead 19:41:08 in a complex usage pattern 19:41:10 Deewiant: ah, ok 19:41:14 so yes two error handling bugs decipher 19:41:14 err 19:41:16 does D have #define? 19:41:16 Deewiant, ^ 19:41:28 if it does, you could include the C header and hope that it happened to also be legal D 19:41:38 ais523, nice one 19:41:40 D does not have #define 19:41:43 ah, ok 19:42:59 AnMaster: looking at the PDcurses source they both exit() 19:43:18 Deewiant, well that means CCBI is non-conforming I'm afraid :P 19:43:25 when using pdcurses 19:43:45 sucks to be on windows 19:43:48 can't be helped 19:44:09 A program that needs to inspect capabilities, so it can continue to run in a line-oriented mode if the terminal cannot support a screen-oriented program, would also use newterm. 19:44:14 is what the man page says here 19:44:25 In some implementations of curses, newterm() allows the use of 19:44:25 multiple terminals. Here, it's just an alternative interface for 19:44:25 initscr(). It always returns SP, or NULL. 19:44:45 is there a way to 'catch' exit somehow? 19:44:53 Deewiant, not afaik 19:45:01 damn C 19:45:04 I'm pretty sure ncurses exist for cygwin 19:45:08 cygwin sucks 19:45:14 decipher, damn pdcurses rather 19:47:34 thing I really dislike about C preprocessor: the need for do { ... } while(0) hack 19:48:16 meh 19:49:39 Deewiant, the error handling in your clear() may be wrong too 19:49:40 not sure 19:49:48 AnMaster: as for wgetch, I don't think it can return ERR 19:50:12 not where and how it's used, anyway 19:50:26 wgetch 19:50:26 returns an error if the window pointer is null, or if its timeout expires without having any data. 19:50:33 yes, exactly 19:50:42 the window is stdscr and hence never null 19:50:44 Deewiant, in that implementation 19:50:46 and it has no timeout 19:50:52 I think implementation can define additional errors 19:50:52 hence it doesn't return an error 19:51:10 if that was ncurses then I'm good because PDCurses says the same :-P 19:51:16 -!- Slereah has quit (Read error: 110 (Connection timed out)). 19:51:30 Deewiant, future ncurses versions could return ERR :P 19:51:41 I doubt it 19:52:47 NOTES 19:52:48 Note that erase, werase, clear, wclear, clrtobot, and clrtoeol may be macros. 19:52:50 interesting 19:52:56 and you use werase 19:52:58 and many others as well 19:53:17 Deewiant, your code would fail it it was a macro 19:53:32 meh 19:53:37 it's not a macro in pdcurses 19:54:00 ah well 19:54:08 nor in ncurses, however plain erase() is 19:54:18 yes because MACROS ARE MORE OPTIMAL 19:54:26 what's wrong with these people 19:54:27 Deewiant, I didn't claim that 19:54:29 *shrug* 19:54:47 -!- oklopol has quit (Read error: 110 (Connection timed out)). 19:54:48 maybe because it seemed like a waste to just have a function like: 19:55:12 int erase(void) { return werease(stdscr); } 19:55:21 yes but it's not a waste to have a macro 19:55:22 riiight 19:55:30 Deewiant, I didn't say that 19:55:41 no, you didn't, but your argument would imply that 19:55:54 Deewiant, I didn't say that I agreed with them either 19:56:00 no, you didn't 19:56:01 I just said that may be the logic behind it 19:56:12 and I followed that logic somewhat 19:56:38 you should have stopped and asked for directions a few times during that trip :P 19:56:59 nah, I made it fine, just aggravated 19:58:04 E (m -- ) Set echo mode to m (1 == echo, 0 == noecho). 19:58:05 hm 19:58:13 your code only checks if it is "true/false" 19:58:24 I don't know D, but what would that do on, say, 2 19:58:31 void toggleEcho () { if ((ip.stack.pop ? echo () : noecho()) == ERR) reverse(); } 19:58:53 2 is UNDEF and true 19:58:58 I don't know exactly what it does but probably it should reverse on 2 or so 19:58:59 same as C 19:59:06 yeah, I suppose 19:59:08 since it is a non-allowed value 20:00:02 -!- moozilla has joined. 20:02:47 -!- moozilla has quit (Read error: 104 (Connection reset by peer)). 20:04:10 Deewiant, the NCRS mycology test has some issues 20:04:25 like asking to press enter a few times when any other char works 20:04:39 it might not work in a future version of curses :-P 20:05:06 Deewiant, hm, also it says "press any function key", using a "h" works fine 20:05:15 This should be at the top of the screen 20:05:16 dThe rest of the screen should have cleared 20:05:16 Trying to overwrite above with M and C, press any key to continue... 20:05:18 that is from ccbi 20:05:19 yes but the UNDEF result is not what you want 20:05:23 one newline eaten 20:05:51 Deewiant, the spurious d there is from using d instead of enter 20:05:52 if it asks you to press key X that doesn't mean that you can't press key Y, only that results are undefined if you do 20:06:16 Press any function key to continue... 20:06:16 Got 266 20:06:20 is that correct for F1? 20:06:27 it's platform-specific 20:06:33 great... 20:06:34 and various other things -specific probably 20:07:07 nice ccbi gives 265 for F1 instead 20:07:09 that makes no sense 20:07:21 heh 20:07:28 void get() { ip.stack.push(cast(cell)wgetch(stdscr)); } 20:07:34 I assume that was the function used? 20:08:03 I don't know, see the char it corresponds to in the static constructor 20:08:03 ok... now cfunge give me 265 too... 20:08:10 must have pressed the wrong key 20:08:11 first time 20:08:13 I guess 20:08:43 -!- Corun has joined. 20:08:46 Deewiant, well get() is G but: 20:08:48 Press any function key to continue... 20:08:49 Got 265 20:08:53 doesn't say what one 20:13:12 PORTABILITY 20:13:13 These functions are described in the XSI Curses standard, Issue 4. It specifies that portable applications must not call initscr more than once. 20:13:15 Deewiant, heh ^ 20:13:26 oh and initscr() may be a macro :P 20:13:46 oh great, for what 20:13:57 NOTES 20:13:57 Note that initscr and newterm may be macros. 20:14:01 not that it is on my system 20:14:06 just that is mentioned 20:14:16 there are a lot of issues with that 20:14:22 is Xinitscr standard? 20:14:32 no, it's not 20:14:37 No manual entry for Xinitscr 20:14:38 but, uh 20:14:46 what the hell can be used if initscr is a macro 20:14:57 Deewiant, a C wrapper 20:14:59 for everything 20:15:09 also it should use proper prefix 20:15:11 no, I don't want to do that :-P 20:15:12 since it is a library 20:15:22 I mean, cur_foo 20:15:22 prefix? 20:15:23 or something 20:15:25 that would 20:15:32 nah, curses is too old for that 20:15:33 prevent stuff like this, in say C++ 20:15:37 myclass.clear() 20:15:46 they didn't do that stuff back then and now it's been around too long to change it :-P 20:15:56 / argh! this calls myclass.wclear(stdscr); 20:16:01 //* 20:16:08 or such 20:16:21 see what I mean? 20:16:38 on the other hand at least I don't get linking errors now 20:16:45 since I have some functions that would collide 20:16:48 with the ncurses ones 20:16:52 if they weren't macros 20:17:13 solution to all namespacing problems: make everything a macro! 20:17:25 Deewiant, that has the other mentioned downside 20:33:25 la. 20:35:29 Deewiant, it may be unportable to use TERM and then NCRS I think 20:35:38 in the same process 20:36:01 depends on how you implement them, but since you can probably assume TERM use termcap and that will use ncurses on linux... 20:37:01 -!- KingOfKarlsruhe has joined. 20:37:15 based on the docs of TERM I claim that you can use TERM whenever you want without any harmful effects 20:37:21 if the OS can't handle that, tough 20:37:38 implementation defined if the OS can or not 20:39:00 -!- moozilla has joined. 20:41:34 -!- moozilla has quit (Read error: 54 (Connection reset by peer)). 20:48:41 Deewiant, TERM and NCRS interact badly 20:48:48 since both mess with stdscr 21:01:52 Deewiant, btw have you noticed how unusable NCRS is? No other fingerprint producing output may work 21:01:59 such as BASE, STRN or FPDP 21:02:46 Or , or . 21:02:57 indeed 21:03:23 * AnMaster tries to make TERM and NCRS work together 21:03:25 it is a pain 21:10:33 Deewiant, there is no way TERM and NCRS will play together nicely 21:10:46 I can special case the code path for mycoterm to make it work 21:10:56 but I don't think I can solve the general case 21:11:06 say TERM after NCRS now 21:11:52 why not 21:12:03 -!- sebbu has joined. 21:15:21 -!- oklopol has joined. 21:17:07 -!- moozilla has joined. 21:17:32 -!- Judofyr_ has joined. 21:18:58 -!- Judofyr has quit (Read error: 104 (Connection reset by peer)). 21:19:48 -!- moozilla has quit (Read error: 54 (Connection reset by peer)). 21:24:47 -!- sebbu2 has quit (No route to host). 21:38:50 -!- Judofyr_ has changed nick to Judofyr. 21:42:36 -!- moozilla has joined. 21:47:08 -!- Corun has quit ("This computer has gone to sleep"). 21:53:59 -!- moozilla has quit (Read error: 104 (Connection reset by peer)). 22:13:15 -!- moozilla has joined. 22:23:25 GregorR: SOmeone stole your game!! 22:23:31 http://www.wikiwarp.com/ 22:23:48 I didn't invent the game :P 22:24:03 Shush you 22:24:06 I like to be sensational 22:24:57 Yeah, but so's your face. 22:25:28 Yeah but so's your faeces 22:29:59 -!- moozilla has quit (Read error: 104 (Connection reset by peer)). 22:35:15 Deewiant, simple, NCRS I collides with TERM 22:35:32 when you unload NCRS with I you mess up the ncurses data structures 22:35:54 it is impossible to fix 22:36:06 since TERM has nothing like I 22:36:16 you can't check for unload/reload 22:36:26 can't you reload ncurses when TERM is ('d 22:36:49 Deewiant, yes you can use I to initialize NCRS 22:37:06 but: you can't unload NCRS in this order: 22:37:09 load TERM: 22:37:12 ok 22:37:18 load NCRS: ok 22:37:26 Use 1I 22:37:27 ok 22:37:32 Use 0I: ok 22:37:38 Use any TERM function: crash 22:37:58 just make 0I not actually unload if TERM is alive 22:38:14 then it would actually break the functionality 22:38:25 it would be non-conforming 22:38:32 oh and of course you can't use more than exactly one 1I and one 0I during a session 22:38:59 since calling initscr() more than once is undefined behaviour 22:39:20 TERM use setupterm() that it seems you can use multiple times, initscr() calls setupterm() 22:39:45 and I'm not making all of cfunge use ncurses, no way 22:40:06 it may be possible, but painful, to notify the other module of changes 22:40:08 as they happen 22:40:27 well that'd be the easiest way :-P 22:40:32 would make them slow since they need to check state flags all the time 22:40:34 o 22:40:46 not a lot of overhead I guess 22:41:02 Deewiant, oh and I believe ccbi may be invoking UD there 22:42:21 where? 22:42:30 ah now you just don't support TERM on posix 22:42:35 s/now/no/ 22:42:38 yep 22:43:00 Deewiant, I see you ask for help there 22:43:03 * AnMaster looks at the code 22:43:07 what was the issue with it 22:43:32 I read the specs and did stuff and stuff didn't seem to work at all :-P 22:43:36 I can't remember, it's been months 22:43:45 well you know I can't compile it 22:43:47 and you did say that you got stuff to work using termcap directly 22:44:08 nah, you just haven't bothered to set yourself up to compile it 22:44:15 but yeah, in any case 22:44:19 Deewiant, I was using ncurses/termcap stuff yes 22:44:23 based on what you said I might as well drop it 22:44:30 AnMaster: you use ncurses in TERM? 22:44:53 Deewiant, ... 22:45:13 NAME 22:45:13 del_curterm, mvcur, putp, restartterm, set_curterm, setterm, setupterm, tigetflag, tigetnum, tigetstr, tparm, tputs, vid_attr, vid_puts, vidattr, vidputs - 22:45:13 curses interfaces to terminfo database 22:45:13 SYNOPSIS 22:45:13 #include 22:45:17 #include 22:45:19 see the include curses? 22:45:40 wtf 22:45:43 $ qfile /usr/include/term.h 22:45:43 sys-libs/ncurses (/usr/include/term.h) 22:45:45 what's the lowest level 22:45:45 see that? 22:45:50 yes, I am not blind 22:46:02 well they are provided by the same package 22:46:18 what is the lowest level of functionality which allows this 22:46:19 which is WHY TERM and NCRS collide 22:46:21 is it not the shell 22:46:24 and its escape codes 22:46:25 eh? 22:46:31 shell has escape codes? 22:46:33 very funny 22:46:37 erm 22:46:40 you mean the terminal or the terminal emulator 22:46:44 yes 22:46:54 well yes that is it 22:46:55 my point is, why the fuck does that use curses 22:47:12 Deewiant, *same package providing both interfaces on linux* 22:47:28 sigh, so you didn't answer my question 22:47:31 do you use ncurses 22:47:33 in TERM 22:47:35 or not 22:47:42 I don't care what the header includes 22:47:45 yes, I use the term.h interface, which is provided by ncurses 22:47:56 which is what you used too I see 22:48:45 right, but you don't use any of the higher-level curses functions 22:48:53 not in TERM no 22:48:57 only in NCRS 22:49:10 and TERM and NCRS collide basically, since they both end up messing with the same low level terminal info static variables 22:49:13 internally in ncurses 22:49:25 alright, so then screw TERM 22:49:30 why? 22:49:35 TERM is more useful IMO 22:49:53 anyway I plan to have both and track state between them 22:50:07 I already do something like that between SOCK and SCKE 22:50:35 meh 22:50:40 whatever, I'm going to sleep 22:50:44 heh 22:54:10 -!- moozilla has joined. 23:15:49 -!- moozilla has quit (Read error: 104 (Connection reset by peer)). 23:19:57 -!- Mony has quit ("'night"). 23:27:41 } > kill cockatrice 23:27:42 } 23:27:43 } With what? Your bare hands? 23:27:46 } 23:27:47 } > yes 23:27:49 -- internet oracle bestof 23:33:33 ^bool 23:33:33 No. 23:33:39 another episode? 23:33:40 ^bool 23:33:40 Yes. 23:33:43 okay. 23:38:20 Go to bed? 23:38:22 ^bool 23:38:23 No. 23:38:29 okay. 23:43:47 hi oerjan 23:43:50 hi oklopol 23:44:03 Will you say No? 23:44:04 ^bool 23:44:04 No. 23:44:08 ... 23:44:10 O SHI 23:44:12 fungot knows 23:44:13 oerjan: which include, but a player may spend one note of that player's possession. the muq of the 23:44:23 * ehird has quit (connection reset by paradox) 23:46:42 fizzie: plz 2 be fixing paradox 23:58:18 http://sco.wikipedia.org/wiki/Main_Page 23:58:18 Wikipædia is a project tae big a free encyclopædia in mony leids.