1. Let me try once more
- Posted by ghenryca at LYCOS.COM Jan 27, 2001
- 554 views
- Last edited Jan 28, 2001
--=_-=_-ELNJNEPNBIBKLAAA Content-Language: en Content-Length: 1588 Hi all, I sent this (under different subject heading) during the transition from MUOHIO to Topica. I think it got through. Maybe not. Anyone who understands and cares please respond. No response will be taken at face value, no hard feelings. Best regards, George --------- Forwarded Message --------- DATE: Fri, 26 Jan 2001 21:16:15 From: "George Henry" <ghenryca at lycos.com> To: "Euphoria" <euphoria at LISTSERV.MUOHIO.EDU> Hello, everyone. I said I would try to work up a demo of my idea concerning portions of a program being unshrouded/unbound and modifiable by users, or by the program itself. After some rather indelicate surgery, here it is. I have tested it and I believe it illustrates the concept adequately. There are two files, demo.exw and demo.ini. The program creates two windows, which can be docked together in a couple of different ways, or they can be moved independently. By clicking the "Save and Exit" button, you can save the current docking option and the current window positions in demo.ini, in the form of code that will be run the next time the program is started up. Comments are purposely minimal, and focused on the idea I am trying to illustrate. You will need Win32Lib to run the program; I am using version 0.55. I will try to answer all pertinent questions. Thanks, George Get your small business started at Lycos Small Business at http://www.lycos.com/business/mail.html --------- End Forwarded Message --------- Get your small business started at Lycos Small Business at http://www.lycos.com/business/mail.html ____________________________________________________________ T O P I C A -- Learn More. Surf Less. Newsletters, Tips and Discussions on Topics You Choose. http://www.topica.com/partner/tag01 --=_-=_-ELNJNEPNBIBKLAAA Content-Length: 2814 bW8uZXh3UEsFBgAAAAACAAIAbAAAAJ4HAAAAAA== --=_-=_-ELNJNEPNBIBKLAAA--
2. Re: Let me try once more
- Posted by Robert Craig <rds at RapidEuphoria.com> Jan 28, 2001
- 512 views
George Henry writes: > We already discussed that, Rob said he wasn't > interested in implementing it Still not interested. It's very difficult to retrofit. It wouldn't be used much. > What I have in mind here (please look at the source I attached) > involves only source *files*, and requires no > modification to the interpreter. It is strictly a > shroud-and-bind issue. I think you're better off reading your own .ini file and giving your users meaningful error messages, instead of Euphoria syntax errors. When I overhaul the current bind/shroud facility, I'll take your request into account. (sometime after "namespaces"). Regards, Rob Craig Rapid Deployment Software http://www.RapidEuphoria.com ____________________________________________________________ T O P I C A -- Learn More. Surf Less. Newsletters, Tips and Discussions on Topics You Choose. http://www.topica.com/partner/tag01
3. Re: Let me try once more
- Posted by Everett Williams <rett at gvtc.com> Jan 28, 2001
- 521 views
Graeme, While I agree with your sentiment about shrouded anything or exe's on the list or just about anywhere for that matter, the tone could use a little adjustment. George has shown himself to be a reliable and useful and capable member of the list. I know that there have been disagreements, but the implied thought that George might have deliberately downloaded us a virus is uncalled for. He was demonstrating a question about shrouding that required the use of shrouding and Win32lib to produce his point. I agree that he should have put it into a tutorial or on a website or emailed it, but the rest is uncalled for. I find most of your code excellent and your arguments clear, but the accompanying heat sometimes muddies your otherwise excellent presentations. You also might note that, having accomplished a working demonstration, it is sometimes less than immediately obvious how to deconstruct it into source level code and instructions that will easily accomplish the same thing on someone else's machine. Everett L.(Rett) Williams rett at gvtc.com ____________________________________________________________ T O P I C A -- Learn More. Surf Less. Newsletters, Tips and Discussions on Topics You Choose. http://www.topica.com/partner/tag01
4. Re: Let me try once more
- Posted by Graeme <graemeburke at CROSSWINDS.NET> Jan 28, 2001
- 530 views
At 05:21 PM 28/01/01 -0800, you wrote: >Graeme, > >While I agree with your sentiment about shrouded anything or exe's on >the list or just about anywhere for that matter, the tone could use a >little adjustment. I think me reply was quite polite. I think wasting 200+ people's time and money is extremely rude. Anybody who finds it nessesary to include win32lib in a demo about shrouding and including is obviously not thinking very much at all. The same thing could have been demonstrated with about 10 lines of code. >George has shown himself to be a reliable and useful and >capable member of the list. (Graeme takes a deep breath and let's that one go) >I know that there have been disagreements, but the implied thought >that George might have deliberately downloaded us a virus is uncalled for. HUH????? (re-reads origional message) HUH????????????? >He was demonstrating a question about shrouding that required the use of >shrouding and Win32lib to produce his point. I must have missed something, how was win32lib required to demonstrate adding an include line to a shrouded file? >I agree that he should have >put it into a tutorial or on a website or emailed it, but the rest is uncalled for. What rest? that was the whole point. And it's a point that's been raised again and again by many people over the entire history of this list. >I find most of your code excellent and your arguments clear, >but the accompanying heat sometimes muddies your otherwise excellent presentations. Thanks, and I do agee. Many things I have posted in anger I have regretted, however this is not one of them. >You also might note that, having accomplished a working demonstration, >it is sometimes less than immediately obvious how to deconstruct it into >source level code and instructions that will easily accomplish the same thing >on someone else's machine. What does that have to do with where it is posted? Thanks for your reply, Rett, and the polite manner in which you voiced your opinion, but I think I'm standing on solid granite with this one. Graeme. BTW: It was Chris who posted the code, not George. ---------------------------------------------------- http://www.geocities.com/SiliconValley/Network/6843/ ____________________________________________________________ T O P I C A -- Learn More. Surf Less. Newsletters, Tips and Discussions on Topics You Choose. http://www.topica.com/partner/tag01
5. Re: Let me try once more
- Posted by George Henry <ghenryca at LYCOS.COM> Jan 28, 2001
- 536 views
- Last edited Jan 29, 2001
On Sun, 28 Jan 2001 14:58:00 Robert Craig wrote: <snip> >I think you're better off reading your own .ini file >and giving your users meaningful error messages, >instead of Euphoria syntax errors. </snip> Silly me, I hadn't thought of that. I still feel motivated to use Euphoria syntax, so that my program can rewrite the file and subsequently execute it. And the only USER modification I had specifically in mind was actually in abnormal situations, very limited in nature, and under strict guidance. If need be, one could arrange to do a syntax check before running the main program -- shell out a separate process that executes the config file innocuously, and enables the main program to terminate if the syntax check / innocuous execution fails. George Get your small business started at Lycos Small Business at http://www.lycos.com/business/mail.html ____________________________________________________________ T O P I C A -- Learn More. Surf Less. Newsletters, Tips and Discussions on Topics You Choose. http://www.topica.com/partner/tag01
6. Re: Let me try once more
- Posted by Dan B Moyer <DanMoyer at PRODIGY.NET> Jan 28, 2001
- 513 views
- Last edited Jan 29, 2001
Everett, Wasn't Graeme complaining about what *Chris* sent as an attachment, not what *George* sent?? Dan ----- Original Message ----- From: "Everett Williams" <rett at gvtc.com> To: <EUforum at topica.com> Sent: Sunday, January 28, 2001 5:21 PM Subject: Re: Let me try once more > Graeme, > > While I agree with your sentiment about shrouded anything or exe's on > the list or just about anywhere for that matter, the tone could use a > little > adjustment. George has shown himself to be a reliable and useful and > capable member of the list. I know that there have been disagreements, > but the implied thought that George might have deliberately downloaded > us a virus is uncalled for. He was demonstrating a question about > shrouding > that required the use of shrouding and Win32lib to produce his point. I > agree that he should have put it into a tutorial or on a website or > emailed it, > but the rest is uncalled for. I find most of your code excellent and > your > arguments clear, but the accompanying heat sometimes muddies your > otherwise > excellent presentations. > > You also might note that, having accomplished a working demonstration, > it is > sometimes less than immediately obvious how to deconstruct it into > source > level code and instructions that will easily accomplish the same thing > on someone > else's machine. > > Everett L.(Rett) Williams > rett at gvtc.com > > ____________________________________________________________ > T O P I C A -- Learn More. Surf Less. > Newsletters, Tips and Discussions on Topics You Choose. > http://www.topica.com/partner/tag01 > ____________________________________________________________ T O P I C A -- Learn More. Surf Less. Newsletters, Tips and Discussions on Topics You Choose. http://www.topica.com/partner/tag01
7. Re: Let me try once more
- Posted by Aidan Bindoff <abindoff at ONE.NET.AU> Jan 28, 2001
- 512 views
- Last edited Jan 29, 2001
>Kat, ><still pleading> it's *very* useful in Ai languages, and i use it in critical learning points >in mirc. It would be the easiest way in the world to do totally custom and unforseen >spreadsheets. Just for the record, I very much like the proposal. Regards, Aidan ____________________________________________________________ T O P I C A -- Learn More. Surf Less. Newsletters, Tips and Discussions on Topics You Choose. http://www.topica.com/partner/tag01
8. Re: Let me try once more
- Posted by Michael Nelson <MichaelANelson at WORLDNET.ATT.NET> Jan 29, 2001
- 592 views
MTS wrote: <snip> > I'd personally like to see it implemented as a > 'load()' routine, wich would work like this; > > integer MyFoo > MyFoo = load( > "procedure MyFoo() puts(1,\"FOO!\") end procedure" > ) > > call_proc(MyFoo,{}) > > So that you could do this if ya want; > integer fptr > fptr = open("dll.txt","w") > > puts(fptr,"procedure MyFoo() puts(1,\"FOO!\") end > procedure\n") > > call_func(load(gets(fptr)) > > > > Cool huh? > > Mike The Spike </snip> Very cool indeed. Rob, how about it--I can think of several ways to use it off the top of my head and I'm sure others would have even more ideas than I do. I don't know about the difficulty of implementation as I know nothing about the inner working of the interpreter--but the syntax is elegant and easy to understand--very Euphorian. -- Mike Nelson > __________________________________________________ > Do You Yahoo!? > Yahoo! Auctions - Buy the things you want at great prices. > http://auctions.yahoo.com/ > > ____________________________________________________________ > T O P I C A -- Learn More. Surf Less. > Newsletters, Tips and Discussions on Topics You Choose. > http://www.topica.com/partner/tag01 > > ____________________________________________________________ T O P I C A -- Learn More. Surf Less. Newsletters, Tips and Discussions on Topics You Choose. http://www.topica.com/partner/tag01
9. Re: Let me try once more
- Posted by Dan B Moyer <DanMoyer at PRODIGY.NET> Jan 29, 2001
- 534 views
Actually, I suspect that AI *can* be written to learn beyond what the programmer has thought up to allow as choices: just allow *random* actions, plus analysis of useful effect; if useful, keep it as an option; if harmful, don't do it any more (or assign "low usefulness index"). Dan Moyer ----- Original Message ----- From: "Chris Bensler" <bensler at mailops.com> To: <EUforum at topica.com> Sent: Monday, January 29, 2001 7:47 AM Subject: RE: Let me try once more > I think this could be invaluable.. > Self modifying progs!! Woo hoo!! I'd love it.. > > I've dabble a tad with evolving progs.. and there' no better way to > build a speach prog for one. > > I've wanted to build a sort of game that would have user built robots > that would learn through experience.. Not possible in EU.. without > writing my own scripting language.. > > How about an OS that knows whose using the comp, and can adjust > specifically to suit their needs/preference of operation.. > It could learn exactly how you want the comp to start up, and what you > want to do.. It could even learn what you don't want and get rid of it > for you!! > True, this could be implemented through cfg. files, but not nearly as > intimately.. not to mention, people could tamper with the cfg's > > How about chaos based AI's in games? As it is, you play any game there > is out there, and soon you WILL master it.. what if the COMP could > master you?! Anaihilating you every time!! (how do you spell that?) > Sure, they say that the AI's can learn nowadays, but they are still > limited to whatever the programmer has thought up in the first place.. > They just change their tactics.. > > Off the topic of AI applications.. > What about user designed routines? With this ability, you could allow > users to modify their apps to suit THEM specifically.. Like macros.. > > How 'bout plugins? > > > Hmm, have had other ideas in the past, but they escape me now.. > > Chris > > > Kat wrote: > > <still pleading> it's *very* useful in Ai languages, and i use it in > > critical learning points > > in mirc. It would be the easiest way in the world to do totally custom > > and unforseen > > spreadsheets. > > ____________________________________________________________ > T O P I C A -- Learn More. Surf Less. > Newsletters, Tips and Discussions on Topics You Choose. > http://www.topica.com/partner/tag01 > ____________________________________________________________ T O P I C A -- Learn More. Surf Less. Newsletters, Tips and Discussions on Topics You Choose. http://www.topica.com/partner/tag01
10. Re: Let me try once more
- Posted by David Cuny <dcuny at LANSET.COM> Jan 29, 2001
- 530 views
George Henry wrote: > Sounds like I'm pushing Lisp, but all I'm saying > is, there are perfectly good languages for doing > what you propose, and unless/until Rob changes his > mind about executing code-as-data, Euphoria isn't > one of them. Actually, Euphoria is an excellent language to implement a LISP-ish sort of language in. Here's a simple (untested) example: global constant LITERAL = 0, ADD = 1, PRINT = 2 function eval( sequence code ) integer op op = code[1] if op = LITERAL then return code[2] elsif op = ADD then return eval( code[2] ) + eval( code[3] ) elsif op = PRINT then ? eval( code[2] ) return 1 else printf( 1. "Unknown opcode %d\n", {op} ) abort(0) end if end function And here's a call to the eval function: object result result = eval( { PRINT, { ADD, { LITERAL, 1 }, { LITERAL, 1 } } } Looks awfully LISP-ish to me. Replace the if/then/else calls with indexed calls to call_proc, add a parser on the front of it, and you've got your own custom programming language. That's exactly what I did with Eu and Py. -- David Cuny ____________________________________________________________ T O P I C A -- Learn More. Surf Less. Newsletters, Tips and Discussions on Topics You Choose. http://www.topica.com/partner/tag01
11. Re: Let me try once more
- Posted by Kat <gertie at PELL.NET> Jan 29, 2001
- 552 views
- Last edited Jan 30, 2001
On 29 Jan 2001, at 18:20, Dan B Moyer wrote: > Actually, I suspect that AI *can* be written to learn beyond what the > programmer has thought up to allow as choices: just allow *random* actions, > plus analysis of useful effect; if useful, keep it as an option; if harmful, > don't do it any more (or assign "low usefulness index"). Well, of course, it's been done, decades ago even, but how would you allow for that in a program written for Eu, without writing your own parser and interpreter to exec the random code? Write the new code, then shut down and totally restart the program? Ewww. Only even partway decent way to do that would be to have two identical programs running, so the old one can keep running and send var contents and machine state to the newly re-started program with the new code,, before the new code was executed. Not terribly elegant. Kat ____________________________________________________________ T O P I C A -- Learn More. Surf Less. Newsletters, Tips and Discussions on Topics You Choose. http://www.topica.com/partner/tag01
12. Re: Let me try once more
- Posted by George Henry <ghenryca at LYCOS.COM> Jan 29, 2001
- 525 views
- Last edited Jan 30, 2001
David, That's fine, esp. for those who are interested in implementing their own language. That is not my project of the moment, and please recall that my original complaint was about having to do just that, when the Euphoria interpreter is sitting there anxiously (?) waiting to execute code formulated according to its syntax rules. Also, I am not a Lisp programmer (yet), but I have read a bit about it, and I believe there is quite a bit more to it than your example implies. (Yeah, (it (looks (like (Lisp) but) is) it) really?) Oh, you did say your example was simple. Fair enough. George -- On Mon, 29 Jan 2001 18:30:29 David Cuny wrote: >George Henry wrote: > >> Sounds like I'm pushing Lisp, but all I'm saying >> is, there are perfectly good languages for doing >> what you propose, and unless/until Rob changes his >> mind about executing code-as-data, Euphoria isn't >> one of them. > >Actually, Euphoria is an excellent language to implement a LISP-ish sort of >language in. Here's a simple (untested) example: > > >global constant > LITERAL = 0, > ADD = 1, > PRINT = 2 > >function eval( sequence code ) > > integer op > op = code[1] > > if op = LITERAL then > return code[2] > elsif op = ADD then > return eval( code[2] ) + eval( code[3] ) > elsif op = PRINT then > ? eval( code[2] ) > return 1 > else > printf( 1. "Unknown opcode %d\n", {op} ) > abort(0) > end if > >end function > >And here's a call to the eval function: > > object result > result = eval( { PRINT, { ADD, { LITERAL, 1 }, { LITERAL, 1 } } } > >Looks awfully LISP-ish to me. Replace the if/then/else calls with indexed >calls to call_proc, add a parser on the front of it, and you've got your own >custom programming language. > >That's exactly what I did with Eu and Py. > >-- David Cuny > >____________________________________________________________ >T O P I C A -- Learn More. Surf Less. >Newsletters, Tips and Discussions on Topics You Choose. >http://www.topica.com/partner/tag01 > > Get your small business started at Lycos Small Business at http://www.lycos.com/business/mail.html ____________________________________________________________ T O P I C A -- Learn More. Surf Less. Newsletters, Tips and Discussions on Topics You Choose. http://www.topica.com/partner/tag01
13. Re: Let me try once more
- Posted by David Cuny <dcuny at LANSET.COM> Jan 30, 2001
- 541 views
George Henry wrote: > That's fine, esp. for those who are interested > in implementing their own language. One of the things that drew me to Euphoria was the fact that you can implement LISP-ish executable data structures. I'm suprised that more people haven't taken advantage of this. For example, I could easily imagine a Prolog sort of inference engine being built into Euphoria, or a simple scripting language. I suspect that your average user would prefer to work with a macro language that looked like BASIC or C instead of Euphoria. Actually, a typical user would rather deal with 'wizards' than code, so that's all a bit irrelevant. In any event, Robert has stated on a number of occasions that he's not interested in adding the feature to the language, so exploration of options is probably more productive than banging your head against a wall asking for features. > Also, I am not a Lisp programmer (yet), but I > have read a bit about it, and I believe there > is quite a bit more to it than your example implies. Things do get a bit more complex when you start dealing with variables and user-defined functions, but at the core, it's the same eval routine grinding away. You can look at Eu and Py for some real-world examples. -- David Cuny ____________________________________________________________ T O P I C A -- Learn More. Surf Less. Newsletters, Tips and Discussions on Topics You Choose. http://www.topica.com/partner/tag01
14. Re: Let me try once more
- Posted by David Cuny <dcuny at LANSET.COM> Jan 30, 2001
- 501 views
Chris Bensler wrote: > I'm talking about, high speed graphics based > games utilizing AI bots that can learn and > evolve from the opponents it defeates and loses > against.. Euphoria sequences are actually rather nice to encode genetic algorithms with. It's easy to slice, swap, mutate and read genetic strings. If you intend to write self-modifying algorithms and you aren't using LISP, you're generally not going to code it in the same language that the game is coded in. Instead, you'll write some sort of virtual machine for the AI, and run it on that. > from what I know of Lisp, that's not what it is meant for.. > Lisp is for number crunching.. LISP is designed primarily for symbolic manipulations. There are a lot of AI tasks that LISP is especially well suited for - perhaps because they originated as LISP programs in the first place. > I wouldn't go and use basic to code a market dominating > game.. Eu DOES have that potential though. (Notice I said > POTENTIAL, not ABILITY) Is there a specific point where the ability is lacking? > I know that C wouldn't achieve this either but, > how else could I possibly combine the 2 languages? I'd disagree here. C is certainly capable of this sort of thing - there are scads of programs out there that do exactly what you describe, written in C. -- David Cuny ____________________________________________________________ T O P I C A -- Learn More. Surf Less. Newsletters, Tips and Discussions on Topics You Choose. http://www.topica.com/partner/tag01
15. Re: Let me try once more
- Posted by Dan B Moyer <DanMoyer at PRODIGY.NET> Jan 30, 2001
- 512 views
Chris, It could remember what it did, the circumstances, and the relative success of the action. In "similar" circumstances, it chooses the evaluated best past action, does it, then evaluates the result for *that* specific circumstance, and saves it. In a circumstance where the "best" it knows isn't very good, it chooses something "randomly" from it's repertoire of possible actions, does it, evaluates the result, and saves that info. Over time, it learns, or dies (& even in that case, could *share* its derived info "this is a bad thing to do" with a "sibling" AI) . But you're right, I haven't the foggiest how it could take ideas from it's opponents, unless it had a kind of generic "circumstance, action taken, result success" routine, so it could do and save evaluations on *every* action, not just it's own? And yes, this would seem to require a separate data/knowledge base, which you apparently don't want. Dan ----- Original Message ----- From: "Chris Bensler" <bensler at mailops.com> To: <EUforum at topica.com> Sent: Monday, January 29, 2001 11:34 PM Subject: RE: Let me try once more > The AI would still only learn to utilize what the programmer has already > conceived.. > Can't take ideas from it's opponents.. > Also, the AI won't learn that it's tactics are old and everyone knows > them now.. It's not going to save any tactics for once people have > mastered it.. it simply chooses, like you said, at RANDOM, and uses > tactics based against what the CURRENT opponent is doing.. > Doesn't learn from PREVIOUS opponents.. > Doesn't evolve.. just changes it's game plan.. > > Chris > > Dan B Moyer wrote: > > Actually, I suspect that AI *can* be written to learn beyond what the > > programmer has thought up to allow as choices: just allow *random* > > actions, > > plus analysis of useful effect; if useful, keep it as an option; if > > harmful, > > don't do it any more (or assign "low usefulness index"). > > > > Dan Moyer > > > > ----- Original Message ----- > > From: "Chris Bensler" <bensler at mailops.com> > > To: <EUforum at topica.com> > > Sent: Monday, January 29, 2001 7:47 AM > > Subject: RE: Let me try once more > > > > > > > I think this could be invaluable.. > > > Self modifying progs!! Woo hoo!! I'd love it.. > > > > > > I've dabble a tad with evolving progs.. and there' no better way to > > > build a speach prog for one. > > > > > > I've wanted to build a sort of game that would have user built robots > > > that would learn through experience.. Not possible in EU.. without > > > writing my own scripting language.. > > > > > > How about an OS that knows whose using the comp, and can adjust > > > specifically to suit their needs/preference of operation.. > > > It could learn exactly how you want the comp to start up, and what you > > > want to do.. It could even learn what you don't want and get rid of it > > > for you!! > > > True, this could be implemented through cfg. files, but not nearly as > > > intimately.. not to mention, people could tamper with the cfg's > > > > > > How about chaos based AI's in games? As it is, you play any game there > > > is out there, and soon you WILL master it.. what if the COMP could > > > master you?! Anaihilating you every time!! (how do you spell that?) > > > Sure, they say that the AI's can learn nowadays, but they are still > > > limited to whatever the programmer has thought up in the first place.. > > > They just change their tactics.. > > > > > > Off the topic of AI applications.. > > > What about user designed routines? With this ability, you could allow > > > users to modify their apps to suit THEM specifically.. Like macros.. > > > > > > How 'bout plugins? > > > > > > > > > Hmm, have had other ideas in the past, but they escape me now.. > > > > > > Chris > > > > > > > > > Kat wrote: > > > > <still pleading> it's *very* useful in Ai languages, and i use it in > > > > critical learning points > > > > in mirc. It would be the easiest way in the world to do totally custom > > > > and unforseen > > > > spreadsheets. > > > > > > ____________________________________________________________ > > > T O P I C A -- Learn More. Surf Less. > > > Newsletters, Tips and Discussions on Topics You Choose. > > > http://www.topica.com/partner/tag01 > > > > > > > ____________________________________________________________ > T O P I C A -- Learn More. Surf Less. > Newsletters, Tips and Discussions on Topics You Choose. > http://www.topica.com/partner/tag01 > ____________________________________________________________ T O P I C A -- Learn More. Surf Less. Newsletters, Tips and Discussions on Topics You Choose. http://www.topica.com/partner/tag01