00:30:53 lalala 00:51:58 graue: any progress on the automated DB backup? 01:36:28 i'm waiting for lock tables permission 01:36:39 supposedly it can be provided to me 02:16:34 http://esoteric.voxelperfect.net/db/latest.sql.bz2 02:18:37 it should now update on sundays at about 00:01 UTC, maybe a little later 02:19:50 great 02:20:22 * malaprop sets up a mirroring script. 02:20:31 How about svn dump? 02:23:25 um, just check it out 02:23:42 So you want me to start hassling you again as soon as someone commits a revision, eh? :) 03:17:46 -!- calamari has joined. 03:18:21 hi 03:18:38 Hullo 03:36:10 -!- kipple has quit (Read error: 110 (Connection timed out)). 03:59:56 graue: latest.sql.bz2 seems to be 0 bytes in length 04:05:28 does it? 04:05:31 brb investigating 04:06:13 funny, it's 449514 bytes on the server 04:06:31 I do 'wget http://esoteric.voxelperfect.net/db/latest.sql.bz2' and get http 200 but 0 bytes. 04:06:48 -!- CXI has quit (Connection timed out). 04:07:04 yeah, me too 04:15:37 try http://esoteric.voxelperfect.net/db/latest.sql.gz 04:16:17 still 0b 04:16:47 really? works for me 04:17:19 Really, from two different systems. 04:18:57 well, seeing as how it works fine for me, i can't do anything about that 04:19:45 Are you trying from that machine itself? 04:21:53 no, i am not 04:23:14 Works fine for me. 04:24:28 doesn't work even from a new, third host 04:26:36 ah, hm, .gz works but .bz2 is 0b? 04:26:45 * malaprop didn't notice the changed extension at first. 04:27:31 ah, that's why i gave you a url :) 04:27:59 It looked the same at first glance, heh. Why gz instead of bz2? 04:29:27 because gz files don't get served as 0 bytes 04:30:09 lol 04:35:42 I've got a cron job and simple page set up, I'll post to the mailing list after dns propagates a bit. 05:16:26 -!- malaprop has quit ("quit"). 05:27:44 esoshell wiki writing testbed: http://lilly.csoft.net/~jeffryj/cgi-bin/miniwiki.cgi 05:34:22 -!- Keymaker has left (?). 05:50:12 what does that do, just change itself? 06:04:50 graue: yeah.. it's handy because I can access it from lilly.csoft.net while testing out the wiki file i/o 06:05:28 since Java has those security restrictions 06:05:32 ah, i see 06:08:16 graue: I still haven't decided on the format.. what do you think of what I just added? 06:09:02 works i guess 06:09:17 not very pretty, though :) 06:09:33 you will have to escape < into < 06:09:50 even inside pre? 06:09:56 yeah 06:10:05 how else do you think "" works? 06:10:11 heheh 06:11:44 that might get annoying for authors typing in programs by hand, or pasting them in 06:12:29 most text editors have find and replace 06:13:20 aha.. mediawiki takes care of that for us 06:13:31 hmm, a brainfuck and html polyglot would be fun 06:13:49 except that it's not possible because html has to have < before any >s 06:13:58 06:14:12 You can put < and > in those, just not --> 06:14:25 that < will be illegal in brainfuck since it goes to cell -1 06:14:29 graue: I might not understand.. I did
 <<< 
and mediawiki translated the < to < 06:14:39 calamari, cool 06:15:01 what if you do
  
? 06:15:32 works fine 06:15:40 interesting 06:16:07 I guess the only restriction is that the file couldn't contain 06:16:37 I'm not sure that's such a big deal :) 06:16:50 nope 06:17:04 Damn, that first < think is a real toughy XD 06:17:22 If you started with >++ you'd be fine, but that may make it unhappy ... it would probably be illegal HTML, technically. 06:18:56 GregorR: I'll be stripping off the
 and 
before bf sees it 06:20:16 calamari: I was referring to the HTML-BF polyglot 06:21:27 GregorR: aha :) 06:42:05 graue: http://esoteric.voxelperfect.net/wiki/Help:Editing has no help documents.. is this a work in progress? 06:42:49 calamari, how did you get there? 06:43:46 graue: any edit page, click down at the bottom where it says (Editing Help) opens in new window 06:44:00 err, have the parens wrong.. but that's the idea :) 06:45:53 http://esoteric.voxelperfect.net/wiki/Help:Contents also 06:46:04 that's any page click "Help" on the left 06:56:56 -!- CXI has joined. 07:05:57 god what is with all the redundant pages 07:06:27 i made an Esolang:Help, but Help:Editing and Help:Contents should just be the same thing 07:09:28 i redirected the other two now 07:16:07 -!- calamari_ has joined. 07:16:18 re's :) 07:21:13 graue: http://esoteric.voxelperfect.net/wiki/User_talk:Calamari 07:21:13 better, worse? 07:21:13 cool, it works 07:21:29 you can make user subpages 07:21:39 e.g. "User:Calamari/esoshell_tests" 07:21:41 argh, I messed up that link on the help page 07:21:52 oh yeah? I'll have to try that :) 07:22:16 oh god, man, you didn't read the page you were editing! 07:22:32 it clearly states that that section is called "External resource", not "External Links" :) 07:22:40 graue: lol 07:24:46 oops, conflict 07:28:07 btw, can only admins revert pages? or is revert just a cute name for copying & pasting the old page back in? 07:32:13 revert is a cute name for changing a page back by whatever means, yes 07:32:33 however, admins get a convenient link to do this automatically, when looking at a diff 07:32:39 all it does is make it faster for them 07:33:00 -!- calamari has quit (Connection timed out). 07:38:09 hehe, having those file extensions is probably unnecessary :) 07:38:50 maybe a description area would be helpful too 07:39:35 I need to go to bed.. feel free to improve upon the current design 07:40:10 -!- calamari_ has quit ("Leaving"). 07:54:41 -!- graue has left (?). 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 09:15:41 -!- sp3tt has joined. 09:21:37 Is it possible to do division in bf? 09:22:01 i think so 09:22:54 It should be possible using the same code as multiplication... 09:23:00 sp3tt: brainfuck is turing-complete 09:23:02 so yeah, it is :) 09:23:36 just need to know the algorithm... 09:24:45 >+++++[<+++++++++>-] 5 * 9 09:25:25 iteratively subtracting until the number goes down to 0, and counting how many subtraction has been done? 09:25:38 <[--------->>+<-<] 09:26:09 That would divide by nine, but how do you handle situations where there is a remainder? I.e where x % y != 0. 09:26:18 [-[-[-[-[-[-[ 09:26:24 yeah 09:26:38 but it's better to write a general algorithm 09:26:42 to divide X by Y 09:26:47 where X and Y are two numbers on the tape 09:27:06 True. 09:28:11 implementing the algorithm is left as an exercise for the reader. 09:29:05 Google search for brainfuck division turns up German wikipedia. 09:29:45 Heh. I wrote a 5 page PDF about brainfuck (in Swedish) leaving Hello world as an exercise for the reader :) 09:30:32 I have discovered a truly remarkable implementation, which this margin is too small to contain. 09:30:56 it certainly doesn't sound hard. just keep subtracting. 09:31:25 or store your numbers as rationals :) 09:31:35 then division is the same as multiplication 09:32:24 One could write a nested loop, subtracting one until the cell contains 0. 09:32:56 When the loop has subtracted one Y times, add one to a third cell. 09:33:20 And when the loop is finished, calculate the remainder in some way. 09:34:18 the remainder will just sit there 09:34:24 in whatever cell you were using for subtraction 09:46:03 That would require a check to see if y > x 10:11:55 -!- starling has joined. 10:12:39 -!- starling has quit ("pop"). 10:39:17 -!- kipple has joined. 11:08:08 moin 11:24:33 hola 11:32:36 -!- sp3tt has quit (Read error: 104 (Connection reset by peer)). 11:58:11 -!- Keymaker has joined. 11:58:21 rgrg 12:02:59 is that finnish for "hello"? 12:03:58 No, that would be "hei" or something. 12:04:14 "tervehdys", perhaps, although that's closer to 'greetings'. 12:04:39 you say "hei" in Finland as well? 12:04:54 Uh, yes. 12:05:19 In Norway too 12:06:33 It is an useful greeting when mingling with swedish-speaking folks, since their "hej" is pronounced quite similarly. 12:09:35 Away to eat now. -> 12:14:16 ah. hei kipple! 12:14:35 hei 12:14:39 heh 12:15:16 i found interesting site; http://freesound.iua.upf.edu/ 12:15:20 it has allkinds of sound samples 12:15:29 well, that was a nice small Finnish/Norgwegian polyglot conversation :) 12:16:22 haha 12:30:02 Keymaker: nice link 12:30:21 very nice, Keymaker! reminds me of the free images site... http://www.openclipart.org/ 12:31:18 thanks pgimeno! I like 12:38:22 np, enjoy the world of free resources :) 12:38:57 nice 12:39:21 :) there's good machine sounds etc on that page.. that's what i was looking for and finally found a nice source :) 12:39:33 i'll try to get something done with some samples 13:03:45 Keymaker: what kind of software do you use for making music 13:08:32 i use buzz tracker 13:08:37 it's really cool imho 13:08:40 totally freeware 13:09:06 the only bad thing is that there is so much stuff that i don't know what to do 13:09:26 it's filled with allkinds of things and options 13:09:40 and audacity for sample stuff 14:07:43 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)). 14:10:14 -!- puzzlet has joined. 14:16:24 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)). 14:39:23 -!- puzzlet has joined. 14:51:51 ok that's enough musicing for today. 14:52:04 i lose my nerver 14:52:10 *nevers 14:52:13 fck 14:52:18 *nervers 14:52:21 *nerves 14:52:28 can't tpye 14:52:37 too nevrous? :) 14:52:37 bad keyboard? 14:52:43 :) 14:52:52 yes 14:53:06 the keyboard's fine 14:53:34 i'll go to eat. then i'll switch to linux. then me comes back. 14:53:40 -!- Keymaker has quit ("I've seen this déjà vu before.."). 14:57:50 -!- Keymaker has joined. 14:58:26 rgh. so it is true: if you eat too much candy before the actual food you don't feel like eating the actual food 14:59:32 you finished eating in 5 minutes? 14:59:46 no. i brought the dinner here again :) 15:01:51 i'll listen some prodigy. i hope i could make their kind of music a bit.. it's so crazy :) 15:11:38 i added bf-hacks to esowiki brainfuck links 15:11:46 hopefully nobody minds 15:27:56 i added two small sample programs to thue oage 15:27:59 *page 15:28:08 they should be correct, although i didn't test 15:43:38 you forgot to log in before editing... :) 15:44:07 aaaaaaaaargh 15:44:16 frrrrrgh 15:45:02 maybe the wiki should be editable for users only? 15:45:35 oops, iirc 'editable' means something that can be eaten :) 15:45:50 or perhaps not 15:45:52 no, that's edible 15:45:55 yes 15:46:01 just remembered that 15:46:08 i wonder what i'm thinking today 15:46:13 i've been all crazy 15:46:15 :) 15:46:26 well, too bad the wiki isn't edible 15:47:02 only the chef programs 15:47:11 :) 15:48:56 i'll try to think more about the snack language i was planning 15:49:00 * Keymaker thinks 16:03:14 -!- malaprop has joined. 16:10:20 yes! 16:11:12 i think i got some idea 16:11:12 time to write good ol' python 16:15:05 is 'snack' good name? any other idea for a language that deletes it's own code? 16:15:27 Keymaker: SourceSafe 16:15:35 :D 16:15:55 or well, it doesn't delete the actual source from hard drive 16:15:58 (too bad!) 16:16:04 but from memory 16:46:58 -!- cpressey has quit (brown.freenode.net irc.freenode.net). 16:48:03 -!- cpressey has joined. 16:51:04 -!- cpressey has quit (brown.freenode.net irc.freenode.net). 16:52:35 -!- cpressey has joined. 17:01:07 question: 17:01:31 if stack is empty, should popping return error or zero/empty/do nothing? 17:02:12 Pretty arbitrary. I've seen both commonly. 17:02:17 yeah 17:02:55 do something completely different! 17:03:16 empty stack returns random value? 17:03:22 hehe 17:03:30 that could be nice 17:03:39 or start popping the source code :) 17:03:42 would add some random flavour to the language 17:03:51 well source is popped all the time ;) 17:03:59 print 99bob 17:04:04 heh 17:04:16 then that could be written with one instruction.. 17:04:24 random could be nice 17:04:28 yeah 17:04:37 if there is another way of checking if the stack is empty 17:05:04 not yet 17:05:17 i'm still planning while writing the interpreter 17:05:45 maybe you could have an boolean operator that checks if a number is 'random' :D 17:05:52 heh 17:06:22 btw; would reversible stack be okay for two stacks? 17:06:26 like there is one stack 17:06:36 but instruction '/' could reverse it 17:06:50 and that way the other side of the stack could be popped and pushed etc.. 17:07:05 that would be a nice instruction 17:07:10 yes 17:10:12 interesting contest: http://www.brainhz.com/underhanded/ 17:10:26 (might be slashdotted any moment now) 17:11:19 hehe 17:55:27 kipple: Yes, is now on Slashdot. 17:55:48 I know, that's where I found it 17:59:18 ah, I read your comment to say it was yours or a friends and you were waiting for /. to post a story on it 18:00:23 ah. No. I was waiting for the server to go down from the slashdot effect. Which it hasn't :) 18:03:59 malaprop 18:04:06 how to reverse string in python? 18:06:49 "foo"[::-1] 18:07:08 So you slice the whole thing with a negative step, basically. 18:07:17 ah cheers 18:07:19 works 18:11:45 snack is progressing! 18:14:40 any code examples? 18:15:21 mmm. Python looks cool. Maybe I'll use that for my next esolang 18:16:25 not yet 18:16:29 hopefully later tonight 18:16:31 and yeah 18:16:43 python is my favourite "real" language thesedays 18:16:44 kipple: Python rules. :) 18:16:50 i found it out few days ago 18:16:54 :) 18:17:18 in python strings and stacks and stuff like that is so easy that it's idea for esolang interpreter writing 18:17:24 *ideal 18:17:44 Keymaker: Heh, have you used list comprehensions at all? They're my favorite new idiom. 18:17:55 hmm no i don't think so 18:17:57 what are those? 18:18:22 Say you have a list full of objects that you want to do a common operation on. Instead of writing 18:18:28 for x in list: 18:18:35 x.foo() 18:18:38 you can write: 18:18:45 [x.foo() for x in list] 18:18:51 :) 18:19:06 which gets really handy when you do stuff like "\n".join([x.toXML() for x in list]) 18:19:11 yeah 18:20:17 i selected to this language that popping empty stack returns nothing 18:20:32 and probably make the random feature for memory stack 18:20:42 this language has two stacks 18:20:50 oh, conditionals are also handy: [x.foo() for x in list if x.bar > 2] 18:21:00 :) 18:48:57 -!- comet_11 has joined. 18:50:01 -!- CXI has quit (Read error: 104 (Connection reset by peer)). 18:56:44 -!- graue has joined. 19:00:03 phew! finished the first part of the Malbolge article 19:00:11 cool! 19:00:14 is it up? 19:00:57 yeah 19:01:05 http://www.esolangs.org/wiki/Malbolge 19:01:22 cool, i'll read it now! 19:01:35 it's just a language description at the moment 19:01:54 ok 19:07:05 good work 19:07:20 thanks 19:07:41 is it easy enough to understand? 19:07:52 yeah, i guess 19:08:01 all but the code samples :) 19:08:10 hehe, indeed 19:09:26 even 'reading' the normalized version requires external help (a trace is helpful) 19:09:34 heh 19:10:26 so, Keymaker, when is the Malbolge quine done? 19:10:32 uhhh 19:10:40 :) 19:10:53 thanks heaven i haven't even thought that 19:11:26 hehehe 19:11:39 (nor digital root calculator!) 19:11:41 * pgimeno considers about offering a prize 19:11:51 http://esoteric.voxelperfect.net/db/latest.sql.bz2 19:11:52 it should now update on sundays at about 00:01 UTC, maybe a little later 19:12:01 so can it be announced to the mailing list? 19:12:23 I'd guees so. Mention that I'm doing backups. 19:12:56 Keymaker: you may want to add the digital root program to http://www.esolangs.org/wiki/Popular_problem 19:12:59 I'll set up a cron job as well 19:13:00 oh, and it's .gz, not .bz2 19:13:07 that would be cool pgimeno 19:13:17 although dunno how popular that is 19:13:23 but it's worth being popular ;) 19:13:25 malaprop: well, I managed to download the .bz2 without problems 19:13:35 maybe an apache caching issue or something 19:13:53 i'll add it 19:13:58 huh, and now I can get it 19:14:21 graue: which of the archives is the one that gets updated? 19:16:56 the null program is not a quine in malbolge: it crashes the reference interpreter due to a(nother) bug 19:17:17 -!- slobo has joined. 19:17:38 hi slobo 19:19:10 that nick sounds reminiscent of a not very fast language 19:20:42 hi 19:20:44 ? 19:21:12 hi 19:21:45 http://en.wikipedia.org/wiki/SLOBOL_programming_language 19:22:57 lol, didn't know this :) 19:23:41 :) 19:25:28 brb, taking down one bottle of beer from the wall 19:26:08 -!- slobo has left (?). 19:27:00 :) 19:27:05 how many left? 19:27:49 too few 19:28:10 "go to store and buy some more" 19:28:20 :) 19:29:44 the counter is still in 4 19:29:59 ok 19:38:21 -!- calamari has joined. 19:38:34 hi 19:38:45 hi 19:38:55 ok here it is: http://www.esolangs.org/wiki/Digital_root 19:41:18 anyway, if anyone wants to try and implement the Song with real hardware (or should I say liquid-ware?), here is the place to do it: http://www.mommsen-eck.de/ 19:41:45 you wont have to drink the same kind twice :) 19:41:58 :) 19:42:35 though you might get some run-time errors, I think... 19:42:43 i have a feeling any hardware couldn't get past 50 bottles before serious malfunction 19:43:02 or well, past 20 19:43:12 well, I think the way to do it would be with parallell processing 19:43:21 :) 19:44:05 ahh, didigtal root is the division by 3 test 19:44:19 hm? 19:44:40 that's the way you can tell if a number is divisible by 3 19:44:50 (besides actually doing the division) 19:44:52 ah 19:44:59 i didn't know that 19:45:02 cool 19:45:03 so if it comes out to 3, 6, or 9, it's divisible 19:45:09 yeah 19:48:27 I should add a page to the bf giving algorithms, like division for sp3tt 19:48:41 that could be nice 19:49:14 N.B. the digital root is also a test for divisibility by 9 (if it comes out to 9) 19:50:31 pgimeno: cool, didn't know that one :) 19:50:41 does it work for 6 as well? 19:50:47 nope 19:51:00 for 6, check that it's even and it's divisible by 3 19:51:22 right, because 2*3=6 19:51:30 yup 19:51:37 so now we know the /18 rule :) 19:51:44 sure :) 19:52:58 also, if a number's last two digits can be divided by 4, then it's divisible by 4; if it's also divisible by 3, then it's divisible by 4*3=12 19:53:42 pgimeno: I don't think that works for 144. 19:53:51 oh, whole number div 3? ya, ok 19:54:21 144=4*4*9, quite more complex 19:54:40 (requires that the last four digits can be divided by 16) 19:58:08 this regexp tests divisibility by 4 (if I've made no mistake): ^[0-9]*([13579][26]|[02468]?[048])$ 20:01:59 no, it does not work 20:03:36 ^([0-9]*[13579][26]|[0-9]*[02468][048]|[048])$ should work (there was a problem with the ? above) 20:08:46 would these instructions be good: 20:09:10 'i' to increase memory stack's top value by 1 20:09:28 'I' (big 'i') to increase memory stack's top value by 10 20:09:47 and 'd' and 'D' to decrease by 1 and 10 20:10:19 but i wouldn't like to use letters 20:10:27 better think something else.. 20:11:05 or should i use the befunge way? polish notation (was it called that)? 20:11:54 like 99* would push 9 to stack and then 9 to other stack and then pop them and multiply them and then push the result 20:12:05 Keymaker: ya, that's rpn 20:16:54 grhhh. i just use the gooood ol' + and - stright from brainfuck :) 20:17:03 nobody needs more than that 20:21:26 hmm 20:21:29 what should i do: 20:21:36 Keymaker: How about have integer literals repeat? So + adds 1 to top of stack, and +9 adds ten. 20:21:48 that could be nice idea 20:22:03 but i decided that using the "loop" system i have is easy enough :) 20:22:42 i was about to ask that i probably should use good ol' byte as memory 'cell' size? 20:24:13 i hate bytes 20:24:18 be original 20:24:21 use base 9 or sometihng 20:24:25 hmm 20:24:28 Be a man, use unicode. 20:24:34 NOOOOOOOOOOOOOOOOO 20:24:37 and yeah 20:24:40 :) 20:24:42 puzzlet will kill you if you don't use unicode 20:24:55 do you really want to be mauled by a mob of angry koreans? 20:24:58 is there still no language using balanced trinary? 20:25:12 don't make me use bits.. 20:25:18 pgimeno: that would be surprising 20:25:28 pgimeno: wasn't there an actual computer using balanced trinary 20:25:38 no idea 20:25:58 is there? 20:26:14 * pgimeno googles 20:26:52 well, there was a ternary computer 20:27:00 i have no idea if it was balanced ternary or some other kind 20:27:05 it was made in russia 20:27:16 iskra or something? 20:27:20 :) 20:27:35 no, probably something else 20:28:06 http://www.computer-museum.ru/english/setun.htm 20:28:11 yeah 20:28:27 wow 20:28:35 indeed 20:28:38 yeah 20:28:40 never heard of this 20:28:55 very little actual detail in that article 20:29:25 maybe it's some soviet secret 20:29:27 i wonder why there aren't more ternary machines 20:29:44 the article seems to list a bunch of unilateral advantages 20:34:00 does setun use balanced ternary? I haven't seen that 20:36:15 i'll take a small break from developing esolang -- and go to program in thue :) 20:36:31 i probably come back later 20:36:37 -!- Keymaker has left (?). 21:13:14 http://www.esolangs.org/wiki/Brainfuck_algorithms 21:15:11 argh.. I wasn't logged in.. 21:15:41 it seems to random forget I'm logged in.. I blame my browser 21:24:20 there's a timeout 21:24:52 if you refresh any page you reload the timer 21:25:57 can that be disabled? 21:26:41 brb 21:26:43 -!- calamari has quit ("Leaving"). 21:39:00 -!- calamari has joined. 21:39:01 re's 21:40:13 calamari: I don't know if that can be disabled; I learned the trick after noticing the disconnections 21:40:45 I've just read your page; very nice 21:41:09 it's good to have 'stock' algorithms instead of reinventing the wheel each time 21:42:23 one comment though 21:43:24 I've noticed that the PRNG works modulo 65536, but LCGs modulo a power of 2 suffer from a "nonrandomness disease" 21:44:36 in the best case, the lowest bit just toggles from 0 to 1 on each iteration, and the next one just cycles like this: 0, 0, 1, 1 21:45:29 (sorry for the ping, I wanted to make sure you weren't disconnected) 21:46:20 the alternative is to use a prime modulus, and 65537 is just nice because it allows for period 65536 21:46:45 it will complicate the algorithm, though 21:48:29 A = 75, B = 74 make V always < 65536 (that's the PRNG used in the Speccy, incidentally) 21:49:41 (sorry if I'm being a bit picky here, PRNGs are an area of my interest) 21:51:26 pgimeno: I used the numbers from the book listed.. they investigated many different combinations of numbers to come up with those 21:51:53 modulo-2^n LCGs are quite common, though, aren't they? Knuth uses a modulo-2^35 one. 21:52:23 yeah, but e.g. the low bit of the high byte has period 256 21:52:25 pgimeno: I'd love to see a better solution (especially if it's simpler!) :) 21:52:48 (in the period-65536 generator I mean) 21:53:03 calamari: no, it won't be simpler :) 21:54:05 fizzie: Knuth also warns against using the low bits in LCGs modulo powers of 2; he recommends using multiplication to get a number in a given range 21:54:10 I'm still working on putting up my array code, but it will take longer because I need to make sure it's right :) 21:54:39 array code is always so complicated 21:55:36 That's the usual rand(3) manpage warning. 21:55:59 that problem disappears with a prime modulus LCG 21:57:24 (though maximum period for prime M is M-1, not M) 21:58:54 (Hmf, glibc's rand() apprently isn't a LCG.) 22:00:06 I've learnt to never trust standard library's PRNGs anymore :) 22:01:41 that way you can make reentrant generators, predictable results, better period guarantees... 22:02:23 and of course better randomness guarantees 22:02:39 do you know Kyodai Mahjongg? 22:03:27 in that game there are lots of board numbers that generate exactly the same board 22:04:34 just because the period is insufficient and the generation method is a RN hog 22:06:50 calamari: maybe the book authors just didn't consider a modulus other than 65536 22:07:04 perhaps 22:07:15 it's been a long time since I coded that up 22:07:42 it seemed to work fine.. I checked it out in basic first to see what kinds of numbers were produced 22:08:15 and you didn't notice that they were alternatively odd/even? :) 22:08:25 they weren't 22:08:48 well, did you print the values of V? 22:09:09 if you're assuming that the produced random # is16-bits wide, thats an error.. I'm only using 8 bits of it 22:09:35 oh ok. that's the high byte then, right? 22:09:41 I don't recall 22:10:02 looks like it (from the bf) 22:10:16 it must be, otherwise it would be odd/even 22:10:56 feel free to post an improved algorithm.. then everyone can benefit 22:11:10 -!- starling has joined. 22:12:03 might do, if I clean my to-do list a bit first :) 22:13:09 hehe 22:13:15 there, I clarified the rng a bit 22:13:29 now it says 0-255 and hight byte 22:13:40 nice 22:14:03 ok, back to arrays.. afk :) 22:14:08 :) 22:16:35 I know this is probably the wrong place to ask... 22:17:01 Esoteric certainly, but... maybe not in the brainfsck style. 22:17:50 Are the perl and c malbolge interpreters equivalent? 22:18:53 Is there a language out there that doesn't treat text special unless explicitly marked as such? 22:19:03 special? 22:19:13 Yeah, like "as a variable" or "as a keyword" or something. 22:19:43 The only language I can think of really (or not really) is perl's print < PHP requires a $ in front of all variables; Perl requires $ in front of scalars and @ for hashes. 22:20:57 But you can't have unquoted text that isn't meaningful, at least in Perl. The compiler won't know what to do with 'em. Thus the < ahhh 22:21:14 brainfuck 22:21:42 Nah, all of brainfuck's 5 letters are treated special. :) 22:21:53 Fine then: cat 22:22:18 Can't explicitly mark text as special with cat... 22:22:42 Ah, think I got it: Python's docstrings. 22:23:12 docstrings, are those parsed at all? 22:23:34 Look at doctest, ya. 22:23:45 Alternately, Knuth's literate programming. 22:24:09 * starling nods. 22:26:33 Are the perl and c malbolge interpreters equivalent? <- I don't really know; the C interpreter has some caveats 22:27:13 but in general you can expect that programs with characters in the printable ASCII range will work the same 22:27:24 I've written a Python one (and a debugger) 22:31:50 starling: even Perl (or sh) makes the EOT string special 22:32:10 or do you mean "user decidable"? 22:32:56 Well, user decidable I suppose. I suppose it's possible to make the end of file to act as EOT in some cases. 22:33:26 sh is one 22:34:06 It's just I'm trying to write a screenplay, and I have to invent my own language for it. Wanted some functionality, without worrying about every word possibly being variable expanded. 22:34:38 The only extant formats I can find are all 'output' formats, with margin lengths and font and such. 22:36:10 Python docstrings don't fit there very well, if I understand the problem correctly 22:36:38 don't C comments fit? 22:36:41 Yeah, perl's < or C #if 0 ... #endif ? 22:37:18 No, because sometimes I do need to have stuff evaluated, like to mark-up or do logic. 22:38:35 and doesn't */ evaluate /* help? 22:39:05 Oh... Yeah that... might actually work. 22:39:46 I suppose it's also necessary to be able to juggle blocks of text around as atoms. Hmm... 22:39:52 it's kind of like when in PHP you write: 22:40:16 maybe php fits your needs 22:40:24 I'm using it as a preprocessor 22:40:46 *nods* I don't know PHP, but it might work good. 22:41:43 php outputs text until it encounters , then it begins outputting text again 22:41:53 -!- Keymaker has joined. 22:41:56 hello 22:42:01 hi Keymaker 22:42:06 hi 22:42:07 Right-o. 22:42:14 good work calamari 22:42:37 not sure what kind of array code you're writing there 22:42:49 but simple array is easy 22:42:49 +++++++++ what value? 22:42:49 > ++++++++++++++++++++++ where? 22:42:49 [ 22:42:49 >>>[>>]+[<<]<- 22:42:49 ] 22:42:51 < 22:42:53 [ 22:42:55 > >>>[>>]<+<[<<] <<- 22:42:57 ] 22:43:23 that code moves the "what value?" value to "where?" memory place 22:43:41 each location uses two bytes; one for movement and one for storing 22:44:05 this is, for byte-implementation 22:44:26 but the same code would work even if the cell size is more than byte 22:44:39 (on those implementations that i don't prefer) 22:46:09 keymaker: I'm doing x(y)=z and x = y(z) 22:46:32 But, you could add that as a simiplified case :) 22:46:39 ok 22:46:58 what kind of array is this your new array? 22:47:07 is there any size limit? 22:47:49 as well, your random code is clever 22:47:52 size limit depends on cell size 22:47:56 never heard of that 22:48:00 ok 22:48:01 keymaker: thanks :) 22:48:05 :) 22:48:15 oh i mean like how long the array is 22:48:22 yeah that's what I mean too 22:48:23 like can you set x(4999999) = 3 22:48:39 yes, if your cells can hold the value 4999999 22:49:07 ok.. so the max is with 1 byte-implementation x(255)? 22:49:11 yes 22:49:14 'ok 22:49:24 my code basically does that 22:49:33 or well, it does that 22:49:34 :) 22:49:42 it wouldn't be hard to add 22:49:46 it to get the value 22:49:58 I've saved my changes 22:50:03 ? 22:50:14 changes? 22:50:18 could you add your sections and save changes so I can work in my little corner without a conflict 22:50:27 sure 22:50:54 do you want me to add my stuff to esowiki? 22:50:55 what will it be, x = y(_constant), x(_constant_)=y ? 22:51:09 my code? 22:51:14 also, be sure to specify where the pointer ends up 22:51:20 yes 22:51:44 see the one array code I put for an example of what I mean 22:51:46 i'll do this: i'll write the stuff on txt 22:51:58 and later, for example tomorrow, add it when you're edited the wiki 22:52:05 okay 22:52:06 or something like that 22:52:11 i have no reason to hurry :) 22:52:14 brb 22:52:16 -!- malaprop has quit ("leaving"). 22:52:29 -!- malaprop has joined. 22:52:41 if i do detailed work i may add it to my site as well 22:53:22 but what i could do is to convert some of those algorithms of your to non-wrapping implementation ;) 22:53:24 I think I'll write a Malbolge quine 22:53:31 :) 22:53:33 go ahead 22:54:30 what can I offer if you manage to do that? hmm... 22:55:10 99 bottles of beer? 22:55:12 pgimeno: more bf algorithms :) 22:55:20 :) 22:55:26 yeah, that makes sense, Keymaker 22:56:00 malaprop: if you write a Malbolge quine I'll reward you with 99 bottles of beer 22:57:26 malaprop: are you really interested in Malbolge? I want to write sections about practical Malbolge coding 22:58:04 My interest in Malbolge is not deep. 22:58:18 ok 22:58:31 calamari: reversing data would be nice there as well. we could probably use that 50-byte entry of bfcc #1 if we asked the author's (bertram) permission. 22:58:51 I'm going to go think about this on the train to visit some friends; I'll be AFK the next 24hish. 22:59:06 :) 22:59:26 have you read Lou Scheffer's article? it's a good introduction 23:00:17 when his ideas are put into practice other issues surface though 23:00:42 bbl 23:02:33 -!- starling has left (?). 23:04:55 keymaker: ok.. array code should be up if you want to add things :) 23:06:00 ok 23:07:41 here should be code that 'returns' NOT(x) 23:07:42 +++++++++++++++++++++++++++ THIS IS X 23:07:42 [>+>+<<-]>>[<<+>>-] 23:07:42 +++++>>> 23:07:42 +++++[<+++++[<+++++>-]>-]<< 23:07:42 [<++>-]<< 23:07:44 [>-<-]>[<+>-]<< 23:07:57 the first cell is x 23:08:06 and the second cell will get the value not(x) 23:08:19 the original x will remain in the first cell 23:09:16 why not put it in the wiki rather than paste it here? :) btw, I already have a not function listed 23:09:46 but isn't that for wrapping version? 23:09:54 yeah.. this is non-wrapping? cool 23:09:57 yes 23:10:01 that's why i wrote this 23:10:02 :p 23:10:24 i'll add it there..? 23:10:31 if it's possible to normalize it (use variable names instead of > and <, please do so 23:10:50 that way it becomes much more reuseable 23:11:06 hmm.. sorry, i don't know how to convert to those :\ 23:11:18 that's okay.. I'll try to do it 23:11:24 good :) 23:11:28 they confuse me too much 23:11:45 here's the memory layout (if i remember it correctly): 23:11:50 oh wait 23:11:58 it's no use, since it change during execution 23:12:38 that's the probelm with bf algorithms, isn't it.. no documentation, and can't remember how it works :) 23:13:31 makes me glad that I was able to preserve mine somewhat with the variable naming format 23:13:34 hehe. but here is what it does: take copy of x, make one cell 255, decrease 255 by that copy x's value, then move not(x) to second cell 23:13:57 heh 23:18:02 so whats the shortest way to make 255? 16*16-1? 23:18:54 dunno 23:19:00 i used 5*5*5*2 23:19:11 +5 23:19:12 :) 23:22:19 but notice on 1-byte, non-wrapping implementation you can NOT do 16*16 :) 23:22:23 how's this: http://www.esolangs.org/wiki/Brainfuck_algorithms 23:22:31 aha 23:22:36 that is true 23:22:49 so I need to fix it again :) 23:23:17 the 5*5*5*2+5 way is quite good imho 23:23:29 17*15 23:24:11 that's easy, but long :) 23:24:11 except that neither of us seem to understand it :) 23:24:43 can you show me just the code where you set a cell to 255? 23:24:51 ok 23:24:57 +++++>>> 23:24:58 +++++[<+++++[<+++++>-]>-]<< 23:25:04 first place 5 23:25:12 go three right 23:25:19 thanks 23:25:28 and so on :) 23:26:03 probably best would be if you'd just convert my original code to that tutorial form :) 23:26:50 there is what I get: 23:26:53 >[-]+++++++++++++++[<+++++++++++++++++>-] 23:26:53 [-]+++++>[-]>[-]>[-]+++++[<+++++[<+++++>-]>-]<< 23:27:07 your code (when properly zeroed) is actually a bit longer 23:27:22 maybe some of the [-] can be skipped? 23:27:51 actually wait, I missed on on mine 23:28:02 [-]>[-]+++++++++++++++[<+++++++++++++++++>-] 23:28:07 :) 23:28:20 still shorter tho :) 23:30:23 your code leaves cells with values on the memory 23:30:39 adn on which cell the x should be? 23:31:12 I don't understand your question 23:31:15 oh wiat 23:31:22 nothing notghin nothing!! 23:31:31 i just ran the two lines you posted 23:31:39 and thought that that isn't working at all :D 23:31:45 now i see it's comparing 23:32:14 yes, your way is shorter if cells must be cleared first 23:32:43 algorithms page is probably assuming the codes can be run at any time? 23:32:46 yeah 23:32:51 ok 23:33:04 is neg = not + 1 going to wrap ? 23:33:17 no idea 23:33:30 ie neg(10)=-10, not(10)=-11, so -11+1 = -10 23:33:49 no idea still! 23:33:54 hehe 23:33:58 :) 23:34:36 ahh lets see, not(0)=255, 255+1=0.. oops 23:34:58 I could make 0 a special case 23:35:04 ? 23:35:08 i can't understand this at all 23:35:20 what does "x = -x" do? 23:35:47 in values that can't be negative? 23:36:08 good question.. mnaybe it makes no sense to even bother 23:36:22 it's on the esowiki.. 23:36:39 that's because it works well when cell wrapping is allowed 23:36:42 255 = -1 23:37:06 i don't think it's really useful, sorry :) 23:37:12 mainly because there is no sense :) 23:37:12 so if x = 1, the code x=-x gives -1 23:37:19 yes 23:37:29 you've never used -x in a program you wrote? 23:37:33 no 23:37:46 well, sometimes in math you need it :) 23:38:07 but assuming i have brainfuck implementation, 1-byte and non-wrapping 23:38:18 then you don't need it 23:38:21 and i want -(33) 23:38:25 but non-wrapping isn't a given 23:38:48 a lot of bf programmers (including myself) are okay with wrapping 23:39:02 :] 23:39:14 so let's just leave the non-wrapping version off, because you're right, it makes no sense 23:39:21 ok :) 23:39:25 agree! 23:39:50 heheh 23:40:05 btw, is the line between wrapping and non-wrapping version of not(x) necessary? 23:40:10 it makes reading hard 23:40:13 I should rewrite == and != to use 1 = true instead of 255 23:40:28 keymaker: nope, that must be an accident on my part 23:40:35 ok :) 23:40:39 i can write other of them 23:40:47 which one do you want == or != ? 23:41:04 do you understand the code? :) 23:41:15 not esowiki code 23:41:19 but pure brainfuck, yes 23:41:23 okay :) 23:41:30 I can do both, it won't take long 23:41:37 well, ok then 23:44:23 what 'x = x and y (boolean)' does? 23:44:44 okay done 23:44:50 ok 23:44:50 x = x && y 23:44:54 for the record, according to http://www.iwriteiam.nl/Ha_bf_numb.html you need at least 30 instructions for 255 23:45:49 ok 23:46:05 i mean it does something with bits? 23:46:11 (&&) 23:46:45 AND 'gate'? 23:47:29 keymaker: if you're familiar with c, it is the && operator 23:47:37 i'm not 23:48:06 keymaker: examples: 1 == 2 returns 0, 5 == 5 returns 1 23:48:23 ah 23:48:26 i'm stupid 23:48:30 this is useful for things like if() 23:48:32 i was thinking at byte level 23:48:33 yes 23:48:34 this 23:48:37 00110 23:48:41 10010 23:48:46 00010 23:48:48 :) 23:48:50 ahh, yeah, that's bitwise 23:48:54 i mean bit level 23:49:14 I've writeen those, too.. I 'd forgotten ! :) 23:49:36 smallfuck comes handy at those :) 23:49:46 :) 23:49:49 indeed 23:49:52 yeah, I'd bet it does 23:50:07 interesting how it can be more powerful and less at the same time 23:50:15 :) 23:50:49 i should write some smallfuck program (using some i/o extension) 23:51:52 Boolfuck may be what you're looking for 23:51:54 naturally without using any bf-->sf stuff 23:53:16 bitchanger is smaller, but not symmetric 23:53:39 so you don't really win anything.. just less symbols 23:53:44 :) 23:53:48 how did you invent it? 23:53:59 keymaker: driving down the freeway I came up with the answer :) 23:54:30 heh, the eureka effect 23:54:33 I didn't know about any other bit bf's 23:54:58 lol 23:55:00 my goal was to simplify bf so that it could be wired with transistors 23:55:10 :) 23:55:17 didn't happen, of course 23:57:27 with TTL circuits, I hope 23:58:05 nm 23:58:15 rgh. 23:58:23 well, seems i didn't go night photographin' 23:58:35 better continue being here, then 23:59:25 gotta go tomorrow, or going crazy 23:59:45 anyways, i'll switch to linux once again, will be back soon. 23:59:47 -!- Keymaker has quit ("I've seen this déjà vu before..").