2008-05-01: 00:00:02 :P 00:00:05 * olsner is in an extraordinarily helpful mood today 00:00:06 you are so helpful 00:02:53 -!- Corun has quit ("This computer has gone to sleep"). 00:05:44 -!- GreaseMonkey has joined. 00:10:03 would it be worthwile to make up an esoteric assembly language that esoteric compilers could target? 00:10:27 sure. How about OISC? 00:11:05 or MIX? 00:11:11 i don't see how to write any compilers in that in a reasonable amount of time 00:11:17 not looked at MIX 00:11:52 umm 00:11:57 no to MIX 00:12:23 well, what exactly do you want? 00:12:42 a semi-normal assembly like language 00:12:53 LLVM? 00:12:56 that would be easy to target 00:13:04 C89? 00:13:12 R5RS? 00:14:36 ... 00:15:35 i just don't understand "semi-normal" 00:16:12 if you want easy-to-compile-to, why bother with assembly at all? Lisp could be a nice target there. Or C if you're into lower level. Or LLVM if you really do want something assembly-like. 00:16:25 And if you want esoteric, there's plenty of options, but none of them are "semi-normal", by definition. 00:16:56 hmmm 00:17:50 i had an idea to have all esoteric compilers target one specific assembly 00:17:59 it doesn't seem to feasible now 00:18:45 LLVM seems like a good choice, although most people prefer to compile to something higher-level 00:18:57 oh yeah, there's JVM too :) 00:19:05 yuck 00:19:09 i want something fast 00:19:56 i was almost thinking something based on P-code 00:20:07 that seems fairly easy to compile too 00:20:13 s/too/to/ 00:21:09 so LLVM? 00:21:13 I haven't actually written a compiler but i want to for BRZRK 00:21:45 so i was wondering what to compile too 00:21:49 s/too/to/ 00:22:38 LLVM looks bad 00:23:20 why? 00:24:03 hmm 00:24:09 actually it doesn't look too bad 00:24:35 LLVM is higher level than i first thought 00:24:58 why do you want assembly, anyway? 00:25:34 compiling to LISP would actually be fairly easy for BRZRK, but i don't know LISP 00:26:02 so learn Lisp :) 00:26:17 :( 00:27:02 i don't get it 00:27:07 the BRZRK page says it's "based on lisp" 00:27:14 you don't know lisp yet you based a language on it? 00:27:24 sauxdado: Happens. 00:27:26 i have looked at it and i understand the structure 00:27:36 but i don't understand all the quirks 00:27:54 variables are quite complicated from what i have looked at 00:28:58 scheme is pretty sane 00:29:22 i might use scheme then 00:34:30 -!- Corun has joined. 00:34:56 -!- Corun has quit (Client Quit). 00:35:39 -!- Corun has joined. 00:50:36 -!- Corun has changed nick to baisy. 00:51:59 -!- baisy has changed nick to Corun. 00:59:56 -!- GreaseMonkey has quit ("Unisex."). 01:25:03 -!- cmeme has quit (leguin.freenode.net irc.freenode.net). 01:27:26 -!- cmeme has joined. 01:30:55 -!- Corun has quit ("This computer has gone to sleep"). 01:32:36 -!- cmeme has quit. 01:32:47 -!- cmeme has joined. 01:48:18 -!- evincar has joined. 01:48:54 Hello, hello. 01:52:00 hi 01:52:23 I started an interpreter for Selector yesterday. 01:52:55 The only things I have left to add are... BECOME, ESCAPE, GO, MY, PICK, and YOUR. 01:53:00 So...the important ones. 01:53:25 But it's not hard, per se. 01:53:36 Just a bit tedious. 01:53:42 Hence I'm taking a break to chat. 01:57:06 evincar: Same for me. 01:57:08 I will do it eventually 01:57:19 It's a fun diversion. 01:57:30 I'm working on another spec, with a friend this time. 01:57:53 You might call it 'pseudo-deterministic', I think. 01:58:16 It's based on old-style text-based RPGs. 02:11:07 -!- cmeme has quit (leguin.freenode.net irc.freenode.net). 02:11:08 -!- lifthrasiir has quit (leguin.freenode.net irc.freenode.net). 02:11:08 -!- Tritonio has quit (leguin.freenode.net irc.freenode.net). 02:11:08 -!- atsampson has quit (leguin.freenode.net irc.freenode.net). 02:11:08 -!- mtve has quit (leguin.freenode.net irc.freenode.net). 02:11:08 -!- pikhq has quit (leguin.freenode.net irc.freenode.net). 02:11:10 -!- dbc has quit (leguin.freenode.net irc.freenode.net). 02:11:11 -!- evincar has quit (leguin.freenode.net irc.freenode.net). 02:11:11 -!- Slereah_ has quit (leguin.freenode.net irc.freenode.net). 02:11:11 -!- GregorR has quit (leguin.freenode.net irc.freenode.net). 02:11:11 -!- AnMaster has quit (leguin.freenode.net irc.freenode.net). 02:11:12 -!- revcompgeek has quit (leguin.freenode.net irc.freenode.net). 02:11:12 -!- Judofyr has quit (leguin.freenode.net irc.freenode.net). 02:11:12 -!- oklopol has quit (leguin.freenode.net irc.freenode.net). 02:11:13 -!- Quendus has quit (leguin.freenode.net irc.freenode.net). 02:11:13 -!- Phenax has quit (leguin.freenode.net irc.freenode.net). 02:11:13 -!- bsmntbombdood has quit (leguin.freenode.net irc.freenode.net). 02:11:15 -!- RodgerTheGreat has quit (leguin.freenode.net irc.freenode.net). 02:11:15 -!- sekhmet has quit (leguin.freenode.net irc.freenode.net). 02:11:16 -!- ehird has quit (leguin.freenode.net irc.freenode.net). 02:11:16 -!- sebbu has quit (leguin.freenode.net irc.freenode.net). 02:11:16 -!- sauxdado has quit (leguin.freenode.net irc.freenode.net). 02:11:16 -!- Sgeo has quit (leguin.freenode.net irc.freenode.net). 02:11:17 -!- olsner has quit (leguin.freenode.net irc.freenode.net). 02:11:17 -!- EgoBot has quit (leguin.freenode.net irc.freenode.net). 02:11:17 -!- SimonRC has quit (leguin.freenode.net irc.freenode.net). 02:11:17 -!- Deformative has quit (leguin.freenode.net irc.freenode.net). 02:11:18 -!- Deewiant has quit (leguin.freenode.net irc.freenode.net). 02:12:07 -!- evincar has joined. 02:12:07 -!- revcompgeek has joined. 02:12:07 -!- Phenax has joined. 02:12:07 -!- Judofyr has joined. 02:12:07 -!- Tritonio has joined. 02:12:07 -!- oklopol has joined. 02:12:07 -!- Sgeo has joined. 02:12:07 -!- olsner has joined. 02:12:07 -!- Slereah_ has joined. 02:12:07 -!- RodgerTheGreat has joined. 02:12:07 -!- sebbu has joined. 02:12:07 -!- pikhq has joined. 02:12:07 -!- Quendus has joined. 02:12:07 -!- atsampson has joined. 02:12:07 -!- GregorR has joined. 02:12:07 -!- EgoBot has joined. 02:12:07 -!- SimonRC has joined. 02:12:07 -!- AnMaster has joined. 02:12:07 -!- bsmntbombdood has joined. 02:12:07 -!- dbc has joined. 02:12:07 -!- Deformative has joined. 02:12:07 -!- sauxdado has joined. 02:12:07 -!- mtve has joined. 02:12:07 -!- sekhmet has joined. 02:12:42 -!- Deewiant has joined. 02:13:19 -!- cmeme has joined. 02:13:19 -!- lifthrasiir has joined. 02:17:24 -!- evincar has quit (Read error: 104 (Connection reset by peer)). 02:18:39 -!- revcompgeek has quit (Read error: 110 (Connection timed out)). 02:54:24 there are seven bits of a delicious matrix 02:54:42 and the result makes a payhouse for a grinfizzle 02:54:44 o 03:45:22 -!- oklopol has quit (Read error: 110 (Connection timed out)). 03:46:35 -!- GreaseMonkey has joined. 03:59:33 -!- revcompgeek has joined. 04:01:09 -!- revcompgeek has quit (Client Quit). 05:21:43 -!- Judofyr has quit (Read error: 110 (Connection timed out)). 06:44:01 -!- oerjan has joined. 07:13:42 -!- oerjan has quit ("leaving"). 07:25:40 -!- Sgeo has quit (Read error: 110 (Connection timed out)). 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 09:08:16 -!- Tritonio_ has joined. 09:09:23 -!- Tritonio has quit (Read error: 110 (Connection timed out)). 09:20:36 -!- Iskr has joined. 09:46:10 -!- Tritonio_ has quit (Remote closed the connection). 10:39:06 -!- Tritonio has joined. 10:53:36 -!- GreaseMonkey has quit ("Unisex."). 11:46:34 -!- Judofyr has joined. 11:47:40 -!- theunixgeek has joined. 11:48:14 -!- Corun has joined. 11:48:16 hi, is this channel for esoteric programming languages? 11:49:29 no it is for esoteric magic 11:50:30 oh 11:51:00 Oh you. 11:51:15 Yes, yes it is for programming. 11:51:20 oh 11:51:22 ok :P 11:51:33 anyone know of the FALSE programming language? 11:57:50 -!- theunixgeek has left (?). 12:04:15 Heh. 12:22:38 what, is this a *programming* channel? 12:22:48 * olsner goes look for the esoteric magic channel 12:23:16 *looking 12:26:32 olsner : http://www.greyschool.com/ 12:26:51 "* Technomagick 100: Internet Safety " 12:26:57 "Class Description: As the world of computers and the Internet grows, more and more threats find ways to disrupt our lives. Here at Grey School, we want to help you learn to defend yourself from these threats. Technomagick 100 will teach you a little about the structure of computers, the history of the Internet, and where the dangers are (and how to avoid them!)" 13:01:54 -!- Corun has quit ("This computer has gone to sleep"). 13:31:41 -!- Corun has joined. 14:31:42 -!- Corun has quit ("This computer has gone to sleep"). 15:04:56 -!- ehird has joined. 15:09:28 -!- ehird_ has joined. 15:09:29 -!- ehird has quit (Read error: 104 (Connection reset by peer)). 15:12:29 -!- ehird_ has quit (Read error: 104 (Connection reset by peer)). 15:18:26 -!- ehird has joined. 15:46:57 so, i'm golfing a mini-irc alike 15:47:14 it runs over telnet, and you can 'join x', 'part x', 'say x y', 'whois x', 'names x', and 'quit' 15:47:38 it's currently around 10 lines but doesnt work fully yet. 16:01:30 -!- Corun has joined. 16:28:25 But... 16:28:29 CAN YOU DANCE? 16:36:07 It's snowing in fucking *May*. 16:37:14 -!- Judofyr has quit (Read error: 104 (Connection reset by peer)). 16:37:49 -!- Judofyr has joined. 16:45:35 i just did something i never thought possibly - and pikhq and ais523 will hate me for this - 16:45:42 but i actually got a vim up that's nicer than emacs 16:46:06 * ehird awaits pikhq's "That's impossible!" 16:47:16 That's not impossible, just very, very improbable. 16:47:23 pikhq: But I did it. 16:47:28 It is juicy. 16:47:41 Oh well; fortunately for you, using Vim is not a sin in the Church of Emacs. 16:47:47 My hands are no longer in an eternal game of twister! 16:47:56 pikhq: Hey, I can use both. :D 16:48:18 But I use proprietary software (in fact, one of my favourite editors is proprietary) so I'm a sinner anyway 16:48:36 I have two proprietary programs on hear. . . 16:48:44 Nvidia driver and Flash plugin. 16:48:57 pikhq: 'hear' 16:49:02 and my main OS is proprietary ;-) 16:49:18 I love open source software. I just love proprietary software too. 16:49:34 I'm drinking coffee as we speak. 16:49:53 pikhq: proprietary coffee? 16:51:56 Free coffee, of course. 16:51:57 -!- Judofyr has quit (Read error: 104 (Connection reset by peer)). 16:52:16 -!- Judofyr has joined. 16:53:24 pikhq: As in ... er... beer? 16:53:33 As in speech. 16:53:42 pikhq: Your coffee TALKS?! 16:53:45 * pikhq could also make you some beer that's free as in speech. :p 16:53:53 Hey, it's the LSD I put in it. :p 16:54:04 LSD + Coffee ... well, it's unique I guess 16:54:39 * pikhq nods 16:54:45 Helps me deal with the snow. 16:56:14 pikhq: So between LSD coffee to deal with snow and rituals about a text editor ... 16:56:22 * ehird backs away slowly 16:56:53 It's part of the Fundamentalist Church of Emacs. :p 16:57:10 We also have a dress code: T-shirt, pants, long hair, and a beard of some sort. ;p 16:57:10 pikhq: It's kinda like anti-Christianity: pi may not be used anywhere if not given in full. 16:57:20 * pikhq nods 16:57:46 pikhq: This is why GNU Emacs has no circles, anywhere. 16:57:49 Although you *are* allowed to give an infinite series that equals pi. 16:58:16 Well, it does have circles -- but you never notice, because it freezes trying to calculate all of pi. So every time Emacs crashes, it was just trying to display a circle. 16:59:26 That only applies to FCE copies. 16:59:58 Other, more uncouth copies of Emacs are satisfied with enough digits of pi to compute the size of the known universe to within a few planck lengths. 17:00:10 pikhq: Sheesh. 17:00:14 That is horrifying. 17:00:18 Let's protest. 17:00:53 * pikhq nods 17:02:50 pikhq: I suggest 'HORRIFIC BABY-KILLING MACHINES OF DEATH circles' 17:03:56 * pikhq proposes that Emacs only draw circles using polar coordinates 17:11:51 -!- ais523 has joined. 17:12:03 ais523: hello 17:12:08 if you've been logreading you will soon banish me 17:12:18 hi, and I haven't been logreading 17:12:28 I've been standing at a display all day explaining a massive project to people 17:12:36 ais523: what, C-INTERCAL? 17:12:37 ;-) 17:12:43 ehird: no, a group project for University 17:13:11 the group voted me a 7.3% bonus on my mark for the project based on the amount of work I'd done, which was good 17:13:31 ais523: essentially I switched to vim 17:13:42 ehird: I don't mind that at all 17:13:50 ais523: I am joking of course ;) 17:14:54 ais523: http://golf.shinh.org/p.rb?trivial+encoder i submitted this 17:15:00 the answers are suprisingly long 17:17:04 ehird: I'm surprised there isn't a Perl entry, I think it's got a command to do that, but I may be wrong 17:17:10 * ais523 looks it up 17:18:39 ais523: hmm, cyclexa is pretty untouched 17:18:47 yes, it would be 17:18:50 I haven't been working on it 17:18:57 nor I :-) 17:18:58 I've been busy with other things 17:22:29 ehird: there's a bug in the examples that needs special-casing 17:22:35 ais523: oh dear 17:22:39 there's a newline on the input to problem 3, but not in the output 17:22:40 well, the lexer hasn't been written yet 17:22:41 so :-) 17:26:39 print(<>!~/n/?pack"H*",<>:uc unpack"H*",<>) <- an answer to the correct version of the problem 17:27:06 ais523: correct version? 17:27:17 ehird: if you hadn't made a bug in the exampke 17:27:21 i didn't 17:27:22 actually, it's worse than that 17:27:31 there's a stray A at the end of the solution to problem 3 17:27:46 ais523: wanna fix it? :p 17:33:23 -!- Sgeo[College] has joined. 17:36:20 print+(<>!~/n/?pack"H*",<>:uc unpack"H*",<>),($$%5?'':'A') 17:36:24 -!- Corun has quit ("This computer has gone to sleep"). 17:36:26 my 58-byte solution 17:36:30 maybe I can remove a few parens from that 17:36:42 I just randomize to see whether to compensate for the bug 17:37:16 print+(<>!~/n/?pack"H*",<>:uc unpack"H*",<>),$$%5?'':'A' #56 bytes 17:38:16 hey, I have the shortest solution! 17:39:06 ais523: hee 17:39:15 ais523: now submit a fixed proposal? :P 17:39:19 the stray A makes the problem harder 17:39:27 and I don't feel like fixing the problem all that much 17:39:35 the fix is only a few bytes in my code anyway 17:40:25 eh, but it's not actually supposed to print the 'a', right? 17:40:34 the A is a bug in the problem 17:40:46 so I randomise to determine whether to fix the bug or not (there are three cases, only one is buggy) 17:40:56 and then run repeatedly until the correct case has the bugfix 17:41:04 "Lesbos islanders dispute gay name" - bbc news headline 17:42:40 What do they plan to do about it? 17:42:58 Slereah_: Complain. 17:43:20 ais523: do you need that c-intercal mirror to stay, BTW? nobody has downloaded it 17:43:24 What a bunch of dykes. 17:43:29 Slereah_: loooool 17:43:32 ehird: not particularly 17:43:37 do you want to take it down for some reason? 17:43:44 it's useful to have the spread-out version 17:43:52 but it's only a mirror, there are other sites 17:44:03 ais523: all of my 8 log files are empty 17:44:06 100% empty 17:44:07 apart from me 17:44:08 a few times 17:44:09 :-) 17:44:14 so nobody is downloading it 17:44:27 most likely they download from the site they're used to 17:44:37 but yeah i was going to switch my server to ubuntu, because i need some newer packages 17:44:49 I don't mind a bit, or a lot, of downtime at all 17:45:01 that's what mirrors are for, right? Speeding up downloads, and bridging across downtime? 17:45:16 ais523: true 17:45:22 it just might be a while before i get an httpd on there again 17:49:34 ais523: so ... alright to do BIG WIPE OF DETH? 17:56:14 ais523: no? :P 17:56:22 ais523: yes, fine 17:56:27 sorry, I didn't notice your higlight 17:56:36 I was too focused on something else 17:57:43 -!- jix has joined. 18:20:09 say I have a value at (0,0) in Befunge. How would I use 'g' to get that? 18:20:18 00g 18:20:43 doh 18:20:51 i was doing 100g. 18:20:55 wondering why it was returning 49 18:20:56 lol 18:21:12 * Phenax forgets simple things 18:23:40 100g,p500 00g,@ .. prints 11 - shouldn't it be 15? 18:24:23 oops 18:24:24 omg 18:24:25 Phenax: what are you trying to do there? 18:24:27 i am silly:D 18:24:32 there are far too many 0s, I think 18:24:54 you've written the p500 backwards, it seems 18:24:59 yeah 18:25:09 with it the right way it prints 1| 18:25:36 the second char's a literal ASCII 5, I suspect 18:27:05 100g,500p, 00g.@ works 18:27:12 yes, it would do 18:27:14 100g,500p 00g.@ works 18:27:31 the difference is that the first g reads the char '1' from the playfield 18:27:39 whereas the second g reads the number 5 18:28:44 :\ 18:29:02 the char '1' is a command that puts the number 1 on the stack 18:29:26 Be back later all 18:29:47 22* returns the char 4 or the integer 4? 18:29:55 Phenax: integer 4 18:30:07 but 2 returns the char 4? 18:30:07 you get chars reading from the playfield 18:30:10 i mean char 2 18:30:13 ah 18:30:18 yeah.. ok.. thx 18:30:19 but integers calling the command 18:30:46 g2g thx 18:31:41 -!- Sgeo[College] has quit ("http://www.mibbit.com ajax IRC Client"). 18:43:28 -!- ais523 has quit ("(1) DO COME FROM ".2~.2"~#1 WHILE :1 <- "'?.1$.2'~'"':1/.1$.2'~#0"$#65535'"$"'"'&.1$.2'~'#0$#65535'"$#0'~#32767$#1""). 19:02:17 -!- ais523 has joined. 19:10:16 -!- jix has quit (Nick collision from services.). 19:10:26 -!- jix has joined. 19:20:39 -!- timotiis has joined. 19:26:46 -!- ais523_ has joined. 19:26:54 -!- ais523 has quit (Read error: 104 (Connection reset by peer)). 19:27:11 -!- ais523_ has changed nick to ais523. 19:41:07 -!- jix has quit (Read error: 104 (Connection reset by peer)). 19:51:05 Guys. 19:51:11 With Wolfram's numbering. 19:51:16 What would be rule 34? 19:51:30 34 is 00100010 19:52:06 so that's output a 1 under 101 and under 010 19:52:14 and output a 0 otherwise 19:52:49 state Zero "0" to One if < Zero and > Zero; 19:52:56 state One "1" to Zero if < One and > One. 19:53:09 (I can't quite remember ALPACA's syntax, but that should be close enough) 19:53:20 sorry, that's wrong 19:53:31 under 101 and under 001 19:53:47 state Zero "0" to One if > One; 19:53:51 state One "1". 19:54:05 Slereah_: is that what you had in mind? 19:54:54 Indeed. 19:55:07 just write the number out in binary, number the bits 0-7 with three bits, then each bit specifies the outcome depending on three input bits 19:55:38 iirc, rule 30 and 110 are the most famously turing complete ones 19:55:48 was 30 proved Turing-complete? 19:55:56 I don't think 30 was proved. 19:56:03 I thought it was just believed to be. 19:56:18 it's certainly complicated enough to look like it might be TC 20:07:28 I prefer rule 0. 20:07:38 well, it definitely isn't TC 20:07:49 at least, not the cellular automaton by that name 20:07:54 I'd like to see a paper /proving/ that. 20:07:59 :P 20:08:07 GregorR: no journal would accept it, it would be too trivial 20:29:56 -!- Corun has joined. 20:35:06 You -> o [Malbolge interpreter] o <- Delicious cake 20:35:11 You -> o [Malbolge interpreter] o <- Delicious cake 20:35:18 You -> o [Malbolge interpreter] o <- Delicious cake 20:35:20 Thar. 20:35:23 What do you do? 20:35:35 um 20:35:40 Slereah_: enter malbolge program 20:35:40 Slereah_: go round the bottom Malbolge interpreter, using the whitespace on your last-but-one line 20:35:51 that seems the safest option 20:35:51 ais523: hah 20:35:59 ais523: it's a gap 20:36:00 you know it 20:36:03 weren't you here last time? 20:36:08 last time what? 20:36:13 ais523: he did a cake challenge 20:36:15 if not, go into the logs! 20:36:18 it's just a few days ago 20:36:20 maybe yesteryda 20:36:52 -!- ais523 has set topic: * Topic for #esoteric set by ehird at Tue May 1 20:38:58 2008 http://tunes.org/~nef/logs/esoteric. 20:37:00 -!- ais523 has set topic: * Topic for #esoteric set by ais523 at Tue May 1 20:38:58 2008 http://tunes.org/~nef/logs/esoteric. 20:38:34 I do not advise trying your tricks. 20:38:44 Lions and grues prowl outside this very line. 20:41:56 -!- Iskr has quit ("Leaving"). 20:42:32 Slereah_: ouc 20:42:33 h 20:43:43 Well, what do you expect in a place with a Malbolge interpreter lying around. 20:44:06 You can't expect this to end well. 20:44:57 whatever evil lurks around the malbolge interpreter, you probably don't even want to *contemplate* the evil lurking inside it 20:45:07 (Previous cake is here, minus the color : http://tunes.org/~nef/logs/esoteric/08.04.29 ) 20:45:23 "Screw that, I'm trying the lions!" 20:45:43 ehird: it was the day befor yesterday, actually 20:45:48 10:31:07 Didn't the cake just eat us? 20:45:53 (/me fixed the typo in the quote) 20:49:36 * ais523 has finished log reading the last IRP cake RPG 20:49:46 I was a bit disappointed that the cake turned out not to be a lie in the end 20:50:18 Well, lying cakes are only good for vidya games. 20:50:24 Internet cakes must simply be reached. 20:50:37 well, an IRP cake game is hardly an audio game 20:54:01 You -> o [Malbolge interpreter] o <- Delicious cake 20:54:05 Try your luck! 20:54:31 * ais523 feeds a Hello, World program to the Malbolge interpreter 20:54:42 copying it off the Esolang wiki, because writing Malbolge is hard 20:55:25 ais523: i never actually expected to get the cake 20:55:39 Slereah_: what happens? 20:55:43 o[Malbolge interpreter]Hello, world. o <- Delicious cake 20:56:04 I feed myself to the Malbolge interpreter. 20:56:33 [Malbolge interpreter]invalid character in source file o <- Delicious cake 20:56:38 AAAAAAAAH 20:56:46 RESTART 20:56:58 You -> o [Malbolge interpreter] o <- Delicious cake 20:57:24 hmm... it's hard to see how to get around this without actually writing some Malbolge 20:57:32 EXAMINE Malbolge interpreter 20:57:45 It is an interpreter. For the Malbolge language. 20:57:49 in particular, I check to see if it's Ben Olmstead's original Malbolge interpreter, or a newer one 20:58:00 The original one. 20:58:10 OK 21:00:35 ais523: ... 21:00:38 we're waiting! 21:00:41 I know 21:00:48 Slereah_: Can we formulate malbolge programs given a description of what it does? 21:00:49 I was looking for buffer overflows in the interp, but couldn't find any 21:01:14 hacking the interp is easier than actually writing Malbolge programs 21:01:34 ais523: but look what i said 21:01:36 to Slereah_ 21:01:44 yes, I saw that 21:02:12 ais523: I love how we threw the dead lion and just flew with it previously 21:02:43 Well, you can try hacking in. 21:02:44 Slereah_: when I fed the hello world program to the Malbolge interp, were the os that came out people? 21:03:08 Is that a metaphorical question? 21:03:14 Slereah_: no 21:03:34 I was wondering if I could feed a hello world to it and then ask the people that came out to throw me some slices of cake back 21:04:15 ais523: you just know they would be malicious 21:04:16 like before 21:04:20 Well, the cake would probably just land on the interpreter. 21:04:20 and that a lion would appear somehow 21:04:27 and there would be no CAR to JESUS CHRIST GET INTO 21:04:47 Slereah_: iNVENTORY 21:05:42 ehird : I wouldn't try something like that. 21:05:47 OR WOULD I? 21:05:49 http://membres.lycos.fr/bewulf/Russell/Lion.jpg 21:06:14 hahahah 21:06:23 Inventory : Supply of letters. 21:06:27 Hacking tools. 21:06:36 A length of rope. 21:06:38 Slereah_: do I have any letters with ASCII codes above 128? 21:07:16 A rubber chicken, with a pulley in the middle 21:07:26 Slereah_: monkey island! yay! 21:07:42 Well, it wouldn't be an adventure game without some rope and a rubber chicken 21:07:51 Slereah_: I kill the Malbolge interpreter. If that doesn't work, I kill it with a 9. 21:07:55 Same reason I included matches last time :o 21:08:27 How do you kill that which has no life? 21:08:35 Slereah_: with my hacking tools 21:08:46 I assume there's a signal generator in there somewhere 21:08:47 Well, you have to be more specific then. 21:08:58 but beware of the lion hidden in the code! 21:11:22 The hacking tools only permits you to GO INSIDE THE INTERPRETER 21:11:41 Sort of like Beneath a steel sky, when you ENTER CYBERSPACE 21:12:22 OK 21:12:34 going inside a Malbolge interpreter is unlikely to be a sane idea 21:12:50 Slereah_: I fill the Malbolge interpreter with 59049 non-breaking spaces 21:13:08 that causes it to go into an infinite loop 21:13:13 should make things slightly safer 21:14:01 yeah, keep the malbolge interpreter busy while you carefully go back out the way you came 21:14:50 Is there a simple way to generate 59049 chars. 21:15:21 Slereah_: I start with three non-breaking spaces 21:15:32 I then make three copies of my three non-breaking spaces, so I have 9 non-breaking spaces 21:15:42 I then make three copies of those, gaining 27 non-breaking spaces 21:15:46 'kay. 21:15:51 and so on 21:15:53 What does non-breaking mean? 21:15:56 until I have 59049 21:16:07 Slereah_: it's the character  , rather than an ordinary space 21:16:18 How to do such a char? 21:16:22 it has an ASCII code above 128, and so gums up the Malbolge interpreter due to the bug in it 21:16:50 Can't I just use something above 128 that's on my keyboard? 21:16:57 Slereah_: there's one there, just after the colon 21:17:01 but yes, you can if you like 21:17:11 I will use 21:18:45 once the Malbolge interpreter's busy with that, I look to see if there's a nearby source of water, and if there isn't proceed to enter the interpreter 21:20:34 Notepad seems to not appreciate 59049 characters. 21:20:39 It is currently not responding. 21:20:52 Slereah_: remember to delete the final newline 21:21:22 But, you know, even if it is a malbolge interpreter, it is not hostile 21:21:33 it won't run after you if you try to search for water. 21:21:37 Slereah_: yes, but I wanted to keep it busy while I went inside 21:21:45 the water's to cool it down if that infiniloop makes it overheat 21:24:39 Traceback (most recent call last): 21:24:39 File "G:/Python25/59.py", line 1, in 21:24:39 p=open("G:\Documents and Settings\Slereah\Bureau\test.txt","w") 21:24:39 IOError: [Errno 2] No such file or directory: 'G:\\Documents and Settings\\Slereah\\Bureau\test.txt' 21:24:48 Oh Python, why must you be so cruel to me. 21:25:03 I was just gonna do a loop to write in! 21:27:43 * ais523 tried to upload such a file to the Pastebin 21:27:50 it's a one-liner to generate that in Perl 21:28:01 but it rejected the file because it thought it was binary 21:28:41 Done it. 21:30:11 well, can I enter the interp now? 21:30:36 http://membres.lycos.fr/bewulf/Russell/Busy.jpg 21:30:40 What do you do now? 21:31:02 I look around for a safe pathway. 21:31:20 if I see one, I run along it 21:31:38 [Malbolge interpreter] o 21:31:41 Oops 21:31:45 o[Malbolge interpreter] o 21:32:06 There seems to be no danger from outside. 21:32:12 Slereah_: sorry, I didn't phrase that properly, I meant look for a pathway going deeper into the interpreter 21:32:42 Wot 21:32:43 grr, programming is hard, even in IRP 21:33:25 If you want to go explore into the interpreter, just say so. 21:33:29 yes, I do 21:33:34 I thought I'd said that already 21:33:40 I want to go explore into the interpreter 21:33:50 what is going on here? 21:33:58 summary? 21:34:20 AnMaster : Delicious cake. 21:34:25 AnMaster: I immobilised a Malbolge interpreter using 59049 metacharacters, and have now used hacking tools to go inside it in search of delicious cake 21:34:41 I have a supply of letters, a rope and a rubber chicken with a pulley in it 21:34:53 ^_^!!! 21:35:05 AnMaster: see logs for the day before yesterday for the previous episode 21:35:10 I wasn't there then, though 21:35:39 http://membres.lycos.fr/bewulf/Russell/Inside%20the%20beast.jpg 21:35:43 This can't be good. 21:36:45 I carefully climb down to the first line of the comments. 21:37:02 -!- ais523_ has joined. 21:37:21 -!- ais523 has quit (""Changing server.""). 21:37:24 -!- ais523_ has changed nick to ais523. 21:37:41 (freenode asked me to change server due to downtime on the one I was connected to.) 21:37:49 Slereah_, Dev-C++? 21:37:53 for windows 21:37:58 I think it is that, isn't it? 21:39:29 It is 21:41:57 so, I clamber carefully down to the first comment 21:42:05 then start climbing down the column of asterisks 21:42:30 oh, and as you're using Windows, no wonder my signal generator didn't work 21:43:15 http://membres.lycos.fr/bewulf/Russell/Inside%20the%20beast%202.jpg 21:43:16 http://membres.lycos.fr/bewulf/Russell/Inside%20the%20beast%203.jpg 21:43:24 You're lucky that lion was looking the other way! 21:43:40 yes, I am 21:43:44 what lion there? 21:43:51 although I would have tried to distract it with the rubber chicken if necessary 21:44:25 I climb down to the bottom of the column of asterisks, grabbing the author's credits on the way 21:44:43 "a rubber chicken with a pulley in it" 21:44:45 !? 21:44:49 Huh? 21:45:00 EgoBot, I fully agree 21:45:36 ais523, no! grab something that would work for comments 21:45:48 I don't think you can survive outside a comment for long 21:46:07 AnMaster: yes I can, I gummed up the interpreter with a whole load of high-bit-set characters 21:46:15 it's a known bug in that particular Malbolge interpreter 21:46:23 yes but will that not cause a compile error? 21:46:33 when there is a o outside a comment? 21:46:39 thus killing the interpreter? 21:47:07 AnMaster: not sure, you generally have to explore a lot to discover the physics of Slereah_'s game worlds 21:47:10 Well, he has limitless chars in his pockets. 21:47:22 He can just make a comment cloak. 21:47:36 ais523, check if it is c99 compiler 21:48:01 Slereah_, good point hm 21:48:08 AnMaster: trying to figure out a safe way to do that 21:48:08 http://membres.lycos.fr/bewulf/Russell/Inside%20the%20beast%204.jpg 21:48:11 http://membres.lycos.fr/bewulf/Russell/Inside%20the%20beast%205.jpg 21:48:32 Slereah_, what happened to that space above in the latter? 21:48:38 http://membres.lycos.fr/bewulf/Russell/Inside%20the%20beast%206.jpg 21:48:40 Slereah_, also ais523 did grab the copyright 21:48:50 Oops. 21:48:52 no, apparently it was too heavy for me to move 21:49:02 (The spaces are back on) 21:49:21 Slereah_, care to scroll down the window a bit? 21:49:31 What copyright? 21:49:33 ais523, you need a cloak like /*o*/ 21:49:43 I carefully this on the next few lines, while hiding inside the comment: 21:49:45 I climb down to the bottom of the column of asterisks, grabbing the author's credits on the way 21:49:56 #if __STDC_VERSION > 199901 21:50:01 #pragma DIAGNOSTIC 21:50:02 #endif 21:50:10 "I carefully this" you mean "place this"? 21:50:14 AnMaster: yes 21:50:16 it was a typo 21:50:19 ok 21:50:29 Slereah_, so what happens with that diagnostic? 21:50:31 and that Malbolge interp's public domain, so no copyright 21:50:43 ok, credits then 21:51:17 you know, this executes slower than my attempt at a befunge93 interpreter in bash.... 21:51:24 lmao 21:51:32 IRP must be the slowest language in existance 21:51:45 AnMaster: is a befunge93 interpreter in bash faster or slower than a befunge93 interpreter in INTERCAL? 21:52:32 ais523, not sure 21:52:39 maybe we could test 21:52:48 well not when it is compiler 21:52:51 compiled* 21:53:01 C-INTERCAL 0.28 has a Befunge-93 interp in the /pit directory 21:53:15 after all C-INTERCAL can take advantage of GCC's -O options 21:53:23 OK, I'll run it over here under CLC-INTERCAL 21:53:30 ais523, also it was semi-98 21:53:37 as in did implement some parts of 98 21:53:58 what's a fair test? The Befunge-93 part of Mycology? 21:54:01 like unlimited height of playfield, but not unlimited width 21:54:19 ais523, well that bit would detect it as 98 I think 21:54:20 Interfunge errors out on excessive height or width 21:54:34 so I'd have to crop down Mycology anyway 21:54:47 well pastebin the cropped version 21:54:52 but let IRP continue 21:55:01 Slereah_, well what happend with that diagnostic? 21:55:09 Slereah_, care to tell us? 21:56:13 no? 21:57:42 http://membres.lycos.fr/bewulf/Russell/Inside%20the%20beast%207.jpg 21:57:45 http://membres.lycos.fr/bewulf/Russell/Inside%20the%20beast%208.jpg 21:58:04 http://membres.lycos.fr/bewulf/Russell/Inside%20the%20beast%209.jpg 21:58:14 and then? 21:58:20 if nothing happens, it's C89 21:58:31 (It's slow to load!) 21:58:32 well you got to move down one line 21:58:37 unless the compiler really does interpret a #pragma DIAGNOSTIC 21:58:43 and yes, I jump down below the #endif 21:58:48 in fact not jump, duck 21:58:58 http://membres.lycos.fr/bewulf/Russell/Inside%20the%20beast%2010.jpg 21:59:00 Oh-oh. 21:59:01 ais523, as it is windows.... well could be gcc or msvc 21:59:17 AnMaster: yes, it could be 21:59:28 Slereah_, that is because you can't replace a running executable on windows.... 21:59:35 but that's a pretty good C89 vs C99 test that doesn't crash the program and works at compile time 21:59:50 AnMaster : I'm not the one feeding him infinite chars! 22:00:03 most C99 compilers will complain about a bad pragma if they see that code 22:00:04 Slereah_, well we was assuming a real OS 22:00:19 Slereah_, as in POSIX 22:00:22 AnMaster: no, I was assuming Windows when I saw the font in the command line, and the directory name given there 22:00:29 ah 22:00:36 that's why my signal generator didn't work 22:00:43 ais523, well problem is you can't replace a running executable on windows 22:00:51 hahahaha 22:00:52 ais523, err signal generator?! 22:00:59 AnMaster: to kill things, with 9s 22:01:00 AnMaster can make even a cake challenge into an OS-pissing contest 22:01:04 and protest about things that aren't standard 22:01:44 ehird, Windows and pre-OSX are the only OS I have seen where you can't replace a open file 22:02:01 AnMaster: you're still doing it 22:02:03 that's great 22:02:11 AnMaster: well, even on POSIX replacing a running file doesn't alter the running of the program 22:02:21 ais523, true 22:02:26 Slereah_, so he isn't dead 22:02:38 Well, he's still running on that file. 22:02:41 Slereah_, still show us compiler output? 22:02:46 not linker one 22:02:52 Wot? 22:02:53 AnMaster: that is so a metagame output 22:02:57 ah 22:03:00 s/output/request/ 22:03:07 true 22:03:10 not valid then 22:03:14 no, I just continue through the game and see if I come across a diagnostic later 22:03:47 ais523, you can output chars with C preprocessor 22:03:52 err 22:03:52 So, what do you do? :o 22:03:53 strings 22:03:53 AnMaster: how? 22:04:03 ais523, there is a 99 bottles of bear in C preprocessor 22:04:09 looking for details 22:04:14 Slereah_: I work my way down to the main function 22:04:25 ais523, hiding in comments 22:04:48 AnMaster: look at the earlier pics, I have a comment cloak on already 22:05:03 ais523, apparently #pragma message 22:05:06 http://99-bottles-of-beer.net/language-c-c++-preprocessor-115.html 22:05:18 not portable, then 22:05:26 see the comment, it says it works only in Visual C++ 22:06:13 hm ok 22:06:18 and we now know it is Gcc 22:06:19 ais523, ^ 22:06:28 AnMaster: how? 22:06:47 it could be any other compiler claiming to be C99 22:06:48 ais523, his screenshot of linker output is from the open source IDE Dev-C++ 22:06:53 oh 22:06:57 thus it must be GCC 22:07:01 Borland C++? 22:07:10 not for Dev-C++ iirc 22:07:10 I used to use that, and IIRC they open-sourced some old versions 22:07:12 afaik 22:07:26 besides an open source IDE is still capable of using a closed-source compiler 22:07:29 ais523, last I checked Dev-C++ used mingw stuff 22:07:37 not sure if it could be changed 22:07:38 maybe 22:07:40 + it says ld 22:07:49 which indicates mingw I think? 22:07:51 http://membres.lycos.fr/bewulf/Russell/Inside%20the%20beast%2011.jpg 22:07:57 Oh-oh, what's that comment? 22:08:13 Slereah_, what one? the one below? 22:08:18 http://membres.lycos.fr/bewulf/Russell/Inside%20the%20beast%2012.jpg 22:08:24 Like you didn't knew it. 22:08:29 wow 22:08:32 ais523, you got issues 22:09:08 Slereah_: I quickly wrap myself in a string literal that initialises a global variable, and then attempt to attack the comment with a C preprocessor. 22:09:42 (this is why I grabbed the credits, BTW; it's so I don't discredit the author while throwing preprocessors aroung.) 22:09:49 Could you rephrase that statement in the term of a copypasta? 22:10:07 char abc="/*o*/"; 22:10:11 (that's how I cloak myself) 22:10:26 and then run the preprocessor, it's probably with the -E option if you use mingw 22:10:29 err 22:10:32 should eliminate all comments and everything inside them 22:10:33 ais523, no you need a * 22:10:37 char * abc... 22:10:43 so I do 22:10:47 char* abc="/*o*/"; 22:10:59 incidentally, isn't my original typo still legal C? 22:11:03 you can assign a pointer to an int 22:11:11 and nothing's looking at abc, so the UB is never invoked 22:11:14 I'm trying to make a loop that continually goes +1 in Befunge: 0 00g1+00p 00g, - after nine it turns into ;, and keeps turning into different symbols. How can I make it a number and not a character? 22:11:27 Phenax, err? 22:11:31 Phenax: start with a NUL in the top left corner 22:11:37 ah 22:11:43 Phenax, you want ascii one? 22:12:03 or write one there yourself: 000p00g1+00p00g, (and reloop) 22:12:07 because that is what you are doing 22:12:20 and use numeric output not string output 22:12:21 ais523, yes, you need to write it out yourself in fact 22:12:26 indeed 22:12:32 http://membres.lycos.fr/bewulf/Russell/Inside%20the%20beast%2013.jpg 22:12:46 Slereah_, what about the pre-processor? 22:12:50 thx i understan 22:12:54 (You are once again of that shiny red, you feel more real already!) 22:12:59 How do I run preprocessor? :o 22:13:08 and then run the preprocessor, it's probably with the -E option if you use mingw 22:13:20 but you'll want -o too to give an output file, or it'll output to stdout 22:13:29 indeed 22:13:55 great ASCII art, BTW 22:14:04 yeah 22:14:14 (I should probably close the malbolge program by the way, it's starting to take way too much power) 22:14:36 Slereah_: yep, it'll just infiniloop for ever, so no need to keep it running because you know what it'll do 22:14:42 Slereah_, well in the game it is still running 22:14:49 Let's say that. 22:14:56 So, what do I input where? :o 22:15:17 Slereah_: gcc -E malbolge.c -o malbolge.i at the command line is possibly the simplest wat 22:15:21 s/t$/y/ 22:15:35 I should also probably save the C file 22:15:37 Slereah_, well in a terminal something like: gcc -E oldfile.c -o newfile.c 22:15:37 or most IDEs have a preprocess option in the menus somewhere 22:15:45 Slereah_, yep 22:15:49 000p 'deletes' 00 :\ 22:15:51 you'd have to 22:16:03 Phenax, of course it overwrites itself 22:16:04 Phenax: you're overwriting your own code, but that's fine in Befunge 22:16:13 if you don't want to, just put a space at the start of the program 22:16:18 so it's overwritten instead 22:16:23 you just want a program to just add 1 to a counter? 22:16:28 Phenax, is that correct? 22:16:37 and that counter needs to be in funge space? 22:16:39 I think Phenax is deliberately trying to do it using g and p 22:16:51 if it doesn't, you could just do: 22:16:52 1+ 22:16:54 that would be all 22:16:56 on stack 22:17:01 err 22:17:03 Well in BuQunge (I don't know if it's crap, but I like debugging, so I use it in conjunction with vanilla) it literally just deletes the value and leaves it blank 22:17:04 to print it to 22:17:09 1+:. 22:17:11 should work 22:17:22 Phenax, BeQunge is crap yes 22:17:26 correct guess 22:17:30 Phenax: NULs are invisible, so you can't see them 22:17:32 bequnge is buggy 22:17:40 if i do 22:17:42 0 000p 22:17:45 it comes out as 22:17:48 Phenax, try ccbi, it got good debugging 22:17:51 000p 22:17:51 or cfunge for speed 22:18:02 http://membres.lycos.fr/bewulf/Russell/Go%20and%20be%20free.jpg 22:18:03 but cfunge lacks good debugger yet 22:18:08 so it probably works, you just can't see what happened 22:18:10 I don't care much for speed 22:18:17 gcc no works. 22:18:19 Slereah_, duh. full path of course 22:18:23 on windows 22:18:29 Any recommended editor for Befunge? It's kind of annoying to edit :\ 22:18:35 Phenax, I use emacs... 22:18:39 Phenax: Emacs' picture-mode is good 22:18:42 It says that gcc is not a valid command, AnMaster. 22:18:49 ais523, picture mode? 22:18:52 Slereah_: it's probably on your computer, it just can't find it 22:18:55 Slereah_, that is because it isn't in PATH 22:18:56 AnMaster: M-x picture-mode 22:19:02 causes all lines to become logically infinitely long 22:19:22 and you can set the cursor motion after you type a char to go downwards or backwards if you like 22:19:27 AnMaster : Then whar? 22:19:36 Slereah_, I don't know on windows 22:19:39 search for it... 22:19:46 I'm a LINUX and BSD user 22:19:47 Slereah_: not sure what directory it's in, but searching for gcc.exe should tell you 22:19:54 AnMaster: I used to use Windows quite a bit 22:19:59 but I didn't use mingw 22:20:03 ais523, I used it some 22:20:16 ais523, and I got custom location for mingw anyway 22:20:25 it varies depending on how it was installed 22:20:39 ie: by itself, by dev-c++, by msys 22:20:43 and by version 22:21:17 ais523, ah the picture mode is mostly useful when you got a small screen 22:21:30 I tend to keep my befunge programs no wider than 100 chars 22:21:35 AnMaster: it's useful anyway, to avoid the need to fill lines with spaces 22:21:39 you press down, the cursor goes down 22:21:44 ais523, ah true right 22:21:45 no problems with jumping to the end of the next line 22:22:12 ais523, does it remove unneeded trailing spaces? 22:22:16 yep 22:22:27 and un-needed trailing newlines? 22:22:28 but you have to watch out for it converting spaces to tabs 22:22:36 ais523, ugh 22:22:42 M-x untabify works 22:22:48 it doesn't convert spaces to tabs 22:22:53 but it adds them as tabs sometimes 22:22:56 Ah, GCC was on the other hard drive. 22:22:59 actually, I'm not sure about the trailing spaces 22:23:01 let me check 22:23:42 (What's the command to change HD?) 22:23:46 no, it doesn't remove them 22:23:49 Slereah_, why not just a real OS, even ehird prefers POSIX, Mac OS X is POSIX 22:23:56 ais523, nor ending newlines? 22:23:56 Slereah_: D: to change to drive D 22:24:00 Slereah_, why not just a real OS, even ehird prefers POSIX, Mac OS X is POSIX 22:24:03 I love how you say that casually 22:24:04 AnMaster: presumably not in that case 22:24:08 Except F:. 22:24:18 I am utterly speechless how you can consider that a viable option to do for the sake of an irc game. 22:24:31 Slereah_, you could use f:\full\path\to\gcc.exe 22:24:36 AnMaster: technically speaking Windows is POSIX too, at least when they tested it they got a 'did not definitively fail' answer 22:24:45 and that was with lots of special stuff just to get it to pass the tests 22:24:54 ais523, yeah, exactly 22:25:59 ais523, but how the heck did they handle that POSIX requires case sensitive filenames? 22:26:02 iirc it does 22:26:14 probably a hack on the ~1 stuff 22:26:42 I wonder how they handled fork()? Probably just by returning ENOTIMPLEMENTED, IIRC they did that whenever it was allowed 22:27:07 http://membres.lycos.fr/bewulf/Russell/Go%20and%20be%20free%202.jpg 22:27:10 Pime Taradox. 22:27:34 Slereah_, "Pime Taradox" means? 22:27:47 http://www.encyclopediadramatica.com/Pime_taradox 22:27:56 well, in that case I continue on my journey through the program 22:27:58 not that site please... 22:28:07 Back in 30 mins 22:28:10 then I add this: 22:28:14 #define return exit 22:28:19 AnMaster: os x is a case insensitive filesystem 22:28:22 Under? 22:28:26 AnMaster: and its posix 22:28:32 ehird, it is? didn't know that 22:28:34 Slereah_: under the # 78 line 22:28:35 its even a real unix 22:28:38 certified 22:28:48 ehird, ok, I stand corrected 22:28:56 not that site please... 22:28:57 ehird: its case sensitivity is user-configurable, I think 22:28:58 more complaining 22:29:05 you asked him to define a word 22:29:06 he defined it 22:29:18 since its on ed, it'll be a *chan or similar meme 22:29:24 ergo ED will be the only place for a definition 22:29:28 sans urbandictionary or osmethign else 22:29:31 ais523: not really 22:29:37 its unsupoprted 22:29:38 back in 30 mins 22:31:00 http://membres.lycos.fr/bewulf/Russell/Go%20and%20be%20free%203.jpg 22:31:06 Really, it is very telling. 22:31:17 Slereah_, oh? 22:31:17 People would rather trick Satan than write in Malbolge. 22:31:23 hahaha 22:32:00 well, I then through a 59050th top-bit-set character into the interpreter 22:32:03 wait for it to error out 22:32:14 and then run out through the exit(1) that I've just modified the source code into 22:32:23 s/through/throw/ 22:32:44 ais523, good good! 22:33:09 Shouldn't you get out of it before you throw stuff in? :o 22:33:25 * ais523 is lucky Ben Olmstead always but parens around the argument to return 22:33:51 Slereah_, err? 22:34:02 Slereah_: OK, that seems reasonable 22:34:17 I write # 1 "malbolge.c" on the line immediately below where I am 22:34:30 then that's line 1 of the program, by definition, so I'm at the place where I entered 22:34:35 and can easily leave 22:34:54 Damn you and your trickery! 22:35:13 Slereah_, he is playing by the rules! 22:35:21 o[Malbolge interpreter] o 22:35:27 o[Malbolge interpreter] o 22:35:34 Well, you're blue now, mister comment. 22:35:38 Slereah_: I throw in the 59050th char 22:35:39 ais523, throw the bit in! 22:36:19 ais523, that cause a crash doesn't it iirc? 22:36:22 yep 22:36:32 to be precise, it causes an exit(1) with the new source code 22:36:38 then all I have to do is run through that exit 22:36:42 ah :) 22:36:45 Slereah_, there we are :D 22:37:35 Slereah_, and there is NO way you will get anyone to write malbolge for this you know 22:38:49 o[Malbolge interpreter] Can't open file o 22:39:03 YOU ARE NO CLOSER TO THE DELICIOUS CAKE 22:39:08 Slereah_: I run through the exit it created when it put the "Can't open file" up 22:39:10 Oh god. 22:39:23 Corun: been watching? 22:39:30 No. 22:39:41 But, I played the delicious cake game with slereah as the game master the other day 22:40:06 Corun: this time wasn't just ASCII art, it also had screenshots of ASCII art 22:40:11 with syntax higlighting 22:40:12 Heh. 22:40:16 Hefty 22:40:34 [Malbolge interpreter]o o 22:40:53 Slereah_: I walk over to the delicious cake 22:41:01 [Malbolge interpreter] oo 22:41:07 Slereah_: I eat the delicious cake. 22:41:11 [Malbolge interpreter] o 22:41:14 Tadaaaa! 22:41:28 yay! 22:41:39 But still, a simpler solution was to change the program to make it output "o" and input yourself in :o 22:41:51 BTW, a long time ago I was working on an esolang-based text adventure 22:41:58 I've only done three puzzles 22:42:03 none of which lead to anywhere useful 22:42:09 but it might still be fun over IRC 22:42:11 Not even cake? 22:42:15 Slereah_: not yet 22:42:25 * ais523 wonders whether to promise "There will be cake" 22:42:34 I've only done three puzzles 22:42:44 although if I do make that promise, I'll put some cake in as an item 22:42:45 seen adventure game in b93 22:42:49 though very simple 22:42:57 and there is wumpus for b93 22:42:59 AnMaster: there's a Befunge Hunt the Wumpus 22:43:05 as I just said 22:43:11 my game wasn't in an esolang, although I might translate it into one 22:43:17 but it had esolang-based puzzles 22:43:35 aha 22:43:45 You are standing in the main hall of what appears to be some sort of 22:43:49 castle. There is a door in each of the east and west walls; the one in 22:43:50 the west wall has a [ symbol marked on it, but there are no markings on 22:43:50 the door in the east wall. There is a large staircase, which goes upwards 22:43:50 to a balcony high on the north side of the room. The south of the room is a 22:43:50 large door, heavily barred with wooden bars that you would have no chance 22:43:50 of lifting. 22:43:58 three possible ways to go 22:44:00 each one leads to a different puzzle 22:44:08 none of the puzzles lead anywhere yet, though 22:44:13 although there are 4 possible destinations 22:44:54 Also, here's your end theme ais523 : http://youtube.com/watch?v=RthZgszykLs 22:45:11 Slereah_: can't watch it, I decided to uninstall Flash 22:45:21 because it isn't good for much other than watching videos 22:45:29 and most Flash-based websites are lousy 22:46:14 it prevents me watching YouTube, though 22:46:17 Phenax, still there? 22:46:20 >1+:aaa**`!#v_a,@ 22:46:20 ^ .: < 22:46:30 simple befunge-98 counter that prints 1-1000 22:46:32 AnMaster: that looks lousy in a proportional font 22:46:41 ais523, well don't use that for irc 22:46:44 use a monospace one 22:46:45 and you could make that befunge-93 easily enough 22:46:53 ais523, indeed 22:46:56 just replace the a 22:47:01 with say 52* 22:47:17 or for aaa*** why not 5558*** 22:47:20 5558*** is probably the easiest way to write 1000 in Befunge-93 22:47:21 I think 22:47:22 ha, snap 22:47:23 yeah 22:47:37 ais523, not sure if it is the shortest 22:48:00 shortest, or smallest? 22:48:03 I just divided with 5 each time 22:48:05 remember Befunge is 2D 22:48:10 ais523, shortest in source code 22:48:21 what if there was a 2x3 solution? 22:48:24 err 22:48:32 fewest instructions 22:49:05 anyone want a go at the text adventure I started above, anyway? 22:49:07 ais523, I just divided by 5 a few times as I knew it would be even numbers each time 22:49:21 AnMaster: 5 and 2 are the only prime factors of 1000 22:49:34 multiplying 5 with 2, or 5s with each other, goes above 10 22:49:37 ais523, don't have any calculator for that around 22:49:42 so multiplying the 2s is the only sane way 22:49:56 $ factor 1000 22:49:56 1000: 2 2 2 5 5 5 22:49:59 it's in GNU coreutils 22:50:05 so it's probably on your computer 22:50:11 on freebsd atm 22:50:11 but I knew that one off by heart anyway 22:50:21 Well, prime factorisation is unique 22:50:23 bash: factor: command not found 22:50:29 Slereah_, true 22:50:30 OK, so not on your computer 22:50:36 And since 10*10*10 = 1000, it's pretty obvious that it's 2 and 5 22:50:38 but I didn't have any handy tools to do it 22:50:44 and 22:50:46 tor maj 1 23:50:46 CEST 2008 22:50:49 tired 22:51:02 AnMaster: you're 1 hour later than me, then 22:51:09 but feel free to leave, nobody's keeping you 22:51:17 well I want to stay around 22:51:21 OK 22:51:23 anyway infinite counter is easier: 22:51:32 1+:. 22:51:34 that is all 22:51:44 not sure if there is any shorter way 22:51:51 doubt it 22:51:59 unless there's an increment instruction 22:52:01 what about other languages? 22:52:30 ais523, not that I know of, not in core, and not in any fingerprints I implemented iirc 22:52:32 I can't think of one that's shorter than Befunge for that 22:52:44 Haskell is one longer.. [1..] 22:52:57 Phenax: that's not a program, just an expression 22:53:06 so it'll work in ghci, I think, but not ghc 22:53:25 * ais523 tests 22:53:42 what about brainfuck? 22:53:43 yeah it you're right 22:53:48 t.hs:2:0: parse error (possibly incorrect indentation) 22:53:52 Brainfuck is wrapping. 22:53:57 ESO decided it! 22:54:03 AnMaster: doing integer to text conversion's a pain in Brainfuck 22:54:04 Slereah_, well so is befunge 22:54:06 at some point 22:54:30 if you do have integer output, say o, it would be +[o+] 22:54:36 Slereah_, for cfunge, depending on compile time options, either MAX_UINT32 or MAX_UINT64 22:54:40 or whatever the contants are 22:54:40 err 22:54:41 Are there any other good "General Purpose" esoteric languages like Befunge? 22:54:43 P'' then :o 22:54:43 MAX_INT32 22:54:49 and MAX_INT64 22:54:50 then 22:54:58 Phenax: if you're talking about usability, Befunge's one of the best 22:55:11 although I find Thutu useful for some things, it's more useful with wimpmode arithmetic 22:55:15 Phenax, there is even socket support in Befunge 22:55:24 Yeah, I'm looking for something esoteric but still not impossibly insane to make something like the Sieve of Eratosthenes in 22:55:25 Phenax, with the correct befunge-98 fingerprint 22:55:31 of course.... 22:55:32 and INTERCAL's pretty good for many things, but extremely weak on string handling 22:55:39 BeQunge isn't b98 22:55:46 but b93+crap-correctness 22:55:48 i'm using ccbi for now 22:55:50 if you don't use strings, though, writing programs is not too hard 22:55:54 Phenax, ccbi is good, very good 22:56:04 yeah, i'm mainly looking at doing mathematical programs 22:56:18 Phenax, I think Sieve of Eratosthenes may be implemented 22:56:22 not 100% sure 22:56:29 oh, and INTERCAL outputs in Roman numerals by default, but there are libraries for output in decimal 22:56:37 lol! 22:56:55 Phenax: http://intercal.freeshell.org 22:57:13 Phenax, http://esolangs.org/wiki/Befunge#Examples 22:57:14 "Sieve of Eratosthenes" 22:57:18 Phenax, already done :) 22:57:31 It is rather short :o 22:57:37 don't ask me how it works, I need to analyze it first 22:57:47 seems to be 93 though 22:57:58 Befunge is ackward to program in a regular text editor lol 22:58:41 yep 22:58:51 Atari-syntax INTERCAL is much easier 22:59:07 but that syntax was designed to work well on ASCII-based systems 23:00:06 Phenax, well I don't know, depends on coding style 23:00:27 Phenax, mostly you can make program flow simply like: 23:00:35 > xxxxxxxxxx v 23:00:43 v < 23:00:49 yeah 23:00:50 > yyyyyyyyyy v 23:00:52 and so on 23:00:57 loops and such as needed 23:00:59 AnMaster: you're wasting every second line 23:01:03 v>xxxxxx 23:01:04 ais523, yes indeed 23:01:08 v>xxxxxxx 23:01:12 v>xxxxxxxx 23:01:14 hah 23:01:16 v>xxxxxxxxx 23:01:23 ais523, yes but adding new stuff is a pain 23:01:34 at anywhere but the start 23:01:49 night 23:01:57 * ais523 is going too 23:01:59 -!- ais523 has quit ("(1) DO COME FROM ".2~.2"~#1 WHILE :1 <- "'?.1$.2'~'"':1/.1$.2'~#0"$#65535'"$"'"'&.1$.2'~'#0$#65535'"$#0'~#32767$#1""). 23:02:13 I wonder if I could do a Church numeral -> ASCII converter for Lazy Bird. 23:02:28 Checking if a combinator is a numeral is easy enough. 23:02:54 It would get rid of all the . problems. 23:03:11 And be terrible to program in, but well. 23:13:00 * Slereah_ downloads the malbolge interpreter again 23:13:12 Mine is full of strange things for some reason. 23:21:13 back 23:25:12 anyone want a go at the text adventure I started above, anyway? 23:25:13 i did 23:25:15 but then he left 23:27:31 -!- Judofyr_ has joined. 23:27:31 -!- Judofyr has quit (Read error: 104 (Connection reset by peer)). 23:28:26 I just inputed an empty file in the Malbolge interpreter, and it does not terminate :o 23:28:45 Slereah_: Of course not. 23:29:07 Then why did Ais needed 59.049 to do that? 23:29:30 -!- comex has joined. 23:29:46 Slereah_: ? 23:29:50 Oh. 23:29:52 i don't know. 23:29:54 He's silly. 23:29:59 I think to keep it busy. 23:30:03 As opposed to just inflooping 23:30:07 It, or me? 23:30:24 brb 23:37:47 Slereah_: do another cake challenge 23:37:50 but with a cross of 23:37:55 zork & hunt the wumpus 23:37:55 :D 23:37:59 (i.e. no actual pics) 23:40:21 I do not know what those are. 23:40:33 Plus, I'm not the one barging in on the code :o 23:40:37 Slereah_: google 'em 23:41:42 By no pix, do you mean no pix, or not even ASCII art? 23:41:57 http://en.wikipedia.org/wiki/Hunt_the_Wumpus 23:42:04 "What a Wumpus might look like 23:42:11 Thank you Wikipedia. 23:42:56 Slereah_: not even ascii art 23:43:01 play zork online 23:43:03 (google it) 23:43:03 :o 23:43:22 Slereah_: wait: 23:43:24 I doubt I have the game mastering skill necessary. 23:45:10 Slereah_: http://thcnet.net/zork/index.php zork 23:45:20 you get the ide 23:45:21 aa 23:45:36 Any grue? 23:45:43 Slereah_: Zork is where grues originated 23:45:44 (seriously) 23:45:47 D: 23:46:01 Slereah_: zork invented grues 23:46:28 I know, you said it three lines above 23:46:45 but oddly worded 23:47:35 Plus, such a game would need an actual scenario of some sort. 23:47:45 I would have to, you know, actually work at it. 23:49:07 Slereah_: Nawwww 23:50:24 Slereah_: 23:50:25 http://bnewtz.cannet.com/wumpus/ 23:51:32 * Slereah_ tries to think of an idea. 23:52:24 I'm not a big fan of text based adventures 23:52:27 I tried once. 23:52:33 With "Nine prince in Amber". 23:52:54 Slereah_: Wumpus aint a text adventure 23:53:00 but it is quite excruciating to find out what you can act upon 23:53:30 It's a type-and-shoot game of bottomless pit proportions! 23:54:20 But Zork is 23:55:06 Sure 23:55:11 So clone Wumpus 23:55:14 Cakeus 23:55:38 Slereah_: it's less excruciating with many modern interactive fiction games 23:55:46 THE CAKE HAS BEEN KIDNAPPED BY NINJAS 23:55:57 ARE YOU BAD ENOUGH A DUDE TO FIND THE CAKE? 23:56:32 sauxdado: YES 23:57:36 Slereah_: for the same reason that many modern webpages look so much nicer than the pages from the 90s 23:58:07 sauxdado : Would it be that much tougher to just make a LIST option to list what's active? 23:58:15 -!- olsner has quit ("Leaving"). 23:58:44 Slereah_: Removes some challenge 23:58:44 Slereah_: that's a different genre. 23:59:07 Slereah_: consider a Quake clone where you have a list of options of which monster to kill. 23:59:19 Well, I suppose that at least easily savable games would make it nicer 23:59:45 sauxdado : Most adventure games do this in some form 2008-05-02: 00:00:06 Objects that you can interact with usually are easy to spot 00:00:07 Slereah_: No they do not 00:00:14 Yes usually 00:00:18 Unless they're pixel hunting games. 00:00:20 So: LOOK 00:00:42 Slereah_: i haven't played any interactive fiction games where there would be problems with saving. 00:00:56 I suppose I'm just lame :o 00:01:05 I'm not very used to all-comand 00:01:06 RodgerTheGreat: Y'know what's really great about my People from the Internet T-shirt? No two people interpret it in /quite/ the same way :P 00:01:13 usually you do it with "save" 00:01:14 I started 'em computers in 95. 00:01:30 GregorR: haha awesome 00:01:44 Lynx to T shirt plox 00:01:48 many really good IF games came out _after_ 95. 00:02:23 But didn't have good publicity apparently. 00:02:26 Never heard of them 00:02:39 Even though I had CD's with 5000 sharewares back then 00:02:50 GregorR: examples? 00:03:44 RodgerTheGreat: Some people just find it funny, some people think I'm making vast claims about all Internet users (which I am, but that's not the point X-P), some people are offended (somebody wearing a Linux T-shirt was :P), ... 00:03:55 lmao 00:04:06 Slereah_: really good things tend to not be very popular. Modern IF is often more of an art form than a game genre. So it's not very popular outside of a small community of artsy-programmer geeks. 00:04:09 What are those T shirts :o 00:04:16 that last one alone makes it beyond worthwhile 00:04:41 sauxdado : I played silly arcade and Lucas Arts adventure games back then. 00:04:55 What was popular 00:04:58 RodgerTheGreat: It definitely draws comments X-D 00:05:06 * sauxdado checks when photopia came out 00:05:17 1998 00:05:50 and photopia kinda started a wave 00:06:15 it's like... one of the first modern IF game or something 00:06:23 so you're unlikely to have been playing any in 95 00:07:12 sauxdado : I tried this one : http://en.wikipedia.org/wiki/The_Colour_of_Magic_%28computer_game%29 00:07:55 well, that's ancient and probably very crappy 00:08:00 And this one : http://www.mobygames.com/game/nine-princes-in-amber 00:08:14 So no game from after 86 for me :o 00:08:23 yeah 00:08:30 sauxdado: what do you think of the HHGTTG game? 00:08:32 that rocked 00:08:33 I only tried them because I like the series. 00:08:52 Slereah_: the difference between those games and modern IF games is about as big as the difference between _graphical_ games from now and from '86 00:09:01 Heh. 00:09:13 Although Nine prince in Amber was sort of graphical 00:09:15 okay, maybe not as extreme, but very appreciable 00:09:25 It had big ANSI pix to go with the text. 00:09:43 ehird: i'm not really a big fan.... 00:09:50 sauxdado: sux 00:09:55 ehird: i never got far in it (or any other infocom game) 00:09:56 sauxdado: of the books or.. 00:09:59 they're so hard! 00:10:00 But Maniac Mansion was okay though. 00:10:02 but yeah 00:10:04 i didn't get far either 00:10:07 they are really really hard 00:10:08 And it's from 87. 00:10:14 it is funny though 00:10:16 Slereah_: oh lawd maniac mansion owns 00:10:16 > i 00:10:18 You have: 00:10:26 a splitting headache 00:10:27 no tea 00:10:35 Although Maniac Mansion was too linearly-non-linear 00:10:43 sauxdado: I gotta admire the code that was behind that 00:10:50 it's like AMICED in turkey bomb 00:10:51 By that I mean that you could do a lot of things, but few of them got you to the end. 00:10:57 Slereah_: That was the game's strength 00:11:01 Ever microwaved the hamster? 00:11:07 Grave of player appears in the yard. 00:11:10 Never went far enough to do it. 00:11:11 Well 00:11:16 microwaved then gave back to owner 00:11:26 But I did microwave it in DOTT! 00:11:36 Slereah_: Lucasarts buddies <3 00:11:44 Heh. 00:11:47 SMOOCH 00:12:38 I played most of them, except some of the very first. 00:12:48 Zack and another one I think 00:12:55 I never went far on Indy 3 also 00:13:02 Fucking mazes. 00:13:03 I tried Zack once 00:13:05 It was haaaard 00:13:20 I can 'speed run' Monkey Island 1 pretty well though 00:13:22 6 hours or so max 00:13:27 Not really a speed run 00:13:29 But not slow either 00:13:40 I know most of the solutions :D 00:13:48 I even got the DIG novel. 00:14:03 dig's atmosphere was incredible 00:14:06 it was really hard though 00:14:21 i never actually completed monkey island 2 00:14:27 because of lechuck in the fucking underground caves 00:14:31 Well, it was packaged with Afterlife, which was even harder :o 00:14:38 (Not an adventure game) 00:18:22 Slereah_: monkey island 4 suxed 00:18:46 That's because nothing is as good as it used to! 00:19:04 -!- timotiis has quit (Read error: 110 (Connection timed out)). 00:19:22 Slereah_: but MI4 did sux. 00:19:36 Also cartoon adventure games do not adapt well to 00:19:38 3D 00:20:03 They should just have gone back to the serious graphics of 1 and 2 if they wanted to do 3D. 00:20:55 Slereah_: Loom was a work of art. y/n 00:21:07 y 00:21:20 Although it was rather short. 00:22:43 i never finished it 00:22:44 ;( 00:23:43 It can never be finished. 00:23:47 it ends on a cliffhanger. 00:23:51 SPOILER 00:24:01 YOU SHOULD PROBABLY NOT HAVE READ THAT 00:24:10 Slereah_: i think i know the ending 00:24:11 maybe 00:24:11 but 00:24:13 it DOES end 00:24:14 obviousl 00:24:15 y 00:24:16 right? 00:24:19 i mean, it doesnt go 00:24:21 Yes. 00:24:21 "NO END FOR YOU" 00:24:23 and stay like that forever 00:24:24 :P 00:24:25 It ends. 00:24:32 but, Slereah_, sequels were planned 00:24:34 thus the cliffhanger 00:24:34 But A POWERFUL SUSPENSE SHROUDS THE ENDING 00:26:03 That's why people probably shouldn't do cliffhangers in a business where sequels usually end in the trash :o 00:28:23 "The package also offered an illustrated notebook, The Book of Patterns, supposedly belonging to apprentice weavers in the game world." 00:28:35 Man, I would have liked to know this when I got the game. 00:29:43 Apparently the second game was about Nailbender 00:29:53 I wonder what the interface would have been like. 00:30:06 But I suppose that when you have a hammer, every problem looks like a nail. 00:31:21 Back 00:31:33 I should buy the Loom original package. 00:31:38 Apparently the second game was about Nailbender 00:31:38 I wonder what the interface would have been like. 00:31:38 But I suppose that when you have a hammer, every problem looks like a nail 00:31:39 qdb-worthy 00:32:02 Do we even have a qdb? 00:33:15 I love how you say that as if any channel without a quote database is living in the stone age :P 00:33:23 Slereah_: We will. 00:33:31 When eso-std.org is up. 00:33:34 It will also have a pastebin 00:33:35 ;) 00:34:31 But when will ESO be thar! 00:39:10 Slereah_: Later. 01:19:37 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)). 01:21:08 -!- Slereah has joined. 01:21:22 I accidentally kick my computer, and everything goes to hell 01:22:01 heh 01:24:38 -!- Sgeo has joined. 01:26:22 Sgeo! 01:26:28 Hi Slereah 01:26:34 THE CAKE HAS BEEN KIDNAPPED BY NINJAS! 01:26:46 ARE YOU BAD ENOUGH A DUDE TO RESCUE THE CAKE? 01:26:58 No. 01:27:05 Well, too bad. 01:27:15 It's so delicious and moist. 01:29:33 Slereah: I am 01:29:46 -!- evincar has joined. 01:30:23 ehird: My Selector interpreter is almost done. I just need to get off my ass and add BECOME and ESCAPE. 01:30:35 ehird : Mehby tomorrow. 01:30:41 I've got exam tomorrow. 01:30:45 And it's 2:30 01:30:56 Slereah: AW COME ON 01:30:59 I need delicious cake 01:30:59 Heh. You and your silly time zone. 01:31:01 It's 1:31 01:31:03 and I need cake 01:31:04 damnit 01:31:14 YOU SEE A CAKE IN FRONT OF YOU 01:31:17 WHAT DO YOU DO? 01:31:42 EAT CAKE 01:32:08 I CAN HAZ CAKE PLX? 01:32:51 YES YOU CAN 01:32:52 Um. 01:32:55 HALP! 01:33:03 KTHXBYE 01:33:36 Heh. The site error page reads "Esolang has a problem." 01:33:47 ...which it does on a *normal* day. ^_^ 01:34:39 That will teach you to program a website on PSOX! 01:35:22 * Sgeo doesn't appreciate using "PSOX" as a synonym for "buggy" 01:35:25 btw, my hello world for Selector was a bit flawed. I forgot to add a PICK ZERO after the first GO BACK, so it output a null in place of an H. 01:35:40 Fix't. 01:36:00 * Sgeo doesn't appreciate using "PSOX" as a synonym for "buggy" 01:36:06 Sgeo : Here, have a kitten 01:36:07 nobody cares what you appreciate in relation to PSOX 01:36:07 http://membres.lycos.fr/bewulf/Divers/27-esteem3.jpg 01:36:10 just thought I'd point that out 01:37:36 Still no update on EsCo speaking of which :o 01:38:18 Slereah: tee hee 01:41:48 -!- Slereah has quit (Read error: 104 (Connection reset by peer)). 01:42:49 I don't see why "PSOX" would be a synonym for "buggy" though 01:42:54 Is it really buggy? 01:43:29 Sgeo: It's vaporware. But mainly we make fun of it because you'd never shut up about it. 01:43:37 (Added a cat program) 01:43:39 also, SAFETY 01:44:17 ehird, if people expressed interest, I'd work on it. Also, if 1.0b1 is done, there will be no Safety 01:44:45 -!- Slereah has joined. 01:44:52 wb Slereah 01:44:57 It seems that a slight shock makes my computer crash :o 01:45:07 I tried the obvious solution, by hitting it even more 01:45:10 But no dice 01:52:43 Can I get your opinion on a site layout I'm designing? 01:52:47 http://www.aquilocomputers.com/computers/delta.shtml 01:52:59 You need a modern, fairly standards-compliant browser. 01:53:12 evincar: Eurgh. My eyes broke., 01:53:13 It uses transparency a lot, and I'm wondering how readable it's going to be. 01:53:22 evincar: And if you think that page is standards compliant think again. 01:53:37
  • // unobtrusive javascript eh 01:53:41 If you're viewing it in IE. 01:53:46 Why is there a pink computer you queermo. 01:53:49 Which is evil and bad. 01:54:04 I needed a preview image and that was the first case to show up on newegg. 01:54:10 evincar: Err, do it via javascript. 01:54:15 You can easily find the elemtns and apply the styles. 01:54:19 The Behaviour library makes it good. 01:54:25 evincar: Adn you have a doctype i nthe middle of the page, wtf. 01:54:32 No I don't. 01:54:36 That's the crappy hosting. 01:54:41 evincar: Oh. 01:54:47 Anyway. 01:54:50 i don't really like the design. 01:54:51 sorry. 01:55:18 So how isn't it standards-compliant? Other than the fact that my code gets broken by my host? 01:56:11 (@ehird) 01:56:27 -!- pikhq has quit (Read error: 104 (Connection reset by peer)). 01:56:51 btw evincar 01:56:51 http://bennolan.com/behaviour/ 01:56:55 for the js 01:57:50 Is there any interest in PSOX? 01:58:25 Sgeo: no 01:59:45 ehird: please answer my question! If the code is nonstandard in too many places, I want to change it! 02:00:14 evincar: not necessarily nonstandard 02:00:15 but ugly 02:00:18 don't inline JS like that 02:00:22 it's about the spirit not the letter 02:00:24 use behaviour like i linked 02:00:55 I'll use something like it. I really want my own codebase on this one, since it's going to be proprietary. 02:02:22 evincar: looool! 02:02:33 you are refusing to use an open source library, because you're writing aproprietary site? 02:02:34 that's great 02:02:35 ehird: If people stopped using IE, I wouldn't have to waste time and money hacking for it. ^_^ 02:02:44 No, that's not it. 02:02:49 evincar: So wait, what are you going to do, disable right clicking? 02:02:51 It's because it's a learning experience. 02:03:02 It's not a learning experience to rewrite a simple library :| 02:03:30 bye for today :) 02:03:34 And disabling right-click is the stupidest thing possible. 02:03:43 mm baloney and salsa sandwich 02:03:45 Urgh. 02:03:46 -!- Corun has quit (Read error: 110 (Connection timed out)). 02:03:50 -!- ehird has quit (Remote closed the connection). 02:04:24 * evincar high-fives Phenax for making an awesome sandwich in the spirit of eso 02:04:41 :> 02:05:22 -!- pikhq has joined. 02:06:47 -!- evincar has quit ("ChatZilla 0.9.81 [Firefox 2.0.0.14/2008040413]"). 03:05:59 "Copies input to output until ASCII 26 (EOF)" <- why 26? 03:54:26 -!- GreaseMonkey has joined. 04:03:29 -!- sebbu2 has joined. 04:20:12 'later folks. I'm officially on vacation. 04:20:23 -!- RodgerTheGreat has quit. 04:20:54 -!- sebbu has quit (Read error: 110 (Connection timed out)). 04:20:54 -!- sebbu2 has changed nick to sebbu. 05:20:52 -!- Judofyr_ has quit (Read error: 110 (Connection timed out)). 06:31:47 -!- kalyaka has joined. 06:32:37 -!- kalyaka has left (?). 06:44:17 -!- Judofyr has joined. 06:53:07 -!- Judofyr_ has joined. 06:53:07 -!- Judofyr has quit (Read error: 104 (Connection reset by peer)). 07:19:03 -!- olsner has joined. 07:34:37 -!- Iskr has joined. 07:44:40 -!- pikhq_ has joined. 07:50:14 -!- pikhq has quit (Read error: 110 (Connection timed out)). 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:16:18 Deewiant, there? 08:16:30 Deewiant, should & instruction handle negative numbers? 08:16:35 as in -3 being input 08:16:48 both ccbi and cfunge seems to strip the - 08:18:55 Deewiant, also is this correct for mycouser in ccbi: 08:19:00 UNDEF: STRN fingerprint not loaded, won't check I. 08:19:32 I thought CCBI implemented STRN? 08:26:37 -!- Sgeo has quit (Read error: 110 (Connection timed out)). 08:28:31 Phenax, there still? I made my counter a bit nicer: http://rafb.net/p/ijksY522.html 08:28:32 bbl 08:40:10 Arr, I've lost the more optimized forms of that recursive fibonacci that were on mooz's befunge page which is now gone; I only have the intermediate form http://rafb.net/p/Ra5Nj196.html 09:53:38 AnMaster: & is quite precisely specified, negatives don't work. 09:54:02 as regards STRN, evidently the mycology version that's out has an 'r' left there instead of '('. :-P 09:57:45 That & specification sounds curious: it reads "up until (but not including) the point -- where the next digit would cause a cell overflow"; but in one particular case that depends on the character. For signed 32-bit, after reading "214748364" you should still read the next digit if it's 0-7, but not if it's 8 or 9. 09:59:04 I wonder how many implement it like that. 09:59:11 CCBI does. :-) 09:59:26 I guess it needs a one-character lookahead for the "stopped being digits" thing anyway. 10:00:05 although there's probably a specific input where CCBI gets confused and returns the wrong thing. 10:04:43 -!- bsmntbombdood has quit (Read error: 110 (Connection timed out)). 10:04:53 -!- bsmntbombdood_ has joined. 10:05:22 -!- Tritonio has quit (Remote closed the connection). 10:24:18 back for a moment 10:24:25 fizzie, I don't need to worry 10:24:27 strtoll: 10:24:29 If the correct value is outside the range of representable values, {LONG_MIN}, {LONG_MAX}, {LLONG_MIN}, or {LLONG_MAX} shall be returned (according to the 10:24:29 sign of the value), and errno set to [ERANGE]. 10:25:00 from POSIX specs for strtol/strtoll 10:27:44 hm wait, that may not work 10:42:13 And what good does strtol do, if you want to stop reading before an overflow would occurr, and not clamp the value. 10:42:15 true 10:42:28 guess I will have to change it 10:42:52 ah, gnulib got a strtoll 10:42:53 so I can just use a copy with some changes I hope 10:43:18 gah, seems more complex 10:43:25 -!- GreaseMonkey has quit ("Unisex."). 10:43:25 -!- Slereah has quit (Read error: 104 (Connection reset by peer)). 10:43:25 -!- Slereah has joined. 11:04:24 # define LLONG_MAX 9223372036854775807LL 11:04:25 Please input a number: 777777777777777777777777777777777777777 11:04:25 UNDEF: got 3014526681976609905 which is hopefully correct. 11:04:25 hm 11:05:09 it works fine for numbers that doesn't overflow 11:07:26 7777777777777777777 * 10 + 7 = 3990801482939571313 !? 11:07:34 fizzie, Deewiant ^ 11:07:39 don't know, don't care 11:07:46 stepping through gdb seems to show it is 11:07:49 and that's insane 11:11:16 Well, I don't think that's very strange. 77777777777777777777 modulo 2^64 is 3990801482939571313. 11:11:49 fizzie, it overflows in other words 11:11:58 however, how do I detect that happened? 11:12:42 if less than it was before? 11:12:49 or are there cases where that won't work? 11:14:08 fizzie, oh but I did use signed type, int64_t, not uint64_t 11:14:11 hm 11:16:47 Signedness doesn't really matter that much. Or, well, it does matter in that signed integer overflow is undefined behaviour, but most places use two's-complement representation for signed numbers and do the sensible thing. 11:17:19 well, how would you handle this reading then 11:17:55 fizzie, the "overflow to avoid" would be either 32-bit signed or 64-bit signed, depending on compile time options 11:21:39 Well, if you want to catch the overflow before it happens, you need two tests; if x > FOO_MAX/10, then already the x*10 would overflow, and if that x*10 > FOO_MAX-a, then x*10+a would overflow. 11:23:35 fizzie, is the result of signed overflow undefined or implementation defined 11:23:40 in C99 11:23:53 Undefined is my guess, but I didn't check the standard. 11:25:40 it doesn't seem to be mentioned with the word "overflow" at least 11:26:05 only thing about overflow is for floating point 11:27:02 oh I see 11:27:14 search doesn't find ligatures in the pdf 11:27:28 "overflow" that isn't fl but a ligature 11:27:33 * AnMaster sighs 11:29:53 Well, 3.4.3 undefined behavior "An example of undefined behavior is the behavior on integer overflow." 11:30:21 yeah 11:30:29 fizzie, and that was the ligature 11:30:40 so didn't find it with a search at first 11:30:43 brb, phone 11:30:45 Xpdf really should allow searching with regexps, 'over.low' would've helped. 11:35:10 well kpdf 11:35:21 but same engine I think 11:35:29 poppler or whatever it is called 11:35:56 fizzie, even odder is that the search dialog contains a regex checkbox, but it is greyed out 11:36:10 it is the standard KDE search dialog so... 12:01:34 Gaiz. 12:01:41 Any of you knows how to use rost? 12:01:50 Frost 12:31:52 Frost? sounds familiar 12:31:56 can't place the name 12:32:05 Slereah, related to freenet? 13:26:19 -!- Corun has joined. 13:35:04 AnMaster : yes 13:35:31 Like the usenet of freenet. 13:43:41 -!- Corun has quit (Connection timed out). 13:45:11 Slereah, I used that once 13:45:14 was ages ago 13:45:22 don't remember really 13:45:27 well first you need freenet 13:45:32 then you need frost 13:45:39 Frost is already isnstalled 13:45:45 Would you happen to know how to download the archives of a group? 13:45:48 both are coded in java iirc, so you'll need a JRE 13:45:58 I don't have anything more recent than the instalation. 13:46:02 Slereah, I think they are announced on some list 13:46:08 if they are public 13:46:15 there is no list of all the groups existing 13:46:25 rather, you got to know the name 13:46:26 I already know the groups 13:46:35 What I want is, the messages from before I got thar. 13:46:43 there is some list where ppl announce groups 13:46:52 Slereah, huh? that is not possible really 13:47:05 I remember doing that on some newsgroup :o 13:47:11 there is no archive of old messages 13:47:14 Although it was not me, but a guy who helped me. 13:47:30 I got like messages years old that way 13:47:47 nor is there by default for usenet 13:48:11 Slereah, also by default frost will expire old messages iirc 13:48:13 Are newsgroups just utterly terrible? 13:48:22 er? 13:48:30 You know, as a value judgement. 13:48:43 Slereah, look, if no one is doing public logging of an irc channel, there won't be any history 13:48:52 it's the same for usenet afaik 13:48:58 and definitly the same for freenet 13:49:04 where logging would be considered BAD as well 13:49:31 It is quite bad when there's the concept of threads involved. 13:49:45 Even a few days of old messages would be nice! 13:50:01 Not to post repetitive threads that you can't see. 14:25:07 Slereah, anonymity and security are considered more important I think 14:27:00 Making an archive won't make them less anonymous :o 14:27:21 And since anyone can join, not that less secure. 14:28:56 that depends on group 14:28:59 some need key 15:16:52 -!- Judofyr_ has changed nick to Judofyr. 15:26:56 -!- chammiya has joined. 15:27:10 -!- chammiya has quit (Client Quit). 15:27:55 -!- jix has joined. 16:08:07 -!- Judofyr has quit (Read error: 104 (Connection reset by peer)). 16:08:38 -!- Judofyr has joined. 16:11:28 -!- Judofyr has quit (Read error: 104 (Connection reset by peer)). 16:11:44 -!- oklopol has joined. 16:11:54 -!- Judofyr has joined. 16:52:17 -!- ehird has joined. 16:58:01 -!- ehird has quit (Remote closed the connection). 17:14:57 -!- ehird has joined. 17:16:04 http://pastebin.ca/1005115 - How come this doesn't work in Befunge? (Noob) 17:16:18 Should endlessly loop through numbers and output 1 if even 0 if odd 17:26:19 let's take a look 17:27:29 wait a bit, i need to look up what the opers are 17:28:04 http://quadium.net/funge/spec98.html 17:28:17 http://quadium.net/funge/spec98.html#Quickref 17:29:05 ah 17:29:20 well, naturally that will crash after 9, you're aware of that? 17:29:50 well, i need to do 010p somewhere before that 17:29:56 but why isn't it working up to 9 17:31:07 what does it do ? 17:31:17 Should endlessly loop through numbers and output 1 if even 0 if odd 17:31:24 yes, but what does it do? 17:31:31 oh 17:31:33 nothing 17:31:44 i think it gets stuck in an infinite loop somewhere 17:32:43 I've got to go now.. i'll play around with it later 17:32:53 i'll try and locate the problem 17:32:57 Single-stepping with the javascript befunge interpreter made it look like it'd work up to 9. 17:33:11 well, there you havit 17:33:12 *have it 17:33:19 But if you're not printing a newline, your interpreter might not show the output. 17:36:39 After '9' it first turns to a ":" which shouldn't cause too much trouble, then a ";" which in funge98 should probably be a no-op since it'll just wrap-around, and after that it'll become a "<", at which points there'll be "><" in the top left corner and it'll get stuck there. 17:36:55 I get an output of "1 0 1 0 1 0 1 0 1 0 1 1" before that. 17:37:35 fizzie - the third befunge expert in this channel! 17:40:19 Well, I really wouldn't use the word "expert"; all I've done in Befunge (apart from some even sillier tests) are that recursive fibonacci and a turing machine interpreter, syntax-highlighted; and I even lost that last one. 17:41:52 fizzie: But you can read and write it ;) 17:43:25 There's not that many instructions in it, after all. 17:43:58 -!- Corun has joined. 17:56:34 -!- Corun has quit ("This computer has gone to sleep"). 18:03:13 ehird: and he's partially implemented a Befunge-98 interpreter. :-P 18:03:25 Deewiant: WHO HASN'T 18:03:25 :p 18:03:27 :-) 18:03:38 s/implemented/released/ ;-) 18:04:35 I also has a habit of doing a befunge-93 interpreter (except with "a-f work as hexadacimal digits, and ' like in funge-98" features) whenever learning a new language. 18:08:42 Yeah.. My problem I fixed 18:08:52 I just figured out ccbi debugger well :) 18:09:00 http://pastebin.ca/1005156 -> working copy 18:09:14 change 'a' to '52*' on befunge 93 obv 18:10:13 g2g 18:12:05 cfunge 0.2.1 will be released in a few hours 18:14:07 fizzie, "syntax-highlighted"? 18:14:18 how on earth do you syntax highlight befunge? 18:14:25 AnMaster: um 18:14:26 his OUTPUT 18:14:29 was syntax hgihglihted 18:14:30 after all, stuff can mean different things depending on direction 18:14:30 and besides 18:14:31 ah ok 18:14:32 I see 18:14:35 of course you can syntax highlight befunge 18:14:40 it just needs to be clever 18:14:47 ehird, well extremely cleaver 18:15:00 AnMaster: just make things *shade* 18:15:02 :DD 18:15:06 then they combine 18:15:15 + I got no clue how to handle stuff like, something being a string one way, and a code path the other 18:15:16 No, no. The code was syntax-highlighted. 18:15:25 I think I used about a dozen different colors for it. 18:15:26 say: 18:15:30 v 18:15:36 "abc" 18:15:46 + 18:15:47 or whatever 18:15:58 AnMaster: you shade it so that "a and c" are string colour 18:16:01 v and + are their colour 18:16:06 and b is a blend of its instruction colour 18:16:06 and then there is x 18:16:07 and string colour 18:16:08 :DDD 18:16:12 so you can have a string spread out 18:16:17 AnMaster: read what i said 18:16:19 it's evil 18:16:20 but delicious 18:16:24 I just made an HTML table, with different background colors for different areas. I think there were three sets of colors. 18:16:28 by first setting delta to be non-cardinal 18:16:59 And then a documentation block. "This ugly-red part frozzes the buzznigator. The ugly-green part is where the magic happens. This even uglier color... I don't know what it does." 18:17:13 ehird, true, but you still can't handle non-cardinal code paths, in fact I think being able to perfectly syntax highlight any possible befunge would require tracing the program 18:17:16 fizzie: Literate colorforth! 18:17:29 AnMaster: that could work ... most of the time 18:17:34 ehird, say if the program used p to put an x in the code, then executed that x 18:17:38 if you don't use filesystem and similar fingerprints 18:17:38 :D 18:17:55 how the heck would the syntax highlighter know where the string was 18:18:18 ehird, err, x sets delta, that means, you can do stuff like executed every third instruction diagonally 18:18:19 AnMaster: tracing the program 18:18:24 AnMaster: ;D 18:18:25 string handling that way would suck 18:18:43 ehird, right, as if you want that on a buggy program with o instructon 18:18:47 instruction* 18:18:58 and then there is ?, so tracing *may* lead to different results 18:19:00 AnMaster: i'm joking. Can you please make yourself familiar with the concept? 18:19:12 ehird, oh, you seemed like serious 18:19:30 AnMaster: I was, in an evil-maniac-grin-with-bloodshot-gawping-eyes kind of way 18:19:37 hah 18:19:47 I think you might get relatively interesting-looking syntax highlighting with purely static program analysis, although of course all Real Befunge Programs are self-modifying-to-a-high-degree. Still, it'd be... colorful. 18:36:44 heh 18:36:57 syntax highlighting befunge has been done 18:37:47 (using tracing and re-tracing when the program gets modified, i'm pretty sure) 18:46:23 -!- oerjan has joined. 18:54:14 -!- Corun has joined. 18:58:32 sauxdado, yeah, that would be the only way for non-simple cases 18:58:57 trace highlight that way has been done for befunge93 I'm pretty sure 18:59:06 but rendered as a image 18:59:42 oh, you want some other befunge? 18:59:54 i guess it gets trickier with 98 features 19:00:44 sauxdado, of course I want 98 19:00:56 oh 19:01:13 or rather, that is what I would care about 19:01:24 I'm not that interested in highlighting really 19:01:28 of befunge I mean 19:01:54 * AnMaster is about to release cfunge soon, waiting for stuff to build and upload it 19:02:01 version 0.2.1-pre1 19:05:59 got TRDS done yet? 19:10:29 -!- jix has quit (Nick collision from services.). 19:10:39 -!- jix has joined. 19:20:28 cfunge-0.2.1-pre1 uploaded 19:20:31 Deewiant, I won't do it 19:20:32 .. 19:20:50 Deewiant, https://sourceforge.net/project/shownotes.php?group_id=221310&release_id=596614 19:21:30 bah, that's it 19:21:37 i'm writing a funge-98 interpreter 19:21:40 f*ck you guys 19:21:42 :| 19:21:46 ehird, what?! 19:21:49 :D 19:21:58 AnMaster: shame. :-) 19:22:08 AnMaster: i can no longer face the torment 19:22:18 and trds NEEDS IMPLEMENTING DAMNIT 19:22:33 ehird, ccbi got it 19:23:13 AnMaster: ccbi is not fruit 19:23:20 err? 19:24:19 common citrus-based implementation? 19:24:39 :-D 19:24:53 oerjan: hah 19:25:01 AnMaster: ccbi is NOT fruit 19:26:00 My interp will be called cegnuf 19:26:04 * ehird glances angrily at AnMaster 19:26:44 handprint CNUF 19:28:07 :-D 19:28:35 Deewiant: any suggestions on how to do N-funge? 19:28:37 i mean.. 19:28:42 how on earth will I do the hashtable 19:28:42 :P 19:28:58 :-P 19:29:12 cfunge isn't fruit either? 19:29:13 ehird, ?? 19:29:23 cell[cellidx][cellidx][size_t] 19:29:33 where the size_t is N. :-) 19:29:38 AnMaster: CCBI IS NOT FRUIT DAMNIT 19:29:40 ehird, just use a hash with, say, void* and size_t len 19:29:45 Deewiant: hahaha 19:29:53 AnMaster: yeah 19:29:57 well 19:30:07 coord_t* 19:30:08 :-) 19:30:11 or rather 19:30:15 cg_coord_t* 19:30:20 ehird, it is easy to do it for any finite defined n at compile time 19:30:24 by which point i'll have sex with c's _t notation 19:30:25 and just do 19:30:26 COORD* 19:30:36 I don't know how having sex with the notation makes me do that though 19:30:38 It's NP-complete 19:30:43 AnMaster: at run-time 19:30:50 would be easy to change cfunge to be able to do either 1 or 3 dimensions at *compile* time 19:30:56 but I'd hate to do it at runtime... 19:32:57 AnMaster: hm, should I support up to size_t's max in dimensions ;) 19:33:04 it'll slow things down a lot if I do that 19:33:14 so I'm considering just using a 'char' 19:33:17 I mean, 255d is a lot 19:33:54 why would it slow things down 19:33:55 err 19:33:59 BIGNUM? 19:34:07 or how are you planning on implementing this 19:34:15 ehird, point is you need to select it at start of program 19:34:24 due to vector size 19:34:29 AnMaster: ... bignum-dimensions? 19:34:30 i think not 19:34:36 Deewiant: the hash function, etc 19:34:38 and .. stuffs 19:34:42 ehird, yeah and bignum data type! 19:34:53 ehird, there are general purpose hashing functions 19:34:56 just define: 19:35:07 typedef struct COORD { 19:35:11 size_t len; 19:35:22 that's not the point AnMaster 19:35:25 int64_t dimension[] 19:35:27 } 19:35:30 add the missing ; 19:35:32 AnMaster: you don't get it 19:35:35 that works in C99 19:35:39 ehird, not really no 19:36:30 ehird: I'm not sure you'd need to make a hash table of the dimensions, why not just an ordinary table 19:36:46 Deewiant: er what 19:36:48 fungespace is a hash table 19:36:55 yep 19:37:07 so essentially you have N nested hash tables 19:37:15 where N is your dimensionality 19:37:19 or you have one hash table 19:37:23 which has coordinates like AnMaster's 19:37:35 in either case, where are you hashing N? 19:37:53 or needing values which index to [1..N] anyway 19:37:59 or am I confused :-S 19:38:46 -!- Corun has quit (Read error: 110 (Connection timed out)). 19:39:39 one hash table 19:39:42 Deewiant: you need to hash N elements 19:39:53 yep 19:40:27 so... where does it matter whether the type of N is ubyte or size_t, it should make no difference until N > 255 19:40:53 in that if N == 255+1 for ubyte, it's 0, wheras for size_t it's 256. ;-) 19:41:24 Deewiant: OK, not speed, I meant in space 19:41:38 I'd say the difference is negligible still 19:42:00 (x+1) times y bytes or x times y bytes + 1 19:43:59 Deewiant: can you even put a size_t in an a[b] in C? 19:44:17 eh what now? 19:44:35 "an a[b]"? 19:45:05 -!- Corun has joined. 19:47:05 an a[b] expr 19:47:23 size_t x[]; 19:47:28 size_t y = x[0]; 19:47:42 I have no idea what you're trying to ask :-P 19:48:35 size_t is a type, you can use it the way you can use any integer type in C. 19:49:18 uh 19:49:19 i know that 19:49:27 so what are you asking? 19:55:48 -!- Sgeo has joined. 19:59:10 ehird, yeah tell us 19:59:44 as for type used to index array, it would be size_t or ptrdiff_t in fact 20:00:00 actually any integer type would work I thin 20:00:03 think* 20:00:10 negative integer may work even 20:00:18 not sure about that though 20:00:49 of course it'll work 20:00:57 a[i] is just *(a+i) 20:01:19 just not sure if it is allowed syntax to have negative i 20:01:23 or if it is undefined or such 20:01:29 there's no syntax about it 20:01:32 that's all it is 20:02:03 if you have int x[5] = {0,1,2,3,4}; int *p = x+2; then p[-1] == 1 20:02:32 I'm sure the compiler might warn you though since there's no reason why you'd want to do something like that :-P 20:05:20 yeah probably 20:05:32 Deewiant, however x[-1] is undefined I assume? 20:05:48 undefined or just plain illegal 20:05:53 probably the latter 20:05:58 you're accessing memory you haven't allocated 20:06:10 it *could* work 20:06:17 depending on if there is anything in front 20:06:41 then it's undefined, I don't know 20:06:44 it's not something you want to do anyway 20:06:50 indeed 20:06:53 with that I agree 20:06:54 since you can't know whether there is anything in front 20:08:39 x[-1] is just like x[45345] 20:08:43 same definedness 20:09:11 yep, and I don't know the definedness :-) 20:09:16 Deewiant: 'not' 20:09:31 'not', or 'defined' && == illegal 20:09:52 iirc even x-1 (as a pointer) is undefined if x is an array 20:11:03 oerjan: demons flying out of your NOSE 20:12:27 oh noes, nasal demons 20:13:44 oerjan's like that 20:13:52 full of little surprises 20:18:19 * oerjan notes something did try to fly _into_ his nose earlier today. gah! 20:22:20 oerjan: What, demons? 20:23:52 i cannot say as i failed to get a good glimpse of it 20:25:29 for all i know they may be inside, eating my brain at this very moment 20:25:58 ehird: fizzie: But you can read and write it ;) <<< well, i did just read the example too, that's not really a task 20:26:34 oklopol: somehow my client only highlights up to <<< 20:26:35 weird 20:26:37 oklopol: test <<< a 20:33:50 -!- Tritonio has joined. 20:34:44 making n dimensions is trivial! 20:35:09 ...what is that weird language you're speaking there, some new syntax for python? 20:35:50 heh 20:37:00 ehird, you want a <<< test ehird like <<< this? 20:38:34 i'm thinking it is trying to highlight pasted irc messages separately from the actual message so if says ehird then the end is highlight-colored! 20:39:18 ehird: fizzie: But you can read and write it ;) <<< well, i did just read the example too, that's not really a task 20:39:21 the notify highlight ends at <<< 20:43:25 or does it end at the )? :-) 20:45:42 ehird: ;) <<< this is a smiley 20:45:54 ehird: ;) is a smiley, i mean 20:46:24 ;)<<< this is a smiley for ants 20:49:06 ehird <<< ehird <<< test2 <<< test3 which part did it highlight to? 20:49:26 all of it 20:49:27 :| 20:49:55 this is serious business, we just have to know what the logic is 20:50:03 let's all make tests all night long 20:50:59 * Sgeo throws a PSOX in there j/k 20:52:12 oklopol: just paste your previous line 20:52:15 ehird: fizzie: But you can read and write it ;) <<< well, i did just read the example too, that's not really a task 20:52:16 that one 20:53:21 ehird: fizzie: But you can read and write it ;) <<< well, i did just read the example too, that's not really a task 20:53:22 that? 20:59:10 -!- Slereah has quit (leguin.freenode.net irc.freenode.net). 20:59:10 -!- lifthrasiir has quit (leguin.freenode.net irc.freenode.net). 20:59:10 -!- cmeme has quit (leguin.freenode.net irc.freenode.net). 20:59:50 -!- Slereah has joined. 20:59:50 -!- cmeme has joined. 20:59:50 -!- lifthrasiir has joined. 21:09:34 oklopol: sooo 21:09:36 ircd golf 21:09:41 well 21:09:43 don't GOLF it 21:09:44 that would be silly 21:09:49 the rfc is too big for that 21:09:54 but ... try and make it short 21:10:00 just .. still indent it and have newlines ;) 21:11:28 your mother is silly, i wanna golf it 21:12:29 oklopol: have you ever read the rfc 21:12:38 you need to implement easily 100 cmds or so 21:13:05 i think i've read it, but i definately know how long it is 21:13:33 how does that have anything to do with being fun to golf? 21:14:08 oklopol: it'll be very hard to write like that 21:14:36 RFC for what? 21:15:00 Sgeo: the words are there. 21:16:43 -!- andreou has joined. 21:17:22 anyone using contextfree? 21:18:13 Context free grammar? 21:18:32 well i suppose you could say it's a context-free grammar 21:18:36 http://www.contextfreeart.org/ 21:22:13 oklopol: how's the ircd going 21:24:36 oh i'm not gonna start *now*, i'm rewriting my todo list in rot-13 21:25:20 and then you have to wash your hair? 21:25:42 also i have three languages in the making atm, so i'm a bit exfoculated 21:26:09 oerjan: as a matter of fact i've reduced showering into once/twice a week, so not for a while 21:26:16 oklopol: come on, i'll give you money 21:26:16 :O 21:26:18 * oerjan congratulates oklopol with inventing a word that google cannot find 21:26:37 exfoculate? how can something that beautiful not exist 21:28:00 foculate can be googled, but only 13 hits, so may be misspelled 21:29:11 "Formulated to foculate (group together in a mass) dirt particles from water..." 21:29:24 focculate gives a bit more 21:29:25 oerjan: They probably have their asses under the knunder. 21:29:33 (That's only funny 'cause I internet-know the guy who came up with that word.) 21:29:38 (Kinda) 21:31:12 Maybe... Exfoliate? 21:32:42 ah, those are misspellings of "flocculate" 21:33:50 oklopol: iz ircd dun 21:35:55 i'm leaving soon, actually 21:45:15 -!- Iskr has quit ("Leaving"). 21:48:03 -!- oerjan has quit ("leaving"). 21:53:51 brb in 30 mins 22:03:29 brb in 30 YEARS 22:03:30 -!- oklopol has quit ("( www.nnscript.com :: NoNameScript 4.2 :: www.regroup-esports.com )"). 22:07:48 i bet he wasn't joking. 22:13:29 sauxdado, sure? 22:13:39 I think he will be back tomorrow at most 22:13:42 or next week 22:14:06 i suppose we could ban him for 30 years 22:15:53 don 22:15:54 don't* 22:30:12 -!- ais523 has joined. 22:40:54 -!- ais523 has changed nick to ais523|busy. 22:53:50 back 22:53:57 don't* 22:53:58 do 22:56:49 the only problem is 22:56:53 we could ban him for 30 years 22:57:05 but that's only half the process 22:57:16 we also need to ensure that he comes back afterwards 22:57:43 sauxdado: stalk him 22:57:51 for 30 years 22:57:55 then kidnap etc 22:58:40 yeah 22:58:53 also we'd have to ensure that freenode still exists in 30 years 23:00:03 sauxdado: nah we can define an official convention for moving it around 23:00:07 then itd be formal 23:00:12 and tyhe same place 23:00:51 we might as well just define that for 30 years #esoteric exists in outer space, and starting in 30 years, it exists right where oklopol is 23:01:18 heh 23:01:37 if oklopol comes into this channel, he's not actually in #esoteric. 23:01:41 -!- Corun has quit (Read error: 110 (Connection timed out)). 23:01:42 sauxdado: but what if he dies 23:01:57 or becomes an astronaut 23:02:14 death doesn't matter 23:02:33 and i guess instead of "outer space", just define "somewhere where oklopol isn't" 23:03:04 sauxdado: but what if there is no afterlife and his body decays? 23:03:08 where is 'he'? 23:04:56 -!- digital_me has joined. 23:05:00 hm 23:05:20 yes, that's a problem. We must keep him alive for 30 yeras 23:05:21 *years 23:05:33 sauxdado: hah 23:05:47 not just alive, but we must keep him _oklopol_ 23:05:53 he's not allowed to change into something else 23:06:05 just to be on the safe side, we can't let him for example use dentures 23:06:18 sauxdado: looool 23:06:27 of course, in 7 years all the molecules in your body get replaced... 23:06:42 sauxdado: that's a problem... 23:06:46 the question of identity is really tricky 23:07:39 sauxdado: we need a philosopher and a biologist, stat 23:08:09 alternatively, we could redefine oklopol to mean something more convenient 23:08:23 for example, define oklopol to be "that which will come to #esoteric in 30 years" 23:08:38 sauxdado: hahahahahahahah 23:08:42 this is great 23:08:56 but what if nothing comes 23:09:05 then it wasn't oklopol :) 23:09:11 does the *absense* of something come? 23:09:34 in that case, oklopol would be the absence of non-oklopol. 23:09:56 hah 23:10:24 we need to tell oklopol that he's been redefined 23:10:54 sauxdado: but he wont be back for 30ys 23:11:15 i mean, we need to tell that which used to be oklopol. 23:18:20 -!- comex has quit (Connection timed out). 23:18:21 -!- Tritonio has quit (Read error: 104 (Connection reset by peer)). 23:18:44 -!- comex has joined. 23:26:21 -!- sauxdado has changed nick to saudado. 23:37:31 -!- Tritonio has joined. 23:45:10 -!- bsmntbombdood_ has changed nick to bsmntbombdood. 23:48:14 -!- jix has quit ("CommandQ"). 23:51:53 -!- Judofyr has quit (Read error: 104 (Connection reset by peer)). 23:52:24 -!- Judofyr has joined. 23:54:13 -!- digital_me has quit ("leaving"). 23:54:19 -!- Sgeo has changed nick to iGeo. 23:54:32 -!- iGeo has changed nick to iSgeo. 23:55:22 -!- iSgeo has changed nick to Sgeo. 2008-05-03: 00:06:40 -!- atsampson has quit (Remote closed the connection). 00:06:53 -!- atsampson has joined. 00:07:50 -!- digital_me has joined. 00:36:40 -!- pikhq_ has changed nick to pikhq. 00:45:31 Bye for today :) 00:45:47 -!- ais523|busy has quit ("(1) DO COME FROM ".2~.2"~#1 WHILE :1 <- "'?.1$.2'~'"':1/.1$.2'~#0"$#65535'"$"'"'&.1$.2'~'#0$#65535'"$#0'~#32767$#1""). 00:46:06 -!- ehird has quit (Remote closed the connection). 00:53:04 -!- GreaseMonkey has joined. 00:58:28 reminds me of the esoteric file system idea I had, where all files were functions, Unlambda-style, which you evaluated to get the file's contents. That way, you could do special files easily, and files could be stored compressed on disk if necessary, and you could have lazy files which were infinitely long... 01:00:13 Seeking = PITA 01:05:47 -!- Tritonio has quit (Read error: 113 (No route to host)). 01:06:20 -!- CakeProphet has joined. 01:08:00 -!- Tritonio has joined. 01:09:56 -!- Tritonio has quit (Client Quit). 01:09:58 -!- Slereah has quit (Read error: 104 (Connection reset by peer)). 01:10:41 -!- Slereah_ has joined. 01:16:07 -!- ihope has joined. 01:32:29 -!- Tritonio has joined. 01:39:17 -!- CakeProphet has quit ("haaaaaaaaaa"). 01:41:22 -!- Corun has joined. 01:45:36 -!- Corun has changed nick to NeilStoleMySleep. 01:58:24 -!- NeilStoleMySleep has changed nick to Corun. 02:26:44 -!- Judofyr_ has joined. 02:26:44 -!- Judofyr has quit (Read error: 104 (Connection reset by peer)). 02:35:53 -!- Slereah_ has quit (leguin.freenode.net irc.freenode.net). 02:35:53 -!- digital_me has quit (leguin.freenode.net irc.freenode.net). 02:35:53 -!- sekhmet has quit (leguin.freenode.net irc.freenode.net). 02:36:16 -!- Slereah_ has joined. 02:36:16 -!- digital_me has joined. 02:36:16 -!- sekhmet has joined. 03:28:35 -!- olsner has quit ("Leaving"). 04:42:52 -!- Corun has quit ("This computer has gone to sleep"). 05:42:50 -!- digital_me has quit (Read error: 113 (No route to host)). 06:08:57 -!- lifthrasiir has quit ("leaving"). 06:09:05 -!- lifthrasiir has joined. 07:11:52 -!- Judofyr_ has quit. 07:21:30 -!- Sgeo has quit (Read error: 110 (Connection timed out)). 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:22:07 -!- saudado has changed nick to lament. 08:29:07 -!- Iskr has joined. 10:45:54 -!- Tritonio has quit (Remote closed the connection). 10:48:46 -!- Tritonio has joined. 10:51:48 -!- GreaseMonkey has quit (Read error: 110 (Connection timed out)). 10:52:35 -!- GreaseMonkey has joined. 11:10:38 -!- GreaseMonkey has quit ("Unisex."). 11:24:10 -!- olsner has joined. 11:53:05 -!- ihope_ has joined. 11:55:01 Deewiant, your TIME fingerprint, wtf are you doing in it? D code as a string constant!? 11:55:46 -!- fizzie has quit (leguin.freenode.net irc.freenode.net). 11:55:46 -!- ihope has quit (leguin.freenode.net irc.freenode.net). 11:55:49 -!- ihope_ has changed nick to ihope. 11:56:33 AnMaster: metaprogramming 11:56:57 Deewiant, you mean, like a macro in C? 11:57:06 sorta 11:57:22 hm? 11:57:25 -!- fizzie has joined. 11:57:53 mixin("int x;") - equivalent to just int x; 11:58:07 but with templates you can generate the string literal 11:58:17 ah 11:58:21 like macros then 11:58:22 so I don't have to write the same code over and over 11:58:28 sorta. 11:58:36 #define ROMAPUSH(x, y) \ 11:58:37 static void FingerROMApush ## x (instructionPointer * ip) \ 11:58:37 { \ 11:58:37 StackPush(ip->stack, (FUNGEDATATYPE)y); \ 11:58:37 } 11:58:49 I do it like that 11:58:56 then just: 11:58:58 ROMAPUSH(I, 1) 11:58:58 ROMAPUSH(V, 5) 11:59:00 and so on 11:59:17 yes, that's similar. 11:59:42 quite powerful, macros in C 12:01:23 oh btw you seem to like using static buffers, instead of allocating on the stack, depending on situation I think creating one in the function may work better, due to risk of cache misses otherwise 12:01:30 but that is over-optimizing IMO 12:01:46 Deewiant, anyway I added JSTR to cfunge now 12:02:00 rather simple one really 12:05:52 -!- ehird has joined. 12:06:18 -!- ehird has set topic: * Topic for #esoteric set by http://tunes.org/~nef/logs/esoteric. 12:06:21 Deewiant, another question: Should the UTC/non-UTC stuff in TIME be local to the ip or global? 12:09:29 ccbi seems to have it global 12:23:09 AnMaster: say it with me: *not spe-ci-fied, up to you* 12:23:24 hah 12:23:31 * AnMaster is implementing FILE atm though 12:24:12 Deewiant: AnMaster does not know the meaning of that 12:24:31 or 'Premature opt-imi-zat-ion is the root of all evil' 12:56:00 -!- Corun has joined. 13:27:16 Zoop 13:38:38 damn i'm leet 13:38:42 i'm using emacs and vi on the same projcet 13:38:43 at once 13:48:41 -!- Slereah has joined. 13:48:41 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)). 13:51:25 hopefully you're not using the editor in emacs :P 13:54:48 olsner: i so am 13:55:22 may your choice of deity have mercy on your soul 13:58:06 -!- Slereah has quit (Read error: 104 (Connection reset by peer)). 13:58:16 -!- Slereah has joined. 14:00:16 -!- Slereah_ has joined. 14:00:16 -!- Slereah has quit (Read error: 104 (Connection reset by peer)). 14:01:46 -!- Slereah has joined. 14:01:47 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)). 14:03:09 olsner: i don't think the flying spaghetti monster really cares all that much 14:03:58 well, poor choice of deity then :P 14:04:07 -!- Slereah has quit (Read error: 104 (Connection reset by peer)). 14:14:14 -!- Slereah has joined. 14:42:25 return $it if $it = ...; // this is a kinda neat perl trick, i wish i could do this in other languages 14:42:27 'x and return' 15:14:58 Deewiant, there is a bug in FILE of CCBI I think 15:15:04 in fopen one: 15:15:05 case 2: file = c.fopen(name, "ab"); c.rewind(file); break; 15:15:17 you need to check in between that the fopen did work 15:15:30 rather than after trying rewind on it 15:15:43 doesn't rewind fail on a failed fopen 15:16:03 well fopen returns NULL on failed open 15:16:11 no idea what happens with rewind on a null pointer 15:16:21 man rewind says the following: 15:16:21 EBADF The stream specified is not a seekable stream. 15:16:33 But NULL is not a stream at all. 15:16:44 The rewind() function sets the file position indicator for the stream pointed to by stream to the beginning of the file. It is equivalent to: 15:16:45 (void) fseek(stream, 0L, SEEK_SET) 15:16:47 and hence it's not a seekable stream. 15:16:48 except that the error indicator for the stream is also cleared (see clearerr(3)). 15:16:49 hm 15:16:55 fizzie, indeex 15:16:57 indeed* 15:17:00 Yes, but you still need to specify a stream. 15:17:58 you appear to be correct 15:19:01 Even if it would happen to work, I don't think you could really rely on it unless The Standard would specifically mention it's safe to call with a null pointer. 15:19:21 seeing as it segfaults both on windows and linux I'd say you guys are right. ;-) 15:20:24 well man 3p on rewind refers to fseek for details, and man 3p fseek doesn't mention null pointer anywhere 15:20:55 The Standard That Is Great And Holy In Caps 15:20:55 :D 15:21:06 but i wouldn't rely on it, yeah 15:21:08 ehird, it wasn't I that said it... 15:21:08 it sounds shaky 15:21:14 and even if it is standard 15:21:16 i bet some system gets it wrong 15:21:18 AnMaster: I know 15:21:20 i just found it amusing 15:21:22 it's like Him 15:21:26 it's The Standard 15:21:27 Who? 15:21:37 AnMaster: Him is what religious people call god 15:21:40 always capitalized like That 15:21:49 ah 15:21:56 'And I talked to Him and asked him for big moneys, and he said FSCK U NOOB' 15:22:21 haha 15:23:03 I also used to refer to The Hitchhiker's Guide to the Galaxy as "The Book". 15:23:09 hah 15:24:14 Deewiant, may I ask wtf you are doing in your fgets routine? it seems overly complex 15:24:39 doesn't D have a fgets? 15:24:43 D has the C stdlib 15:25:50 well what are you doing it for then? 15:26:08 Deewiant, is it because fgets will look for \n and not \r\n or? 15:26:19 if that's what it does then that's definitely a reason 15:26:35 but well 15:26:36 probably the fact that I don't know 15:26:39 that doesn't really help 15:26:56 because both will stop on the \n of \r\n 15:27:09 what about only \r 15:27:27 well... I don't think your code stop on it 15:27:32 of course it does 15:27:40 case '\r', right there 15:27:54 oh wait yes it does 15:27:55 hm 15:28:41 Deewiant, it will probably use whatever is used on the OS 15:28:48 quite possible 15:28:50 and I can't have that 15:29:06 as in \r\n on windows, or if stream is in text mode (eww) just \n 15:29:36 shrug about text mode... I never know how that works except that it's never the way I want :-P 15:29:43 http://www.youtube.com/watch?v=dmEvPZUdAVI 15:29:45 indeed 15:29:59 but still, gotta support all 3 line endings regardless of OS 15:30:04 How did Microsoft ever became a monopole with ads like that? 15:30:08 and hence, I don't trust fgets. 15:30:44 Deewiant, not got to, the standard says should and "If an interpreter cannot support all three varieties of end-of-line marker, it should be clearly noted in that interpreter's documentation." 15:30:55 so it is strongly recommended to support all 15:30:59 but not required 15:31:00 I think that's crap. :-P 15:31:16 Deewiant, it is the 98 specs... 15:31:22 I think any program that doesn't support all 3 types is crap. 15:31:25 I support all three 15:31:28 regardless of specs. 15:31:41 Deewiant, I can think of cases where it may not be possible 15:31:49 say if the interpreter is coded in intercal 15:31:55 then intercal is crap. :-P 15:31:57 doesn't it mess with newlines? 15:32:01 I don't know. 15:32:17 ais523 isn't here so I guess we won't get an authoritative answer, either. :-) 15:32:52 also one thing of D I would like in C: being able to break out of multiple loops with a break 15:32:59 as it is, that is the only case I use goto 15:33:08 yep, it's probably the most common case 15:33:09 because there is no other way in C 15:33:42 Deewiant, yeah, also common for stuff like: goto error, that cleans up stuff or such. I don't do that 15:35:27 Deewiant, hm no your doesn't end input on \r 15:35:43 Deewiant, it just does break; not break loop; 15:35:48 so another bug in ccbi 15:36:23 good catch :-) 15:37:41 Deewiant, hm... FileHandle[c.FOPEN_MAX] handles; that is decided at compile time in CCBI? 15:37:53 just like a C array. 15:38:06 Deewiant, hm? 15:38:13 hm what? 15:38:17 it's a static array. 15:38:19 C99 got VLA :P 15:38:22 yeah 15:38:24 not at global scope. :-P 15:38:33 true 15:38:45 max fds varies however 15:38:54 hence, FOPEN_MAX. 15:39:03 yes, what does that mean in this case? 15:39:23 /usr/include/gentoo-multilib/amd64/stdio.h: FOPEN_MAX Minimum number of files that can be open at once. 15:39:27 seeing as it's in "c" it's a C constant... 15:39:41 FOPEN_MAX is defined to 16 here. heh 15:40:02 that is the minimum guaranteed. 15:40:07 " The value of this macro is an integer constant expression that represents the minimum number of streams that the implementation guarantees can be open simultaneously. You might be able to open more than this many streams, but that is not guaranteed." 15:40:26 thus it should be checked at runtime :) 15:40:26 oh, darn, it includes stdin/stdout/stderr 15:40:30 hm? 15:40:55 because you are more likely to be able to open like 1024 fds or so 15:41:03 but it's not guaranteed. 15:41:07 open files (-n) 1024 15:41:11 from ulimit -a 15:41:15 in one program? 15:41:26 Deewiant, indeed, but if you can't open, check return value of fopen ;P 15:41:27 and why does stdio.h then define it as 16? 15:41:36 Deewiant, it does here, I don't know why 15:41:46 wtf is the point of having all these predefined constants if they don't mean anything 15:41:47 I malloc my handle array so... 15:41:56 seriously, the windows API looks a lot nicer sometimes :-P 15:42:05 Deewiant, anyway SOCK could create more fds iirc 15:42:14 so it isn't FOPEN_MAX -3 15:42:19 or something as simple as that 15:42:35 fine, dynamic then. 15:42:38 the best way to check would be getconf() I think.... 15:42:40 piece of crap API. 15:42:42 if you *need* to know it 15:43:05 err not getconf, that is the command line alternative 15:43:08 version* 15:43:15 sysconf() 15:44:40 Deewiant, if you really need to know it is sysconf(_SC_OPEN_MAX) I think 15:45:17 whatever. 15:45:32 Deewiant, anyway the same applies to Windows afaik 15:45:49 you can't know exactly how many files you can have open 15:46:06 not at compile time at least 15:47:12 Deewiant, also, FOPEN_MAX is from ANSI C 15:47:18 so don't blame POSIX :P 15:47:34 I blame distributions for defining it as something anal 15:48:01 I blame whoever didn't read the docs for not doing so ;) 15:48:15 how the hell should I know what docs to read 15:48:17 I agree it is a stupid name... 15:48:26 I read the docs for fopen and it says FOPEN_MAX is the absolute limit 15:48:44 but oh, actually FOPEN_MAX is only one-sixteenth of the real limit 15:48:49 sigh 15:48:53 err my man fopen doesn't mention FOPEN_MAX... 15:49:28 and man 3p fopen doesn't say it is an absolute limit 15:49:41 it says it's the maximum guaranteed 15:49:45 The fopen() function shall fail if: 15:49:48 EMFILE {OPEN_MAX} file descriptors are currently open in the calling process. 15:49:51 The fopen() function may fail if: 15:49:55 EMFILE {FOPEN_MAX} streams are currently open in the calling process. 15:49:57 hm 15:50:06 streams vs. file descriptors too. :-P 15:50:07 yes maximum guaranteed 15:50:19 but my point here, is that on most systems you can open way more 15:50:26 so why doesn't the man page say that? 15:50:29 I tested with a befunge program opening 23 files 15:50:34 using FILE 15:50:37 at the same time 15:50:47 why does it say something useless like "may fail" instead of "is very likely not to fail, it's likely you can open 100x more" 15:51:11 Deewiant, because when it was written that wasn't the case I guess? 15:51:18 documentation can be updated 15:51:59 I agree that FOPEN_MIN may have been a better name... 15:52:12 or _MIN_MAX? :-P 15:52:14 Deewiant, but FOPEN_MAX is from ANSI C 15:52:15 ! 15:52:18 Huh? 15:52:28 exactly. "Huh?" :-P 15:52:35 so it is not a case of POSIX 15:52:38 but ANSI C 15:52:38 who cares where it's from 15:52:40 it's badly written 15:52:51 the man pages aren't copied from some 30-year old ANSI C manual either 15:52:52 FOPEN_MAX 15:52:52 which expands to an integer constant expression that is the minimum number of files that 15:52:52 the implementation guarantees can be open simultaneously; 15:52:58 C99 15:53:00 was that 15:53:12 whatever 15:53:31 and ranting about it in here won't help ;P 15:53:43 I'm willing to shut up 15:53:52 try ranting to ANSI maybe ;) 15:54:08 or, for C99 I think it is IEEE? hm 15:54:12 "not us anyway" 15:54:14 I don't care that much, I rarely have to mess around with raw C APIs 15:54:18 to this degree 15:54:33 Deewiant, well why can't you use the D file reading API for it? 15:54:49 ... because the specs say that it's the C file API ... 15:55:13 * AnMaster looks 15:55:15 "(like c fgets)" 15:55:39 Deewiant, 15:55:41 use Tango 15:55:41 Deewiant, seems to indicate same behaviour 15:55:44 you depend on it 15:55:46 so use its file apis 15:55:47 not c's 15:55:47 ;P 15:55:56 ehird: 2008-05-03 17:54:49 ( Deewiant) ... because the specs say that it's the C file API ... 15:56:01 AnMaster: D has two 100% incompatible stdlibs that you can't have at the same time. 15:56:04 Deewiant, anyway, it is RC/Funge specs so they aren't clear... 15:56:11 AnMaster: Phobos and Tango, Phobos is the official one. Real men use Tango. 15:56:15 (read: Phobos sucks) 15:56:16 ehird, that isn't the question here... 15:56:18 ehird: tangobos exists. 15:56:29 Deewiant: Yes, but that's for goatse-watchers. 15:56:30 Or something 15:56:37 ehird, he is doing this: import c = tango.stdc.stdio; 15:56:49 tango has libc in it yes 15:57:01 and then using c.fgets and so on 15:57:11 err not fgets, but several other ones 15:57:41 Deewiant, anyway the FILE specs doesn't say it have to be the A file API 15:57:49 it only says "(like c fgets)" 15:57:52 note "like" 15:58:03 I interpret that as "same behaviour" 15:58:06 exactly 15:58:10 bug-for-bug compatibility would be ideal 15:58:18 which is easiest to get by just using the C functions directly. 16:00:31 why bug-for-bug? 16:00:55 because of what the specs say. "like c xxx". 16:01:40 I assume it means "like the C specs describe this function", and it is INTERCAL no C that got the "random compiler bug" in it's specs ;P 16:02:12 I'm sure that if I used the tango functions you'd be here saying "in this obscure case, fseek does xxx, does tango's do that?" :-P 16:02:36 and then I'd be like "don't know, don't care". :-P 16:03:13 heh 16:03:45 however that is not an argument as you coded it before you knew of me 16:04:15 no, but I was sure there might be someone like you. :-P 16:04:30 or I just felt like using the C functions to remind myself of how they work, who knows?! 16:04:42 anyhoo, WYGIWYGAINGW. 16:04:45 I'm off to eat. -> 16:05:48 ah you like Discworld :) 17:59:30 Deewiant, by the way the HRTI test shows that at some stuff Boehm-GC is a LOT slower. Mainly realloc seems slow in it 18:00:47 using preallocaction to alloc at least the needed number of bytes in advance I got it down to acceptable levels. 18:01:07 however I suspect I may make no gc the default in future at some point 19:15:44 -!- comex has left (?). 19:22:27 -!- Sgeo has joined. 19:41:08 -!- jix has joined. 19:48:16 a 21:05:16 b 21:05:44 cd 21:05:46 EFG 21:06:46 hjkl; 21:06:55 ä' 21:07:13 ö! 21:09:28 -!- digital_me has joined. 21:09:56 AnMaster: surely you don't have "ö!" to the right of "z" on your keyboard. :-) 21:10:39 no 21:10:48 Deewiant, nor do I have ä there either 21:11:16 Shift < z x c v b n m , . - Shift 21:11:18 to the right of "hjkl;" on a 'merican keyboard comes ä' followed by enter 21:11:26 moving on, we get qwertyuiopå 21:11:37 asdfghjklöä 21:11:41 zxcvbnm 21:11:54 hm ... 21:11:55 exactly. so you broke the cycle :-/ 21:11:55 x 21:11:58 in that case 21:11:59 :-) 21:12:04 Deewiant, but so did ihope 21:12:07 shh ;-) 21:12:19 as we went alphabetically before 21:12:36 abcdefghjkl;' 21:13:20 abcdefgijkl 21:13:25 abcdefghijkl 21:13:26 even 21:13:31 you forgot i 21:13:50 Yes, we all know that defghijkl is almost all consecutively... on there. 21:14:08 Present in a consecutive manner. 21:14:53 http://4chanarchive.org/images/48232393/1197566589997.png 21:15:45 Slereah: hah 21:16:24 Yes. 21:16:29 That's how it is. 21:53:32 -!- digital_me_ has joined. 21:58:41 -!- CakeProphet has joined. 22:02:26 -!- CakeProphet has quit (Client Quit). 22:05:22 -!- digital_me has quit (Read error: 110 (Connection timed out)). 22:27:15 -!- Slereah_ has joined. 22:28:27 -!- Slereah has quit (Read error: 104 (Connection reset by peer)). 22:40:04 -!- digital_me_ has quit (Read error: 104 (Connection reset by peer)). 22:47:25 -!- Iskr has quit ("Leaving"). 22:50:32 -!- digital_me has joined. 22:53:42 -!- digital_me has quit (Client Quit). 22:53:54 -!- digital_me has joined. 22:58:18 -!- digital_me has left (?). 23:10:39 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)). 23:12:26 -!- Slereah has joined. 23:31:07 -!- Deformati has joined. 23:39:56 -!- Deformative has quit (Read error: 110 (Connection timed out)). 2008-05-04: 00:10:48 -!- ehird has quit (Read error: 113 (No route to host)). 00:16:13 -!- Deformati has quit (Read error: 110 (Connection timed out)). 00:17:47 -!- Deformati has joined. 00:21:48 -!- Slereah_ has joined. 00:21:48 -!- Slereah has quit (Read error: 104 (Connection reset by peer)). 00:25:05 -!- jix has quit (Read error: 113 (No route to host)). 00:27:51 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)). 00:28:01 -!- Slereah has joined. 00:30:19 -!- Slereah_ has joined. 00:30:19 -!- Slereah has quit (Read error: 104 (Connection reset by peer)). 00:36:21 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)). 00:36:24 -!- Slereah has joined. 00:37:43 -!- Slereah has quit (Read error: 104 (Connection reset by peer)). 00:37:48 -!- Slereah has joined. 00:37:52 -!- Deformati has quit (Remote closed the connection). 01:21:49 -!- ihope has quit ("ChatZilla 0.9.81 [Firefox 2.0.0.14/2008040413]"). 01:22:42 -!- Sgeo_ has joined. 01:32:25 -!- Sgeo has quit (Read error: 110 (Connection timed out)). 01:33:23 -!- Sgeo_ has quit (Remote closed the connection). 01:36:36 -!- Sgeo has joined. 03:18:49 -!- Slereah_ has joined. 03:18:50 -!- Slereah has quit (Read error: 104 (Connection reset by peer)). 03:19:13 -!- GreaseMonkey has joined. 04:32:30 -!- Corun has quit (Read error: 110 (Connection timed out)). 04:35:30 -!- Corun has joined. 04:49:36 -!- Corun has quit ("This computer has gone to sleep"). 06:24:41 -!- adu has joined. 06:36:45 -!- adu has left (?). 07:18:37 look at this hottie: http://www.codethinked.com/image.axd?picture=WindowsLiveWriter/TheProgrammerDressCode_10D17/John%20McCarthy_fecf8122-7b54-4ec0-80ed-8ba261337eaa.jpg 07:20:09 -!- Sgeo has quit (Read error: 110 (Connection timed out)). 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:52:51 -!- Iskr has joined. 09:16:02 -!- Slereah has joined. 09:16:06 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)). 09:49:18 -!- Slereah has quit (Read error: 104 (Connection reset by peer)). 09:50:56 -!- Slereah has joined. 10:21:59 -!- GreaseMonkey has quit ("Unisex."). 11:09:04 -!- Slereah_ has joined. 11:09:07 -!- Slereah has quit (Read error: 104 (Connection reset by peer)). 11:14:06 -!- Slereah has joined. 11:14:06 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)). 11:18:56 -!- Slereah_ has joined. 11:18:56 -!- Slereah has quit (Read error: 104 (Connection reset by peer)). 12:43:19 -!- Slereah has joined. 12:43:19 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)). 13:12:18 -!- ehird has joined. 13:17:22 -!- oklopol has joined. 13:19:29 oklopol: oKokokokokokokokokoko!!! 13:19:37 andreou: reoreoreoreoreoreo 13:22:01 GKLYAAAA 13:22:30 -!- Slereah has quit (Read error: 104 (Connection reset by peer)). 13:22:37 -!- Slereah has joined. 13:23:04 oklopol: akakak 13:48:54 a 13:55:50 KAER 13:55:53 :) 13:56:17 trying to read the lojvan reference, a new interest in lalna is growing inside me 13:56:25 *lojban 13:56:37 going to change it to stack-based 13:56:46 stacks are perfect for human communication 13:57:14 somewhat object-oriented stack-based, GregorR would love this 14:12:32 -!- Corun has joined. 14:27:39 oklopol: i hate you 14:27:40 :) 14:47:06 you can globally specify a small stack limit if you have problems with it! 15:01:03 -!- Slereah_ has joined. 15:01:03 -!- Slereah has quit (Read error: 104 (Connection reset by peer)). 15:05:22 -!- Slereah has joined. 15:05:22 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)). 15:07:51 oklopol: heh 15:07:59 oklopol: make it stack-based, but reversed 15:08:05 then we can at least lazily evaluate what people say 15:08:07 instead of having to wait 15:13:37 reversed would make more sense, but i want a stack. 15:13:41 also 15:13:59 reversed is quite funny considering stack-based is often called reversed polish notation :P 15:14:04 make it a deque and you can have both 15:14:11 of course reverse . reverse = identity 15:14:24 lol :D 15:17:51 -!- SimonRC_ has joined. 15:20:06 it can be stacked oklopol 15:20:11 just make the speech reversed 15:20:16 so a computer evaluator would run it backwards 15:20:26 but humans can understand the sentence incrementally 15:20:32 instead of having to run a mental stack machine 15:23:00 wtf. does that mean 15:23:37 instead of *kill*, where <>=push and **=call, what would i say? 15:23:46 *kill* ? 15:24:00 just reversing rpn is pn, with arguments reversed 15:24:48 it makes sense in that you usually want to specify what you're doing before telling what you're doing it to, because the main event is the most interesting thing 15:25:51 (you can do *call-2-deep*, though, if you want) 15:25:59 oklopol: '2 2 +' becomes '+ 2 2' 15:26:05 so polish notation 15:26:07 as a computer, you can execute it as push 2, push 2, do + 15:26:07 ? 15:26:08 by reversing it 15:26:09 oklopol: no 15:26:12 8| 15:26:14 just write a stack program 15:26:15 and reverse it 15:26:23 because all the concepts of /stack programming/ instead of just the /notation/ are there 15:26:35 i.e. instead of a lisp program, it's like reversing a Joy program 15:27:22 polish == reversed stack, always. it's just with a stack high-order operations are easier to visualize. 15:28:17 if you know another difference, tell me what it is instead of just saying "it's different, because i see it that way" 15:29:37 polish == reversed stack, always. it's just with a stack high-order operations are easier to visualize. 15:29:39 wronngggg 15:29:47 oklopol: write a lisp program 15:29:50 then write a Joy program 15:29:52 then, reverse the Joy program 15:30:01 the Joy program is still fundamentally different from a Lisp program 15:30:07 e.g. it still has 'dup' and 'dip' and all that shizz, for one 15:31:00 -!- SimonRC has quit (Read error: 111 (Connection refused)). 15:31:21 5 2 dup + - => - + dup 2 5 <<< nothing wrong with this as polish notation 15:32:08 it's just you need to have pretty weird semantics for stuff once you do stack operations 15:32:22 oklopol: well, yeah 15:32:26 it's polish notation KINDA 15:32:26 mainly because arity cannot be done at parse time 15:32:28 but even so 15:32:30 well, yeah. 15:32:34 it's not what you'd think of 15:32:38 when you thought polish notation 15:33:13 well, polish notation and rpn might specify that arity need be known at parse time 15:33:24 dunno, i just think of them as guidelines 15:34:56 anyway, the whole point with polish notation is it's not incremental 15:36:17 oklopol: ok, but compare: 'you hello', 'hello you' 15:36:21 the latter is more useful as a human 15:36:30 because you know that something is about to be greeted 15:36:33 and then you get more information: it's you 15:36:33 and i'm not allowing direct stack manipulation all that easily, the point is that you *can* run a mental stack maching 15:36:34 whereas 15:36:37 with the other one, 15:36:43 you have to keep in mind that something about you is being said 15:36:48 and then learn that it's a greeting 15:36:52 which is more confusing 15:36:58 no it isn't 15:37:21 *machine 15:37:32 oklopol: in a complex sentence it is :) 15:37:36 you build up a stack of stuff in your head 15:37:41 and then it gets shuffled to hell when you find the verbs 15:38:40 yes 15:39:17 which is frustrating 15:39:24 it's true it's hard to keep in mind what the stack contains without knowing what it's use for 15:39:33 this is a good thing 15:40:24 frustrating? 1. your mother is frustrating 2. nothing is frustrating, things can only be challenging or impossible 15:41:52 hmmm, perhaps what i'm saying would make more sense if i explained a bit what the whole reason for stack-basedness was 15:42:34 humans have trouble storing the contents of the stack exactly because most natural languages don't require you to. 15:42:50 i want to try to change this, for myself. 15:43:21 would mean a lot easier mental calculation for instance, to get a stack working naturally. 15:45:15 there are ways to link pieces, mentally, well enough not to be forgotten for ages 15:45:23 oklopol: shit, you just called my mother nothing 15:45:24 indirectly 15:45:25 all you have to do is find a link you will definitely remember 15:45:25 that's clever 15:45:35 this is very, very easy. 15:45:39 now 15:46:01 i read a book about these techniques, and have been using them for learning lojban vocab etc. 15:46:26 but i've been thinking, i might start writing a book from a programmers point of view later on 15:46:32 because the fun thing about links is 15:46:39 that you can make data structures with them 15:46:46 permitting something like a stack easily. 15:47:11 the idea is, there are ways to "hash" an object mentally, and two hashes can easily be linked. 15:47:33 this can be used to create arbitrary graphs, so you can explicitly memorize any data structure 15:48:36 oklopol: memorize E80 15:48:54 ehird: indeed i did, in a stack-based fashion, first introducing your mother, then telling what she is, using a set as a variable. 15:49:05 so you indirectly just told me stack-based = clever 15:49:10 that's clever. 15:49:19 ehird: why? 15:49:25 also, too short to need memorizing 15:49:57 oklopol: because E80 is huge 15:49:58 :P 15:50:09 bah maybe it's not e80 15:50:11 whatever it's called 15:50:43 oklopol: The lie algebra thingy 15:50:58 i will talk more about the subject of memorization once i'm good at it myself, which might take a while as i'm lazy as hell 15:51:04 ehird: doesn't ring a bell 15:51:13 oklopol: here 15:51:14 http://en.wikipedia.org/wiki/E8_%28mathematics%29 15:51:56 ah 15:51:59 awesome 15:52:12 oklopol: yeah 15:52:15 248 dimension represent 15:52:22 "There is a Lie algebra En for every integer n≥3, which is infinite dimensional if n is greater than 8." 15:52:28 memorizing an infinite dimensional structure would be cooler 15:52:33 but slightly less, well, possible 15:54:59 is tha so? 15:55:02 *that 15:55:16 i think complex dimension just has to do with the graph's structure 15:55:30 but i don't really know, i was not aware of any of this. 15:56:31 -!- ehird has set topic: security by obscupromiscuity | http://tunes.org/~nef/logs/esoteric. 15:56:39 oklopol: i have no idea 15:56:44 but e8 is totally bitchin' 15:57:03 heh, sure 16:12:41 -!- SimonRC has joined. 16:21:00 -!- Slereah_ has joined. 16:22:44 -!- ehird has set topic: security by obscupromiscuity | lobotomoritoratiotron | http://tunes.org/~nef/logs/esoteric. 16:22:50 i suggest we invent silly terms and put them in a topic 16:22:55 -!- Corun has quit (Read error: 104 (Connection reset by peer)). 16:22:57 just add another | and put it before the log links 16:24:12 -!- Corun has joined. 16:24:22 o | security by obscupromiscuity | lobotomoritoratiotron | http://tunes.org/~nef/logs/esoteric 16:24:27 -!- oklopol has set topic: o | security by obscupromiscuity | lobotomoritoratiotron | http://tunes.org/~nef/logs/esoteric. 16:24:28 i mean 16:25:06 -!- SimonRC_ has quit (Read error: 110 (Connection timed out)). 16:25:09 i said AFTER 16:25:10 :( 16:25:13 haha 16:25:19 -!- ehird has set topic: o | iskagrel | security by obscupromiscuity | lobotomoritoratiotron | http://tunes.org/~nef/logs/esoteric. 16:25:29 well i just read "topic" and "add" 16:39:02 -!- Slereah has quit (Read error: 110 (Connection timed out)). 17:42:29 you know what sucks about irc bots 17:42:39 they have to do a huge linear search each message that comes through 17:42:43 for regexp matches and similar 17:42:44 that sucks 17:49:59 umm... k 17:50:04 why does that suck? 18:04:44 oklopol: if you have a lot of commands 18:04:50 then the linear matching is slow 18:06:54 :| 18:07:03 usually, people have a prefix 18:07:07 well, bots 18:07:57 if the bot designer uses a complex regexp to determine whether something is a command or not, thats their problem 18:08:36 but, unless you're using a 20-year-old computer, you cannot be on enough channels to have any trouble even with non-trivial regexps 18:09:56 oklopol: um, i mean like ones which match on messages 18:10:05 like 'botname!' makes the bot 'sender!' 18:10:10 if you are a plugin-based bot 18:10:14 then you can only do that via regexps, really 18:10:22 so you have to run a potentially huge list of regexps on every message 18:11:06 i have no idea what you mean by "botname!" makes the bot "sender!" 18:17:54 -!- Corun has quit ("Leaving"). 18:18:08 -!- Corun has joined. 18:18:29 oklopol: like if i had a bot claled foo 18:18:30 foo! 18:18:32 user! 18:19:55 so you have to do up to len(botnick)+1 checks to know if the user calls out your name? god, how can a modern computer manage 18:25:19 oklopol: I don't think you've read what I said. 18:25:29 If you don't build that in to the very core 18:25:32 and instead have it as a plugin 18:25:36 the only sane way to do it will be a regexp 18:25:41 Pile on many plugins 18:25:47 and you're doing over 100 regexp checks each line 18:27:36 ...doing that with a regexp is more than 4 checks? 18:29:26 if it has to find any occurrance of foo! in the message, that basically means it has to read all len(botname)+1 substrings... so basically once pass over each message 18:29:47 i have no idea what your point is, but indeed, perhaps i'm just not reading what you say. 18:31:14 oklopol: you're not 18:31:57 k 18:33:41 anyway, you are correct in that if you make your computer do the work of optimizing the regexp matching, it may not be optimal, although probably fast enough 18:34:00 and if you insist on using general regexps where you could just search for static strings 18:34:31 which would mean just one pass over the string, and would be trivial to code, even as a generic version 18:34:34 not insist, oklopol 18:34:42 Show me a good way to do it your way in a plugin based system :- 18:34:44 *:-) 18:35:12 "good"? meaning it should do static searches especially fast? 18:35:37 it's trivial to built a tree from the affices or smth, and just pass once over the message 18:36:13 although i see no problem with doing 100 regexp checks per line. nothing sucks with that imo 18:39:40 and are you assuming a regex motor that can't optimize for multiple search patterns at once? 18:40:10 naturally a good one should provide that 18:40:38 oklopol: sure, it's fine if you use something which doesn't exist. 18:41:19 no such regex motor exists? 18:42:44 anyway, i don't see how what exists has anything to do with making an irc bot, just make one yourself, regexes aren't hard to match on 18:44:20 oklopol: no such regex motor exist. 18:44:21 s 18:44:29 also .. you make me giggle 18:44:42 how so? 18:44:43 regexes are easy... but only simple ones 18:44:45 e.g. backtracking 18:44:50 and backreferences 18:45:00 heck, embedded evaluation 18:45:08 i recall making a regex matcher in c in 5 hours before i knew what parsing was 18:45:12 hmm 18:45:22 why would you allow that for an irc bot plugin? 18:45:24 oklopol: modern regexps are very powerful 18:45:26 and useful 18:45:33 some are even TC 18:47:00 well i don't see your concern, if you insist on using modern regexps even though they don't have support for your need, you're just making things hard for yourself 18:47:23 but you can make static strings separate cases and handle them yourself or smth 19:00:39 oklopol: anyhoo as you can guess 19:00:42 endeavour is coming <3 19:01:22 tell me more 19:05:45 oklopol: it will be endeavouricious 19:22:05 oklopol: hmm properly nested quotes are parsable aren't they 19:22:06 that is 19:22:12 "abc'd"foo"ef'ghi" 19:22:14 instead of 19:22:18 'abc'd'foo'ef'ghi' 19:27:46 -!- oerjan has joined. 19:32:08 ehird: yes, they are 19:32:39 oklopol: write a parser 19:32:39 :3 19:32:52 :| 19:32:56 well... sure 19:33:08 "abc'd"foo"ef'ghi" --> ["abc",["d",["foo"],"ef"],"ghi"] 19:33:21 -!- oerjan has set topic: o | iskagrel | security by obscupromiscuity | lobotomoritoratiotron supercollider | http://tunes.org/~nef/logs/esoteric. 19:41:09 http://www.vjn.fi/pb/p125315136.txt 19:41:38 -!- Sgeo has joined. 19:41:46 first made it agglomerate, but thought that might be better and removed it 19:43:17 -!- oerjan has set topic: o | iskagrel | security by obscupromiscuity | lobotomoritoratiotron supercollider | you will be agglomerated | http://tunes.org/~nef/logs/esoteric. 19:43:40 * oerjan is slightly disappointed that the word actually exists though 19:44:03 oklopol: TypeError: append() takes exactly one argument (0 given) 19:44:08 hmm 19:44:11 what did you use? 19:44:18 oh wait 19:44:20 it was a copypaste error 19:45:18 http://www.vjn.fi/pb/p342464244.txt <<< original agglomerative version, although you prolly could've added that yourself just as easily as i pressed ctrl+z 19:45:25 -!- oerjan has set topic: o | iskagrel | security by obscupromiscuity | lobotomoritoratiotron supercollider | resistance is fossile | you will be agglomerated | http://tunes.org/~nef/logs/esoteric. 19:47:14 ehird: does it work? i didn't really debug, just checked with a few trivial ones 19:47:23 * Sgeo is prepared to destroy the Universe with BOREDOM! 19:47:40 Sgeo: that is already being done 19:47:58 hm? 19:48:10 oklopol: you need a join 19:48:12 _very_ slowly 19:48:21 ehird: where? 19:48:43 I'm SO boring trying to count the number of digits in 19!!! that I accelerate the Heat Death of the Universe! 19:48:56 oklopol: it kinda works: 19:49:02 >>> parse_em(x) 19:49:02 [[['a', 'b', 'c', ['d', ['f', 'o', 'o'], 'e', 'f'], 'g', 'h', 'i']]] 19:49:13 yeah that's the non agglomerative one 19:49:19 is that factorial iterated thrice? 19:49:20 but i also pasted the original 19:49:52 oerjan, of course 19:50:22 19!.!.! 19:51:03 could be awkward 19:52:02 imagine trying to pronounce !.!.!. 19:52:09 ehird: is it correct? 19:52:28 * oerjan thinks Bill the Cat would pronounce it perfectly 19:52:29 oklopol: well, yes. 19:52:34 good 19:52:45 oerjan: I guess it'd be "chk. chk. chk" 19:53:03 (from the band named !!!, which is "chkchkchk" (well, any percussion sound - so "pewpewpew" would work too, but ...)) 19:53:46 pewtering nonsense... 19:55:30 pewpewpewtering nonsense 20:00:11 pew^{19!!!}tering nonsense 20:02:53 hm, the number of digits in 19!!!... loggamma(1 + exp(4.66 * 10^18)) / log(10)... that's pretty big :-/ 20:06:09 Deewiant: heh 20:06:13 A(g_64,g_64)!!! 20:06:20 >_< 20:06:52 those !!! are sort of insignificant 20:07:31 as in, adding 1 to any of the g_64's is likely to make much more of a difference 20:08:54 Σ(A(g_64!,g_64!)) 20:10:34 and i would guess changing 64 to 65 is far better than adding ! to g_64 20:10:48 I forget how it's defined 20:11:07 but I'll humor you 20:11:08 and what's the ? 20:11:22 Σ(A(g_(exp(64))!,g_(exp(64))!)) 20:11:30 I guess your font can't handle it 20:11:31 it's a sigma 20:11:42 um i don't think yours can either 20:11:53 how's that? 20:11:58 because it doesn't show up in the logs 20:12:17 * oerjan always checks the logs when he suspects unicode 20:12:24 it shows up fine in the logs here :-P 20:12:32 maybe your font can't handle the logs 20:12:41 which logs? 20:12:48 http://tunes.org/~nef/logs/esoteric/08.05.04 20:13:18 hm weird ircbrowse didn't get it 20:13:18 -!- timotiis has joined. 20:14:19 mind you if that Sigma is a sum sign then it doesn't fit there 20:15:03 no bounds or index to sum over 20:15:12 it's for the busy beaver function 20:22:12 what's 4.66 doing in Deewiant's expression? 20:22:32 loggamma(19! + 1) 20:22:40 is approximately 4.66 * 10^18. 20:32:35 oerjan: works here 20:33:26 it showed up for me on tunes.org too 20:34:51 oklopol: 20:34:52 {'medium': {'PRIVMSG': [(<_sre.SRE_Pattern object at 0xb7de0c58>, []), (<_sre.SRE_Pattern object at 0xb7deb400>, []), (<_sre.SRE_Pattern object at 0xb7e07560>, []), (<_sre.SRE_Pattern object at 0x81af6c8>, []), (<_sre.SRE_Pattern object at 0x81b0120>, [])]}} 20:34:58 i am writing an UNGODLY module system : 20:35:01 *:O 20:35:06 sane, unlike AnMaster's :P 20:37:41 medium? 20:38:34 oklopol: priorities 20:38:36 high,medium,low 20:38:43 high gets executed then medium then low 20:38:52 okay. 20:39:02 and ungodly system requires a medium. that much is obvious. 20:39:02 why a list of functions for a pattern? 20:39:04 *an 20:39:17 oerjan: lol @ fun 20:39:18 oklopol: because you might have multiple functions under the same pattern? :P 20:39:24 It's a relic from the days pr- 20:39:25 Hey thanks 20:39:27 hmmhmm 20:39:29 I can clean up my code bigtime 20:39:29 <3 20:39:32 You just found a way 20:39:33 haha 20:39:43 oklopol: but here's what a module looks like 20:39:43 removing it? 20:39:43 http://rafb.net/p/xFOvII72.html 20:39:55 that will make the regular command syntax work 20:39:56 with any prefix 20:39:58 '.hello x' 20:40:00 and '.hi x' 20:40:02 and 20:40:04 'abc!' 20:40:08 where abc = bot name 20:40:09 responds 20:40:13 ($nickname is a special placeholder) 20:40:15 and the last one 20:40:15 matches 20:40:18 abc: hello x 20:40:22 abc, goodbye x 20:40:22 etc 20:47:17 -!- Slereah has joined. 20:47:50 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)). 20:48:44 oklopol: 20:48:46 {'medium': {'PRIVMSG': [(<_sre.SRE_Pattern object at 0xb7dd6e78>, ), (<_sre.SRE_Pattern object at 0xb7de5400>, ), (<_sre.SRE_Pattern object at 0xb7e01560>, ), (<_sre.SRE_Pattern object at 0x81af658>, ), (<_sre.SRE_Pattern object at 0x81b0258>, )]}} 20:50:20 oklopol: so which bit of endeavour should i code next. ???? 20:58:18 i recommend using a dice to decide that for you 20:58:33 DICidE <<< that's where they took the word 21:00:50 oklopol: well, it's open-ended 21:00:55 wanna see my module implementation? 21:00:57 it uses import internals 21:00:59 and crazy stuff 21:01:10 basically, it lets you write a module like the one i linked 21:01:17 and finds out what bits of the module are commands 21:01:19 etc. 21:01:23 and then extracts them 21:01:25 into a Module object 21:01:31 which can be bound and unbound to a bot 21:01:55 oklopol: http://rafb.net/p/W55y8x46.html 21:01:59 self.commands = {} # {priority ('low','medium','high') => 21:01:59 # {irc command or * => [(regexp, func)]}} 21:02:03 that's how it represents commands 21:02:09 it's pretty universal 21:02:23 at the very base, you can match on command = * regexp = .* 21:02:25 and use the raw text given 21:02:51 oklopol: cool or not 21:04:47 oklopol: y/n 21:04:53 hmm 21:05:10 well, probably y. 21:05:17 oklopol: read it 21:05:18 it's awesome 21:05:21 soon, soon :D 21:05:33 _digest_command is a method of epic proportions 21:05:36 it handles >>everything<< 21:05:54 i screamed a lot when writing it, that commands dictionary can get gnarly 21:09:27 sounds like it needs a sidekick 21:10:11 woot, just fixed loads of bugs in it 21:10:13 it is wooty now 21:23:53 * Sgeo considers writing a kernel module to allow userspace programs to use panic() 21:25:23 Sgeo: oh lord, you are writing kernel modules already? 21:25:32 I want to learn how 21:25:32 nobody install anything by sgeo he wrote his first c program a few days ago 21:25:44 Sgeo: you can't write a kernel module a few days after tapping out a hello world 21:26:02 I can certainly try, though 21:26:35 Sgeo: You still don't understand anything about C -- I can guarantee it, nobody does after a few days 21:26:42 kernel programming is a TOTALLY different level 21:26:57 * Corun agrees 21:27:09 * Corun has been programming C for quite a while 21:27:21 * oerjan suddenly gets a flashback to Superman 3 21:28:04 a very vague one, mind you 21:28:27 And I wanted to write a driver in the linux kernel a few days ago, and, I mean, it's like the difference between a flying game that you can control with a keyboard and an actual jet 21:30:08 (This is _years_ I've been doing C for :-)) 21:30:16 * oerjan wonders if anyone has attempted to equip an actual jet with a keyboard interface 21:30:21 Heh 21:31:05 "Let's see... lock on.. that'd be enter.. Ok, I'm locked on... and... fire? Oh! space, of course" FWOOSH 21:33:29 FUCK I WAS HIT ESCAPE ESCAPE ESCAPE 21:35:02 Surely there are kernel module tutorials? 21:37:23 Sgeo: that's not gonna help you if you are not extremely experienced with c 21:37:29 approximate bar 21:37:44 [ | | ] <-- kernel programmer 21:37:47 ^ you 21:38:34 all this talk about kerneling being hard is making me want to try 21:38:53 oklopol: god no# 21:39:44 mind you i'm fairly experienced in c! 21:39:56 well c++ 21:40:03 but what's the difference really ;;) 21:40:58 heh 21:41:01 night and day 21:41:01 :) 21:42:51 i used the c subset for the most part, often just int(...) style casts :D 21:43:38 int(...) style.. oh, using int(some_non_int) insead of (int)some_non_int ? 21:44:27 yes 21:45:46 my c++ was always quite weird, as you can probably guess if you've read my python 22:09:50 oklopol: aa 22:21:22 oklopol: i think i implemented ef's basic idea in haskell 22:21:24 lala :: (Eq a) => (a -> a) -> a -> a 22:21:24 lala f a = case f a of 22:21:24 x | x == a -> a 22:21:24 x -> lala f x 22:21:38 * Sgeo can't seem to compile this hello world 22:21:57 Sgeo: You can't compile a hello world ... and you want to write a kernel module 22:21:59 Corun: permission to mock? 22:22:21 sgeo@ubuntu:~/c$ gcc -c -Wall -I /usr/src/linux-headers-2.6.20-15-386/include lkm_hello.c 22:22:24 Is that correct? 22:22:28 Sgeo: LOL 22:22:36 No. 22:22:40 But I won't tell you what's right because 22:22:51 1. the fact that you tried that shows that you really, really shouldn't be programming kernel-level 22:22:54 2. you shouldn't be anyway 22:23:06 ehird: lol :P 22:23:09 Does it need to use the real source/ 22:23:21 Sorry, question quota exceeded. 22:24:41 ehird: that's fixed point, yes 22:24:57 oklopol: but is it yours 22:25:07 yes 22:25:30 What's wrong with me wanting to learn? 22:26:06 well, what do you mean by "mine"? 22:26:50 that's fixed point with the trivial observation f a = a => f (f a) = a 22:29:48 ehird, is it that it needs to point to the place with real code? 22:29:53 Or am I doing something else wrong? 22:33:00 -!- Iskr has quit ("Leaving"). 22:35:27 ehird: From the sounds of it, he's just struggling to include the appropriate headers. 22:36:08 Although one will admit that Sgeo needs to grok C first. 22:36:29 (by "grok", I mean "be able to write the C spec from memory. . . And think that it's the most natural thing in the world.) 22:37:03 * pikhq would probably have a bit more success doing a kernel module. . . 22:37:13 But, then, I've been writing C for a few years. :p 22:39:04 i should do some c tomorrow 22:39:22 I should work on my kernel... 22:41:19 Er, permission granted, ehird? 22:41:20 :-P 23:03:52 -!- oerjan has quit ("leaving"). 23:24:36 back 23:25:30 pikhq: Yeah, I think the fundamental difference between people who rock at C and people who don't, are that the rockers know that they suck 23:25:45 and the people who don't think that they can learn how to not suck from a quick tutorial and that 'diving in' is a good approach :-) 23:25:53 seen that very often 23:29:22 hmm... i never saw c as that complicated 23:29:48 c is fun! 23:30:23 bsmntbombdood: your mother is fun 23:30:31 oh really? 23:30:37 we should have a threesome sometime 23:30:47 you read my mind 23:30:58 she hot? 23:31:14 you should know 23:33:04 hmm... touche 23:36:26 C is simple. just hard 23:37:48 not hard 23:38:25 whuz so hard about it? 23:40:02 1. philosophy 23:40:11 2. little nitty bits 23:47:39 -!- boily has joined. 23:52:00 http://www.faqs.org/docs/kernel/x931.html oooOOO >.> 23:52:40 -!- boily has quit ("Schtroumpf!"). 23:52:41 * Sgeo just said that to attempt to scare ehird >.> 23:56:53 i'm so gonna read that 23:57:11 looks so boring i'm guaranteed to pass out 2008-05-05: 00:02:09 -!- olsner has quit ("Leaving"). 00:13:53 oklopol: C is very, very simple. That's what makes it fiendishly hard. 00:42:57 http://upload.wikimedia.org/wikipedia/commons/6/66/Ca110-symbol-separator.png 00:43:00 this is a bitchin' image 00:44:05 But rule 34 would be moar arousing :o 00:45:19 Slereah: Not necessarily. 00:45:28 Some rule 34 stuff is an instant erection-killer. 00:46:27 pikhq: Some rule 34 stuff can kill an erection that isn't even there. 00:46:44 Which is kind of a bizzare concept. 00:47:02 show example 00:47:11 you're erections are just weak. 00:47:13 oklopol: that'd involve finding it myself 00:47:16 ... 00:47:16 your 00:47:21 also, it can't be a weak erection if it isn't there now can it 00:47:32 hmm... good point, good point 00:50:19 -!- timotiis has quit (Read error: 110 (Connection timed out)). 00:59:22 -!- sebbu has quit ("@+"). 01:46:58 -!- ehird has quit (Remote closed the connection). 03:39:22 -!- Corun has quit ("Leaving"). 04:09:38 "The designers were partially successful; the only known precedent is a machine instruction [6] in a Soviet mainframe computer BESM-6, released in 1967, that is effectively equivalent to INTERCAL's "select" operator." 04:09:40 Heh. 04:17:50 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)). 04:19:38 -!- Sgeo has joined. 04:51:08 -!- atsampso1 has joined. 04:57:31 -!- atsampson has quit (Read error: 110 (Connection timed out)). 05:09:10 have you guys played with emacs calc? 05:10:16 I read sexuality into that. 05:16:22 -!- pikhq has quit (Read error: 110 (Connection timed out)). 05:27:29 -!- calamari has joined. 05:44:09 -!- Sgeo has quit (Read error: 110 (Connection timed out)). 05:44:44 very powerfull, very esoteric 05:45:49 esoteric as in "Understood only by a chosen few or an enlightened inner circle.", and not "a useless joke" 05:54:45 -!- SupStrman has joined. 05:54:55 -!- SupStrman has left (?). 06:52:52 -!- calamari has quit ("Leaving"). 07:23:35 -!- olsner has joined. 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:00:37 -!- GreaseMonkey has joined. 08:23:57 -!- Iskr has joined. 10:26:20 bsmntbombdood: you and your crazy rpn calculator fantacies 10:29:40 -!- GreaseMonkey has quit ("Unisex."). 10:32:43 -!- timotiis has joined. 11:03:54 -!- timotiis has quit (Read error: 110 (Connection timed out)). 13:18:32 -!- ehird has joined. 13:20:25 -!- ehird_ has joined. 13:20:25 -!- ehird has quit (Read error: 104 (Connection reset by peer)). 13:23:26 -!- ehird_ has quit (Read error: 104 (Connection reset by peer)). 13:35:41 -!- ehird has joined. 14:09:19 -!- ais523 has joined. 14:16:59 -!- ais523 has quit (Read error: 104 (Connection reset by peer)). 14:17:14 -!- ais523 has joined. 14:17:37 hello ais523 14:17:44 hello 14:33:32 -!- Corun has joined. 14:47:13 -!- ais523_ has joined. 14:48:09 -!- ais523 has quit (Nick collision from services.). 14:48:12 -!- ais523_ has changed nick to ais523. 15:28:38 -!- pikhq has joined. 16:33:37 -!- sebbu has joined. 17:02:41 -!- ais523 has quit ("(1) DO COME FROM ".2~.2"~#1 WHILE :1 <- "'?.1$.2'~'"':1/.1$.2'~#0"$#65535'"$"'"'&.1$.2'~'#0$#65535'"$#0'~#32767$#1""). 17:12:21 -!- Corun has quit ("This computer has gone to sleep"). 17:12:36 -!- sebbu2 has joined. 17:16:51 -!- fizzie2 has joined. 17:17:15 -!- fizzie has quit (Read error: 110 (Connection timed out)). 17:20:31 -!- Corun has joined. 17:31:09 -!- ehird_ has joined. 17:31:22 -!- ehird has quit (leguin.freenode.net irc.freenode.net). 17:31:22 -!- cmeme has quit (leguin.freenode.net irc.freenode.net). 17:31:40 -!- sebbu has quit (Success). 17:31:40 -!- sebbu2 has changed nick to sebbu. 17:32:35 -!- ehird has joined. 17:32:35 -!- cmeme has joined. 17:39:16 -!- ehird has quit (Connection timed out). 17:47:19 -!- ehird__ has joined. 17:53:48 -!- ehird has joined. 17:59:41 -!- Sgeo has joined. 18:02:52 -!- ehird_ has quit (Read error: 110 (Connection timed out)). 18:06:56 -!- ehird__ has quit (Read error: 110 (Connection timed out)). 18:40:30 -!- ehird has set topic: o | iskagrel | security by obscupromiscuity | lobotomoritoratiotron supercollider | resistance is fossile | you will be agglomerated | apathy krundig | http://tunes.org/~nef/logs/esoteric. 18:40:47 hah, try singing that aloud 18:41:11 "O/Iskagrel/Security by obscupromiscuity/Lobotomoritoratiotron supercollidor/Resistance is fossile/You will be agglomerated/Apathy krundig" 18:41:15 it sounds like some kind of pretentious metal lyrics 18:45:37 * olsner lols quietly at "Resistance is fossile/You will be agglomerated" 18:48:41 olsner: it truly sounds like something that would be shouted out loudly at a metal concert 18:48:51 RESISTANCE IS FOSSILE YOU WILL BE AGGLOMERATED YEAHHHHHHHH 18:49:50 heh, when you put it in all caps like that I can actually hear it growled 18:51:31 olsner: it's an odd idea, though -- a death metal band that only growls about geek puns 18:51:33 *geeky 18:51:57 it would be truly befitting of #esoteric to produce such a metal band 18:58:24 -!- oerjan has joined. 19:03:41 * oerjan thinks it's starting to sound like a weirdly geeky religious sect. esoteric in both senses! 19:05:25 * oerjan does not think that this in any way contradicts it being a metal band too 19:10:28 -!- timotiis has joined. 19:17:51 * olsner bringeth forth the fermented milk 19:19:19 * oerjan googleth that phrase with no result 19:20:19 * olsner madeth it upeth 19:20:41 rather, it was a real-time narrative with a twist 19:21:27 * olsner greedily makes hasty work of aforementioned expired milk 19:24:23 Znlor vg'f abg fhpu n tbbq vqrn gb rng cergmryf juvyr er-ernqvat n fgbel jurer ng gur raq, rirelbar qvrf bs qrulqengvba (lrnu lrnu, fcbvyre sbe uggc://dagz.bet/vaqrk.cuc?snvyher , gung'f jul vg'f va EBG13.. lrf, V'z rivy orpnhfr V onfvpnyyl tbg rirelbar'f vagrerfg hc ol cbfgvat va EBG13..) 19:25:00 let me guess, EBG13 stands for ROT13? 19:25:47 )-: lıʌǝ sı ɹǝlıods lıʌǝ 19:26:14 quick discovery of cipher method is quick :-) 19:26:44 olsner, you didn't even bother to decrypt what I wrote, did you? 19:26:46 I can tell that's ROT13 from the letters, and from having seen a lot of ROT13 in my time. :-P 19:26:53 lol Deewiant 19:27:05 If "EBG13" wasn' 19:27:07 wasn 19:27:13 The "uggc://" is quite a giveaway, too. 19:27:24 I actually didn't pay any attention to "EBG13" until olsner pointed it out :-P 19:27:29 wasn't there, would uggc:// make it quite obvious too, or can people generally tell even without those 19:28:12 well I can't be sure it's not any other caesar cipher or similar... but it's /usually/ ROT13 19:28:39 * oerjan discovers vim's g? command 19:29:23 * olsner has never attempted to read ROT13'ed text before 19:29:27 Sgeo: also, fuck you 19:29:40 ehird: temper, temper 19:29:47 olsner: his rot13 contained a spoiler 19:29:51 a rather big one 19:30:01 so, yeah: fuck you 19:30:10 The story's been out for a while.. 19:30:26 Sgeo: so everyone must have read it, right 19:30:31 it's easy to bookmark it and forget about it 19:30:35 then read it in a few weeks 19:30:39 having forgotten the spoiler 19:30:57 Deewiant: i have never forgotten a spoiler 19:31:10 O_o 19:31:16 you should play nethack 19:31:55 http://www.cs.cmu.edu/~aleksey/pictures/curry-howard-isomorphism.jpg 19:32:41 ehird, isn't rot13 normally used to hide spoilers? 19:32:46 *evil grin* 19:33:03 http://wwwwwwwww.jodi.org/ <-- what the 19:33:19 Sgeo: it's worth noting that you could have left out the spoiler perfectly well 19:34:18 ehird: hmm, stupid thing isn't in a
    19:34:33  not that I can make much sense of it even when it is
    19:34:40  Deewiant: it's a link
    19:34:47  to an extensive website of ... WHAT
    19:34:51  yes, that's obvious
    19:34:59  but the illustration itself is interesting :-P
    19:36:27  24 march 2001
    19:37:14  huh?
    19:37:27  is the date the site was put up, I would guess.
    19:37:41  why
    19:38:04  Deewiant: BTW  - view source for the ascii art
    19:38:27  because of the "last modified" timestamps visible at http://wwwwwwwww.jodi.org/100cc/hqx/ and http://wwwwwwwww.jodi.org/betalab/img/ for instance
    19:38:29  ah
    19:38:29  http://en.wikipedia.org/wiki/Jodi
    19:38:32  internet artists
    19:38:47  appears at first glance to consist of meaningless text, until a glance at the HTML source code reveals detailed diagrams of hydrogen and uranium bombs.
    19:38:47  ehird: and yes, obvious, hence my comment saying that I can't make much sense of it
    19:38:51  Deewiant: it's a 1995 work
    19:38:53  apparently
    19:39:19  They received a Webby Award in the Arts category in 1999; as their mandatory five-word acceptance speech, they exclaimed "Ugly corporate sons of bitches!".
    19:39:26  :-D
    19:57:59  Deewiant: Continuation-passing style is hard.
    19:58:08  agreed
    19:58:23  I mean.
    19:58:25  I understand it fully.
    19:58:27  It's simple.
    19:58:30  But doing the conversion automatically?
    19:58:32  :((((((((
    20:08:58  Hm, I guess I should look for a tutorial for something newer than GTK 2.0?
    20:25:11  Sgeo: You wrote your first hello world a few days ago. Now you're doing GTK.
    20:25:16  Jesus christ there are just no words.
    20:25:22  Not as bad as a kernel module, even so.
    20:27:48  next week he'll have SkyNet up and running as a botnet.
    20:28:27  we must stop him!
    20:28:42  oerjan: in asm
    20:28:46  which he learned the day prior
    20:28:50  from a 5 minute tutorial
    20:30:27  I have done quite a lot of work with a language that had a very C-like syntax, if that helps
    20:31:02  ehird, are there any graphical toolkits that might be easier?
    20:31:36  Sgeo: just don't. YOU DO NOT KNOW ANYTHING ABOUT C YET
    20:31:38  and that is objective fact
    20:31:40  for ANYONE at this stage
    20:31:49   I have done quite a lot of work with a language that had a very C-like syntax, if that helps    <-- No, it doesn't. One bit.
    20:38:42  it's the bits that get you.  i think.
    20:39:10  heh
    20:47:57  Yay I did the exercise suggested by the tutorial
    20:48:21  Sgeo: Just stop.
    20:48:35  No good C programmer thinks they're good enough for stuff like this at this point.
    20:49:32  I need to overcome the disability of relying on GUIs to make GUI applications that I acquired by reading about VB5 at an early age..
    20:50:52  Sgeo: Don't do it with C at ~5 days.
    20:51:08  Besides, gtk devs advocate using a graphical designer (Glade) anyway.
    20:51:12  But more importantly
    20:51:20  DON'T DO IT WITH C AT ~5 DAYS YOU DON'T KNOW ANYWHERE NEAR ENOUGH C FOR THIS
    20:51:24  NOR A KERNEL MODULE
    20:51:28  >>>>SLOW DOWN<<<<
    20:52:17  ehird: >>>>CHILL OUT<<<<
    20:52:32  Deewiant: i can't face being tech support for another sgeo horror
    20:52:33  :(
    20:52:47  you don't have to be tech support for him :-P
    20:52:50  "another sgeo horror"?
    20:52:59  Deewiant: yeah but he spams the channel if i'm not
    20:53:19  there isn't much conversation here anyway, let'im
    20:53:45  kernel modules at 4 days come on :(
    20:54:17  why not, whatever gets you going
    20:54:25  it might not be complete very soon
    20:54:29  but where's the harm in trying
    20:55:17  because i know what sgeo's like :<
    20:58:16  Do most GTK+ programs use Glade/
    20:59:27  yes
    21:26:24 -!- Iskr has quit ("Leaving").
    21:28:02  brb 30m
    22:02:35  I had forgotten that Fine Structure rocks
    22:02:39  but it does
    22:10:06 -!- oerjan has quit ("Have a finely structured night").
    22:57:40  Back
    22:57:50  SimonRC: I haven't started it yet unfortunately.
    22:59:02  ehird, I think I spoiled only one substory >.>
    23:18:22  indeed
    23:18:36  and that wasn't a terribly bad spoiler
    23:19:08  I found a mine of hilarity:  ROM CHECK FAIL
    23:19:11  http://www.tigsource.com/features/vgng/index2.html
    23:19:18 -!- olsner has quit ("Leaving").
    23:19:38  I kept bursting out in laughter at the ridiculous combinations it came up with
    23:19:50 * SimonRC goes
    23:24:29 -!- timotiis has quit (Read error: 110 (Connection timed out)).
    
    2008-05-06:
    
    00:03:49 -!- Corun has quit ("Leaving").
    00:38:50 -!- Corun has joined.
    00:48:50 -!- Corun has quit ("Leaving").
    01:03:59 -!- ihope has joined.
    01:07:28  Last night, I wrote some notes for an AI thingy with a pencil on yellow wide-ruled paper. Today at school, I wrote some notes for that AI thingy with a pen on white college-ruled paper.
    01:07:56  The notes on white paper have much more crossing out. I wonder if that's related to the color of the paper.
    01:10:46  I'll scan thhem in case anyone wants to use them to best the human mind.
    01:16:28  Darn. One of these is illegible and the other's cut off.
    01:17:22  Bye for today!
    01:17:29  Bye.
    01:17:40  You're not going to stick around to see my revolutionary ideas? :-P
    01:17:45  Nope.
    01:17:50  See you.
    01:18:06 -!- ehird has quit (Remote closed the connection).
    01:22:47  Yellow page, huge edition: http://i29.tinypic.com/2wbvrqr.jpg
    01:23:51  White page, non-huge edition: http://i32.tinypic.com/2vt7jid.jpg
    01:32:32  And the yellow one mentions Tailsteak!
    01:33:48 -!- Corun has joined.
    02:47:38 -!- Slereah_ has joined.
    02:47:38 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
    04:16:23 -!- Corun has quit ("Ok, I'm ZZzzzing :-P").
    04:18:08 -!- calamari has joined.
    05:11:07 -!- Slereah has joined.
    05:11:07 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)).
    05:47:06  ihope, tailsteak? Wherewhere?
    05:47:10 * Sgeo opens Firefox
    05:48:01  ihope, OCR much?
    05:51:15 * Sgeo takes back any accidental implied insultiness
    05:55:45 -!- GreaseMonkey has joined.
    05:58:28 -!- Slereah_ has joined.
    05:58:35 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)).
    06:16:44 -!- Slereah has quit (Read error: 110 (Connection timed out)).
    07:56:55 -!- Iskr has joined.
    07:59:59 -!- clog has quit (ended).
    08:00:00 -!- clog has joined.
    08:02:42 -!- Iskr has quit ("Leaving").
    08:03:19 -!- Iskr has joined.
    08:25:13 -!- calamari has quit ("Leaving").
    08:39:02 -!- olsner has joined.
    09:03:41  Deewiant: I can tell that's ROT13 from the letters, and from having seen a lot of ROT13 in my time. :-P <<< i can *read* it, pwnd ya bad, didn't i?
    09:04:24  hmm
    09:04:51  i actually cannot, now that i started reading. perhaps i memorized a crooked rot13 chart :)
    09:05:15  EBG = VYT in mine.
    09:05:32  right, perhaps it wasn't rot-13
    09:07:07  That sounds more like Atbash.
    09:08:07 -!- fizzie2 has changed nick to fizzie.
    09:08:17  (hmm... now that i think about it i've memorized a complement alphabet :D)
    09:08:39  Yes, that's what Atbash is: http://en.wikipedia.org/wiki/Atbash
    09:10:16  cool, it has a name.
    09:10:24  oh
    09:10:41  i didn't notice your earlier comment there, not that it changes anything
    09:10:53  (but had to explain the "oh")
    09:11:23  hmph, now i need to use another 5 minutes for alphabet memorization :<
    09:13:25  I think the first question of the first homework round of our introductionary-cryptography-thing-course was about Atbash. Completely pointless, of course. (And the second question had ROT-13. Later on the homework questions made a bit more sense.)
    09:23:11  rot-13 your atbash for twice the strength
    09:25:00  (it's nice to know that they commute!)
    09:27:10  oh, rot13.atbash == atbash.rot13?
    09:30:38  what's atbash?
    09:32:49  See the Wikipedia link just a couple lines upwards.
    09:33:03  Also rot_N.atbash = atbash.rot_{26-N}, for obvious reasons.
    09:36:36  Too bad tr doesn't like "tr a-z z-a"; otherwise it'd be a nice Atbash utility. It's already good for rot-13ing with "tr a-z n-za-m".
    09:36:47  tr: range-endpoints of `z-a' are in reverse collating sequence order
    09:39:35  ghci -e 'runCommand $ "tr a-z " ++ reverse [
    09:39:40  'a'..'z']'
    09:39:58  or something like that :P
    09:54:12  Well,   perl -pe '@a=("a".."z"); @b=reverse(@a); eval "tr{@a}{@b}";'   also works, but can't say it's pretty.
    10:23:36 -!- GreaseMonkey has quit ("Unisex.").
    11:34:12 -!- ais523 has joined.
    11:46:35 -!- ais523 has quit ("(1) DO COME FROM ".2~.2"~#1 WHILE :1 <- "'?.1$.2'~'"':1/.1$.2'~#0"$#65535'"$"'"'&.1$.2'~'#0$#65535'"$#0'~#32767$#1"").
    12:16:42  err
    12:17:16 -!- Tritonio has quit (Remote closed the connection).
    12:41:02 -!- sebbu2 has joined.
    13:01:30 -!- sebbu has quit (Connection timed out).
    14:59:13 -!- ais523 has joined.
    15:14:51 -!- ehird has joined.
    15:22:30 -!- timotiis has joined.
    15:35:05 -!- oklopol has quit (Read error: 104 (Connection reset by peer)).
    15:35:15 -!- oklopol has joined.
    15:35:50 -!- RedDak has joined.
    15:42:37 -!- RedDak has quit (Remote closed the connection).
    15:51:56  a couple of esoteric programs have turned up here: http://thedailywtf.com/Comments/Code-examples-and-interviews.aspx?pg=3
    15:52:17  they were discussing stupid job interview questions that asked people to write programs under arbitrary restrictions
    15:52:26  Heh.
    15:52:34  Let's see that!
    15:52:39  1
    15:52:39  2
    15:52:40  Fizz
    15:52:43  and I submitted an INTERCAL program that fit most of the spec of one problem, while someone else wrote a Befunge program for the other (easier) problem
    15:52:49  4
    15:52:51  Buzz
    15:52:53  Fizz
    15:52:54  tee hee
    15:52:54  7
    15:53:00  I was doing the substring program
    15:53:06  irp fizzbuzz!!
    15:53:12  mine almost fits the spec, but it's case-sensitive and outputs in Roman numerals
    15:53:19  hahahah
    15:53:29  oh, someone came into #irp the other day and ran a few programs
    15:53:37  ais523: the problem with the daily wtf will that everyone will say "that language is the real wtf!! LOL ENTERPRISEY!!"
    15:53:51  it's a site filled with idiots who like to laugh at the people that they think are idiots :p
    15:53:58  when they tried the beer thing, I linked them to the lyrics on 99-bottles-of-beer.net, and then they went away
    15:54:05  ais523: heh
    15:54:08  ais523: you're not standard!
    15:54:10  ehird: not all of them are idiots, just some of them
    15:54:12  the correct response is 'go to hell'
    15:54:16  ehird: I know
    15:54:22  but I was implementing an extension
    15:54:23  irp++
    15:54:52  I can't wait for the next OMGWTF, by the way
    15:55:06  I'm planning to submit code automatically translated from the INTERCAL
    15:55:14  that's two WTFs pretty much guaranteed
    15:55:21  What is this fizbuz business?
    15:55:31  Slereah_: a silly interview question, also a children's game
    15:55:49  see the page I linked for Fizzbuzz in Befunge, and an implementation of substr in INTERCAL that finds all matches
    15:56:08  No one can read esoteric code, ais523.
    15:56:10  the correct FizzBuzz output, as I remember it (although the spec they give isn't clear), is:
    15:56:18  It's a thing you write, not that you read!
    15:56:35  1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz and so on
    15:56:59  in the children's game, you continue until someone screws up the sequence, then they're out
    15:57:08  the sequence showed up on anagolf a while ago, too
    15:57:08  So fiz is for dividible by 5, butt for 3?
    15:57:13  yep
    15:57:15  a nice simple rule
    15:57:15  and fizbutt for both
    15:57:24  That doesn't seem too hard for a non-esoteric language.
    15:57:25  err.... buzz, not butt
    15:57:38  Slereah_: it isn't, it's really easy, but apparently lots of programmers are incapable of it anyway
    15:57:43  ais523: fizz too
    15:57:45  but fizbutt is amusing
    15:57:48  and Slereah_ said it
    15:57:57  What about my butt?
    15:58:09  hahahah
    15:58:09  it seems to be just fiz and buz in the US, though
    15:58:20  and fizzie: what an appropriate nick for this conversation!
    15:58:26  ...
    15:58:26  ais523: i cant' resisit saying something about dumbing down :-)
    15:58:28  *can't
    15:58:30  *resist
    15:58:31  (irony)
    15:58:32  I did write butt, didn't I.
    15:58:51  read the INTERCAL, anyway, it isn't too hard...
    15:59:01  I can't read much INTERCAL
    15:59:03  well, I didn't try to obfuscate it, but the algorithm is interesting
    15:59:28  it's my standard technique of using stacks to store arrays, and backtracking to access them non-destructively
    15:59:46 -!- Parma-Quendion has joined.
    16:00:07  do you think anyone will take me up on my offer to explain my code?
    16:00:14  I once had the idea of doing something like that.
    16:00:29  Giving a programming assignment back in C and something esoteric
    16:00:34  but I was too lazy to do it
    16:00:46 -!- Quendus has quit (Nick collision from services.).
    16:00:54 -!- Parma-Quendion has changed nick to Quendus.
    16:01:25  well, I'm the sort of person who, when set an assignment that asks for a Windows binary among other things, hands in both the Windows binary and a Linux x86 binary that does the same thing, because the Linux version was the original
    16:01:34  and likewise hands in the .odt with the requested .pdf
    16:01:54  Hm. Maybe I can do a fizzbutt on the Love Machine 9000.
    16:02:09  I have to go for a bit, but I'll be back later
    16:02:11 -!- ais523 has quit ("brb").
    16:21:19 -!- ais523 has joined.
    16:21:55  wb ais523
    16:21:57  any relevant developments while I was gone?
    16:22:25  [17:01] * ais523 (n=ais523@pw01-fap01.bham.ac.uk) Quit ("brb")
    16:22:26  [17:21] * ais523 (n=ais523@pw01-fap01.bham.ac.uk) has joined #esoteric
    16:22:31  Can you guess?
    16:22:42  most likely not
    16:22:57  but I never know; after all, there was a conversation going, and that increases the chance of something happenign
    16:23:03  s/gn$/ng/
    16:23:39  Slereah_: that was a fulll log
    16:23:41  *full
    16:23:42  err
    16:23:43  ais523:
    16:23:48  ah
    16:31:43  it's interesting, really, that so much more effort goes into writing esoprograms than reading them
    16:32:01  generally speaking esoprograms are written and run, but not actually read except by their author
    16:32:18  I don't think that's a good thing; there are all sorts of programming techniques that can be learnt from others' code
    16:32:31  especially in esolangs
    16:32:50  the advantage of common things being difficult is that uncommon things become just as easy as the common things in some cases
    16:32:51  ais523: reading them is very hard
    16:32:57  Well, it's usually better to ask them directly
    16:33:00  well, it depends on the language
    16:33:21  It's not like it's hard to find them.
    16:33:28  Unlambda, for instance, is easy to write for an esolang (if you compile from lambda-calculus) but hard to write well, and hard to read
    16:33:28  There's like 75% of them all right here!
    16:34:23  well, there's time-zone issues
    16:34:31  and it's always nice to figure something out for yourself
    16:34:37  But then again, with Unlambda, you can use any function and copypaste it into your program
    16:34:42  although I suppose writing programs is also part of the learning process
    16:35:07  Just need some (^f.f(x)) program
    16:35:11  for instance, the concept of storing code in the stack turned out to be central to Underload; both Keymaker and I wrote programs that did that in different ways
    16:35:36  ais523: do you want my mkproposal.pl?
    16:35:39  it should work
    16:35:45  it doesn't diff, though. For editing, use the web interface.
    16:35:47  yep, you may as well post the link again
    16:35:54  But if you just want to splurge a directory in, and maybe edit a few files
    16:35:57  then use my script and amend
    16:35:59  I can find it in logs if necessary, though
    16:36:09  but I'm lazy
    16:36:09  ais523: I'm considering letting you define a sub - 'end'
    16:36:13  which will run after it creates everything
    16:36:18  kind of like a literate program
    16:36:25  but .. nah
    16:36:47  ais523: http://pastebin.ca/1009420
    16:36:49  I'm actually amused that literate programming has caught on
    16:36:54  comments on my perl style welcome :)
    16:37:02  it's a good idea, but I'm not entirely sure why it needs a special syntax
    16:37:19  ais523: because it's not just 'comments > code'
    16:37:22  I've written several programs with more comments than code, where the code is inside the comments, which use comment markup for the comments as usual
    16:37:29  and I know it isn't just comments > code
    16:37:31  you have to be able to write the program in the order that it makes sense to explain it in
    16:37:36  and subroutines just don't handle that
    16:37:43  (you need finer control and more access to the enclosing context)
    16:38:04  ehird: you didn't set the expiry on that to infinite
    16:38:13  ais523: so? i haven't licensed it yet
    16:38:18  it should be, really, for all esolang stuff, as I don't want it to vanish off the net
    16:38:37  but if you haven't licensed it yet, and you plan to put it up elsewhere, then fine
    16:39:04  ais523: pb.eso-std.org
    16:39:05  ;)))
    16:39:19  does that exist yet?
    16:39:24  elliotthird.org was down last I checked
    16:39:45  ais523: no httpd
    16:39:47  remember? i wiped it.
    16:39:51  I know
    16:39:52  my irc network is up though.
    16:39:56  I was wondering if you'd fixed it in the meantime
    16:40:09  don't intend to until i get the stuff ready to put up
    16:40:09  oh, and you don't set the executable/non-executable flag on the files you create
    16:40:17  ais523: hm, that's a good point
    16:41:42  interesting way you do marker selection, BTW
    16:41:49  that's kind-of clever
    16:41:59  ais523: how is it interesting?
    16:42:00  reminds me slightly of Ethernet collision retries
    16:42:10  ehird: increase the length and re-randomize each time
    16:42:11  it is just guaranteed to also work for finite files :-)
    16:42:25  normally people just re-randomize, or follow a pattern
    16:42:26  ais523: really i don't even need to increase the length
    16:42:36  ehird: yes, I know, that's what the comment was about
    16:42:38  what kind of file includes all 3 uppercase letter combinations on a line of their own?
    16:42:42  increasing the length is probably good, though
    16:42:52  yeah, my program is provably correct
    16:42:53  :-P
    16:42:56  well .. not really
    16:42:57  since it's perl
    16:43:03  and I can imagine a list of all known assembler opcodes in a file
    16:43:07  so just about anything relating to it is unprovable
    16:43:13  that might contain all 3 uppercase letter combinations
    16:43:20  ais523: UUU is an asm upcode?
    16:43:29  if it doesn't, we'll have to invent an esoasm to do the remaining ones
    16:43:42  and UUU is an RNA codon, not sure about asm
    16:43:48  does RNA count as assembly language?
    16:43:51  it's compiled into protein
    16:43:59  by a simple assembly-like substitution
    16:44:05  ais523: when you give me a 'hello world' in rna...
    16:44:09  ... then two things will happen
    16:44:09  .
    16:44:14  1. i'll call it an asm language
    16:44:21  2. fundie christians will kill you, in your sleep
    16:44:31  ais523: hm, odd, my irc network doesn't show up on nmap
    16:44:34  paranoid openssh :-)
    16:44:39  security by obscurity!
    16:45:05  heh, the entire genetic code of a human, when transcribed into RNA, is arguably a hello, world
    16:45:13  ais523: ha!
    16:45:16  a more literal hello, world than most programming languages, for that matter
    16:45:32  What would be hello world in RNA?
    16:45:37  but I don't think the genetic code by itself is enough to recreate a human
    16:45:40  A form of life that says "Hello, world" and then dies?
    16:45:49  I think Wikipedia had a DNA Hello, world
    16:45:58  Slereah_: that would rock
    16:46:06  when transcribed into protein and written out in the standard notation, you got HELLQWQRLD or something
    16:46:08  '...pop Hello, world! AEURURURURARRRRRRRRRRRRRRR-'
    16:46:08  let me try to find it
    16:46:13  '*dead*'
    16:46:23  ais523 : Metamath has a Hello, world theorem
    16:47:46 -!- RedDak has joined.
    16:48:07  http://us.metamath.org/mpegif/helloworld.html
    16:48:10  ah, it's transwikied to Wikibooks now: http://en.wikibooks.org/wiki/Transwiki:List_of_hello_world_programs
    16:48:19  but I couldn't find the DNA one on there
    16:49:21  the worrying thing is that I have a vague memory that it was me who transwikied it
    16:49:36  "It is not difficult to write a message in a plasmid using the one letter code for the amino acids by inserting a suitable string of three letter of DNA per amino acid with some adjustments O => Q. For instance Hello world is HELLQ WQRD or Histidine-Glutamic acid-Leucine-Leucine-Glutamine-Tryptophan-Glutamine-Arginine-Aspartic acid."
    16:49:44  Slereah_: what does the hello world theorem actually mean?
    16:49:46  translate into english
    16:49:58  ehird : Nothing important.
    16:50:07  Slereah_: that's missing a Leucine
    16:50:43  It means that it is true that h does not belong to the set formed by the relation L over L and 0, and...
    16:50:55  I'm not too sure about the second part.
    16:53:26  it was transwikied, but it wasn't my fault this time
    16:53:28  it seems
    16:55:52  344563446523446523446524465234465234465234456234465234456 = 2
    16:56:07  ...Wikibooks has hello worlds in 198 languages, plus 46 GUIs, 9 page description languages, 3 media-based scripting languages and 25 esolangs, including some esolangs I've never heard of
    16:56:11  this bears investigation
    16:56:34  ais523: any comments on my perl style?
    16:56:46  ehird: it's not particularly idiomatic, it looks more like C
    16:56:49  but that's probably a good thing
    16:57:02  ais523: what would you change? It doens't look anything like C to me..
    16:57:10  In fact, my mind views it as 'deliciously obfuscated' :-)
    16:57:33  if I were obfuscating it I wouldn't have single-use subroutines, and I wouldn't break print statements just to do some calculations
    16:57:45  you can do the calculation inside an argument to the print, you know...
    16:58:26  "The Del on the first line begins function definition for the program named HWΔPGM." -- the APL one
    16:58:35  why would you name a program HWΔPGM
    16:58:38  what's wrong with HELLO
    16:58:44  I mean 'Hello World Program', okay, but still
    16:58:54  HELLO isn't descriptive
    16:58:57  also, all those variables grate on the functional programmer inside me, but they're probably the clearest way to write it
    16:59:01  is it hello world, hello jack, hello bob, what?
    16:59:13  HWΔPGM is explicit
    16:59:23  Deewiant : Hello is hello for any variable
    16:59:24  hell, HELLO doesn't even say if it's a program!
    16:59:31  Deewiant: HWORLD
    16:59:35  Hence, it can be used to salute the entire world
    16:59:36  and since you're defining a program ...
    16:59:57  ais523: I dont' see how breaking the print wuld do anything apart from give me a mammoth print with statements inside
    17:00:00  would
    17:00:16  ehird: what's not obfuscated about a mammoth print with statements inside?
    17:00:29  I'm not saying your program is bad, just that it isn't particularly obfuscated for Perl
    17:00:34  ais523: not talking about obfuscation, relaly
    17:00:36  just idiomatic perl
    17:00:41  oh, and here's an esolang I was unaware of: http://www.nishiohirokazu.org/blog/2006/09/kemuri_1.html
    17:00:46  luckily, most of the page is in English
    17:01:11  It seems awfully Japanese ^^
    17:01:11  no spec, but there's an interp so it could be deduced from that
    17:01:42  "The only command to push constant values into the stack is the `. It pushes 13 values 33, 100, 108, 114, 111, 119, 32, 44, 111, 108, 108, 101, 72 in this order. "
    17:01:47  That is so cheating.
    17:01:59  Slereah_: 'awfully Japanese ^^' - the writer is obviously japanese
    17:02:04  I know.
    17:02:07  ah, there is a spec, I just missed it because it was so short
    17:02:15  esolangs and golfing are more popular with those japs it seems
    17:02:20  but golfing moreso
    17:02:23  and golfing with ruby tops
    17:02:40  Slereah_: the pushing of those values is cheating, but it's the only way to get constants
    17:02:42  "Super NAND Time!!"
    17:02:49  but ` is such a cheat
    17:02:50  :-)
    17:02:51  you have to do bitwise XORs and complements on those values to get to other values
    17:02:55  ais523 : What about "1"?
    17:03:04  It's also a constant!
    17:03:07  "l"(small L) and "*"(asterisk) are reserved for possibility to use as a command "Execute the stack as Brainf*ck" in future.                                ha
    17:03:21  Slereah_: you can only get a constant by XORing together characters of "Hello, world!"
    17:03:28  you can't push a literal 1 onto the stack
    17:03:37  so it's more interesting than it looks
    17:03:47  only capable of outputting constant text strings, though, so it isn't Turing-complete
    17:03:55  it's only barely cat-complete
    17:04:03  and cat programs are a lot easier to write...
    17:04:58  ais523: l and * would make it tc
    17:05:18  yes, but allowing inline BF is a cheaty way to make something TC
    17:05:31  ais523: by the way, i have an idea for a language
    17:05:32  Those people and their cheating way.
    17:05:34  just like calling Perl regexps TC is cheating
    17:05:40  you can implement it by TAIL-FILE-RECURSION
    17:05:42  basically
    17:05:46  the only 'looping' in the language
    17:05:55  is when the interp loads its all file
    17:05:59  and then exits after running itself
    17:06:23  so it reloads a different file when the currently running file ends?
    17:06:28  I wonder, is there a form of Brainfuck without any restriction on the code?
    17:06:34  ais523: no
    17:06:35  like
    17:06:37  in interp.pl
    17:06:41  Like an unbalanced [ would just be a conditional
    17:06:45  require "interp.pl"; exit
    17:06:48  or something
    17:06:52  and that's the only way the language can loop
    17:06:53  by doing that
    17:06:53  and unbalanced ] would just bring back to the beginning of the code.
    17:06:54  Slereah_: FukYorBrane does that
    17:07:08  at least, not exactly, IIRC it ignores unbalanced loops
    17:07:11  It's hard to find new ideas!
    17:07:23  all code has to be valid, because the program tends to get corrupted during use
    17:07:32  and has to keep running unless it hits a bomb, or all threads quit
    17:09:39  compare http://en.wikibooks.org/wiki/List_of_hello_world_programs#Ruby_with_GTK.2B to http://en.wikibooks.org/wiki/List_of_hello_world_programs#Windows_API_.28in_C.29
    17:09:52  that's pretty much proof of ehird's and my complaints about how bad the Windows API is
    17:10:07  of course, I picked the examples to make that statement look good, but still...
    17:10:23  ais523: hee, you linked to ruby as a good example
    17:10:31  i was expecting perl
    17:10:31  :)
    17:10:35  ehird: I wanted something clean and simple compared to that C stuff
    17:10:39  99 should also do a hello world database.
    17:10:42  Ruby is good at clean, simple, small programs
    17:10:47  The hello world lists are too scattered
    17:10:49  even graphical ones, apparently
    17:10:55  ais523: ruby has some really weird bits :-) but it's nice
    17:11:03  as for gui ones
    17:11:06  wanna see a Shoes version of that?
    17:11:16  I can write it *right here*
    17:11:19  here goes:
    17:11:19  [[
    17:11:22  Shoes.app do
    17:11:31    button("Hello, world") { exit }
    17:11:31  end
    17:11:32  ]]
    17:12:56  ais523: well, the window gets kinda big when you do that
    17:13:00  you can trivially make it any size, though
    17:13:09  Shoes.app :width => a, :height => b do # that's all
    17:15:04  THE CHANNEL, IT DUN DIE
    17:15:13  noes.
    17:16:07 -!- ais523 has quit (Read error: 104 (Connection reset by peer)).
    17:16:07 -!- ais523_ has joined.
    17:16:30  sorry, did I miss anything?
    17:16:35 -!- ais523_ has changed nick to ais523.
    17:16:37  ais523_: last thing you heard?
    17:16:38  [18:14]  THE CHANNEL, IT DUN DIE
    17:16:54   I can right it *right here*
    17:16:59  *write
    17:17:01  s/right/write/
    17:17:04   here goes:
    17:17:04   [[
    17:17:04   Shoes.app do
    17:17:04     button("Hello, world") { exit }
    17:17:04   end
    17:17:05   ]]
    17:17:07   ais523: well, the window gets kinda big when you do that
    17:17:09   you can trivially make it any size, though
    17:17:11   Shoes.app :width => a, :height => b do # that's all
    17:17:19  maybe I should write a hello, world in OpenGL
    17:17:26  without using any text functions
    17:17:29  ais523: the cool thing about shoes
    17:17:35 * ais523 has just finished an OpenGL project
    17:17:38  is that it contains animation and graphics functions ala Processing
    17:17:43  and excellent mouse/keyboard handling
    17:17:45  they wanted a Windows executable
    17:17:49  as well as the standard, native gui fare
    17:17:56  so I invented a programming language for expressing graphical scenes in
    17:18:02  and wrote a cross-platform interpreter for it
    17:18:21  and handed in the source, Windows and Linux executables, and the source code for the particular program they wanted
    17:18:34  I doubt anyone else did it like that
    17:20:21  ais523: you know what sucks? the lack of gui toolkits good for writing /real apps/ that aren't complex as hell
    17:20:43  GTK is reasonably simple
    17:20:54  and GLUT is very simple, but not good enough for large-scale applications
    17:21:01  ais523: GTK is based on hell, though
    17:21:07  GObject is the worst idea I've heard in years
    17:21:10  It's a good esoteric idea, though.
    17:21:13  Kind of like Malbolge.
    17:21:16  well, Qt isn't that bad either
    17:21:28  qt is nice, but not nice to program
    17:21:46  oh, and the graphical version of intercalc (the CLC-INTERCAL calculator) is written in GTK
    17:22:00  I'm not sure what argument that makes either way
    17:27:40  ais523: i can't wait until everything's rewritten in c intercal
    17:27:51  what do you mean by 'everything'
    17:28:05  everything
    17:28:22  ehird: that's never going to happen, what would C-INTERCAL itself be written in?
    17:28:28  ais523: intercal
    17:28:30  besides, I rather like a multitude of languages existing
    17:28:39  ehird: what would it compile into? INTERCAL?
    17:28:44  that would be kind of pointles
    17:28:46  s/$/s/
    17:28:52  ais523: it would interpret it
    17:29:00  and since everything is in INTERCAL
    17:29:02  it would be fast
    17:29:04  ehird: but the whole point of C-INTERCAL is that it's a compiler
    17:29:15  ais523: then we'll stop using c-intercal ;)
    17:29:35  the different design decisions of C-INTERCAL and CLC-INTERCAL stem mainly from the fact that one's a compiler and one's an interpreter, and from the different langs they're written in
    17:31:17  however, I feel that a practical INTERCAL-based language is a reasonable idea
    17:31:32  if it had the usual arithmetic operators and decent string handling, INTERCAL would be quite nice to program in
    17:36:37 -!- ais523 has quit ("(1) DO COME FROM ".2~.2"~#1 WHILE :1 <- "'?.1$.2'~'"':1/.1$.2'~#0"$#65535'"$"'"'&.1$.2'~'#0$#65535'"$#0'~#32767$#1"").
    17:36:53 -!- ais523 has joined.
    17:37:15  sorry... did I miss anything?
    17:37:19  the last I saw was  if it had the usual arithmetic operators and decent string handling, INTERCAL would be quite nice to program in
    17:38:07  noyhing missed.
    17:38:17  and everything sent/
    17:38:22  s/\//?/
    17:38:31  ais523: yes
    17:38:33   if it had the usual arithmetic operators and decent string handling, INTERCAL would be quite nice to program in
    17:38:33  * ais523 has quit ("(1) DO COME FROM ".2~.2"~#1 WHILE :1 <- "'?.1$.2'~'"':1/.1$.2'~#0"$#65535'"$"'"'&.1$.2'~'#0$#65535'"$#0'~#32767$#1"")
    17:38:33  * ais523 (n=ais523@pw01-fap01.bham.ac.uk) has joined #esoteric
    17:38:49  hmm... that's nice, it even got my sig
    17:39:07  You are standing in the main hall of what appears to be some sort of
    17:39:11  castle. There is a door in each of the east and west walls; the one in
    17:39:11  the west wall has a [ symbol marked on it, but there are no markings on
    17:39:11  the door in the east wall. There is a large staircase, which goes upwards
    17:39:11  to a balcony high on the north side of the room. The south of the room is a
    17:39:11  large door, heavily barred with wooden bars that you would have no chance
    17:39:12  of lifting.
    17:39:27  (unfinished esoteric text adventure with several esolang puzzles in, so far three puzzles none of which leads anywhere)
    17:39:58  although one of them is capable of leading to a secret area if you have a good knowledge of INTERCAL run-time error messages
    17:39:58  What are the puzzles?
    17:40:07  Slereah_: try moving through the game, and you'll find out
    17:40:13  there's a SMETANA puzzle on the stairs
    17:40:18  a Brainfuck puzzle to the west
    17:40:23  and an INTERCAL puzzle to the east
    17:40:58  SMETANA because the whole "Step 1. Step 2." blatantly implies a staircase
    17:41:13  ais523 : GO STAIRCASE
    17:41:23  ais523: shall I write a bot that will interface the game and irc?
    17:41:25  You are standing on stair 0 of a flight of stairs.
    17:41:29  The stairs are numbered from 0 at the bottom to 9 at the top; the numbers
    17:41:32  so you don't have to do it manually.
    17:41:33  are written on the banisters rather than the stairs themselves. The top
    17:41:37  and bottom stairs are blank, but the others have writing on, as follows:
    17:41:41    9.
    17:41:46    8. Go to step 2.
    17:41:49    7. Swap steps 3 and 5.
    17:42:02    6. Swap steps 3 and 4.
    17:42:05    5. Go to step 6.
    17:42:09    4. Go to step 1.
    17:42:13    3. Swap steps 2 and 4.
    17:42:18    2. Swap steps 1 and 7.
    17:42:22    1. Swap steps 5 and 8.
    17:42:26  > 0.
    17:42:34  ehird: you could do, but manually is simple and the parser's really rudimentary
    17:42:34  so it's best for me to parse in my head rather than make people use the parser, which only accepts one-char commands, no args
    17:42:35  each description ends with a menu of which command does what in that context
    17:42:42  JUST CLIMN THE FUCKING STAIRS
    17:42:44  oh, and your options are to walk up a step, down a step, or to slide down the banister
    17:42:51  so you're going up, presumably?
    17:42:57  Yes, yes I am.
    17:43:02  Will I be teleported?
    17:43:23  When you arrive on step 5, you are suddenly teleported to step 2!
    17:43:23  When you arrive on step 2, you are suddenly teleported to step 1!
    17:43:23  When you arrive on step 1, steps 5 and 8 swap places!
    17:43:30  at this point, the staircase looks like this:
    17:43:38    9.
    17:43:42    8. Go to step 2.
    17:43:46    7. Swap steps 3 and 5.
    17:43:50    6. Swap steps 3 and 4.
    17:43:59  Oh noes!
    17:44:02    5. Go to step 6.
    17:44:06    4. Swap steps 1 and 7.
    17:44:10    3. Swap steps 2 and 4.
    17:44:14    2. Go to step 1.
    17:44:18  > 1. Swap steps 5 and 8.
    17:44:22    0.
    17:44:26  er what just happened
    17:44:26  I kept going up until you were teleported
    17:44:29  ah
    17:44:34  Do I have Mario-like jumping abilities?
    17:44:34  you have no choice now but to walk off the staircase; it resets when you do that
    17:44:34  in general all the puzzles reset when you leave the room and they are unsolved
    17:44:35  some reset even if solved, some don't
    17:44:38  Slereah_: not in this game
    17:45:01  presumably you'd gain them if you found a blue mushroom to eat, but there are none in the game at the moment
    17:45:35  an ehird web interface would likely work better than pasting, though, just because the SMETANA problem produces so much output
    17:45:40  the other two are less noisy
    17:45:49  ais523: but that's less ircy
    17:45:50  :P
    17:45:53  But I can do a web interface, trivially.
    17:45:55  Shall I?
    17:45:58  may as well
    17:46:08  I'll paste the source-code; it doesn't really give anything away
    17:46:33  it's really lousy, though, I may rewrite it in an esolang at some stage
    17:46:38  ais523: no point pasting the code
    17:46:40  you can run it on your machine
    17:46:44  once i've written the web interface
    17:46:51  then how will the web interface access the code?
    17:46:57  ais523: by using a subprocess.
    17:47:05  ais523: it takes input on stdin, and spews stuff on stdout, right? Then I can make something meaningful out of it.
    17:47:17  yes, but you'll need the code or an executable to be able to run the code
    17:47:23  you can't interface to the code if you don't have it
    17:47:25  ais523: So I give you my web interface.
    17:47:26  And you run it.
    17:47:38  ehird: I have no server that's externally accessible
    17:47:44  ais523: Ah.
    17:47:48  as it happens Apache's running on here, but I can't get round the firewall
    17:47:49  ais523: You can just give me a linux binary, then.
    17:47:53  because I don't control it
    17:47:55  Smaller than source code :p
    17:47:59  filebin.com
    17:48:01  I have a linux x86 binary, though
    17:48:05  that'll work fine
    17:48:08  i am on linux x86 after all
    17:48:16  oops
    17:48:17  http://filebin.ca/
    17:48:23  esogame: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.8, dynamically linked (uses shared libs), not stripped
    17:48:26  and I know it's .ca
    17:48:46  ais523: that iwll work perfectly
    17:48:50  *will
    17:49:00  http://filebin.ca/shdmov
    17:49:18  Okay./
    17:49:23  Web interface to the esogame coming up.
    17:49:39  Hurm
    17:49:42  ./esogame: /lib/tls/i686/cmov/libc.so.6: version `GLIBC_2.4' not found (required by ./esogame)
    17:49:45  Does the game have some sort of plot, or is it just a bunch of puzzles?
    17:49:50  ais523: what kind of directory structure is THAT
    17:49:50  Slereah_: no plot as of yet
    17:49:53  that's coming later
    17:50:04  and really, I don't know what kind of dir structure that is
    17:50:19  ais523: oh well, paste the source code to filebin and /msg me the url i guess
    17:50:19  ldd esogame
    17:50:20  linux-gate.so.1 =>  (0xb7fc3000)
    17:50:20  libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7e59000)
    17:50:20  /lib/ld-linux.so.2 (0xb7fc4000)
    17:50:28  (since pastebin.ca is public)
    17:50:32  Will the victory imply some sort of pastry?
    17:50:38  Perhaps a cake-like object
    17:50:44  Slereah_: probably, but a victory is currently impossible
    17:50:55  no doubt you'll have to make the cake-like object yourself, though, using a Chef program
    17:51:03  :D
    17:51:06  I like the idea.
    17:51:21  I've /msg'd ehird the source code
    17:51:30  but it doesn't spoil any of the puzzles
    17:51:30  Will you need a Camouflage program to enter the building?
    17:51:48  Slereah_: not sure, you start inside the building, but it's currently possible to leave but not to re-enter
    17:51:58  that might be a decent way to manage re-entry
    17:52:14  Heh.
    17:52:20  I was planning to construct the building a bit like Television Center, with two floors, and make the whole thing a giant Whirl program
    17:52:28  s/program/interpreter/
    17:52:55  that would require rooms to become harmless once their puzzles were solved
    17:53:02  ais523: OK, I can make a web interface to this trivially.
    17:53:04  Even with savegames!
    17:53:11  (It just generates a unique game id when you go there, then saves to that filename.)
    17:53:16  (Just go to the URL to load again.)
    17:53:24  How do you load a saved game, though, ais523?
    17:53:27  actually, I might move the INTERCAL room directly above the Brainfuck room, then restrict people to going clockwise round the puzzle
    17:53:32  ehird: specify it on the command line at current
    17:53:43  aha, ais523
    17:53:44  I started that program years ago and haven't updated it much since
    17:53:46  OK, this will be fun
    17:53:58  maybe I'll update it more once my exams are finished
    17:54:07  but I've already promised lots of things to different people
    17:54:51  such as fixing the bug with C-INTERCAL that Debian's autobuilder found on Itanium, or the bugs I found with C-INTERCAL on Solaris
    17:55:08  on the plus side, C-INTERCAL's going to be ridiculously extensively portability-tested, given its subject matter...
    17:55:39  esco!!!!
    17:55:47  haha i think me and Slereah_ are the only ones who find that funny
    17:55:50  esco????
    17:56:00  ah, an esoteric OS?
    17:56:22  Esoteric interpreter!
    17:56:27  Well, compiler
    17:56:32  compiles what into what?
    17:56:36  and written in what?
    17:56:39  Everything!
    17:56:49  Such diverse languages as Brainfuck, ook, spoon...
    17:56:57  I actually want a compile everything into everything suite
    17:57:02  ais523: esco is a shitty pile of crap
    17:57:03  EsoInterpreters is a good start
    17:57:05  to put it bluntly
    17:57:19  they support about 5 languages, half of which are brainfuck syntax-changes.
    17:57:19  ideally, have some way to compile around a cycle of esolangs (with at least one 'real' language represented)
    17:57:25  and the code is crappy c++.
    17:57:29  then any lang in the cycle can be compiled into any other
    17:57:30  and the dev linked to it all over the wiki
    17:57:32  etc
    17:58:00  It would be hard to compile BF into Unlambda.
    17:58:06  Or vice versa.
    17:58:07  e.g. it's currently possible to compile Unlambda -> Underlambda (I lost the source code for that, but I can remember how it was done)
    17:58:11  and Underlambda -> Underload
    17:58:18  not quite, no input
    17:58:23  Underlambda -> C, definitely
    17:58:24  http://esco.sourceforge.net/
    17:58:37  and I have a P'' interp in Unlambda
    17:58:57  changing that to a BF->Unlambda compiler wouldn't be ridiculously difficult because I still have the Relambda source
    17:59:31  Relambda?
    17:59:38  Slereah_: Unlambda + lambda
    17:59:48  it's a language I use privately to write Unlambda programs
    18:00:04  Oh.
    18:00:09  there's a Relambda to Unlambda compiler in my esolangs.el, though, which I've pasted at least twice
    18:00:21  it's buggy, unfortunately
    18:00:28  ais523: the esco guys are funny
    18:00:34  "Byter is a language for training brains."
    18:00:36  they warped that into
    18:00:36  but unlambda + lambda is a pretty simple combination
    18:00:40  "Byter is a language for training your brain."
    18:00:50  Well, that was most of the idea for Lazy Bird.
    18:01:03  Lazy Bird doesn't actually have a lambda, though, does it?
    18:01:07  just lots of useful combinator
    18:01:10  s/$/s/
    18:01:15  although the real idea was "I'm trying to write Unlambda on the love machine 9000 and it's terrible"
    18:01:19  ais523:  It has lambdas.
    18:01:25  OK
    18:01:30  Underlambda has lambdas too
    18:01:40  and I had great fun trying to express them as rewrite rules into Underload
    18:01:43  I think I succeeded, though
    18:01:50  Here be a Fibonacci with lambdas : ``m^x^y````yk.1r``xx``v`y0```yk`sb`y0``v0i
    18:02:15  that's basically the same syntax as Relambda, except that I use $x and $y to read the value of lambda bindings
    18:02:32  ais523: by the way, a trivial way to do continuations in an esolang:
    18:02:32  the ^ is the same
    18:02:38  ({} is an array here)
    18:02:44  \ is pretty ugly as a lambda.
    18:03:03  X [Y] callcc Z -> {X Z} Y Z
    18:03:04  I use ^ in Relambda, but \ in Underload
    18:03:08  trivial
    18:03:18  ais523: which leads me to a new idea --
    18:03:20  'forward parameters'
    18:03:21  ehird: that's pretty much how the Underlambda rewrite rule works
    18:03:29  in a concat lang, the 'back parameters' are the ones coming before the call
    18:03:36  my idea is 'forward parameters': the ones in front!
    18:04:02  that makes some sense if you have an amount of control over what they are
    18:04:13  ais523: here's callcc using 'forward parameters'
    18:04:13  \x y,z -> {x z} y z
    18:04:16  but one issue is that back parameters can be manipulated in all the usual concatenative ways
    18:04:17  that's in lambda + concat notation
    18:04:22  you could probably come up with a better way to do it
    18:04:23  forward parameters couldn't be, they'd have to be literals
    18:04:27  ais523: nahhhh
    18:04:29  ais523: they could be thunks
    18:04:32  lazy concat
    18:04:43  oh, I see
    18:05:01  well, in that case it's just the sort of typical rewrite rule which is trivial in Perl, Thutu or Cyclexa
    18:05:28  how's that web interface, by the way?
    18:07:29  ais523: going quite well
    18:07:34  i mean, the actual thing is trivial
    18:07:39  the fun part is writing the server boilerplate!
    18:07:40  <.<
    18:08:04  heh, I could probably make it into a CGI script by adding a couple of lines and using a continuation library
    18:08:20  ais523: Probably, but forking like hell would kill this kind of thing
    18:08:32  ais523: besides, you need multiple users at one time
    18:08:40  and you can't persist processes, anyway
    18:08:40  OK, but why would a continuation library need forking?
    18:08:42  so you couldn't use a cgi
    18:08:48  ais523: cgi = fork each request
    18:09:11  if you can persist continuations across runs of the program, then you can just exit in between calls
    18:09:33  ais523: ah, i see what you're saying
    18:09:36  i'm using subprocesses
    18:09:44  Underlambda's actually got persistent continuations as part of the language, in the C, S and D commands
    18:09:54  ais523: hm, should i make saving implicit?
    18:09:58  like, each action saves
    18:10:03  since i generate a unique name anyway
    18:10:07  not sure, the save on it's pretty broken anyway
    18:10:13  because it doesn't save the internal state of puzzles
    18:10:18  ais523: does it not? dshdkf!
    18:10:23  just a whole load of variables I don't actually use yet
    18:10:25  i'm going to all this fuss partly for the saves
    18:10:32  ais523: make it persist it pronto :<
    18:10:44  OK, I'll look at the code for the first time in years...
    18:11:07  the problem is keeping a consistent save-file format whilst adding extra puzzles...
    18:11:36  aargh, it's basically impossible the way I've written it
    18:11:45  it seems I've duplicated the parser inside the puzzle functions
    18:11:53  and used auto variables to store the states of the puzzles
    18:12:05  ais523: :(
    18:12:13  I told you this thing needs a rewrite
    18:12:26  oh well, i'll just do no save games for now
    18:12:41  pokpokpopokpkopkopokpkopokpokpkopokpokpkopokpkopkopkopokpkopokpkoppokpkopokpokpkpokpokpokpkopko
    18:13:27  at least the BF puzzle doesn't actually need a save, it's always either solved or reset
    18:13:35 * ais523 just had a worryingly evil idea
    18:13:41  this game's a text adventure
    18:13:49  and I'm planning to add a text adventure system to PerlNomic
    18:14:01  I wonder if the two could be combined in some way?
    18:14:16   pokpokpopokpkopkopokpkopokpokpkopokpokpkopokpkopkopkopokpkopokpkoppokpkopokpokpkpokpokpokpkopko
    18:14:17  WHAT is that
    18:14:21  is that like oko v2
    18:14:21  If you want to program some embryos : http://www.vivo.colostate.edu/molkit/rtranslate/index.html
    18:14:27  sorry, I went all oklopol for a moment
    18:14:41  I probably would have deleted it rather than posted it in most other channels
    18:15:24  ais523: don't worry, we're all dirty okoers here, i meaokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokok
    18:15:46    @@valid = "a".."z" + "A".."Z" + "0".."9" # this is elegant in some weird way
    18:16:13  what lang? It looks a bit like Perl, but isn't
    18:16:30  ais523: Ruby!
    18:16:50  hm, no Range#+
    18:17:06  oh, of course
    18:17:09  i'll have to convert it to an array
    18:17:15  otherwise representing that as a range makes no sense
    18:17:51  why not just a regex
    18:17:56  ais523: ruby's love of functional programming saves the day!
    18:17:58    @@valid = ["a".."z", "A".."Z", "0".."9"].inject([]) {|a, b| a.to_a + b.to_a}
    18:18:00  (inject is reduce/fold)
    18:18:09  Deewiant: 'cause i want to generate it too
    18:18:11  @@valid = /[a-zA-Z0-9]+/
    18:18:14  ah
    18:18:47  using || as parens looks strange
    18:18:55  ais523: it's the parameters
    18:18:58  it's taken from smalltalk
    18:19:00  smalltalk of that is:
    18:19:03  [:a :b | ...]
    18:19:16  ais523: and the extra one is so that you can do 0-adic ones easily
    18:19:16  { ... }
    18:19:27  also, { and } can be spelled 'do' and 'end' which is more elegant for multi-line blocks
    18:19:30  .inject([]) do |a, b|
    18:19:31    ...
    18:19:32  end
    18:19:53  ehird: they stole that feature from Magenta!
    18:19:59  ais523: heheheheh
    18:20:13  ais523: rule of thumb: {} for one-line blocks (only one expression)
    18:20:16  do..end for multi-line
    18:20:19  ais523: fun thing about ruby: no statements
    18:20:22  everything is an expression
    18:20:29  so you can give /anything/ as an argument to a function
    18:20:32  even a class definition
    18:21:11  "everything is an expression" is good
    18:21:21  there is no reason for a statement/expression split nowadays
    18:21:35  such splits also go against my sense of elegance in programming
    18:21:36  ais523: quite. Ruby is a lot deeper than most people think
    18:21:41  (those who learn of it from Rails, mostly)
    18:21:50  that's why INTERCAL has separate expressions and statements
    18:21:56  ais523: Ha!
    18:22:01  oh, and some of the expressions have side effects#
    18:22:07  s/.$//
    18:22:10  well, ruby's expressions have side effects
    18:22:14  because otherwise there'd be no side effects :P
    18:22:20  that's fine if they serve the role of statements too
    18:22:32  although arguably, Haskell managed to find a different solution to that particular problem
    18:22:59  but in a lang with split expressions/statements, having side-effect expressions is just silly
    18:23:44  I wonder what the historical reasons for langs having separate expression and statements are?
    18:23:54  possible reasons: parsing before LR(1) was invented, line numbers
    18:24:04  e.g. combining expressions and statements in Forte would be really difficult
    18:24:11  probably other reasons I haven't thought of
    18:24:59  the parsing is because people used to use top-down parsing for statements and bottom-up or operator-precedence parsing for expressions
    18:25:08  ais523: it was just intuitive back in tha 'old dayz
    18:25:11  'old, heh
    18:25:26  not really, asm doesn't have separate expressions and statements
    18:25:38  so why did the first higher-level languages separate them?
    18:25:38  asm has only statements
    18:25:42  so adding expressions was an obvious next step
    18:26:10  exactly
    18:26:13  ah
    18:26:14  or it seems obvious to me, anyway. More so than changing all statements to expressions. :-P
    18:26:21 -!- oerjan has joined.
    18:26:22  yeah
    18:26:23  it was like
    18:26:27  'add a, b; mov b, x'
    18:26:29  is silly
    18:26:34  and esp. for large expressions
    18:26:37  expressions would have originally been invented as a way to reduce temporary register usage
    18:26:38  why not 'mov a+b, x'?
    18:26:50  and then you get into function calls and stuff
    18:26:54  'mov sqrt(a), x'
    18:27:03  then you get a language leaving asm behind - like C
    18:27:11  and ends up making IO stuff into functions
    18:27:13  you see?
    18:27:46  yes
    18:27:49  that makes sense
    18:28:21  ais523: another nice thing about ruby - it has good string interpolation built in
    18:28:32  many langs have that nowadays
    18:28:32  #{foo}, in a string literal, is an interpolation of the code foo, converted to a string
    18:28:37  sometimes you can even leave out the {}
    18:28:42  even Cyclexa does, or will do when I finish the spec
    18:28:45  #foo and #@bar and #$xyz works, but they're obscure-looking
    18:28:48  so nobody uses them :-)
    18:28:53  ais523: you can nest quotes in these
    18:29:01  "#{"#{"hello"}"}"
    18:29:03  is "hello"
    18:29:03  ehird: but you can have nested comments in email addresses
    18:29:16  however, I tried it in my email client and it rejected the address
    18:29:23  not even sure if it allows non-nested comments
    18:29:26  ais523: gotta admit though, "#{"#{"hello"}"}" is amusnig
    18:29:29  *amusing
    18:29:38  but nested comments strike me as a good anti-spam measure
    18:29:44  what spambot parses those nowadays?
    18:30:00  what mail client supports them?
    18:30:18  Deewiant: all the ones which follow the spec, so probably about 2 that nobody's ever heard of
    18:30:21  yep
    18:31:24  eh
    18:31:25  *heh
    18:31:54  ais523:
    18:31:55      Thread.new { @buffer[id] += proc.gets until proc.closed? }
    18:32:02  anyway, try sending a message to ais523(524\)(525)x)@bham.ac.uk and seeing what happens
    18:32:08  'until' and 'x?' are cute idioms :-)
    18:32:13  anyone who actually reaches me has a superior mailer
    18:32:23  ehird: they'll be adding a please to it next
    18:32:24 -!- helios24 has joined.
    18:32:35  ais523: heh
    18:32:47  oh, yes, email addresses even have an escape syntax for escaping comment markers in comments
    18:33:01  Hello sir helios24.
    18:33:09  Slereah_, hi ;)
    18:33:37  ais523: i do believe I just emailed you
    18:33:45  unix mail(1) :-)
    18:33:48  it hasn't arrived yet
    18:33:50 * oerjan notes that good old pine supports that address nicely (it strips out the comments as soon as i leave the To: line)
    18:34:10  maybe it'll arrive later, or maybe a relay en-route will choke on the comments
    18:34:36  oerjan: that's a really clever idea, allow all users and don't confuse the mailer
    18:34:49  ais523: I have a class called PunkRock in my program. It is a pun on 'proc'.
    18:35:35  maybe I'll publically display my email as a valid address with comments in, spambots would be unlikely to track it down and people with decent mailers could visit it without deobfuscating
    18:37:39  ais523: eurgh, you can't do redirects right
    18:37:41  if you use a 301
    18:37:46  reloads go to the redirector
    18:37:48  ais523: so what's the actual address supposed to be
    18:37:49  instead of hte redirectee
    18:37:52  if you use anything else
    18:37:54  ais523: ais523x)@...?
    18:37:55  then a browser caches the redirector
    18:37:59  to go to the redirectee
    18:38:05  Deewiant: look more closely, \ is an escape character
    18:38:20  ais523: aye, so you escape the one after 524
    18:38:30  ah, they nest?
    18:38:54  i.e. (foo(bar)baz) is one comment, not baz)
    18:38:59  yes, nested comments
    18:39:02  thunderbird thinks it's baz)
    18:39:07  remember this is email addresses we're talking about
    18:39:32  but no regexp can handle arbitrarily nested comments
    18:41:20 -!- RedDak has quit (Read error: 104 (Connection reset by peer)).
    18:41:37  ais523: gosh, this bug is odd
    18:41:43  looks like it's an open bug at mozilla since 2002 :-)
    18:41:43  what does it do?
    18:42:06  Deewiant: but it should be easy to fix, surely?
    18:42:20  ais523: the proc buffer appears to be empty
    18:42:21  possibly, I don't know
    18:42:22  even though it is not
    18:42:33  "proc buffer" = /proc?
    18:43:38  ais523: no, the game subprocesses
    18:44:48  I mean, it's there. Just.
    18:44:53  OH
    18:44:58  Setting the wrong instance variable :|
    18:46:04  ais523: OK, I just need to add input.
    18:53:25  ais523:
    18:53:26      return if (proc = proc_for(name)).nil?
    18:53:41  why did you paste that particular line of code to me?
    18:55:16  ais523: OK, I think it's almost ready
    18:55:18  and ... I just found it cute.
    19:02:20  ais523: Hmm. Odd bugs.
    19:02:51  ais523: Give me a good number for reading in chunks
    19:02:54  1024? 4096?
    19:03:02  CLC-INTERCAL uses 1024
    19:03:06  I don't know if that makes it a good number, though
    19:03:36  1 << rand_int(8, 16)
    19:04:06  but I don't have the fingerprint 0 0 1 1 loaded
    19:04:31  so I think it reflects, and as I don't have 1 1 1 1 loaded either that's an infinite loop
    19:04:52  ais523: the problem is that we redirect back straight after a post
    19:04:53  sorry, it would just be the fingerprint 1, I forgot the semantics for a moment
    19:04:58  huh what now?
    19:04:59  which means you get either no or only some of the game's response
    19:05:07  Deewiant: I was trying to interpret your code as Funge-98
    19:05:19  you'd never get to the (
    19:05:25  it's the ) I'm talking about
    19:05:28  you do get to that
    19:05:37  ais523: any ideas about my solution?
    19:05:38  right, wrapping
    19:05:41  apart from doing it ajaxy that is :-)
    19:05:43  you'd hit my nick first though ;-)
    19:05:49  ehird: what redirect code are you using?
    19:05:54  there's more than one
    19:05:57  ais523: nothing to do with that
    19:06:09  just the timing of the seperate thread which does the reading
    19:06:12  why do you have a redirect?
    19:06:17  ais523: after the form post
    19:06:20  i redirect to the game display
    19:06:29  this can happer faster than I read in the game's response
    19:06:30  and where does the information that then displays come from?
    19:06:45  ais523: the buffer which i store to by reading continuously in a seperate thread
    19:06:51  ais523: but what it would do is try to unload the fingerprint 0. the first param it pops is the length of the fingerprint's identifier
    19:07:01  Deewiant: there are two 1s on the stack
    19:07:07  hmm, /me has an idea
    19:07:08  d'oh
    19:07:13  right you are
    19:07:17  ehird: use some sort of readbuffer-valid/readbuffer-invalid flag?
    19:09:08    ios.closed? => true or false
    19:09:08  Returns true if ios is completely closed (for duplex streams, both reader and writer), false otherwise.
    19:09:15  ^^ but I only want to know about reading!
    19:09:25  ehird: then use a non-duplex stream?
    19:09:38  ais523: but I need both input and output, for one process
    19:09:41  It's the game process :-)
    19:09:46  aha
    19:09:47  .eof?
    19:09:48  of course
    19:10:43  wow what happened
    19:10:45  it's gone molasses slow
    19:11:02  ehird: you might want to look up on how it checks for EOF
    19:11:11  it may be something silly like test read + unget with timeout
    19:11:13  ais523: my thoughts exactly
    19:11:33  ais523: how DO I detect if your game exited
    19:11:34  :-)
    19:11:53  ehird: by looking at its process number?
    19:11:58  that's the usual method
    19:12:27  e.g. you can use kill to see if it's possible to send something a signal, if it isn't then it's probably exited
    19:12:46  WTFFF
    19:12:46  Tue May 06 19:13:41 +0100 2008: ERROR: Resource temporarily unavailable
    19:13:03  :-)
    19:13:23  your server has switched to Daylight Saving Time
    19:13:34  mightn't that cause problems during the DST switch?
    19:13:34  ais523: ha, that's not quite what i was talking about
    19:13:46  no, it's just that my processes are only lasting one requset
    19:14:22  languages other than UNIXy shells have insufficient ampersands
    19:14:46  ais523: EAGAIN is the error, by the way
    19:14:56  whut does that be meanin'
    19:15:09  ehird: EAGAIN means that an application started a non-blocking read, but it would have blocked
    19:15:18  so it returns instantly with an error, because the read is non-blocking
    19:15:23  ais523: ah!
    19:15:33  ais523: how do I do a non-blocking-read-but-blocking-if-it-needs-to-be
    19:15:39  ?
    19:15:44  just do a blocking read? :-P
    19:15:46  a read is either blocking or not
    19:15:54  that is: 'if the process dun wanna give me nuttin', just return the empty string. But if it has sum of dat nice output for me, block and gimme it'
    19:15:55  it sounds like you've described a blocking read
    19:16:13  ais523: but if I do a blocking read it'll wait until the process wants to output N characters
    19:16:25  I do this every request, to get the output it's sent, y'see
    19:16:25  ehird: you've just described a non-blocking read
    19:16:29  (dropped the thread)
    19:16:39  ais523: OK, but it's having that odd error, so it's obviously not doing what I asked.
    19:16:39  presumably you're running it in a tight loop, and that's causing the slowness?
    19:16:54  errr ... What
    19:17:03  When did I say anything baout slowless
    19:17:04  *slowness
    19:17:16   it's gone molasses slow
    19:17:22  ais523: that's not related in any way to this.
    19:17:25  i fixed thatl
    19:17:27  oh
    19:17:28  anyway:
    19:17:32      proc.buffer += proc.read_nonblock(4096)
    19:17:36  i do that each time you view the game screen
    19:17:42  to syphon anything the game wants to tell me
    19:17:49  but this isn't working past the first request
    19:17:51  what does read_nonblock return in a situation where it would block?
    19:17:52  it fails with EAGAIN
    19:17:56  null, all data available, or error?
    19:18:00  ais523: EAGAIN, presumably?
    19:18:02  That's what you said.
    19:18:05  yes, it does in C
    19:18:10  ais523: Yes, EAGAIN.
    19:18:12  but I would have expected Ruby to wrapper around that
    19:18:14  That's what t's giving me.
    19:18:17  An IOError of EAGAIN
    19:18:21  (raises an exception)
    19:18:25  "read_nonblock just calls read(2). It causes all errors read(2) causes: EAGAIN, EINTR, etc. The caller should care such errors. "
    19:18:26  even python just wraps around the errnos
    19:18:29  that's ridiculous high-level language design
    19:18:30  Deewiant: Yes.
    19:18:38  ais523: No, it's common high-level language design
    19:18:39  Very common
    19:18:39  looks like you have to catch the EAGAIN yourself
    19:18:43  Haven't seen one langugae not do it
    19:18:48  ais523: OK, and if I get an EAGAIN whatd o I do?
    19:18:50  *do
    19:18:54  I'll look it up
    19:19:03  I could do proc.read(4096), but then what if the game wants to give me, say, 512 characters? It'll hang.
    19:19:18  ehird: according to the documentation of read(2), you only get EAGAIN if there's no data
    19:19:21  and all the data available otherwise
    19:19:40  ais523: OK
    19:19:42  so just trap the exception and handle it with no action in the handler
    19:19:51      proc.buffer += proc.read_nonblock(4096) rescue nil
    19:19:53  yes, ruby even has post-rescue
    19:20:31  ais523: OK, a bit better, except that when I type 'Go' now it gives me a screen with just my input. Then if I refresh it sees it
    19:20:37  (because, obviously, the output isn't instanteneous)
    19:20:42  sounds like a race condition
    19:20:48  yes
    19:20:57  but i don't see what i can do about it save for an artificial delay
    19:21:54  normally, some sort of semaphore or spinlock, or other way to send data between multiple process
    19:21:57  s/$/es/
    19:22:11  e.g. (1) COME FROM (1) AGAIN / ABSTAIN FROM (1) in C-INTERCAL
    19:22:11  ais523: Even more worryingly, if I do 'Up'
    19:22:18  then it doesn't display anything, no matter how many refreshes
    19:22:20  until the next input
    19:22:25  strange
    19:22:35  are you flushing the pipe into my program?
    19:22:49  ais523: oh. that might hlep
    19:22:50  also, my program doesn't flush output pipes, you may need to add a few fflushes in there
    19:22:51  XD
    19:24:10  ais523: into your program?
    19:24:13  i'm trying not to modify it
    19:24:22  with luck it's line buffered
    19:24:26  well, programs built to run in ttys don't always run properly in pipes
    19:24:37  sometimes you need to change the buffering mode of the program
    19:25:10  e.g. all C-INTERCAL 0.28 output programs support a command-line option to flush after every output character
    19:25:21  so you can cause that to happen without modifying the output
    19:25:56  ais523: if I paste my code will you think of something? :P
    19:26:04  ehird: if it's written in Ruby, probably not
    19:26:08  ais523: it's very readable
    19:26:11  it's a good language for several things, but I don't know it
    19:26:19  and understanding the code won't solve the problem
    19:26:28  ais523: while reading it, this might help - http://www.ruby-doc.org/core/classes/IO.html
    19:26:32  it's understanding what obscure language feature you need to solve it that's needed to solve the problem
    19:26:45  http://pastebin.ca/1009573
    19:26:51  i don't think it's obscure
    19:26:52  really
    19:28:46  ais523: nothing obvious?
    19:29:02  I suggest modifying my program to flush and send some special character (there's probably a control char in ASCII for this purpose, it's got a lot of useful control chars like that) after every input, and blocking for that char
    19:29:19  otherwise, how can you possibly tell when my program's finished its output?
    19:29:43  failing that, get my program to flush (or switch stdout unbuffered), and put a time delay in before the reload
    19:29:47  ais523: well, there's an online zork
    19:29:47  :-P
    19:30:05  anyway, ais523, your program just uses raw printf
    19:30:06  changing would be hell
    19:30:16  no, trivial
    19:30:24  if it's just printf you can #define printf to flush
    19:30:25  :|
    19:30:33  ais523: yeah, but then I can't use "printf"
    19:30:44  and you also use puts
    19:30:51  or you can just use a single setbuf call on stdout
    19:31:25  setvbuf(stdout, _IONBUF, 0, 0);
    19:31:34  that command causes all stream I/O on stdout to flush instantly
    19:31:40  just put it at the start of main()
    19:32:01  esogame.c:176: error: ‘_IONBUF’ undeclared (first use in this function)
    19:32:13  _IONBF, sorry
    19:32:56  esogame.c:176: warning: passing argument 2 of ‘setvbuf’ makes pointer from integer without a cast
    19:33:08  have I got the args in the wrong order? let me check again
    19:33:23  setvbuf(stdout, 0, _IONBUF, 0);
    19:33:24  stdout, NULL, _IONBF, 0
    19:33:25  that's better
    19:34:04  ais523: well, nothing mmuch happens
    19:34:09  really looks like I'm gonna have to add a delay..
    19:34:10  but that sucks
    19:34:15  you need a delay as well
    19:34:21  that just prevents the stair lockup problem
    19:34:22  ais523: but how much
    19:34:25  it does, doesn't it
    19:34:32  yes
    19:34:33  it does
    19:34:35  and the delay needs to only be a few hundred milliseconds
    19:34:49  but there's no way you can do without a delay without further modifying the program you interface with
    19:35:05  ais523: OK, seems to work apart from one thing
    19:35:09  what one thing?
    19:35:13  if you give it an empty line you have to give it some input before it'll say it doesn't understand
    19:35:27  does my program do that?
    19:35:33  ais523: oh wait
    19:35:34  is it a bug with you or with me, in other words
    19:35:36  you just hang on enter
    19:35:38  it's a bug with me
    19:35:41  if I remove the stripping of newlines
    19:35:46  then it'll add a new line each time
    19:35:46  so
    19:35:47  obvious
    19:38:40  all fixed now?
    19:39:04  ais523: OK
    19:39:08  ais523: It basically works.
    19:39:17  I only need to add like 2 things:
    19:39:26  - The ability to quit the game properly
    19:39:39  - Disabling your saves, because they can access the FS and don't work anyway
    19:41:14  ais523: so, you say I should try signalling
    19:41:15  to see if it's dead
    19:41:16  what signal?
    19:41:23  this will be done on each refresh/entered line, etc
    19:41:25  there's a no-op signal for that purpose
    19:41:34  number 0, I think
    19:42:39  yes, kill's documentation says it's 0
    19:43:10  I'm not sure how that interacts with zombies, though
    19:44:11  BRAINS...
    19:44:16  sorry, reflex
    19:44:29  zombie processes can be a pain to get rid of
    19:44:39  in computer games you kill zombies with headshots
    19:44:47  on UNIXes you kill zombies by killing their parents
    19:44:56  hahaha
    19:45:00  that would be a great fps
    19:45:04  there's an invasion of zombies
    19:45:08  SOLUTION: kill ancestors
    19:45:13  and they immediately die
    19:45:15  quite difficult due to the need to sort out the recursion
    19:45:41  ehird: there was something on that on TvTropes (WARNING: addictive)
    19:45:55  ais523: so it seems that I can still kill -0 your game after it's done, because it's still >open<
    19:45:58  you've just stopped writing to it
    19:45:59  (eof)
    19:46:03  yes, that's the problem
    19:46:07  can the EOF be detected?
    19:46:11  ais523: yes -- .eof?
    19:46:14  but as we've discussed
    19:46:15  that's molasses-slow
    19:46:16  or the SIGPIPE that you get for writing to a finished process?
    19:46:18  and seems to be broken anyway
    19:46:22  and it's not writing that helps
    19:46:25  because just after writing Q
    19:46:28  we go to the display screen
    19:46:33  -> we need to detect it without writing
    19:46:49  well, the command normally used for that is wait
    19:46:52  but it waits...
    19:47:01  I wonder if there's a non-blocking version?
    19:47:16  dont_wait
    19:47:19  sounds INTERCALly
    19:47:41  ais523: I am tempted to write a language in which your adventure game will be both easy to write and will be portable across UIs ;)
    19:47:44  that would be fun
    19:47:46  it could even by esoy
    19:47:58  in C it's waitpid(pid, &status, WNOHANG)
    19:48:03  not sure what that translates to in Ruby
    19:48:42  waitpid(pid, WNOHANG)
    19:48:54  Deewiant: bingo
    19:48:55  no clue what happened to the status
    19:49:02  are you a rubyist or just good with google :-)
    19:49:03  and
    19:49:04  isn't it kind-of important in this case
    19:49:05  the status is returned
    19:49:08  good with google
    19:49:09  because otherwise it's a no-op
    19:49:13  and somewhat of a rubyist
    19:49:21  Deewiant: anyway, it's Process.waitpid
    19:49:21  but not nearly enough to remember this kind of stuff :-P
    19:49:29  yep
    19:49:41  and Process::WNOHANG if you want to be pedantic ;-P
    19:50:19  ais523: okay, almost there
    19:50:20  after a quit
    19:50:21  pedantic = needed for program to work, or compiler setting?
    19:50:22  if you refresh
    19:50:23  it's done
    19:50:26  looks like i need more delay
    19:50:26  :D
    19:50:28  ais523: and needed
    19:50:33  ruby ain't a compiler anyway
    19:50:38  sorry, interp setting
    19:50:44  ais523: needed, although I think there may be some way of importing the module so that it's not
    19:50:45  it's an interpreter of the slowest kind (YARV, aka Ruby 1.9 aka Ruby 2.0 is fixing this)
    19:50:47  not sure
    19:50:56  actually, I'm kind of surprised that you needed the delay at all
    19:51:03  considering the relative speeds of Ruby and C
    19:51:57  ais523: snarky
    19:52:03  Mongrel, the server, has its core written in C
    19:52:09  sorry
    19:52:11  and since it's a long running process, really we're IO bound
    19:52:16  but i agree
    19:52:21  ruby is the slowest thing ever :-)
    19:52:28  ehird: try HOMESPRING some time
    19:52:30  but soon... 2.0..
    19:52:39  I'm pretty sure Ruby's faster than that
    19:52:44  (ruby 1.9 is almost usable, and it will stablly become 2.0 soon)
    19:52:50  ais523: did you know - ruby has continuations
    19:52:53  plain jane callcc
    19:52:54 -!- boily has joined.
    19:53:04  I'd have been disappointed if it didn't
    19:53:10  even reusable. a limitation, though: you can't switch to a continuation made in another thread
    19:53:13  ais523: well, python doesn't
    19:53:25  "It has continuations!" shouldn't be some sort of brilliant killer-app nowadays
    19:53:27  that limitation kinda destroys them though
    19:53:28  it should be a default
    19:53:38  esp. since it copies the stack (since they're very c-integrated)
    19:53:40  so it's slow too
    19:53:40  the next step is getting all langs to have continuations that serialise to disk
    19:53:41  even so
    19:53:43  nice to know it's there
    19:53:49  yeah they don't serialize either
    19:54:08  I can't actually thing of any lang but Underlambda with serialisable continuations
    19:54:10  ais523: ruby = lisp + perly syntax with some extra humaney stuff + smalltalk
    19:54:24  sounds much like the much-fabled Perl5
    19:54:27  + simplified + some complexity, but of a new kind (ruby's own kind)
    19:54:27  only they got to it first
    19:54:32  s/Perl5/Perl6/
    19:54:50  ais523: i've seen perl6 -- it's nothing like ruby
    19:54:55  it SHOULD be, though :-)
    19:54:55  no
    19:55:00  the description fits both languages
    19:55:02  but they are still different
    19:55:04  ais523: one advantage of ruby is that you can actually compile it ;P
    19:55:12  perl6 is actually more mallable than perl5
    19:55:29  well, in perl6, every {} is actually an anonymous lambda, and context determines whether it runs or not
    19:55:31  I like that idea
    19:57:06  OK, I think I've got the game playable
    19:57:59  website?
    19:58:43 -!- boily has quit ("Schtroumpf!").
    19:59:13  ais523: about to
    19:59:15  just disabling saves
    20:00:23  ais523: http://91.105.74.139:8080/
    20:00:24  have fun
    20:00:29  err wait
    20:00:33  just gonna log when someone starts a new game
    20:00:35  Could not connect to host 91.105.74.139 (port 8080).
    20:00:38 -!- Slereah has joined.
    20:01:04  ais523: yes
    20:01:06  added the logging
    20:01:07  should work now
    20:01:08  http://91.105.74.139:8080/
    20:02:06  ais523: 'sit good?
    20:02:10  I think so
    20:02:27  'twould be nice to autoscroll to the bottom of the page, though
    20:02:35  that's probably possible using anchors
    20:02:48  ais523: does for me!
    20:02:51  because it focuses the input field
    20:02:57  not for me in Konqueror
    20:03:01  ais523: use epiphany
    20:03:02  nor for me in Firefox
    20:03:16  it does it in a