00:00:00 --- log: started retro/06.07.15 00:54:58 --- join: Cheery (n=Cheery@a81-197-20-242.elisa-laajakaista.fi) joined #retro 02:43:09 --- join: virl (n=virl@chello062178085149.1.12.vie.surfer.at) joined #retro 06:08:13 --- quit: virl (Remote closed the connection) 06:58:55 futhin: You thinking of making an AI with your evolutionary program? 07:00:58 trouble is by the time I've got it figured out what the parameters are for something, my intuition has already done a bunch of evolutionary stuff. 07:01:18 hmm. how about a web browser? 07:02:06 but how would one check whether it is browsing the web or not, I wonder. 07:23:46 good morning 07:31:14 http://retroforth.net/changes.php 07:43:12 cool! 07:46:53 this way it's easy to see if there are any new patches 07:47:06 * crc will be working more on the getretro script next 07:48:02 well this'll be handy :) 07:48:25 I hope so :) 08:15:20 I just made a minor change to vocabularies; now the .vocab class is exposed and vocabularies can be accurately identified by retrospect 08:17:41 I can't get the help system to work 08:18:40 the new one? 08:19:00 yeah. is there more than one? 08:19:22 I checked some new code into the repo a few days ago 08:19:35 you have to load help.data from modules/ for it to be fully functional 08:19:40 ahh, ok 08:19:43 retro -f modules/help.data 08:19:50 I was trying to use help/help.data 08:19:51 it only has help on a few words so far 08:19:53 ahh 08:20:02 that's the old one :) 08:20:42 specifically, I only put in help for forth and .forth so far 08:20:59 * crc has been awaiting feedback on the approach before proceeding further 08:20:59 works, nice 08:23:28 docl: i think that by harnessing the power of evolution, and when we get it to such a level that we can evolve just about anything easily, that there won't be much need for an "ai" in the conventional sense 08:24:33 i think evolution will produce more efficient solutions than intelligence can, every time 08:25:00 futhin: you read schlock mercenary? 08:25:06 nope 08:25:15 whats that 08:25:19 better than sluggy (especially lately 08:25:37 ah, haven't read sluggy in a long time 08:25:38 it's a webcomic 08:26:07 it's back to the old format, but the jokes seem lamer to me 08:26:10 mostly i keep an eye on angryflower, leasticoulddo, penny arcade 08:26:22 and qwantz 08:26:30 check out qwantz.com :) 08:26:40 ok 08:26:48 exact same comic strip 08:26:52 except for the words 08:26:54 its awesome 08:26:58 the guy is so clever 08:27:23 yeah i stopped reading sluggy because i got totally confused 08:27:38 like there was an understandable storyline for the first 3 years or whatever 08:28:13 and then bam, one of the guy dies or something and then they go onto a totally different storyline for awhile 08:28:16 right, then it's like he stopped caring 08:28:28 and when they get back onto the normal storyline, its not a continuation or something 08:28:30 almost as bad as gpf 08:28:32 completely confusing 08:29:04 i think i might need to start all over again for sluggy 08:29:24 maybe it was because i was reading it every now and then that made it more confusing 08:29:33 maybe it would make more sense if it read it all at once heh 08:29:34 I keep hoping it'll get better 08:29:49 it went downhill with the geek/zombie parody 08:30:10 never read gpf 08:30:35 there's so many webcomics out there heh 08:30:44 yeah, too many for one lifetime. 08:30:52 * docl should just quit reading them 08:30:55 man there's some comics that blow me away, but they're unfinished :( 08:31:03 heh 08:31:11 but schlock is too much fun 08:31:41 schlockmercenary.com 08:33:27 seems like all comics are perpetually unfinished. part of their gig. 08:34:49 like for example http://remanmyth.felaxx.com/ 08:34:50 thing about schlock mercenary is it deals with characters that are practically omnipotent, yet still manage to have limitations. 08:34:59 250 pages, but unfinished :( 08:36:14 the most prominent being schlock himself, a nearly-indestructible, shape-changing pile of goo 08:37:17 ok ok, i'll read your darn comic ;P 08:37:24 but make sure you read qwantz.com :) 08:38:31 hmm, i don't understand why diesel sweeties is popular, i read the whole archive once and haven't bothered to read additions 08:39:13 * docl never got into that one 08:39:23 several of them seem popular, but I just don't get them 08:39:48 docl: a mostly complete helpfile is in the repo now 08:40:43 nice! 08:45:28 evolving a web browser, what i'd do is i'd have IE & FF go to a page and render it, and then i'd compare that pixel by pixel with whatever the browser being evolved produces 08:45:37 and gradually select for the fitter browser.. 08:46:01 but thats a bit complex i think 08:46:08 for my slow computer.. 08:47:40 then use opera :P 08:49:09 no i mean evolving a web browser 08:49:15 would be too complex to start with i think 08:49:20 well, as long as we're being hypothetical, how would you test for other capabilities? 08:50:25 an ai type simulation of a human mind might be able to figure out how to make a browser that is extremely comfortable to use 08:50:40 well its all about tsting what the evolving program produces against something already established (at least thats the easiest way).. not sure how to test against stuff that isn't already existing heh 08:50:48 you could test the ai's reaction as part of the evolutionary algorithm 08:50:58 nah, evolution is better than ai 08:51:16 to evolve an extremely userfriendly browser i'd just have people giving feedback on the browser 08:51:19 is this one of those "intelligent design" debates? :P 08:51:26 lol 08:51:41 good point 08:51:47 yeah but the ai would be a repeatable test you could run millions of times faster 08:52:29 * docl thinks of evolution as an intelligent sort of force, albiet slow in the natural implementation 08:52:57 intelligence is really just a speeded up/streamlined version of the selection process 08:53:45 well intelligent on its own isn't gonna figure out usability aspects, its not something that can be reasoned about, its something that you have to do lots of testing for, for all the different situations, using feedback from lots and lots of people 08:54:11 so why not use evolution to produce many test cases, and gather feedback from people and basically evolve to the actual model of usability 08:54:11 what about intuition? 08:54:23 and then use that model to compare against when you evolve other things 08:54:28 that's an aspect of the human mind that could be emulated 08:54:45 basically its simpler just doing it all thru evolution, no middle man necessary 08:54:55 what does intuition have to do with usability? 08:55:15 you're saying an ai should be able to "intuit" what is usable to humans? 08:55:19 you can see whether a given feature is going to cause problems or not 08:55:35 intuition is basically running simulations and eliminating undesired results 08:55:49 thats evolution.. 08:55:55 exactly what I'm saying 08:56:15 well there's not much need for an AI that runs evolution in its head.. 08:56:25 logic is also about eliminating incompatible results, but it is less about the simulations 08:56:25 why not just get rid of the AI and have only the evolution itself? 08:56:39 hmm is there a difference? 08:59:05 I guess the storage of "personal" types of memories is the difference 09:02:27 ok here's a thought. define all inputs and outputs for a program, using a language for that purpose. then write an evolutionary program that plugs in assembley codes until that result is attained. 09:07:39 i was thinking of staying away from assembly, maybe using components like lego pieces.. 09:07:58 forth words would work 09:08:00 so that the code ends up more understandable 09:08:15 ahh, readability is an issue? 09:08:45 perhaps you could have a commenting/coding strategy selection routine to deal with that 09:09:33 well, when they used evolution to evolve efficient circuits, they ended up with circuits that were much better than the human designed ones, and were impossible to understand 09:09:43 like part of the circuit goes off and doesn't do anything, isn't ground ,etc 09:09:48 but its a necessary part 09:09:51 just a piece of wire basically 09:09:52 heh 09:09:56 and no one understands why 09:09:56 neat 09:10:12 some wierd induction effect I guess 09:10:36 and another time, they used a programmable circuit thingie, and they were using it to test the circuits the comp was generating 09:11:03 anyways they ended up with a circuit that they didn't understand, and it only worked on that one programmable thing 09:11:12 and didn't work on any of the others of the SAME batch 09:11:21 like it was taking advantage of differences in the quantum level 09:11:31 heh, like it had a SOUL 09:11:32 i forget what you call those things 09:11:36 programmable relays? 09:11:38 programmable what? 09:12:07 beats em 09:12:10 oh, FPGA 09:12:25 they were evolving circuits and testing them on the FPGA 09:12:32 field programmable gate array 09:12:59 there must be a lot of combinations that would work if the right quantum fluctuations happen 09:13:45 which an evolutionary algorithm would catch as a selective trait 09:14:05 perhaps this is a way to induce such quantum traits: evolve each one uniquely 09:14:23 yeah if they wanted the circuit to be more usable for other FPGAs then they'd need to test them on the other fpgas simultaneously.. 09:14:38 so that way avoid too much adaption to the quantum level perhaps.. 09:16:53 can they repeatably create these unique devices? 09:18:35 like the exact same circuitry starting from scratch each time? i don't think so 09:19:02 no, I mean similarly optimized circuitry starting from scratch each time 09:19:25 i.e. each one has a similarly nonsensical part that works nonetheless 09:21:50 probably 09:23:32 anyways thats kinda why i want to avoid assembly heh 09:23:53 because the evolved program in assembly would probably be completely non-understandable 09:23:54 you think that'll make it too easy for quantum bits to come into play, eh? 09:24:19 unless i evolve for human readability too 09:24:40 yeah 09:25:14 maybe just evolutionarily optimize c or forth 09:25:37 heh it'd figure out how to do asm pretty easy in forth 09:25:41 or c 09:25:50 i guess it'd be able to figure out the asm in any programming language 09:26:23 bash? 09:26:36 heh 09:26:48 prolly.. 09:26:54 the thing is you would have to keep an eye out for backdoors 09:26:55 it'd do a buffer overflow exploit ;) 09:26:59 hehe 09:27:18 make a restricted wordset version of forth 09:27:57 all logical, understandable words 09:29:44 yeah 09:29:51 i wonder if it would exploit that tho heh 09:30:15 but yeah 09:30:32 i'll evolve the perfect programming language that's super understandable and then evolve everything else in that! 09:30:35 whoo! ;P 09:30:40 maybe, it could always locate a quantum synchronicity in the cpu and use that. if it was to it's advantage and there was enough complexity involved. 09:33:17 yeah, so i'd have to test the program on multiple computers to prevent it from evolving to one computer that the program can't run on others 09:33:25 right 09:33:52 but then the computers might entangle over time if you used the same computer set 09:35:03 hmm. maybe the thing is to run a cpu emulator on the program as a sort of logic tester 09:35:43 seems like with the right testing routines you could reduce the chance of magic happening to near zero 09:38:43 um, it's irrelevant that the computers might "entangle" 09:39:29 wouldn't that potentially corrupt the logic of the routines? 09:39:34 besides, entanglement is quit misunderstood by most people, it does not actually pass information 09:39:41 quite* 09:40:14 the routines will be evolved to work a certain way 09:40:36 regardless of whether the evolution has managed to take advantage of certain quantum things.. 09:41:50 ok let's say you test on 5 computers. they become entangled such that they all have the same quantum vulnerability which the algorithm exploits. now, port it to computer #6. 09:43:28 the 6th computer, lacking this unique feature of the 5 others, does not run the program. 09:44:06 yeah 09:44:19 now, from a military mindset this could be a decided advantage. no enemy can run your programs, ever... 09:44:41 i dunno if that'll be the case most of the time 09:44:53 might happen to not be able to run on one computer out of 100 or something 09:44:59 or if i used such a wide range of processors.. 09:45:07 like maybe if i test the program on 386, 486, etc 09:45:16 of various batches etc 09:46:00 or if i make human readability a factor that will eliminate it from taking advantage of quantum stuff 09:46:01 yeah that might work. if they are dissimilar enough, the cpu will be too busy optimizing for cross-platform compatibility to worry about quantum algorithms... 09:46:09 yeah 09:47:36 a check for logical consistency *should* work though. a quantum exploit is going to look illogical from the test program-s point of view. 09:48:27 crc: the new help system is good :) 09:49:58 yeah good point 10:04:18 what if there are logical looking code that manages to exploit the quantum? :P kinda like how DNA folds on itself and the shape encodes additional information and has quantum exploits too i imagine.. 10:05:01 darn. I wonder... 10:05:50 this evolution idea is too powerful :P 10:06:38 check out last saturday's sluggy, kind of like what we're talking about 10:10:51 the idea of a program finding and exploiting a quantum weakness in it's hardware seems far-fetched though. 10:11:20 something to be aware of, but not worry about 10:14:49 much more likely with hardware because that's analog and interacts directly with the physical world. 10:16:02 the question of readability is relevant though, regardless. 10:16:34 having it spit out codes of various types and selecting a readable one would be good 10:20:37 readability is kind of a parameter... which can be evolved by testing it on a user 10:21:11 so parameters are a) necessary for evolution, and b) evolvable themselves 10:21:30 the trick is to find a simple enough set to use as a starting point 11:07:30 * crc made some improvements to the online changelog 11:09:55 --- join: swsch (n=stefan@pdpc/supporter/sustaining/swsch) joined #retro 11:09:55 --- mode: ChanServ set +o swsch 13:10:37 --- join: tathi (n=josh@pdpc/supporter/bronze/tathi) joined #retro 14:31:14 --- quit: crc ("further hardware upgrades in progress...") 15:02:45 crc: the pasted chess http://retroforth.net/paste/?id=31 loads and displays but the proggy has two errors ... 15:03:20 the double-colon :: and the } bracket are not found. 15:04:15 --- quit: Cheery (Read error: 110 (Connection timed out)) 15:05:07 I don't see them in words, did I fail to load a library? 15:08:02 --- join: virl (n=virl@chello062178085149.1.12.vie.surfer.at) joined #retro 15:16:21 Raystm2: which version do you use? 15:17:15 :: is used for anonymous definitions and leaves the xt on the stack, so that the "is" after ";loc" can grab it 15:17:47 hi all 15:36:45 how are you? 15:38:18 bussssy 15:49:43 hi swsch: 902 15:49:46 windows 15:50:53 ooooohhh... ancient :-) 15:53:23 ya :) 15:53:27 hi virl. :) 15:54:01 for some reason the double colon and the } brace are not in my words. 15:54:26 --- join: crc (n=crc@pool-70-16-148-97.phil.east.verizon.net) joined #retro 15:55:22 --- mode: ChanServ set +o crc 15:55:24 hey crc, retroforth.net/download is talking about 9.1.1 and linking to 901-hosted.tar.gz 15:55:42 9.1.1 is still the stable release 15:56:03 I haven't quite finished 9.2 yet :( 15:56:19 but why is the tarball called 901 15:56:50 because the filename (and internal version) only tracks the major/minor part of the version number 15:57:47 crc: the pasted chess http://retroforth.net/paste/?id=31 loads and displays but the proggy has two errors ... 15:57:54 the double-colon :: and the } bracket are not found. 15:58:12 I don't see them in words, did I fail to load a library? 15:58:56 Raystm2: download the latest 902-beta.tar.gz 15:59:16 } is not a word; it's the parse character for { 15:59:38 the error on that is because :: was not found 15:59:48 { is a macro, so is only run at compile time 16:00:26 okay thanks. :) 16:00:30 swsch: I will take care of the version number to allow for a major/minor/patch type number 16:01:11 It's unusual enough to *totally* confuse me. 16:01:18 * swsch is *not* overworked 16:01:28 * swsch is not too tired to think clearly 16:01:45 * swsch is fine and totally in control of everything 16:01:53 ok 16:02:16 * crc will fix this tonight if he can (I have to go and watch a movie with my wife and kids; will return when it is over) 16:02:35 which movie 16:02:52 startrek: the motion picture 16:02:55 :) 16:02:58 enjoy 16:03:09 how old are the kids again? 16:03:27 * Raystm2 will wait to ask where to find the 902-beta package, as I can work with the current one to do what I need to do. 16:03:30 the older one will be 3 in november 16:03:41 http://retroforth.org/902-beta.tar.gz 16:03:50 the younger one is taking a nap 16:04:03 the link is broken on the web page 16:04:09 oh thanks 16:04:21 hmmm... can the older one do the vulcan death grip already? :-D 16:04:42 control-alt-delete? :) 16:04:43 not quite 16:05:20 it's the "Vulcan Nerve Pinch" I think. 16:06:01 You don't die, you're just incapacatated for an undocumented amount of time. 16:06:24 ah ... stupid german translations 16:06:48 hehe 16:06:54 bbiab 16:08:47 ciao 16:10:32 * swsch did just mv 6,3 6,4 and now probably has to wait for nine months to get another pawn 16:12:57 hmm now it doesn't work at all. 16:13:16 swsch: ?? 16:14:01 the load command has changed. 16:14:47 I pasted the stuff from the web, then entered 16:14:49 chess 16:14:53 play 16:15:01 and the grid appears 16:15:49 you can move one pawn onto another, if you screw up the coordinates 16:16:04 never mind I got it. 16:16:17 :) okay 16:16:37 glad that the pun was not wasted :-P 16:35:40 --- join: jas2o (n=jas2o@WNPP-p-203-54-32-206.prem.tmns.net.au) joined #retro 16:48:46 --- part: swsch left #retro 17:42:32 --- quit: docl (Read error: 113 (No route to host)) 18:15:27 --- join: docl (n=docl@70-101-145-1.br1.mcl.id.frontiernet.net) joined #retro 18:19:16 back 18:19:34 hello crc 18:20:16 hi jas2o 18:20:25 * crc now has a dedicated video card :) 18:20:41 what do you mean? 18:20:59 'dedicated'? 18:21:09 not one integrated onto the motherboard 18:21:37 so is that like a PCI type one? or something else? 18:22:06 I suppose that is still 'in' the board... 18:23:05 pci 18:23:22 ah ok :) 18:23:25 it has a dedicated graphics processor, so it doesn't waste (as much) cpu power 18:25:55 I don't even know if our computer has PCI or int. 18:26:24 just looked, it's pci 18:31:22 I can now use Xgl and compiz; lots of eyecandy 18:32:16 real transparency, virtual desktops on a 3d cube surface, ripples when moving windows 18:42:57 Neat and congrats! 18:51:33 I added a patchlevel constant to 9.2 and 9.1.1 18:51:43 this means that ? will now display the full version number 18:52:00 also, the download for 9.1.1 has been renamed to 9.1.1-hosted.tar.gz 18:53:28 * Raystm2 looks up ? in the manual 18:55:33 * Raystm2 doesn't find ? in the rx manual: looking for the retroforth manual. 18:57:24 ? displays the version number 18:57:33 it's a legacy word defined in modules/compat 19:00:29 --- quit: tathi ("leaving") 19:00:31 okay has to do with version, ah thanks :) 19:29:23 --- join: snoopy_1711 (i=snoopy_1@dslb-084-058-143-172.pools.arcor-ip.net) joined #retro 19:37:45 --- quit: Snoopy42 (Read error: 145 (Connection timed out)) 19:38:06 --- nick: snoopy_1711 -> Snoopy42 19:43:35 --- join: sproingie (n=chuck@64-121-2-59.c3-0.sfrn-ubr8.sfrn.ca.cable.rcn.com) joined #retro 21:38:49 --- quit: sproingie ("Ex-Chat") 21:39:40 --- part: jas2o left #retro 22:58:38 http://retroforth.net/paste/?id=36 22:58:49 some updates to crc's chess to make it ai able. 22:59:18 well, really it always was 22:59:21 :) 22:59:58 oooh got another idea 23:01:09 but i have to think about it before making the next change. 23:01:58 previously, i've worked out several types of convenient input. 23:03:07 it will be simple enough to remove the ', parse >number\wsparse >number and move the 23:03:27 mv command to call from the stack and not the input buffer. 23:04:13 by treating the input as base 18 numbers and testing for 4 types of input. 23:04:46 this way mv can be a loop and loop thru all of the instructions on the stack. 23:05:50 there will be a need for a "whose-move" switch between moves to facilitate the mv mechanism. 23:06:25 the four types of convenient input are: 23:06:41 sourceDestintion type: e2e4 mv 23:07:01 source destination type: e2 e4 mv 23:07:15 destination only for pawns moving in the same rank : 23:07:17 e4 mv 23:07:26 thats three. 23:07:41 the last one is the conversion of 3 different numbers. 23:08:14 oo or o-o to be more precise, ooo or o-o-o are the castles and can be 23:09:04 entered either way and then translated on the stack as 1 for oo/o-o and 2 for ooo/o-o-o 23:10:18 the mv word finding a 1 or a 2 on the stack will check whose move to determine which side is moving and then execute a hard coded instruction that affects all four of the squares involved in a castleing move. 23:11:14 a smarter version of this can check to see if castleing is currently a legal move. but for now this is unnecessary, as players either know the rules or they don't so no foul. 23:11:49 the last to deal with is en passant, and that can be a constant of 3 added to the file letter of the moving pawn. 23:12:10 h 3 + is the highest posible en passant signal. 23:12:57 h 3 + = 12 in base 18 and tho larger then the file letter/number a 23:13:28 it is still smaller then a pawn-destination-only entry: 23:13:41 12 > a1 23:14:23 so anything less then 13 and larger then 2 ( castle queen side if you recall) 23:14:40 can be treated as an en passant move and 23:14:55 handled automatically by the interpreter when recognised. 23:15:22 you add 3 to the file letter then when you recognise it, 23:15:49 you remove the 3 from it getting the file letter and you can exectute the en passant. 23:16:11 of course this means recognising when a pawn moves two squares and setting the 23:16:47 or a en passant variable as the square that the moveing pawn just jumped over. 23:17:34 the opponant a pawn two sqaures into enpassant jeopardy, 23:18:08 on your move you type ep e say... 23:18:27 and then the file pawn is calculated by the fact that 23:19:05 he is in the file given and the 5 rank for white and the 4th rank for black. 23:19:37 the board moves the pawn into the target square and removes the 23:20:12 offending opponant pawn by subtracting one to the rank for white or adding 1 for the rank for black. 23:25:34 mv should also create the save file after updating the board. 23:26:19 mv could import the save file which will have the effect of placing all of the savefile moves on the stack in the reverse order of need. 23:27:15 also note that typeing in several moves to the stack will have all of the moves in reverse order so mv should reverse the stack after the save file is read in or a mv is called. 23:27:34 read in should be read as imported. 23:29:09 adding undo to undo moves and a list of moves to the display , and the whose-move indicator would round out the set for a complete program, 23:34:06 well, there are other things that can be added. 23:35:25 like being able to preset the board. I suppose you have to make blank global and then that could be recoded to add a new preset board 23:36:15 the retroforth editor could be used to preset a board as well. 23:36:48 especially if the board was a file that could be loaded. 23:36:56 well the blank that is. 23:37:33 --- join: Cheery (n=Cheery@a81-197-20-242.elisa-laajakaista.fi) joined #retro 23:42:38 during save, all moves are converted to one of two types, either sourceDest (e2e4) or a one digit number 1 or 2 for castle side or any of c thru 12 as the en passant file signal, 23:43:40 this means that before save, split source dest, and dest-only in the case of pawns, are each converted to sourceDest type. 23:44:18 mv would handle this while recognising the move type. 23:50:13 I got some of the above numbers wrong in the en passant range. 23:51:13 they should be from c to 11 I think. /me not thinking in base 18 currently. 23:55:23 using crc's and futhin's work on the irc client and you have a way to send moves back and forth. 23:59:59 --- log: ended retro/06.07.15