1. Let me try once more

--=_-=_-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--

new topic     » topic index » view message » categorize

2. Re: Let me try once more

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

new topic     » goto parent     » topic index » view message » categorize

3. 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

new topic     » goto parent     » topic index » view message » categorize

4. Re: Let me try once more

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

new topic     » goto parent     » topic index » view message » categorize

5. Re: Let me try once more

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. getlost

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

new topic     » goto parent     » topic index » view message » categorize

6. Re: Let me try once more

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

new topic     » goto parent     » topic index » view message » categorize

7. Re: Let me try once more

>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

new topic     » goto parent     » topic index » view message » categorize

8. Re: Let me try once more

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

new topic     » goto parent     » topic index » view message » categorize

9. Re: Let me try once more

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

new topic     » goto parent     » topic index » view message » categorize

10. Re: Let me try once more

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

new topic     » goto parent     » topic index » view message » categorize

11. Re: Let me try once more

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

new topic     » goto parent     » topic index » view message » categorize

12. Re: Let me try once more

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

new topic     » goto parent     » topic index » view message » categorize

13. Re: Let me try once more

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

new topic     » goto parent     » topic index » view message » categorize

14. Re: Let me try once more

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

new topic     » goto parent     » topic index » view message » categorize

15. Re: Let me try once more

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

new topic     » goto parent     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu