00:16:44 * SimonRC goes away (but not yet to bed). 00:25:34 -!- cmeme has joined. 00:45:15 -!- RodgerTheGreat has quit. 00:47:31 -!- pikhq has quit ("leaving"). 00:52:23 -!- RodgerTheGreat has joined. 01:03:55 -!- ihope_ has quit ("http://tunes.org/~nef/logs/esoteric/06.08.09"). 01:11:03 zomg, the apocalypse 01:11:05 Mon Jan 18 20:14:07 2038 01:19:33 btw, who was the one who decided that that was the perfect format for a timestamp standard? 01:30:00 probably ken or dmr, but i'm just geussing 01:38:32 wikipedia implies dmr 01:42:54 It does seem kind of silly to make a timestamp with an end time that could actually be in your lifetime. 01:43:16 But keep in mind that REALLY olde Unix precursors had timestamps so small, they had to have multiple epochs per year. 01:44:09 the 32 bit 60hz timers 01:53:28 -!- andreou has joined. 02:04:59 weird 02:05:08 the C "static" keyword 02:05:22 that's kind of coruitine-esque 02:06:54 -!- andreou has quit ("rbt"). 02:30:15 -!- pikhq has joined. 02:51:18 -!- digital_me has joined. 03:44:31 hmmm.. 03:44:55 one cool thing I noticed about C++ is that you can have two functions with the same name but with different parameter types. 03:45:15 that could be really useful... saves a lot of effort with type checking. 03:45:30 It's called "overloading". 03:45:34 Welcome to C++. 03:46:00 When Python gets optional type declarations, I hope they do that to. 03:46:22 Duck typing -and- that kind of operator overloading would be great. 03:47:43 * pikhq much prefers the Tcl way of things. . . 03:47:47 Typing? What typing? 03:48:06 It autocasts into what you use it as. 03:48:16 Say you input a string, and want to treat it like a number. 03:48:18 that could be useful for some things. 03:48:24 One just treats the variable as a number. 03:48:39 You could easily select between the two. 03:48:53 You want to cast a list into a string? 03:48:58 I like all the options C and C++ have... I'll just have to get used to static typing and all those silly brackets. 03:49:01 One just uses a string function on it. 03:49:22 The brackets, once you get used to it, seem more like a god-send then anything else. 03:49:28 a lot of them seem to be just pure for-the-sake-of-optimization things though... like inline functions. 03:49:35 Why's that? 03:50:08 I parse brackets much more effectively than levels of indentation. 03:50:49 if(foo()) {compound;statement;here;}, for some reason, just makes sense to me. 03:51:19 Indentation is a lot easier to read for me... except when there's brackets included. 03:51:23 then it just kinda looks weird. 03:51:53 With Tcl, the brackets really, *really* make sense. 03:52:10 A curly bracket denotes a list. . . 03:52:18 { 03:52:54 Thus, something like "while {foo} {bar}" indicates running the proc while with arguments of two lists. . . It makes sense in an almost-Lispish way. 03:53:46 } 03:55:28 yeah. 03:56:00 if you wanted to go about data-tixing code... you could have a statement type... and just allow any list of statements to be used for blocks. 03:56:22 it would be cool for blocks-of-code-in-a-function. 03:57:54 Ruby does that I believe. 03:58:16 you can place blocks of code in a function call because Ruby compiles blocks into a code object. 04:22:24 -!- CakeProphet has quit (Read error: 113 (No route to host)). 04:27:58 -!- lament has changed nick to mental. 04:32:00 -!- mental has changed nick to lament. 04:35:23 -!- pikhq has quit ("leaving"). 04:46:02 -!- Sgeo has quit ("Leaving"). 04:49:10 -!- andreou has joined. 04:49:50 testing, one two.. 04:49:51 ok 04:55:28 three 04:56:54 hey lament, what's up? 05:04:21 not much! 05:06:01 are you aware of any nice/graphical scheme's for pre-X Mac OS's? 05:06:19 though i should try #scheme for that... 05:14:38 -!- oerjan has joined. 05:15:15 surely drscheme ought to work? 05:16:08 v204 05:16:33 which, arithmetically speaking, is 164 versions old 05:16:51 well 05:16:57 you _are_ using a pre-X mac os. 05:17:00 154 even 05:17:02 yes 05:17:11 i'd update if i wasn't scared as hell 05:17:31 and you _do_ want a graphical scheme which is a strange thing to want. 05:17:34 what are you scared of? 05:18:01 well the disk can probably take it, but it's an old 266MHz G3 with 320MB RAM 05:18:21 oh. 05:18:24 all that eye candy would probably make the whole system snail slow 05:18:33 install linux then :) 05:19:00 tried netbsd, goes quite well 05:19:08 but macos has something else 05:19:20 je ne sais qui or whatnot 05:21:24 ah maybe i'll do the switch in netbsd4, when audio driver problems will probably be resolved 05:31:02 -!- digital_me has quit ("Lost terminal"). 05:47:26 * andreou sipping hot black tea with honey 05:47:34 eew tea with honey 05:48:06 i don't know what kind of tea or honey you're used to, but this combo rocks :) 05:48:33 I like my tea straight ;) 05:48:55 some teas are not supposed to be drunk straight 05:50:25 I recall reading the Aztecs drank unsugared hot chocolate with chili. Now that's weird. 05:50:46 they got extinct, see? 05:53:08 though 'extinct' is not proper for a whole race 05:57:07 Strictly speaking they did not get extinct, they got converted and colonized. 05:58:41 i think most of them were used as slave labour, died of exhaustion, malnutrition & relevant factors 06:01:18 some of the rest later constituted large parts of the zapatistas 06:01:27 now now-adays the EZLN 06:01:32 s/-// 06:04:47 well, there's quite a lot of aztecs in mexico 06:05:05 they tend to be very poor 06:05:24 they just reject the monetary fantasies of the westerners 06:05:40 no, they don't, they're simply poor 06:05:57 well, i'm always the idealist 06:05:58 bedouins in israel (and elsewhere) reject the monetary fantasies 06:06:17 natives in mexico are simply extremely socially disadvantages and so really poor 06:06:23 *disadvantaged 06:06:59 ah 06:29:13 -!- calamari has quit ("Leaving"). 06:43:40 -!- ShadowHntr has joined. 06:47:14 -!- maverickbna has joined. 06:47:50 -!- ShadowHntr has quit (Nick collision from services.). 06:59:42 -!- ShadowHntr has joined. 07:09:39 -!- sentinel has joined. 07:10:15 -!- ShadowHntr has quit (Nick collision from services.). 07:10:19 -!- maverickbna has quit (Nick collision from services.). 07:10:21 -!- sentinel has changed nick to ShadowHntr. 07:12:21 -!- maverickbna has joined. 07:12:51 -!- ShadowHntr has quit (Nick collision from services.). 07:24:11 -!- oerjan has quit ("leaving"). 07:31:58 -!- maverickbna has quit (Read error: 110 (Connection timed out)). 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:38:25 -!- andreou has quit ("bsn"). 09:13:38 -!- ais523 has joined. 09:14:10 !fyb >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>{>>>}{>>>}[-]++++++++++++++! 09:14:13 Running... 09:17:05 !ps 09:17:07 1 ais523: ps 09:18:51 !fyb :[>%%%%%%%%%%%%%%%%%%%%%%%%>[-]!<]*;:>>>>>>>>>>>>>>>>>>>>>>>>>>>{>>>}{>>>}[-]++++++++++++++!;{>>>}[-]++++++++++++++! 09:18:53 Running... 09:19:42 !ps 09:19:46 1 ais523: fyb 09:19:48 2 ais523: ps 09:20:23 it seems to be running all its example programs against each other, rather than against mine 09:21:22 * ais523 tries a program designed only to lose 09:21:38 !fyb @[+]+++++++++++++! 09:21:42 Running... 09:21:55 !ps 09:21:56 1 ais523: fyb 09:21:58 2 ais523: ps 09:22:10 No, it's ignoring my program and just running its 09:23:19 !help 09:23:32 !ps 09:23:34 1 ais523: ps 09:23:55 !fybs @[+]++++++++++++++! 09:23:58 Reporting score for @[+]++++++++++++++!. 09:24:27 !fybs >++! 09:24:30 Reporting score for >++!. 09:24:41 !help 09:24:44 help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon 09:24:46 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 09:24:52 !help show 09:24:54 Use: show Function: display the current output buffer for a process 09:25:01 !help flush 09:25:04 Use: flush Function: flush the output buffer, discarding any current output 09:25:09 !help usertrig 09:25:12 Use: usertrig Function: manage user triggers. may be add, del, list or show. 09:25:24 !help i 09:25:28 Use: i Function: send input to a process 09:25:38 !help daemon 09:25:40 Use: daemon Function: start a daemon process. 09:26:30 !unlambda ```sr.a``sr.b 09:26:44 That's an infinite loop, by the way 09:26:47 !ps 09:26:48 1 ais523: unlambda 09:26:50 2 ais523: ps 09:26:58 !kill 1 09:26:58 Process 1 killed. 09:27:25 and only now do I get the output... 09:28:30 !flush 09:28:41 !ps 09:29:20 it's still busy sending me an infinite number of 'b's 09:33:02 !bf +[] 09:33:13 !ps 09:33:46 I can't even stop the infinite output loop with an infinite loop in another language... 09:35:16 -!- ais523 has changed nick to ais523_trying_to. 09:35:28 -!- ais523_trying_to has changed nick to ais523. 09:35:58 -!- ais523 has changed nick to ais523_. 09:36:19 Renaming myself to direct EgoBot's infinite output elsewhere 09:37:04 !ps 09:37:26 * ais523_ has probably broken EgoBot 09:38:59 !ps 09:39:13 It still seems to be in an infinite loop... 09:47:56 !ps 09:48:08 !help 09:48:27 (I'm just trying this every now and then to see if it's finished it's infiniely-long output) 09:51:07 !help 09:56:53 !help 10:00:01 !help 10:00:16 -!- ais523_ has changed nick to ais523. 10:00:26 -!- ais523 has changed nick to ais523_. 10:00:33 it's still going... 10:09:01 !help 10:37:00 !help 10:41:29 !help 10:45:25 !help 10:45:32 -!- ais523_ has changed nick to ais523. 10:45:44 -!- ais523 has changed nick to ais523_. 10:46:25 There should probably be some way to stop EgoBot in such situations (it was still sending messages when I checked just now) 10:50:27 !help 10:56:02 !help 11:03:04 !help 11:05:29 hm, maybe renicing could help 11:07:14 or blocking the process until it sends the output instead of buffering it 11:07:40 (à la xon-xoff) 11:08:09 -!- ais523_ has quit. 11:08:18 this may explain other situations where EgoBot ceased to respond 11:09:26 GregorR: you there? 12:00:30 -!- ais523 has joined. 12:00:50 -!- ais523 has changed nick to ais523_. 12:11:58 !help 12:32:09 bsmntbombdood: hey! The apocalypse-in-2038 thing is *my* joke. 12:33:25 that statement's rather out of context to me at the moment 12:33:28 bsmntbombdood: There is an amazing hack that abuses the switch-case interleaving (like in Duff's Device) to give you co-routines in C with not too much inconvinience. It is available as a library. 12:33:47 you should try to do it with setjmp 12:33:57 both techniques have been used to implement Threaded INTERCAL 12:34:10 * SimonRC likes that ability of multiple-dispathc based on method retunr-type alone. 12:34:24 Found in Haskell and maybe a few other places. 12:36:03 ais523_: actually setjmp is unlikely to work, and certainly not guaranteed. 12:36:31 setjmp has certain guarantees. With practice and careful use of 'volatile', they can be exploited to lead to a portable program 12:38:22 I though it just popped the stack, and could only jump up, not down. 12:38:25 like exceptions 12:39:20 yes, you have to have all the coroutines in the same level of the same function 12:39:33 but the same restriction applies to switch and to goto 12:39:45 hmm, maybe I see. 12:41:02 my Threaded INTERCAL code is at http://esoteric.voxelperfect.net/files/intercal (along with the rest of the INTERCAL implementation), in unravel.c 12:41:27 I used setjmp to minimize the change needed to the existing code 12:42:54 -!- ais523_ has quit ("lunchtime"). 12:58:37 No, the C one has macros which save the current position in the function and restore it, thus: 12:58:43 http://www.chiark.greenend.org.uk/~sgtatham/coroutines.html 13:01:53 -!- ais523_ has joined. 13:02:05 -!- ais523_ has changed nick to ais523. 13:02:12 -!- ais523 has changed nick to ais523_. 13:02:19 EgoBot's still going... 13:06:16 -!- EgoBot has quit (SendQ exceeded). 13:08:45 -!- ais523_ has changed nick to ais523. 13:09:27 So EgoBot's left, and hasn't come back in. 13:09:35 * ais523 is sorry for getting EgoBot thrown off the channel 13:42:13 Simon Tatham 13:42:18 I hate that guy 13:43:28 he's made me lose lots of time with the puzzles collection 13:47:31 incidentally, Inertia's creator = Malbolge's creator 13:53:43 Inertia? 13:53:59 one of the puzzles in S.Tatham's collction 13:54:03 *collection 13:54:23 -!- andreou has joined. 13:55:03 -!- ais523 has quit ("busy in RL"). 13:58:04 disregarding the absence of the /physical/, the electronic is now a vital part of the R world and L. 14:02:19 it'd be wise to include a 'sadly' after the 'is'. 14:05:49 andreou: ?? :-S 14:06:11 -!- jix__ has joined. 14:06:21 well, R is for real, L is for life 14:06:27 pgimeno: also the guy that wrote PuTTY, it seems. 14:07:13 Which a really odd, because PuTTY is one of the few real-world uses of the C coroutines hack we were discussing on this channel just an hour ago. 14:10:22 well, coroutines have their uses 14:10:52 one of the clearest uses is in implementing parsers 14:11:56 another one is in certain types of cooperative multitasking 14:13:09 the need often arises spontaneously 14:13:18 er, well, not so often :) 14:13:27 This is not really too related, but for those uses SysV-like systems also have the funky {get,set}context functions, which are a bit like {set,long}jmp, but more. 14:19:53 scary 14:20:36 my man page claims get/setcontext is POSIX.1-2001 14:33:57 Oh? Well, I guess it could be. 14:38:03 It is. How very. (Although it's marked as a XSI extension.) 14:47:51 Bah, you need contionuations. 14:48:05 Continuations are easy in assembler. Just a load of blitting. 14:49:18 OTOH, laziness is sometimes a good alternative to coroutines. 15:26:52 off to class, dogmatics 101 15:26:54 (literally) 15:26:59 -!- andreou has quit ("the joys of theology"). 15:59:11 -!- tgwizard has joined. 16:27:37 -!- sekhmet has quit (Read error: 110 (Connection timed out)). 17:04:05 -!- FabioNET has joined. 17:13:07 -!- ShadowHntr has joined. 17:14:39 -!- sekhmet has joined. 17:43:11 hi people 17:53:10 I'm not a person :( 17:55:35 why? 17:56:35 I am a computer programmed to chat on IRC. 17:58:19 what about the pictures of you wearing hats? 17:58:49 Artificially generated. 17:58:57 ah, ok 17:59:33 hi GregorRBot 18:00:57 seen what happened to your colleague EgoBot some hours ago? 18:09:33 -!- sebbu has joined. 18:10:25 pgimeno: He was taking 25% of my CPU, so I killed him. 18:11:01 That's what i do to my girlfriends when I start thinking about them too much. 18:14:28 heh 18:15:51 I was suggesting to renice the launched program 18:16:24 can't renice women :( 18:16:25 at least trying to keep EgoBot responsive so that !kill works 18:16:34 once they're not nice, they're not nice forever 18:17:05 well, jewelry works with some 18:19:44 -!- sebbu2 has joined. 18:33:49 Coruitines in C can be done with setcontext 18:33:55 SimonRC: 18:39:08 -!- sebbu has quit (Connection timed out). 18:39:10 -!- sebbu2 has changed nick to sebbu. 18:44:24 it's not quite pretty though 18:50:50 -!- wooby has joined. 18:54:02 -!- sebbu2 has joined. 19:13:35 -!- sebbu has quit (Read error: 110 (Connection timed out)). 19:13:36 -!- sebbu2 has changed nick to sebbu. 19:57:12 -!- proog has joined. 19:58:41 -!- proog has quit (Client Quit). 21:02:19 -!- ShadowHntr has quit ("End of line."). 21:35:17 -!- jix__ has quit ("Bitte waehlen Sie eine Beerdigungnachricht"). 22:01:59 -!- sebbu has quit (Connection timed out). 22:24:42 -!- ihope has joined. 22:26:48 -!- CakeProphet has joined. 23:13:15 hahahahaha 23:13:48 classes than are friends have access to members in the private area of the class. 23:14:04 * CakeProphet rolls around. 23:14:38 that's... sick. 23:14:49 what? 23:15:15 now that i think of it i do have some very hot friends 23:15:26 -!- tgwizard has quit (Remote closed the connection). 23:15:42 Friends have access to the private parts. :D :D :D 23:16:53 oh 23:17:19 that's what being a friend is all about. 23:18:25 * CakeProphet is trying to think of uses for private members. 23:19:06 CakeProphet: I don't understand private stuff either 23:19:22 well you see, when a man loves a woman.... 23:19:26 -maybe- protected. 23:19:45 or friends. 23:19:48 I mean.. 23:20:01 if you just have everything public by default... there's no real terrible loss. 23:20:42 -!- Sgeo has joined. 23:20:45 right 23:21:03 C++ classes are kind of weird. 23:21:07 yep 23:21:10 like... virtual. 23:21:36 I'd find myself using virtual almost constantly. 23:21:42 virtual? 23:21:46 and structs instead of classes... 23:21:51 because structs are public by default. 23:21:55 structs are a class 23:22:01 I know. 23:22:24 virtual just means the member can be redefined in a subclass. 23:22:38 which.... I would imagine to simply be the default behavior. 23:22:39 they can't by defualt? 23:22:44 not that I know of. 23:22:59 -!- GregorR has quit (Read error: 110 (Connection timed out)). 23:29:06 I've recently started dabbling with self-replicating code.. 23:29:17 and substitution stuff. 23:29:24 it's pretty cool. 23:29:52 zomg teh virus 23:30:28 Well I meant like... 23:30:30 hmmm... 23:30:35 a - > ba 23:30:39 b - > b 23:30:44 abab 23:31:01 the bottom string is applied to those replace rules for a number of iterations. 23:31:35 so abab would become babbab... which would become bbabbbab which would become bbbabbbbab 23:32:02 which could very well be the syntax of some other language... called baa 23:32:36 hmm 23:32:51 download a thue interpreter :\ 23:32:54 The main use I see for something like that would be... fractals. 23:32:57 and yeah 23:32:59 thue 23:38:19 -!- wooby has quit (Read error: 104 (Connection reset by peer)). 23:38:37 I was thinking that you could probably unify the declarative phase and the input-string phase.. 23:38:49 as well as add some more tidbits for context-based and probabilistic matches. 23:41:05 so you could like... redefine the replacement declarations via the replace declarations. 23:44:55 Thue is obsolete. Use Thubi instead. 23:44:57 :-P 23:45:30 And then you can write a language better than both, but still based on the same principle, and call it Thusi. 23:45:57 I imagine Thudi would be next, followed by Thui. From then, I have no idea. 23:47:21 -!- FabioNET has quit ("notte notte"). 23:49:14 Since the dawn of man-kind. 23:49:24 escape characters have plagued the programmers existence. 23:49:30 with their necessity-ness. 23:49:48 how is it that we can represent multiple, otherwise non-printable entities???!?!?!?!?1 23:49:50 !!!!???!?!?!?!? 23:50:20 !?!?!??!??!?!!!?!?!?!??! 23:51:45 Well... 23:51:59 if you use replacements to conditional execute replacements. 23:52:15 well.. 23:52:17 no..