From Lirvin@accdvm.accd.edu Thu Jun 1 10:20:21 2006 Received: with ECARTIS (v1.0.0; list encore); Thu, 01 Jun 2006 10:20:21 -0500 (CDT) Return-Path: X-Original-To: encore@nobel.utdallas.edu Delivered-To: encore@nobel.utdallas.edu Received: from iq1.utdallas.edu (iq1-pmn.utdallas.edu [192.168.1.7]) by nobel.utdallas.edu (Postfix) with ESMTP id B4B465BAD for ; Thu, 1 Jun 2006 10:20:21 -0500 (CDT) Received: from localhost (mf2-pmn.utdallas.edu [192.168.1.14]) by iq1.utdallas.edu (Postfix) with ESMTP id AA94158CE for ; Thu, 1 Jun 2006 10:20:21 -0500 (CDT) Received: from mx2.utdallas.edu ([129.110.10.17]) by localhost (mf2.utdallas.edu [10.110.10.14]) (amavisd-new, port 10024) with LMTP id 12461-01-33 for ; Thu, 1 Jun 2006 10:20:08 -0500 (CDT) Received: from mx3.lsn.net (mx3.lsn.net [66.90.130.75]) by mx2.utdallas.edu (Postfix) with ESMTP id 235FB3507 for ; Thu, 1 Jun 2006 10:18:06 -0500 (CDT) Received: from Gilgamesh.accdvm.accd.edu (24-155-46-7.dyn.grandenetworks.net [24.155.46.7]) by mx3.lsn.net (8.13.5/8.13.5) with ESMTP id k51FI4OX030613 for ; Thu, 1 Jun 2006 10:18:09 -0500 Message-Id: <6.2.5.6.0.20060601092239.029b4d70@accdvm.accd.edu> X-Mailer: QUALCOMM Windows Eudora Version 6.2.5.6 Date: Thu, 01 Jun 2006 10:18:05 -0500 To: encore@utdallas.edu From: Lennie Irvin Subject: [encore] High 5 Fever! Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="=====================_16441421==.ALT" X-Virus-Scanned: ClamAV 0.88.2/1504/Wed May 31 14:59:14 2006 on mx0.lsn.net X-Virus-Status: Clean X-Virus-Scanned: amavisd-new at utdallas.edu X-archive-position: 1665 X-ecartis-version: Ecartis v1.0.0 Sender: encore-bounce@utdallas.edu Errors-to: encore-bounce@utdallas.edu X-original-sender: Lirvin@accdvm.accd.edu Precedence: bulk Reply-to: Lirvin@accdvm.accd.edu List-help: List-unsubscribe: List-software: Ecartis version 1.0.0 List-Id: X-List-ID: X-list: encore --=====================_16441421==.ALT Content-Type: text/plain; charset="us-ascii"; format=flowed Hey Everyone, The new version of enCore v5 (High 5) is out in beta form at http://lingo.uib.no:6002/. Check it out! You can set up a new user account from the login screen or contact me for an account. Information about High 5 (including a changelog) can be seen at http://lingo.uib.no/v5/ HOW TO RALLY AROUND HIGH FIVE DEVELOPMENT AND HELP IT REACH OFFICIAL RELEASE AS SOON AS POSSIBLE Explore and test drive the High Five site. As you see and find thing, please post them in the Forum called "High Five." Click on the menu bar item "Mail/Forum," subscribe to the High Five forum, and then post your observations and suggestions. As you encounter errors, please fill out the error reporting form. THINK DIFFERENT! The old model of moo development (which enCore followed) was for individual sites to customize their site and create coding and features that fit its individual needs. I can think of many enCore sites (I can think specifically of three, but I'm sure there are more) who's customizations have lived and died only there. We need to think different (I know is should be differently...). Different how? I propose that we within the enCore community think more about centralized development rather than decentralized. What I mean is that individual enCore sites should share their individual customizations with the "core" or central development site (at Univ. of Bergen). That these sites should collaborate with other enCore sites working or wanting to work on similar things and collaborate with the Univ. of Bergen. What I am proposing is that we "co-develop" rather than develop in isolation. I can think of at least three enCore sites who have programmers actively working to make modifications to their individual enCore site to meet the needs of that site: Matthew Coupe for NCC Educational Robert Rozema and Allen Web for Secondary Worlds (soon to be Literary Worlds) Jean-Marc Giffin at Acadia University There are probably more. My hope is that via the enCore Consortium that the work done at these individual sites can feed into the main release and that the lead programmers like Daniel Jung at Univ. of Bergen can assist the individual sites in doing what they want to do. This symbiotic development model is what the enCore Consortium is all about fostering. Network with other enCore sites Check out the other enCore Consortium members and their sites at http://www.encore-consortium.org/members/members.php. See who else is doing what you are doing and contact them. You can email right out of the member list. Post ideas and questions to this encore user's list. Take the initiative! I strongly urge you to take the initiative on things you think need to get done. Jump right in and share your ideas. I have a number of areas listed below where you could start doing something now. Consortium Projects First, I strongly recommend that you join the enCore Consortium if you haven't joined already. http://www.encore-consortium.org/ Twist the arms of other people involved with enCore at your local site to join too. The more the merrier. It costs nothing to join. Below is a list of various projects currently in the works: 1) Of course, v5 beta development is ongoing. Daniel may have specific tasks he needs help on. 2) enCore v5 Documentation Project--lots to do --See details of this single-source documentation solution: http://www.encore-consortium.org/Generalv5Proposal.pdf --Contribute funds to the v5 Doc Project!!! We need money to complete this work. Even a small amount helps us look better as we request funds from larger potential sponsors. See the proposal and the consortium website for details on contributing. --Subject Content Experts needed: As the writers begin working on writing up the help for enCore v5, they may need assistance understanding certain functions or they may need a version of the help task written out. I want to assemble a team of content experts to be on call to receive and respond to these requests from the writers. Let me know if you want to be on this team. 3) Grants for enCore--specifically NEH Grant for Oct. 2006 submission If you are interested in helping the effort to secure an NEH Grant and perhaps some other large grant support for enCore (particularly in the area of language learning enCore sites), please let me know. We are beginning to develop a vision for a collaborative grant entitled "Learning Spaces." This grant would bring together constituent groups of enCore users: literature learning enCore sites, language learning enCore sites, composition/writing learning sites, and perhaps online classroom sites. Each constituent group would pull together like-minded enCore sites and craft specific project to bring together under the umbrela of the entire NEH Grant proposal. At least that is the idea right now. We need people to network these constituent groups, develop a website, and work on the grant application. If you want to find a way to leverage more money for projects you are pursuing at your local school, this is an excellent way to do it. The grant is for $200,000. If done properly, and we show adequate promise, then this grant could leverage even more support from other foundations or corporations. 4) Usability Test The usability test for v5 was done at Texas Tech May 15-25th. The report from this test should be out by June 9th. When the report comes out, I urge you to take a look at it and offer your own responses and interpretation. Most of all, we will need creative solutions to identified problems. Catch the fever! Check out High 5 and contribute to its development. Yours, Lennie P.S. Cynthia Haynes, the list owner, has taken a position at Clemson University. (Congratulations to Cynthia and Jan!!!) That means this list's days are numbers (at least as hosted from utdallas). Some sort of change is in the works. We will let you know when this change to the list happens. P.P.S. One last plug to contribute $$ to the enCore Documentation Project. --=====================_16441421==.ALT Content-Type: text/html; charset="us-ascii" Hey Everyone,

The new version of enCore v5 (High 5) is out in beta form at http://lingo.uib.no:6002/.  Check it out!  You can set up a new user account from the login screen or contact me for an account. 

Information about High 5 (including a changelog) can be seen at http://lingo.uib.no/v5/

HOW TO RALLY AROUND HIGH FIVE DEVELOPMENT AND HELP IT REACH OFFICIAL RELEASE AS SOON AS POSSIBLE

Explore and test drive the High Five site.
 
As you see and find thing, please post them in the Forum called "High Five."  Click on the menu bar item "Mail/Forum," subscribe to the High Five forum, and then post your observations and suggestions.  As you encounter errors, please fill out the error reporting form. 


THINK DIFFERENT!
The old model of moo development (which enCore followed) was for individual sites to customize their site and create coding and features that fit its individual needs.  I can think of many enCore sites (I can think specifically of three, but I'm sure there are more) who's customizations have lived and died only there. 

We need to think different (I know is should be differently...).  Different how?

I propose that we within the enCore community think more about centralized development rather than decentralized.  What I mean is that individual enCore sites should share their individual customizations with the "core" or central development site (at Univ. of Bergen).  That these sites should collaborate with other enCore sites working or wanting to work on similar things and collaborate with the Univ. of Bergen. What I am proposing is that we "co-develop" rather than develop in isolation. 

I can think of at least three enCore sites who have programmers actively working to make modifications to their individual enCore site to meet the needs of that site:

Matthew Coupe for NCC Educational
Robert Rozema and Allen Web for Secondary Worlds (soon to be Literary Worlds)
Jean-Marc Giffin at Acadia University

There are probably more.  My hope is that via the enCore Consortium that the work done at these individual sites can feed into the main release and that the lead programmers like Daniel Jung at Univ. of Bergen can assist the individual sites in doing what they want to do. This symbiotic development model is what the enCore Consortium is all about fostering. 


Network with other enCore sites
Check out the other enCore Consortium members and their sites at http://www.encore-consortium.org/members/members.php.  See who else is doing what you are doing and contact them.  You can email right out of the member list.  Post ideas and questions to this encore user's list.


Take the initiative!
I strongly urge you to take the initiative on things you think need to get done.  Jump right in and share your ideas.  I have a number of areas listed below where you could start doing something now.


Consortium Projects
First, I strongly recommend that you join the enCore Consortium if you haven't joined already.  http://www.encore-consortium.org/  Twist the arms of other people involved with enCore at your local site to join too.  The more the merrier.  It costs nothing to join. 

Below is a list of various projects currently in the works:
1) Of course, v5 beta development is ongoing. Daniel may have specific tasks he needs help on.

2) enCore v5 Documentation Project--lots to do
--See details of this single-source documentation solution: http://www.encore-consortium.org/Generalv5Proposal.pdf
--Contribute funds to the v5 Doc Project!!! We need money to complete this work.  Even a small amount helps us look better as we request funds from larger potential sponsors.  See the proposal and the consortium website for details on contributing.
--Subject Content Experts needed:  As the writers begin working on writing up the help for enCore v5, they may need assistance understanding certain functions or they may need a version of the help task written out.  I want to assemble a team of content experts to be on call to receive and respond to these requests from the writers.  Let me know if you want to be on this team. 

3) Grants for enCore--specifically NEH Grant for Oct. 2006 submission
If you are interested in helping the effort to secure an NEH Grant and perhaps some other large grant support for enCore (particularly in the area of language learning enCore sites), please let me know.  We are beginning to develop a vision for a collaborative grant entitled "Learning Spaces."  This grant would bring together constituent groups of enCore users: literature learning enCore sites, language learning enCore sites, composition/writing learning sites, and perhaps online classroom sites.  Each constituent group would pull together like-minded enCore sites and craft specific project to bring together under the umbrela of the entire NEH Grant proposal.  At least that is the idea right now.

We need people to network these constituent groups, develop a website, and work on the grant application.  If you want to find a way to leverage more money for projects you are pursuing at your local school, this is an excellent way to do it.  The grant is for $200,000.  If done properly, and we show adequate promise, then this grant could leverage even more support from other foundations or corporations. 

4) Usability Test
The usability test for v5 was done at Texas Tech May 15-25th.  The report from this test should be out by June 9th.  When the report comes out, I urge you to take a look at it and offer your own responses and interpretation.  Most of all, we will need creative solutions to identified problems. 


Catch the fever! Check out High 5 and contribute to its development.

Yours,

Lennie

P.S.  Cynthia Haynes, the list owner, has taken a position at Clemson University.  (Congratulations to Cynthia and Jan!!!)  That means this list's days are numbers (at least as hosted from utdallas).  Some sort of change is in the works.  We will let you know when this change to the list happens. 

P.P.S.  One last plug to contribute $$ to the enCore Documentation Project.



--=====================_16441421==.ALT-- From jean-marc.giffin@acadiau.ca Fri Jun 2 08:03:06 2006 Received: with ECARTIS (v1.0.0; list encore); Fri, 02 Jun 2006 08:03:07 -0500 (CDT) Return-Path: X-Original-To: encore@nobel.utdallas.edu Delivered-To: encore@nobel.utdallas.edu Received: from iq1.utdallas.edu (iq1-pmn.utdallas.edu [192.168.1.7]) by nobel.utdallas.edu (Postfix) with ESMTP id B10E75BBB for ; Fri, 2 Jun 2006 08:03:06 -0500 (CDT) Received: from localhost (mf2-pmn.utdallas.edu [192.168.1.14]) by iq1.utdallas.edu (Postfix) with ESMTP id 922564C8C for ; Fri, 2 Jun 2006 08:03:06 -0500 (CDT) Received: from mx2.utdallas.edu ([129.110.10.17]) by localhost (mf2.utdallas.edu [10.110.10.14]) (amavisd-new, port 10024) with LMTP id 12624-01-2 for ; Fri, 2 Jun 2006 08:03:00 -0500 (CDT) Received: from stanley.acadiau.ca (stanley.acadiau.ca [131.162.201.38]) by mx2.utdallas.edu (Postfix) with ESMTP id 8F3053434 for ; Fri, 2 Jun 2006 08:02:33 -0500 (CDT) Received: from localhost (localhost [127.0.0.1]) by stanley.acadiau.ca (Postfix) with ESMTP id 7803619BB53 for ; Fri, 2 Jun 2006 10:02:32 -0300 (ADT) Received: from stanley.acadiau.ca ([127.0.0.1]) by localhost (helios.acadiau.ca [127.0.0.1]) (amavisd-new, port 10026) with LMTP id 51284-02-10 for ; Fri, 2 Jun 2006 10:02:30 -0300 (ADT) Received: from exchange.ad.acadiau.ca (exchange.acadiau.ca [131.162.200.60]) by stanley.acadiau.ca (Postfix) with ESMTP id 1F27519ADAE for ; Fri, 2 Jun 2006 10:02:22 -0300 (ADT) X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C68644.9FD45539" Subject: [encore] New To MOO Date: Fri, 2 Jun 2006 10:01:23 -0300 Message-ID: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: New To MOO Thread-Index: AcaGRKZGZdrpuqOITDu076kt28Ddnw== From: "Jean-Marc Giffin" To: X-Virus-Scanned: by amavisd-new at acadiau.ca X-Virus-Scanned: amavisd-new at utdallas.edu X-archive-position: 1666 X-ecartis-version: Ecartis v1.0.0 Sender: encore-bounce@utdallas.edu Errors-to: encore-bounce@utdallas.edu X-original-sender: jean-marc.giffin@acadiau.ca Precedence: bulk Reply-to: jean-marc.giffin@acadiau.ca List-help: List-unsubscribe: List-software: Ecartis version 1.0.0 List-Id: X-List-ID: X-list: encore This is a multi-part message in MIME format. ------_=_NextPart_001_01C68644.9FD45539 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hello, =20 This is a quick test e-mail to check how active this mailing list is. I am building a MOO this summer as part of a job, and would like to be in contact with as many resources as possible. =20 How active is this MOO mailing list? Are there many programmers out there? =20 Thanks, =20 Jean Of mArc =20 ------_=_NextPart_001_01C68644.9FD45539 Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable

Hello,

 

This is a quick test e-mail to check how active this = mailing list is. I am building a MOO this summer as part of a job, and would = like to be in contact with as many resources as = possible.

 

How active is this MOO mailing list? Are there many programmers out there?

 

Thanks,

 

Jean Of mArc

 

------_=_NextPart_001_01C68644.9FD45539-- From jean-marc.giffin@acadiau.ca Fri Jun 2 09:28:58 2006 Received: with ECARTIS (v1.0.0; list encore); Fri, 02 Jun 2006 09:28:58 -0500 (CDT) Return-Path: X-Original-To: encore@nobel.utdallas.edu Delivered-To: encore@nobel.utdallas.edu Received: from iq1.utdallas.edu (iq1-pmn.utdallas.edu [192.168.1.7]) by nobel.utdallas.edu (Postfix) with ESMTP id 4A31F5C9B for ; Fri, 2 Jun 2006 09:28:58 -0500 (CDT) Received: from localhost (mf2-pmn.utdallas.edu [192.168.1.14]) by iq1.utdallas.edu (Postfix) with ESMTP id 265045B5A for ; Fri, 2 Jun 2006 09:28:58 -0500 (CDT) Received: from mx2.utdallas.edu ([129.110.10.17]) by localhost (mf2.utdallas.edu [10.110.10.14]) (amavisd-new, port 10024) with LMTP id 20283-01-51 for ; Fri, 2 Jun 2006 09:28:42 -0500 (CDT) Received: from stanley.acadiau.ca (stanley.acadiau.ca [131.162.201.38]) by mx2.utdallas.edu (Postfix) with ESMTP id 592CD350D for ; Fri, 2 Jun 2006 09:25:28 -0500 (CDT) Received: from localhost (localhost [127.0.0.1]) by stanley.acadiau.ca (Postfix) with ESMTP id 948F319AC03 for ; Fri, 2 Jun 2006 11:25:27 -0300 (ADT) Received: from stanley.acadiau.ca ([127.0.0.1]) by localhost (helios.acadiau.ca [127.0.0.1]) (amavisd-new, port 10026) with LMTP id 66011-01-4 for ; Fri, 2 Jun 2006 11:25:26 -0300 (ADT) Received: from exchange.ad.acadiau.ca (exchange.acadiau.ca [131.162.200.60]) by stanley.acadiau.ca (Postfix) with ESMTP id 75DFA19A5F1 for ; Fri, 2 Jun 2006 11:25:26 -0300 (ADT) X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C68650.54CE8D55" Subject: [encore] enCoring Date: Fri, 2 Jun 2006 11:25:12 -0300 Message-ID: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: enCoring Thread-Index: AcaGUFu5rN1FW204TdigHqoiWfj8lA== From: "Jean-Marc Giffin" To: X-Virus-Scanned: by amavisd-new at acadiau.ca X-Virus-Scanned: amavisd-new at utdallas.edu X-archive-position: 1667 X-ecartis-version: Ecartis v1.0.0 Sender: encore-bounce@utdallas.edu Errors-to: encore-bounce@utdallas.edu X-original-sender: jean-marc.giffin@acadiau.ca Precedence: bulk Reply-to: jean-marc.giffin@acadiau.ca List-help: List-unsubscribe: List-software: Ecartis version 1.0.0 List-Id: X-List-ID: X-list: encore This is a multi-part message in MIME format. ------_=_NextPart_001_01C68650.54CE8D55 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Wow, there have been a lot of replies to this mailing list, I'm quite happy to see there is so much support out there! I sent an e-mail to Lennie Irvin and Daniel Jung on details as to what it is I am doing, and I figure I may as well copy & paste what I sent to them, since it contains all the information about my project: =20 =3D=3D=3D =20 I work for the Acadia Institute for Teaching & Technology which is located in Nova Scotia, Canada. I've gotten a job here as the title of "Web Developer", but during my interview I mentioned that I had created a MOO system as a software engineering project. It just so happened that one of the English professors at the university here was interested in making a MOO based around literature from his English courses, which would include material such as "Natural Daughter", a novel about how difficult it was to be a woman in the late 18th Century. So they put me on this project. He introduced me to the encore Xpress system, but he wasn't a programmer or a designer, so he wanted me to implement this thing. =20 I took a while getting familiar with the system and other systems I would be needing. Here's a quick overview of what I'm expected to do: =20 1. Redesign the front-end. This is everything as small as adding in extra fields to the Character Creation page, to a complete graphical overhaul of the user-interface to reflect the material. 2. Add in content, as well as program it so you are treated a certain way. For example, bots of men who talk to each other, but treat you unkindly, or that you have success points that can increase your stature as a woman. 3. Extra features, such as a user list and logging of student activities. 4. Write detailed instructions on how to use a MOO, and (more importantly), why it has anything to do with English majors. 5. I have exactly 2 and a half months to have this up-and-running (as of today). The content does not have to be COMPLETELY ready by then, since I'm allowed to work into the school year, but it must be presentable enough that students can go in and use it by then. =20 While trying to edit the front-end, I've already seen that the project is going to be a little more difficult than I initially expected. I am used to certain languages and technologies, such as JAVA, C and PHP, but this one works a little differently, sort of like a mix between the object-oriented aspects of JAVA and the dynamic webpage/database creation of PHP. However, resources for MOO programming and database are not nearly as numerous, and I will need help/documentation on the way to make the adjustment. I've tried adjusting the user creation to include a list that allows you to select which course you are in, for example, and have been reasonably successful... but my first attempt caused the Objects list to cease working correctly, and I was not familiar enough with the system to understand what the exception was. =20 I basically had to reverse engineer it to figure out how to do it. I searched the database to where the character creation took place, then located the fields. I added an extra field, and passed it as a parameter to $wiz_utils:make_player(), and then in $wiz_utils I edited the make_player() verb to accept four arguments, and then added a line "new.course =3D course;". I then changed the "generic player" object to contain a "course" property.=20 =20 Although this worked out reasonably well, it still involved more scouring than would have been necessary if the front-end had a solid documentation. =20 I've figured out more or less how the html files are produced; that is, that there's usually a variable called "html" that appends all the data using some special functions, like: =20 html =3D $list_utils:append(login, $encore_web_utils:p($encore_web_utils:a(tostr($core_homepage, "xpress_system_requirements.html"), "System Requirements", "_blank"))); =20 But what I don't understand are things like: =20 When I connect to the website (say "mooserver.website.com:7000" ), how does it know to load up object #162:login_page() ? Is there a way to get it to load up #132:login() instead? (for example) Also, the header of the output html (Title) are loaded in somewhere along the way, but aren't part of #162 itself. Where is this information loaded? Can it be overridden for #162 without affecting the other pages? What if for the login screen I'd like to use a custom stylesheet, so that the default inline is NOT loaded into the header? I tried setting "use_external_stylesheet" to "1", but it didn't seem to change anything. =20 These are the kinds of things that, as far as I've found, aren't clearly documented anywhere. If they are, I'd love to know what I've been missing! =20 =3D=3D=3D=3D =20 I know that this e-mail is quite long, but thanks for taking the time to read it. Hopefully I can get a lot of answers around here, because there's not that much else I have to find this stuff out! =20 Thanks, =20 Jean-Marc Giffin ------_=_NextPart_001_01C68650.54CE8D55 Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable

Wow, there have = been a lot of replies to this mailing list, I’m quite happy to see there is = so much support out there!

I sent an e-mail to = Lennie Irvin and Daniel Jung on details as to what it is I am doing, and I = figure I may as well copy & paste what I sent to them, since it contains all = the information about my project:

 

=3D=3D=3D

 

I work for the = Acadia Institute for Teaching & Technology which is located in Nova Scotia, Canada. I've gotten a job here as the title of "Web Developer", but = during my interview I mentioned that I had created a MOO system as a software = engineering project. It just so happened that one of the English professors at the university here was interested in making a MOO based around literature = from his English courses, which would include material such as "Natural Daughter", a novel about how difficult it was to be a woman in the = late 18th Century. So they put me on this project. He introduced me to the = encore Xpress system, but he wasn't a programmer or a designer, so he wanted me = to implement this thing.

 

I took a while = getting familiar with the system and other systems I would be needing. Here's a = quick overview of what I'm expected to do:

 

1. Redesign the = front-end. This is everything as small as adding in extra fields to the Character = Creation page, to a complete graphical overhaul of the user-interface to reflect = the material.

2. Add in content, = as well as program it so you are treated a certain way. For example, bots of men = who talk to each other, but treat you unkindly, or that you have success = points that can increase your stature as a woman.

3. Extra features, = such as a user list and logging of student = activities.

4. Write detailed instructions on how to use a MOO, and (more importantly), why it has = anything to do with English majors.

5. I have exactly 2 = and a half months to have this up-and-running (as of today). The content does = not have to be COMPLETELY ready by then, since I'm allowed to work into the = school year, but it must be presentable enough that students can go in and use = it by then.

 

While trying to = edit the front-end, I've already seen that the project is going to be a little = more difficult than I initially expected. I am used to certain languages and technologies, such as JAVA, C and PHP, but this one works a little = differently, sort of like a mix between the object-oriented aspects of JAVA and the = dynamic webpage/database creation of PHP. However, resources for MOO programming = and database are not nearly as numerous, and I will need help/documentation = on the way to make the adjustment. I've tried adjusting the user creation to = include a list that allows you to select which course you are in, for example, and = have been reasonably successful... but my first attempt caused the Objects = list to cease working correctly, and I was not familiar enough with the system = to understand what the exception was.

 

I basically had to = reverse engineer it to figure out how to do it. I searched the database to where = the character creation took place, then located the fields. I added an extra = field, and passed it as a parameter to $wiz_utils:make_player(), and then in $wiz_utils I edited the make_player() verb to accept four arguments, and = then added a line "new.course =3D course;". I then changed the = "generic player" object to contain a "course" property. =

 

Although this = worked out reasonably well, it still involved more scouring than would have been = necessary if the front-end had a solid documentation.

 

I've figured out = more or less how the html files are produced; that is, that there's usually a = variable called "html" that appends all the data using some special = functions, like:

 

html =3D $list_utils:append(login, $encore_web_utils:p($encore_web_utils:a(tostr($core_homepage, "xpress_system_requirements.html"), "System = Requirements", "_blank")));

 

But what I don't = understand are things like:

 

When I connect to = the website (say "mooserver.website.com:7000" ), how does it know = to load up object #162:login_page() ?

Is there a way to = get it to load up #132:login() instead? (for example) Also, the header of the = output html (<head><title>Title</title></head>) are loaded = in somewhere along the way, but aren't part of #162 itself. Where is this information loaded? Can it be overridden for #162 without affecting the = other pages? What if for the login screen I'd like to use a custom stylesheet, = so that the default inline <style> <!-- --> </style> is = NOT loaded into the header? I tried setting = “use_external_stylesheet” to “1”, but it didn’t seem to change = anything.

 

These are the kinds = of things that, as far as I've found, aren't clearly documented anywhere. = If they are, I'd love to know what I've been = missing!

 

=3D=3D=3D=3D

 

I know that this e-mail is quite long, but thanks for = taking the time to read it. Hopefully I can get a lot of answers around here, = because there’s not that much else I have to find this stuff = out!

 

Thanks,

 

Jean-Marc Giffin

------_=_NextPart_001_01C68650.54CE8D55-- From Lirvin@accdvm.accd.edu Sat Jun 3 08:03:42 2006 Received: with ECARTIS (v1.0.0; list encore); Sat, 03 Jun 2006 08:03:42 -0500 (CDT) Return-Path: X-Original-To: encore@nobel.utdallas.edu Delivered-To: encore@nobel.utdallas.edu Received: from iq1.utdallas.edu (iq1-pmn.utdallas.edu [192.168.1.7]) by nobel.utdallas.edu (Postfix) with ESMTP id 5D2C05E61 for ; Sat, 3 Jun 2006 08:03:42 -0500 (CDT) Received: from localhost (mf2-pmn.utdallas.edu [192.168.1.14]) by iq1.utdallas.edu (Postfix) with ESMTP id 2E00F48E0 for ; Sat, 3 Jun 2006 08:03:42 -0500 (CDT) Received: from mx2.utdallas.edu ([129.110.10.17]) by localhost (mf2.utdallas.edu [10.110.10.14]) (amavisd-new, port 10024) with LMTP id 04170-01-46 for ; Sat, 3 Jun 2006 08:03:38 -0500 (CDT) Received: from mx3.lsn.net (mx3.lsn.net [66.90.130.75]) by mx2.utdallas.edu (Postfix) with ESMTP id 636AE345C for ; Sat, 3 Jun 2006 08:03:38 -0500 (CDT) Received: from Gilgamesh.accdvm.accd.edu (72-48-64-55.dyn.grandenetworks.net [72.48.64.55]) by mx3.lsn.net (8.13.5/8.13.5) with ESMTP id k53D3ZH3003521; Sat, 3 Jun 2006 08:03:39 -0500 Message-Id: <6.2.5.6.0.20060603075725.029a4c98@accdvm.accd.edu> X-Mailer: QUALCOMM Windows Eudora Version 6.2.5.6 Date: Sat, 03 Jun 2006 08:03:42 -0500 To: encore@utdallas.edu From: Lennie Irvin Subject: [encore] NEH Grant Opportunities Cc: steering@encore-consortium.org Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed X-Virus-Scanned: ClamAV 0.88.2/1510/Sat Jun 3 07:07:20 2006 on mx0.lsn.net X-Virus-Status: Clean X-Virus-Scanned: amavisd-new at utdallas.edu X-archive-position: 1668 X-ecartis-version: Ecartis v1.0.0 Sender: encore-bounce@utdallas.edu Errors-to: encore-bounce@utdallas.edu X-original-sender: Lirvin@accdvm.accd.edu Precedence: bulk Reply-to: Lirvin@accdvm.accd.edu List-help: List-unsubscribe: List-software: Ecartis version 1.0.0 List-Id: X-List-ID: X-list: encore Hi Everyone, I just corresponded with Paul Shovlin at Ohio University about some ideas about a possible NEH Grant application next Fall, and I thought I would share the description of the grant that I sent him. If you are interested in having your local site participate in this grant, I urge you respond to this email. Here's the description I sent Paul: First off, I would get your site and you associated with the enCore Consortium. http://www.encore-consortium.org/members/register.php I would have you and as many key interested faculty who use your enCore site sign up. The overall grant I think will have this structure: enCore Learning Spaces NEH Grant (Overall lead institution) / | \ / | \ Language Spaces Literary Spaces Writing Spaces (perhaps Online Spaces too)-- Lead institution for each main component of the grant | | | / | | \ / | | \ / | | \ Local institutions involved in the main goals of each component group--minimum of two schools needed for each component I don't know if this diagram helps, but it shows you where you might fit in. We would have an overall grant, but each specific local site would have some project that they would be working on related to the larger grant. The grant, hopefully, would funnel funds to your local site for that project as well as funnel funds to Univ. of Bergen or other schools for particular programming goals. There are three possible levels for you to fit in (pardon my names for the levels :)): 1) Big Cheese Level Lobby your school to take the lead and be the overall lead institution for the grant. This would mean having a good and experienced grants administration office that you have a pretty good working knowledge of and relationship with. This institution would be the official grant applicant. Also, you would need a committed faculty member to be the overseer for the grant. 2) Den Leader Level The grant works because we pull together enCore sites with similar learning goals and activities. These sites use enCore for a unique function and with a unique population. I propose calling each one a "Project" and each of the schools that join these projects will work together to define their own group's collaborative goals and objectives. For example, right now what Allen Webb is doing with Literary Worlds and what Jean-Marc is working on with his site at Acadia U. are very similar. Can these sites come together and define some common development goals that would benefit each of them and then think of ways to achieve these goals? We need a person to be the lead coordinator and instigator or each group who can get these enCore sites with similar goals working and communicating together. 3) Ground Level--local sites Each local site joining in the grant would need to have some local effort which this grant would help support and fund. It would mean having a local faculty person or group of faculty who work on and define projects or other activities for the grant. For instance, I plan on fitting within the "Writing Spaces" grant and want to use enCore with my online developmental English class (with the extended goal of opening up the space for other writing classes at my school to use if they wish). I also want to create and start using enCore with two local National Writing Project sites, so I might propose a week-long Open Institute about teaching writing via enCore that could be used by local public school teachers. It would probably also mean working with your local grant's administrator to make sure your portion of the grant application is kosher. Also, for the NEH Grant to work it would have to involve some kind of matching commitment from each school either in some funds or in in-kind contributions. Not every site may be able to come up with a match, though. I know one thing we will need is a website that works as "Grant central" with information about each constituent group and its particular goals. My hope is that starting from local sites we can sort of funnel up as we come together with our various projects and particular needs, and as we come together clear development goals will emerge. Maybe this grant effort will help you justify some continued funding for your site. I suppose the key thing is if people are using the site or have particular plans for it. In the meantime, you can check out High Five and show other people what it is like and hopefully get them excited about it. I think the key is to start locally. ********************************************************************* If you are interested in working on this NEH Grant and getting your local site on board, please let me know. ~Lennie From Lirvin@accdvm.accd.edu Sat Jun 3 08:35:20 2006 Received: with ECARTIS (v1.0.0; list encore); Sat, 03 Jun 2006 08:35:20 -0500 (CDT) Return-Path: X-Original-To: encore@nobel.utdallas.edu Delivered-To: encore@nobel.utdallas.edu Received: from iq1.utdallas.edu (iq1-pmn.utdallas.edu [192.168.1.7]) by nobel.utdallas.edu (Postfix) with ESMTP id 79FC05F40 for ; Sat, 3 Jun 2006 08:35:20 -0500 (CDT) Received: from localhost (mf2-pmn.utdallas.edu [192.168.1.14]) by iq1.utdallas.edu (Postfix) with ESMTP id 58B86496E for ; Sat, 3 Jun 2006 08:35:20 -0500 (CDT) Received: from mx2.utdallas.edu ([129.110.10.17]) by localhost (mf2.utdallas.edu [10.110.10.14]) (amavisd-new, port 10024) with LMTP id 04427-01-74 for ; Sat, 3 Jun 2006 08:35:15 -0500 (CDT) Received: from mx3.lsn.net (mx3.lsn.net [66.90.130.75]) by mx2.utdallas.edu (Postfix) with ESMTP id 8E8DE2CA1 for ; Sat, 3 Jun 2006 08:35:15 -0500 (CDT) Received: from Gilgamesh.accdvm.accd.edu (72-48-64-55.dyn.grandenetworks.net [72.48.64.55]) by mx3.lsn.net (8.13.5/8.13.5) with ESMTP id k53DZFMI022860; Sat, 3 Jun 2006 08:35:17 -0500 Message-Id: <6.2.5.6.0.20060603080351.029c7b18@accdvm.accd.edu> X-Mailer: QUALCOMM Windows Eudora Version 6.2.5.6 Date: Sat, 03 Jun 2006 08:35:14 -0500 To: encore@utdallas.edu From: Lennie Irvin Subject: [encore] MOO down--help needed!!! Cc: timothy.miley@wmich.edu Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="=====================_10393625==.ALT" X-Virus-Scanned: ClamAV 0.88.2/1510/Sat Jun 3 07:07:20 2006 on mx0.lsn.net X-Virus-Status: Clean X-Virus-Scanned: amavisd-new at utdallas.edu X-archive-position: 1669 X-ecartis-version: Ecartis v1.0.0 Sender: encore-bounce@utdallas.edu Errors-to: encore-bounce@utdallas.edu X-original-sender: Lirvin@accdvm.accd.edu Precedence: bulk Reply-to: Lirvin@accdvm.accd.edu List-help: List-unsubscribe: List-software: Ecartis version 1.0.0 List-Id: X-List-ID: X-list: encore --=====================_10393625==.ALT Content-Type: text/plain; charset="us-ascii"; format=flowed I've been in correspondence with Tim Miley and Allen Webb at Secondary Worlds about some problems they have had transferring their moo from one server box to another. Right now, they are encountering some pretty major problems. They specifically are having trouble loading a backed up version of the database. I had a couple of questions to ask that could help them: 1) Are there any particular problems with moving a moo from a UNIX box to a Mac OS X box? 2) Question about restoring a backed up version of the database: Currently, they have a good copy of the database as a dbnew.db version (file name has "new" in it). Can someone confirm this as the proper restore sequence? Restoring a db from a dbnew.db version: 1) Save a copy of your backup dbnew.db file. 2) Rename this file db.db 3) Shut down moo 4) Physically replace the db.db file with the backup copy you just made. 5) Restart the moo Am I missing anything with this restore sequence? Here is a description of what they have currently been doing and the error they have been receiving: *************** The standard restart script was used. The moo read from the enCore.db file and wrote to enCore.db.new. A person off site copied the enCore.db.new file (I believe) while the MOO was running, so although we have an newer version archived by the offsite user, his version would not load. It gives the following error: >> May 26 14:54:38: VALIDATE: Phase 1: Check for invalid objects ... >> May 26 14:54:38: VALIDATE: Phase 2: Check for cycles ... >> May 26 14:54:38: VALIDATE: Phase 3: Check for inconsistencies ... >> May 26 14:54:38: VALIDATING the object hierarchies ... finished. >> May 26 14:54:38: LOADING: Reading 2666 MOO verb programs... >> May 26 14:54:40: LOADING: Done reading 2666 verb programs... >> May 26 14:54:40: LOADING: Reading forked and suspended tasks... >> May 26 14:54:40: *** DBIO_READ_NUM: Bad number: "" at file pos. 11526144 I would imagine that the problem results from attempting to copy a database file from a moo that is currently live, and thus constantly changing. *************************** If you have any answers, please reply to the encore list and cc: it to timothy.miley@wmich.edu Thanks for your help! Lennie \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ WHAT WE NEED DEVELOPED-- (Lennie dreams) A simple command for backing up and restoring the database. 1) Lennie clicks the Admin menu bar item 2) Lennie selects "Backup" button A dialogue box comes up asking me where I want to save the back up and gives me the opportunity to rename it (though it has a dated name by default) 3) Lennie clicks "Save" and a backup version of the database is put on his flash disk (The file could even be zipped if the db is large.) Restore-- 1) Lennie clicks the Admin menu bar item 2) Lennie selects the "Restore" button A dialogue box appears asking where the file to use for the restore is located. 3) Lennie selects the file and clicks OK. db restored! Automatic Scheduled Backup 1) Lennie clicks Admin menu bar item 2) Lennie clicks "Auto Backup" button A dialogue box appears asking how often auto back up should be done and where the file should be saved. I imagine the auto back up system would be a rolling series of files from five days. 3) Lennie makes his selections and clicks "Engage" to start the auto backup. (In fact, the autoback up should be set as a default for the program.) Autobackup Restore-- 1) Lennie clicks the Admin menu bar item 2) Lennie selects the "Restore from auto-back up" button. 3) Lennie selects the file to use and clicks "OK." db restored. I suppose the key for the scheduled auto-back ups is how to have copies made off the server in case the server explodes. But most servers these days have tape back ups, so once the whole server was backed up the particular backups for the moo could be done (I think?). I'm just dreaming here, but we need to make this process SIMPLE and RELIABLE. I suppose the "restore" function could be used when moving an enCore site from one server to another server too. Caught up in all this is the moo server restart script which I think works fine on a Unix box but is no existent for a Windows box. Anyone familiar with the way Moodle handles its backups and restores will see what I am after here. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// --=====================_10393625==.ALT Content-Type: text/html; charset="us-ascii" I've been in correspondence with Tim Miley and Allen Webb at Secondary Worlds about some problems they have had transferring their moo from one server box to another.  Right now, they are encountering some pretty major problems.  They specifically are having trouble loading a backed up version of the database.  I had a couple of questions to ask that could help them:

1) Are there any particular problems with moving a moo from a UNIX box to a Mac OS X box? 

2) Question about restoring a backed up version of the database:  Currently, they have a good copy of the database as a dbnew.db version  (file name has "new" in it).
Can someone confirm this as the proper restore sequence?

Restoring a db from a dbnew.db version:

1) Save a copy of your backup dbnew.db file.
2) Rename this file db.db
3) Shut down moo
4) Physically replace the db.db file with the backup copy you just made.
5) Restart the moo

Am I missing anything with this restore sequence?  Here is a description of what they have currently been doing and the error they have been receiving:

***************
The standard restart script was used.  The moo read from the enCore.db file and wrote to enCore.db.new.  A person off site copied the enCore.db.new file (I believe) while the MOO was running, so although we have an newer version archived by the offsite user, his version would not load.  It gives the following error:

>> May 26 14:54:38: VALIDATE: Phase 1: Check for invalid objects ...
>> May 26 14:54:38: VALIDATE: Phase 2: Check for cycles ...
>> May 26 14:54:38: VALIDATE: Phase 3: Check for inconsistencies ...
>> May 26 14:54:38: VALIDATING the object hierarchies ... finished.
>> May 26 14:54:38: LOADING: Reading 2666 MOO verb programs...
>> May 26 14:54:40: LOADING: Done reading 2666 verb programs...
>> May 26 14:54:40: LOADING: Reading forked and suspended tasks...
>> May 26 14:54:40: *** DBIO_READ_NUM: Bad number: "" at file pos. 11526144

I would imagine that the problem results from attempting to copy a database file from a moo that is currently live, and thus constantly changing.
***************************

If you have any answers, please reply to the encore list and cc: it to timothy.miley@wmich.edu

Thanks for your help!

Lennie


\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
WHAT WE NEED DEVELOPED-- (Lennie dreams)

A simple command for backing up and restoring the database.

1) Lennie clicks the Admin menu bar item
2) Lennie selects "Backup" button
A dialogue box comes up asking me where I want to save the back up and gives me the opportunity to rename it (though it has a dated name by default)
3) Lennie clicks "Save" and a backup version of the database is put on his flash disk
(The file could even be zipped if the db is large.)

Restore--
1) Lennie clicks the Admin menu bar item
2) Lennie selects the "Restore" button
A dialogue box appears asking where the file to use for the restore is located.
3) Lennie selects the file and clicks OK.  db restored!

Automatic Scheduled Backup
1) Lennie clicks Admin menu bar item
2) Lennie clicks "Auto Backup" button
A dialogue box appears asking how often auto back up should be done and where the file should be saved.  I imagine the auto back up system would be a rolling series of files from five days.
3) Lennie makes his selections and clicks "Engage" to start the auto backup.
(In fact, the autoback up should be set as a default for the program.)

Autobackup Restore--
1) Lennie clicks the Admin menu bar item
2) Lennie selects the "Restore from auto-back up" button.
3) Lennie selects the file to use and clicks "OK."  db restored.

I suppose the key for the scheduled auto-back ups is how to have copies made off the server in case the server explodes.  But most servers these days have tape back ups, so once the whole server was backed up the particular backups for the moo could be done (I think?).

I'm just dreaming here, but we need to make this process SIMPLE and RELIABLE.  I suppose the "restore" function could be used when moving an enCore site from one server to another server too.  Caught up in all this is the moo server restart script which I think works fine on a Unix box but is no existent for a Windows box. 

Anyone familiar with the way Moodle handles its backups and restores will see what I am after here. 

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////



--=====================_10393625==.ALT-- From kevijeps@telusplanet.net Sat Jun 3 09:53:22 2006 Received: with ECARTIS (v1.0.0; list encore); Sat, 03 Jun 2006 09:53:23 -0500 (CDT) Return-Path: X-Original-To: encore@nobel.utdallas.edu Delivered-To: encore@nobel.utdallas.edu Received: from iq1.utdallas.edu (iq1-pmn.utdallas.edu [192.168.1.7]) by nobel.utdallas.edu (Postfix) with ESMTP id B58D3605F for ; Sat, 3 Jun 2006 09:53:22 -0500 (CDT) Received: from localhost (mf2-pmn.utdallas.edu [192.168.1.14]) by iq1.utdallas.edu (Postfix) with ESMTP id 80E7E4D6B for ; Sat, 3 Jun 2006 09:53:22 -0500 (CDT) Received: from mx2.utdallas.edu ([129.110.10.17]) by localhost (mf2.utdallas.edu [10.110.10.14]) (amavisd-new, port 10024) with LMTP id 08784-01-26 for ; Sat, 3 Jun 2006 09:53:14 -0500 (CDT) Received: from priv-edtnes16.telusplanet.net (outbound04.telus.net [199.185.220.223]) by mx2.utdallas.edu (Postfix) with ESMTP id 185CE3452 for ; Sat, 3 Jun 2006 09:53:13 -0500 (CDT) Received: from priv-edtnaa05.telusplanet.net ([199.126.223.252]) by priv-edtnes16.telusplanet.net (InterMail vM.6.01.05.04 201-2131-123-105-20051025) with ESMTP id <20060603145312.CUSM4642.priv-edtnes16.telusplanet.net@priv-edtnaa05.telusplanet.net>; Sat, 3 Jun 2006 08:53:12 -0600 Received: from lilith (d199-126-223-252.abhsia.telus.net [199.126.223.252]) by priv-edtnaa05.telusplanet.net (BorderWare MXtreme Infinity Mail Firewall) with ESMTP id 25XQ3SGDVH; Sat, 3 Jun 2006 08:53:11 -0600 (MDT) From: "Kevin Jepson" To: , Cc: Subject: [encore] Re: MOO down--help needed!!! Date: Sat, 3 Jun 2006 08:52:36 -0600 Message-ID: <002001c6871d$5c4e3b30$5a0119ac@lilith> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0021_01C686EB.11B3CB30" X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook, Build 10.0.6626 X-MIMEOLE: Produced By Microsoft MimeOLE V6.00.2900.2869 Importance: Normal In-Reply-To: <6.2.5.6.0.20060603080351.029c7b18@accdvm.accd.edu> X-Virus-Scanned: amavisd-new at utdallas.edu X-archive-position: 1670 X-ecartis-version: Ecartis v1.0.0 Sender: encore-bounce@utdallas.edu Errors-to: encore-bounce@utdallas.edu X-original-sender: kevijeps@telusplanet.net Precedence: bulk Reply-to: kevijeps@telusplanet.net List-help: List-unsubscribe: List-software: Ecartis version 1.0.0 List-Id: X-List-ID: X-list: encore This is a multi-part message in MIME format. ------=_NextPart_000_0021_01C686EB.11B3CB30 Content-Type: text/plain; charset="windows-1250" Content-Transfer-Encoding: quoted-printable Lennie =20 It looks to me like the backup copy of the database is corrupted = somehow. =20 The standard checkpoint copy is the "encore.db.new" file and it is = always made when the MOO is running so that shouldn't cause a problem.. =20 Did this restart error come up when the old MOO was restarted or was it = on the new system? =20 As for the procedure to move it (assuming no OS problems with OS X) I = would do this: =20 If the old MOO is still running copy encore.db.new from old server.=20 =20 On the new server load the encore.db.new file and rename it encore.db. =20 Start the new MOO using the standard script. =20 Ciao KJ=20 -----Original Message----- From: encore-bounce@utdallas.edu [mailto:encore-bounce@utdallas.edu] On Behalf Of Lennie Irvin Sent: June 3, 2006 7:35 AM To: encore@utdallas.edu Cc: timothy.miley@wmich.edu Subject: [encore] MOO down--help needed!!! I've been in correspondence with Tim Miley and Allen Webb at Secondary Worlds about some problems they have had transferring their moo from one server box to another. Right now, they are encountering some pretty = major problems. They specifically are having trouble loading a backed up = version of the database. I had a couple of questions to ask that could help = them: 1) Are there any particular problems with moving a moo from a UNIX box = to a Mac OS X box? =20 2) Question about restoring a backed up version of the database: = Currently, they have a good copy of the database as a dbnew.db version (file name = has "new" in it). Can someone confirm this as the proper restore sequence? Restoring a db from a dbnew.db version: 1) Save a copy of your backup dbnew.db file. 2) Rename this file db.db 3) Shut down moo 4) Physically replace the db.db file with the backup copy you just made. 5) Restart the moo Am I missing anything with this restore sequence? Here is a description = of what they have currently been doing and the error they have been = receiving: *************** The standard restart script was used. The moo read from the enCore.db = file and wrote to enCore.db.new. A person off site copied the enCore.db.new = file (I believe) while the MOO was running, so although we have an newer = version archived by the offsite user, his version would not load. It gives the following error: >> May 26 14:54:38: VALIDATE: Phase 1: Check for invalid objects ... >> May 26 14:54:38: VALIDATE: Phase 2: Check for cycles ... >> May 26 14:54:38: VALIDATE: Phase 3: Check for inconsistencies ... >> May 26 14:54:38: VALIDATING the object hierarchies ... finished. >> May 26 14:54:38: LOADING: Reading 2666 MOO verb programs... >> May 26 14:54:40: LOADING: Done reading 2666 verb programs... >> May 26 14:54:40: LOADING: Reading forked and suspended tasks... >> May 26 14:54:40: *** DBIO_READ_NUM: Bad number: "" at file pos. = 11526144 I would imagine that the problem results from attempting to copy a = database file from a moo that is currently live, and thus constantly changing. *************************** If you have any answers, please reply to the encore list and cc: it to timothy.miley@wmich.edu=20 Thanks for your help! Lennie =20 --=20 No virus found in this outgoing message. Checked by AVG Free Edition. Version: 7.1.394 / Virus Database: 268.8.1/355 - Release Date: = 02/06/2006 =20 ------=_NextPart_000_0021_01C686EB.11B3CB30 Content-Type: text/html; charset="windows-1250" Content-Transfer-Encoding: quoted-printable Message
Lennie
 
It=20 looks to me like the backup copy of the database is corrupted=20 somehow.
 
The=20 standard checkpoint copy is the "encore.db.new" file and it is always = made when=20 the MOO is running so that shouldn't cause a = problem..
 
Did=20 this restart error come up when the old MOO was restarted or was it = on the=20 new system?
 
As for=20 the procedure to move it (assuming no OS problems with OS X) I would do=20 this:
 
If the=20 old MOO is still running copy encore.db.new from old server.=20
 
On the=20 new server load the encore.db.new file and rename it=20 encore.db.
 
Start=20 the new MOO using the standard script.
 
Ciao
KJ 
-----Original Message-----
From:=20 encore-bounce@utdallas.edu [mailto:encore-bounce@utdallas.edu] On = Behalf Of=20 Lennie Irvin
Sent: June 3, 2006 7:35 AM
To:=20 encore@utdallas.edu
Cc: = timothy.miley@wmich.edu
Subject:=20 [encore] MOO down--help needed!!!

I've been in=20 correspondence with Tim Miley and Allen Webb at Secondary Worlds about = some=20 problems they have had transferring their moo from one server box to=20 another.  Right now, they are encountering some pretty major=20 problems.  They specifically are having trouble loading a backed = up=20 version of the database.  I had a couple of questions to ask that = could=20 help them:

1) Are there any particular problems with moving a = moo from=20 a UNIX box to a Mac OS X box? 

2) Question about = restoring a=20 backed up version of the database:  Currently, they have a good = copy of=20 the database as a dbnew.db version  (file name has "new" in = it).
Can=20 someone confirm this as the proper restore sequence?

Restoring = a db=20 from a dbnew.db version:

1) Save a copy of your backup dbnew.db = file.
2) Rename this file db.db
3) Shut down moo
4) = Physically=20 replace the db.db file with the backup copy you just made.
5) = Restart the=20 moo

Am I missing anything with this restore sequence?  = Here is a=20 description of what they have currently been doing and the error they = have=20 been receiving:

***************
The standard restart script = was=20 used.  The moo read from the enCore.db file and wrote to=20 enCore.db.new.  A person off site copied the enCore.db.new file = (I=20 believe) while the MOO was running, so although we have an newer = version=20 archived by the offsite user, his version would not load.  It = gives the=20 following error:

>> May 26 14:54:38: VALIDATE: Phase 1: = Check for=20 invalid objects ...
>> May 26 14:54:38: VALIDATE: Phase 2: = Check for=20 cycles ...
>> May 26 14:54:38: VALIDATE: Phase 3: Check for=20 inconsistencies ...
>> May 26 14:54:38: VALIDATING the object = hierarchies ... finished.
>> May 26 14:54:38: LOADING: = Reading 2666=20 MOO verb programs...
>> May 26 14:54:40: LOADING: Done = reading 2666=20 verb programs...
>> May 26 14:54:40: LOADING: Reading forked = and=20 suspended tasks...
>> May 26 14:54:40: *** DBIO_READ_NUM: Bad = number:=20 "" at file pos. 11526144

I would imagine that the problem = results from=20 attempting to copy a database file from a moo that is currently live, = and thus=20 constantly changing.
***************************

If you have = any=20 answers, please reply to the encore list and cc: it to = timothy.miley@wmich.edu=20

Thanks for your help!

Lennie

 


--
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.1.394 / Virus Database: 268.8.1/355 - Release Date: = 02/06/2006

------=_NextPart_000_0021_01C686EB.11B3CB30-- From kevijeps@telusplanet.net Sat Jun 3 21:08:12 2006 Received: with ECARTIS (v1.0.0; list encore); Sat, 03 Jun 2006 21:08:12 -0500 (CDT) Return-Path: X-Original-To: encore@nobel.utdallas.edu Delivered-To: encore@nobel.utdallas.edu Received: from iq1.utdallas.edu (iq1-pmn.utdallas.edu [192.168.1.7]) by nobel.utdallas.edu (Postfix) with ESMTP id 7CE535BB3 for ; Sat, 3 Jun 2006 21:08:12 -0500 (CDT) Received: from localhost (mf2-pmn.utdallas.edu [192.168.1.14]) by iq1.utdallas.edu (Postfix) with ESMTP id 2973C472E for ; Sat, 3 Jun 2006 21:08:12 -0500 (CDT) Received: from mx2.utdallas.edu ([129.110.10.17]) by localhost (mf2.utdallas.edu [10.110.10.14]) (amavisd-new, port 10024) with LMTP id 11083-01-30 for ; Sat, 3 Jun 2006 21:08:08 -0500 (CDT) Received: from priv-edtnes90.telusplanet.net (defout.telus.net [199.185.220.240]) by mx2.utdallas.edu (Postfix) with ESMTP id 451713452 for ; Sat, 3 Jun 2006 21:08:07 -0500 (CDT) Received: from priv-edtnaa05.telusplanet.net ([199.126.223.252]) by priv-edtnes90.telusplanet.net (InterMail vM.6.01.05.04 201-2131-123-105-20051025) with ESMTP id <20060604020806.ZJEQ11335.priv-edtnes90.telusplanet.net@priv-edtnaa05.telusplanet.net>; Sat, 3 Jun 2006 20:08:06 -0600 Received: from lilith (d199-126-223-252.abhsia.telus.net [199.126.223.252]) by priv-edtnaa05.telusplanet.net (BorderWare MXtreme Infinity Mail Firewall) with ESMTP id CCST2PJFGJ; Sat, 3 Jun 2006 20:08:05 -0600 (MDT) From: "Kevin Jepson" To: , Subject: [encore] Re: enCoring Date: Sat, 3 Jun 2006 20:07:33 -0600 Message-ID: <002c01c6877b$a543d0d0$5a0119ac@lilith> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_002D_01C68749.5AA960D0" X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook, Build 10.0.6626 X-MIMEOLE: Produced By Microsoft MimeOLE V6.00.2900.2869 Importance: Normal In-Reply-To: X-Virus-Scanned: amavisd-new at utdallas.edu X-archive-position: 1671 X-ecartis-version: Ecartis v1.0.0 Sender: encore-bounce@utdallas.edu Errors-to: encore-bounce@utdallas.edu X-original-sender: kevijeps@telusplanet.net Precedence: bulk Reply-to: kevijeps@telusplanet.net List-help: List-unsubscribe: List-software: Ecartis version 1.0.0 List-Id: X-List-ID: X-list: encore This is a multi-part message in MIME format. ------=_NextPart_000_002D_01C68749.5AA960D0 Content-Type: text/plain; charset="windows-1250" Content-Transfer-Encoding: quoted-printable Hi Jean-Marc =20 Your project sounds really interesting. =20 Do you really need to change the default WEB behaviour so extensively? =20 EnCore is a superb "out of the box" system, however the compromises that have been made to help it be so make it pretty difficult to modify, = IMHO. =20 What follows is a bit lengthy but may be of some use in letting you know what you are getting into :-) =20 The problem here is that the WEB side isn't really generated by the MOO = per se. It is generated by MOO code that runs in parallel to the traditional LambdaMoo (which is text and command line based). According to typical = MOO methodology the objects themselves, as children of generic objects, = should do all the output generation OR let the code on their parents do it if = the standard procedure is fine. In EnCore that is not the case. The _html = verb on objects allows some (minor) modifications of the WEB display = behaviour but the main WEB display is generated by the $httpd webserver itself = (using the $encore_web_utils). =20 The basic WEB page layout, styles, link behaviours etc, are NOT under = the control of the object hierarchy. This means that making big = functionality changes, like a new class of room/environment for example, become very tricky. Making such changes in a text based traditional MOO is almost trivial once the programmer understands the language syntax and the = object oriented system. =20 Before the hounds are unleashed to chide me for my heresy :-) let me say that EnCore is a good system precisely because it does not require a lot = of coding to get a functional education and learning environment up and running. =20 We pay for that ease of use in a lack of configurability however. This = can be readily seen when one looks at EnCore MOOs in general...THEY ALL LOOK PRETTY MUCH THE SAME. This is not simply because there is a common user interface, the Xpress system, but because changing the WEB display is complex enough to make most non-tech non-programmer Wizards think twice about making major changes. =20 As an example of how this non-standard style gets in the way, let me = briefly describe a problem I've been fighting with. =20 I've been trying for several years now to integrate a more complex room class into my EnCore v4.1 MOO. The room class I want to use is a "multi-room", that is a single object that has integrated features like containers and furniture and an internal virtual Room/Exit structure. = This class is used in my MOO to represent vehicles, like sailing ships, submarines and airships, as well as traditional buildings/spaces. As a single object, moving them as ships or vehicles within the containment hierarchy, to represent movement through the world, is very easy. Once ported to my MOO they worked flawlessly on the TEXT side! =20 =20 As you have already found out, trying to hunt down where the various WEB display elements come from has been quite a challenge. A simple example = is how the WEB side of the Xpress interface displays these objects. =20 =20 In short it doesn't! =20 =20 They appear in the WEB display as room objects. If the user clicks on = them, which with a normal non-room object shows the user the objects = description, they are summarily moved INTO the object! Since the internal room/exit structure is not standard the EnCore WEB server has no clue how to = display it and defaults to the entrance room's description and the contents of = the room only. Both these behaviours seriously break the result the users expected and is confusing. =20 So, what to do? =20 I started rummaging around in the WEB generating code looking for verbs = that I could recreate/modify etc to get Xpress to display the multi-room as = the user would expect. (Reverse engineering as you so aptly put it)=20 =20 It does not appear to be possible to do that and here is why, the verbs which generate all this display DO NOT USE THE OBJECT'S VERBS for their input. So instead of calling the objects version of the "look" and "look_self" verbs to get the description it tries to read the Objects description property! This class has to replace the standard look and look_self verbs to handle the virtual room structure and to make sure objects that are in/under features or in other virtual rooms aren't displayed. Consequently the description property is never really = correct. EnCore does not follow the rules and tries to bypass the MOO object hierarchy to make it's display thus making such "on the fly" changes = almost impossible to achieve. =20 There is no mechanism to recreate this display process because the = enCore verbs are 1) WIZ owned, 2) not really aware of the user in MOO space, 3) stuck trying to both generate an interactive display AND generate a WEB display where no user is really present at all (browsing from the WEB), = 4) scattered across several objects and utilities such that trying to = customize them has potentially bad effects on the system as a whole. =20 End result for me was to actually turn OFF the display of the WEB side entirely while keeping the rest of the Xpress interface. =20 Certainly not an optimal solution but better than the immersion breaking that results from Xpress trying to deal with this new class of objects. =20 So, after all that... =20 You seem to have a fairly short time in which to get your system up so I would recommend that if you don't really need to modify the base EnCore system you might want to leave it alone and concentrate on working = within the limitations. =20 =20 Unless you really like the challenge of course. :-) =20 I'd be happy to describe/discuss these problems in more detail if you = like on list or off, either way. Maybe there is a better way and I've just = can't see the "forest for the trees". =20 Ciao KJ =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D Kevin Jepson R.E.T. President 4K Consulting Inc. =20 An't nanum hearm deth, doth hwaet ye willath. Email: kevijeps@telusplanet.net =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D --=20 No virus found in this outgoing message. Checked by AVG Free Edition. Version: 7.1.394 / Virus Database: 268.8.1/355 - Release Date: = 02/06/2006 =20 ------=_NextPart_000_002D_01C68749.5AA960D0 Content-Type: text/html; charset="windows-1250" Content-Transfer-Encoding: quoted-printable Message
Hi=20 Jean-Marc
 
Your=20 project sounds really interesting.
 
Do you=20 really need to change the default WEB behaviour so=20 extensively?
 
EnCore=20 is a superb "out of the box" system, however the compromises that have = been made=20 to help it be so make it pretty difficult to modify, = IMHO.
 
What=20 follows is a bit lengthy but may be of some use in letting you know what = you are=20 getting into :-)
 
The=20 problem here is that the WEB side isn't really generated by the MOO per = se. It=20 is generated by MOO code that runs in parallel to the = traditional LambdaMoo=20 (which is text and command line based).  According to typical MOO=20 methodology the objects themselves, as children of generic objects, = should=20 do all the output generation OR let the code on their parents do it = if the=20 standard procedure is fine.  In EnCore that is not the case. The = _html verb=20 on objects allows some (minor) modifications of the WEB display = behaviour but=20 the main WEB display is generated by the $httpd webserver itself (using = the=20 $encore_web_utils).
 
The=20 basic WEB page layout, styles, link behaviours etc, are NOT under the = control of=20 the object hierarchy.  This means that making big functionality = changes,=20 like a new class of room/environment for example, become very = tricky. =20 Making such changes in a text based traditional MOO is almost = trivial=20 once the programmer understands the language syntax and the object = oriented=20 system.
 
Before=20 the hounds are unleashed to chide me for my heresy :-) let me say that = EnCore is=20 a good system precisely because it does not require a lot of coding to = get a=20 functional education and learning environment up and=20 running.
 
We pay=20 for that ease of use in a lack of configurability however.  This = can be=20 readily seen when one looks at EnCore MOOs in general...THEY ALL = LOOK=20 PRETTY MUCH THE SAME.  This is not simply because there is a = common=20 user interface, the Xpress system, but because changing the WEB display = is=20 complex enough to make most non-tech non-programmer Wizards think = twice=20 about making major changes.
 
As an=20 example of how this non-standard style gets in the way, let me briefly = describe=20 a problem I've been fighting with.
 
 I've been trying for several years now to integrate a = more=20 complex room class into my = EnCore v4.1=20 MOO.  The room class I want to use is a "multi-room", that is = a single=20 object that has integrated features like containers and furniture = and an=20 internal virtual Room/Exit structure.  This class is used in my MOO = to=20 represent vehicles, like sailing ships, submarines and airships, as = well as=20 traditional buildings/spaces. As a single object, moving them as ships = or=20 vehicles within the containment hierarchy, to represent movement = through=20 the world, is very easy. Once ported to my MOO they worked flawlessly on = the=20 TEXT side!  
 
As you=20 have already found out, trying to hunt down where the various WEB = display=20 elements come from has been quite a challenge.  A simple example=20 is how the WEB side of the Xpress interface displays these = objects. =20
 
In=20 short it doesn't! 
 
They=20 appear in the WEB display as room objects.  If the user clicks = on=20 them, which with a normal non-room object shows the user the = objects=20 description, they are summarily moved INTO the object!  Since = the=20 internal room/exit structure is not standard the EnCore WEB server has = no clue=20 how to display it and defaults to the entrance room's = description and=20 the contents of the room only. Both these behaviours seriously break the = result=20 the users expected and is confusing.
 
So,=20 what to do?
 
I=20 started rummaging around in the WEB generating code looking for verbs = that I=20 could recreate/modify etc to get Xpress to display the multi-room = as the=20 user would expect. (Reverse engineering as you so aptly put=20 it) 
 
It=20 does not appear to be possible to do that and here is why, the verbs = which=20 generate all this display DO NOT USE THE OBJECT'S VERBS for their = input. =20 So instead of calling the objects version of the "look" and=20 "look_self" verbs to get the description it tries to read the = Objects=20 description property!  This class has to replace the standard look=20 and look_self verbs to handle the virtual room structure and to = make sure=20 objects that are in/under features or in other virtual rooms aren't = displayed. Consequently the description property is never really=20 correct. EnCore does not follow the rules and tries to bypass = the MOO=20 object hierarchy to make it's display thus making such "on the fly" = changes=20 almost impossible to achieve.
 
There=20 is no mechanism to recreate this display process because the enCore = verbs are=20 1) WIZ owned, 2) not really aware of the user in MOO space, 3) = stuck trying to = both generate=20 an interactive display AND generate a WEB display where no user is = really=20 present at all (browsing from the WEB), 4) scattered across several = objects and=20 utilities such that trying to customize them has potentially bad effects = on the=20 system as a whole.
 
End=20 result for me was to actually turn OFF the display of the WEB side = entirely=20 while keeping the rest of the Xpress interface.
 
Certainly not an optimal solution but better than the immersion = breaking=20 that results from Xpress trying to deal with this new class of=20 objects.
 
So,=20 after all that...
 
You=20 seem to have a fairly short time in which to get your system up = so I would=20 recommend that if you don't really need to modify the base EnCore = system=20 you might want to leave it alone and concentrate on working within the=20 limitations. 
 
Unless=20 you really like the challenge of course. :-)
 
I'd be=20 happy to describe/discuss these problems in more detail if you = like on=20 list or off, either way. Maybe there is a better way and I've just = can't=20 see the "forest for the trees".
 
Ciao
KJ
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Kevin=20 Jepson R.E.T.
President
4K Consulting=20 Inc.           &nb= sp;        
An't=20 nanum hearm deth, doth hwaet ye willath.

Email:=20 kevijeps@telusplanet.net
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D



--
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.1.394 / Virus Database: 268.8.1/355 - Release Date: = 02/06/2006

------=_NextPart_000_002D_01C68749.5AA960D0-- From Lirvin@accdvm.accd.edu Sun Jun 4 08:24:10 2006 Received: with ECARTIS (v1.0.0; list encore); Sun, 04 Jun 2006 08:24:10 -0500 (CDT) Return-Path: X-Original-To: encore@nobel.utdallas.edu Delivered-To: encore@nobel.utdallas.edu Received: from iq1.utdallas.edu (iq1-pmn.utdallas.edu [192.168.1.7]) by nobel.utdallas.edu (Postfix) with ESMTP id 0D7285BB3 for ; Sun, 4 Jun 2006 08:24:09 -0500 (CDT) Received: from localhost (mf2-pmn.utdallas.edu [192.168.1.14]) by iq1.utdallas.edu (Postfix) with ESMTP id BB4EE2D00 for ; Sun, 4 Jun 2006 08:24:09 -0500 (CDT) Received: from mx2.utdallas.edu ([129.110.10.17]) by localhost (mf2.utdallas.edu [10.110.10.14]) (amavisd-new, port 10024) with LMTP id 01226-01-23 for ; Sun, 4 Jun 2006 08:24:06 -0500 (CDT) Received: from mx3.lsn.net (mx3.lsn.net [66.90.130.75]) by mx2.utdallas.edu (Postfix) with ESMTP id 3692D3452 for ; Sun, 4 Jun 2006 08:24:06 -0500 (CDT) Received: from Gilgamesh.accdvm.accd.edu (72-48-64-55.dyn.grandenetworks.net [72.48.64.55]) by mx3.lsn.net (8.13.5/8.13.5) with ESMTP id k54DO3Qd009150; Sun, 4 Jun 2006 08:24:05 -0500 Message-Id: <6.2.5.6.0.20060604081206.029a7d70@accdvm.accd.edu> X-Mailer: QUALCOMM Windows Eudora Version 6.2.5.6 Date: Sun, 04 Jun 2006 08:23:56 -0500 To: "Kevin Jepson" , From: Lennie Irvin Subject: [encore] Re: MOO down--help needed!!! Cc: In-Reply-To: <002001c6871d$5c4e3b30$5a0119ac@lilith> References: <6.2.5.6.0.20060603080351.029c7b18@accdvm.accd.edu> <002001c6871d$5c4e3b30$5a0119ac@lilith> Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="=====================_96123781==.ALT" X-Virus-Scanned: ClamAV 0.88.2/1512/Sun Jun 4 04:58:49 2006 on mx0.lsn.net X-Virus-Status: Clean X-Virus-Scanned: amavisd-new at utdallas.edu X-archive-position: 1672 X-ecartis-version: Ecartis v1.0.0 Sender: encore-bounce@utdallas.edu Errors-to: encore-bounce@utdallas.edu X-original-sender: Lirvin@accdvm.accd.edu Precedence: bulk Reply-to: Lirvin@accdvm.accd.edu List-help: List-unsubscribe: List-software: Ecartis version 1.0.0 List-Id: X-List-ID: X-list: encore --=====================_96123781==.ALT Content-Type: text/plain; charset="us-ascii"; format=flowed From what I understand of their situation, they had run out of memory on the previous server. Would that account for the corruption to the backup copy of the database? Tell me if this scenario could be what happened: Every time the moo checkpointed, it backed itself up to the encore.db.new file, but the server said wait a minute, you don't have room and denied the writing of the new version of the file? I don't know? It seems that if they had memory problems on that server it would also have limited their ability to create ANY new objects in the moo. I believe they were active in the moo creating things during this period when the server was supposed to be out of memory. It seems like there would have been an error message even when they created a single object in the moo in this case? It seems like it might be important to pin down the dates for when the server ran out of memory. If you get the exact date, you could find the encore.db.new from the day before the server ran out of memory and see if that version worked. As another option, I presume that the server was having tape backups made of it? If somehow the encore.db.new was not copying but the encore.db.db was able to take new data, then perhaps the tape backup of just the encore.db.db might work? Tim--I hope you are able to get you moo back up and running. Keep us informed! Lennie At 09:52 AM 6/3/2006, Kevin Jepson wrote: >Lennie > >It looks to me like the backup copy of the database is corrupted somehow. > >The standard checkpoint copy is the "encore.db.new" file and it is >always made when the MOO is running so that shouldn't cause a problem.. > >Did this restart error come up when the old MOO was restarted or was >it on the new system? > >As for the procedure to move it (assuming no OS problems with OS X) >I would do this: > >If the old MOO is still running copy encore.db.new from old server. > >On the new server load the encore.db.new file and rename it encore.db. > >Start the new MOO using the standard script. > >Ciao >KJ >-----Original Message----- >From: encore-bounce@utdallas.edu [mailto:encore-bounce@utdallas.edu] >On Behalf Of Lennie Irvin >Sent: June 3, 2006 7:35 AM >To: encore@utdallas.edu >Cc: timothy.miley@wmich.edu >Subject: [encore] MOO down--help needed!!! > >I've been in correspondence with Tim Miley and Allen Webb at >Secondary Worlds about some problems they have had transferring >their moo from one server box to another. Right now, they are >encountering some pretty major problems. They specifically are >having trouble loading a backed up version of the database. I had a >couple of questions to ask that could help them: > >1) Are there any particular problems with moving a moo from a UNIX >box to a Mac OS X box? > >2) Question about restoring a backed up version of the >database: Currently, they have a good copy of the database as a >dbnew.db version (file name has "new" in it). >Can someone confirm this as the proper restore sequence? > >Restoring a db from a dbnew.db version: > >1) Save a copy of your backup dbnew.db file. >2) Rename this file db.db >3) Shut down moo >4) Physically replace the db.db file with the backup copy you just made. >5) Restart the moo > >Am I missing anything with this restore sequence? Here is a >description of what they have currently been doing and the error >they have been receiving: > >*************** >The standard restart script was used. The moo read from the >enCore.db file and wrote to enCore.db.new. A person off site copied >the enCore.db.new file (I believe) while the MOO was running, so >although we have an newer version archived by the offsite user, his >version would not load. It gives the following error: > > >> May 26 14:54:38: VALIDATE: Phase 1: Check for invalid objects ... > >> May 26 14:54:38: VALIDATE: Phase 2: Check for cycles ... > >> May 26 14:54:38: VALIDATE: Phase 3: Check for inconsistencies ... > >> May 26 14:54:38: VALIDATING the object hierarchies ... finished. > >> May 26 14:54:38: LOADING: Reading 2666 MOO verb programs... > >> May 26 14:54:40: LOADING: Done reading 2666 verb programs... > >> May 26 14:54:40: LOADING: Reading forked and suspended tasks... > >> May 26 14:54:40: *** DBIO_READ_NUM: Bad number: "" at file pos. 11526144 > >I would imagine that the problem results from attempting to copy a >database file from a moo that is currently live, and thus constantly changing. >*************************** > >If you have any answers, please reply to the encore list and cc: it >to timothy.miley@wmich.edu > >Thanks for your help! > >Lennie > > > > >-- >No virus found in this outgoing message. >Checked by AVG Free Edition. >Version: 7.1.394 / Virus Database: 268.8.1/355 - Release Date: 02/06/2006 --=====================_96123781==.ALT Content-Type: text/html; charset="us-ascii" From what I understand of their situation, they had run out of memory on the previous server.  Would that account for the corruption to the backup copy of the database?

Tell me if this scenario could be what happened:  Every time the moo checkpointed, it backed itself up to the encore.db.new file, but the server said wait a minute, you don't have room and denied the writing of the new version of the file?  I don't know?  It seems that if they had memory problems on that server it would also have limited their ability to create ANY new objects in the moo.  I believe they were active in the moo creating things during this period when the server was supposed to be out of memory.  It seems like there would have been an error message even when they created a single object in the moo in this case?

It seems like it might be important to pin down the dates for when the server ran out of memory.  If you get the exact date, you could find the encore.db.new from the day before the server ran out of memory and see if that version worked.

As another option, I presume that the server was having tape backups made of it? If somehow the encore.db.new was not copying but the encore.db.db was able to take new data, then perhaps the tape backup of just the encore.db.db might work? 

Tim--I hope you are able to get you moo back up and running.  Keep us informed!

Lennie


At 09:52 AM 6/3/2006, Kevin Jepson wrote:
Lennie
 
It looks to me like the backup copy of the database is corrupted somehow.
 
The standard checkpoint copy is the "encore.db.new" file and it is always made when the MOO is running so that shouldn't cause a problem..
 
Did this restart error come up when the old MOO was restarted or was it on the new system?
 
As for the procedure to move it (assuming no OS problems with OS X) I would do this:
 
If the old MOO is still running copy encore.db.new from old server.
 
On the new server load the encore.db.new file and rename it encore.db.
 
Start the new MOO using the standard script.
 
Ciao
KJ

-----Original Message-----
From: encore-bounce@utdallas.edu [ mailto:encore-bounce@utdallas.edu] On Behalf Of Lennie Irvin
Sent: June 3, 2006 7:35 AM
To: encore@utdallas.edu
Cc: timothy.miley@wmich.edu
Subject: [encore] MOO down--help needed!!!

I've been in correspondence with Tim Miley and Allen Webb at Secondary Worlds about some problems they have had transferring their moo from one server box to another.  Right now, they are encountering some pretty major problems.  They specifically are having trouble loading a backed up version of the database.  I had a couple of questions to ask that could help them:

1) Are there any particular problems with moving a moo from a UNIX box to a Mac OS X box? 

2) Question about restoring a backed up version of the database:  Currently, they have a good copy of the database as a dbnew.db version  (file name has "new" in it).
Can someone confirm this as the proper restore sequence?

Restoring a db from a dbnew.db version:

1) Save a copy of your backup dbnew.db file.
2) Rename this file db.db
3) Shut down moo
4) Physically replace the db.db file with the backup copy you just made.
5) Restart the moo

Am I missing anything with this restore sequence?  Here is a description of what they have currently been doing and the error they have been receiving:

***************
The standard restart script was used.  The moo read from the enCore.db file and wrote to enCore.db.new.  A person off site copied the enCore.db.new file (I believe) while the MOO was running, so although we have an newer version archived by the offsite user, his version would not load.  It gives the following error:

>> May 26 14:54:38: VALIDATE: Phase 1: Check for invalid objects ...
>> May 26 14:54:38: VALIDATE: Phase 2: Check for cycles ...
>> May 26 14:54:38: VALIDATE: Phase 3: Check for inconsistencies ...
>> May 26 14:54:38: VALIDATING the object hierarchies ... finished.
>> May 26 14:54:38: LOADING: Reading 2666 MOO verb programs...
>> May 26 14:54:40: LOADING: Done reading 2666 verb programs...
>> May 26 14:54:40: LOADING: Reading forked and suspended tasks...
>> May 26 14:54:40: *** DBIO_READ_NUM: Bad number: "" at file pos. 11526144

I would imagine that the problem results from attempting to copy a database file from a moo that is currently live, and thus constantly changing.
***************************

If you have any answers, please reply to the encore list and cc: it to timothy.miley@wmich.edu

Thanks for your help!

Lennie

 


--
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.1.394 / Virus Database: 268.8.1/355 - Release Date: 02/06/2006
--=====================_96123781==.ALT-- From kevijeps@telusplanet.net Sun Jun 4 12:35:22 2006 Received: with ECARTIS (v1.0.0; list encore); Sun, 04 Jun 2006 12:35:22 -0500 (CDT) Return-Path: X-Original-To: encore@nobel.utdallas.edu Delivered-To: encore@nobel.utdallas.edu Received: from iq1.utdallas.edu (iq1-pmn.utdallas.edu [192.168.1.7]) by nobel.utdallas.edu (Postfix) with ESMTP id 001175BB3 for ; Sun, 4 Jun 2006 12:35:21 -0500 (CDT) Received: from localhost (mf2-pmn.utdallas.edu [192.168.1.14]) by iq1.utdallas.edu (Postfix) with ESMTP id A5DCC4518 for ; Sun, 4 Jun 2006 12:35:21 -0500 (CDT) Received: from mx2.utdallas.edu ([129.110.10.17]) by localhost (mf2.utdallas.edu [10.110.10.14]) (amavisd-new, port 10024) with LMTP id 13021-01-74 for ; Sun, 4 Jun 2006 12:35:19 -0500 (CDT) Received: from priv-edtnes10.telusplanet.net (outbound02.telus.net [199.185.220.221]) by mx2.utdallas.edu (Postfix) with ESMTP id A46353456 for ; Sun, 4 Jun 2006 12:35:19 -0500 (CDT) Received: from priv-edtnaa06.telusplanet.net ([199.126.223.252]) by priv-edtnes10.telusplanet.net (InterMail vM.6.01.05.04 201-2131-123-105-20051025) with ESMTP id <20060604173518.JOGF8031.priv-edtnes10.telusplanet.net@priv-edtnaa06.telusplanet.net>; Sun, 4 Jun 2006 11:35:18 -0600 Received: from lilith (d199-126-223-252.abhsia.telus.net [199.126.223.252]) by priv-edtnaa06.telusplanet.net (BorderWare MXtreme Infinity Mail Firewall) with ESMTP id 8EF5MSLRFU; Sun, 4 Jun 2006 11:35:17 -0600 (MDT) From: "Kevin Jepson" To: "'Timothy H Miley'" , "'Lennie Irvin'" Cc: Subject: [encore] Re: MOO down--help needed!!! Date: Sun, 4 Jun 2006 11:34:45 -0600 Message-ID: <003901c687fd$2c200750$5a0119ac@lilith> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook, Build 10.0.6626 X-MIMEOLE: Produced By Microsoft MimeOLE V6.00.2900.2869 Importance: Normal In-Reply-To: X-Virus-Scanned: amavisd-new at utdallas.edu X-archive-position: 1673 X-ecartis-version: Ecartis v1.0.0 Sender: encore-bounce@utdallas.edu Errors-to: encore-bounce@utdallas.edu X-original-sender: kevijeps@telusplanet.net Precedence: bulk Reply-to: kevijeps@telusplanet.net List-help: List-unsubscribe: List-software: Ecartis version 1.0.0 List-Id: X-List-ID: X-list: encore Timothy Is the original MOO still up and running? If it is try forcing a checkpoint with @dump then copy that checkpoint = to another server running lambdamoo and see if it starts up. =20 Or, which would be easier, just grab the current .new file and try it. I remember that your MOO had big problems with a failed server back in October and we (Robert Rozema, Michael Stilson and I) were unable to recover/find the backups.=20 I hope you are able to get a copy of the DB that works. Ciao KJ -----Original Message----- From: Timothy H Miley [mailto:timothy.miley@wmich.edu]=20 Sent: June 4, 2006 11:21 AM To: Lennie Irvin Cc: Kevin Jepson; encore@utdallas.edu Subject: Re: RE: [encore] MOO down--help needed!!! From what I saw on the logs, the MOO started reporting errors rather recently, however the backup version that I have from the 25th of April appears truncated. It has an email that ends mid sentence with end of = file. So it's certainly possible that we might try the next oldest copy of the = MOO and be ok. * Timothy H. Miley -- timothy.miley@wmich.edu=20 "Si tuviera que elegir entre pan y libertad, elegir=EDa libertad para = luchar por el pan." -- Written on a wall in Santiago, Chile (Translation: If I had to choose between bread and freedom, I would = choose freedom in order to=20 fight for the bread.) --=20 No virus found in this outgoing message. Checked by AVG Free Edition. Version: 7.1.394 / Virus Database: 268.8.1/355 - Release Date: = 02/06/2006 =20 From cynthia.haynes@gmail.com Sun Jun 4 12:44:11 2006 Received: with ECARTIS (v1.0.0; list encore); Sun, 04 Jun 2006 12:44:11 -0500 (CDT) Return-Path: X-Original-To: encore@nobel.utdallas.edu Delivered-To: encore@nobel.utdallas.edu Received: from iq1.utdallas.edu (iq1-pmn.utdallas.edu [192.168.1.7]) by nobel.utdallas.edu (Postfix) with ESMTP id 87F1C5BB3 for ; Sun, 4 Jun 2006 12:44:11 -0500 (CDT) Received: from localhost (mf2-pmn.utdallas.edu [192.168.1.14]) by iq1.utdallas.edu (Postfix) with ESMTP id 4335A4547 for ; Sun, 4 Jun 2006 12:44:11 -0500 (CDT) Received: from mx2.utdallas.edu ([129.110.10.17]) by localhost (mf2.utdallas.edu [10.110.10.14]) (amavisd-new, port 10024) with LMTP id 14002-01-92 for ; Sun, 4 Jun 2006 12:44:05 -0500 (CDT) Received: from nf-out-0910.google.com (nf-out-0910.google.com [64.233.182.191]) by mx2.utdallas.edu (Postfix) with ESMTP id 703A8346A for ; Sun, 4 Jun 2006 12:44:05 -0500 (CDT) Received: by nf-out-0910.google.com with SMTP id h2so1378506nfe for ; Sun, 04 Jun 2006 10:44:04 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:user-agent:date:subject:from:to:message-id:thread-topic:thread-index:in-reply-to:mime-version:content-type; b=GUuPhXRjuCgz6veqTMa9rREjMsKB68ggic1vmM4b6gYEBbZdtHx2wqd1SeaGEqRDHV3fCDMyNySlP7WTGNrPj2rs0iPk1HXfBw4vb/WHa3KjPmS8apH2OKhxHr6+EG7eZF6XHDMcRBzZtEMfWFGLnkk0VQ3l+B51AX1IzSBbQl8= Received: by 10.48.210.19 with SMTP id i19mr2505419nfg; Sun, 04 Jun 2006 10:44:04 -0700 (PDT) Received: from ?10.0.1.4? ( [80.163.18.182]) by mx.gmail.com with ESMTP id x27sm4561246nfb.2006.06.04.10.44.02; Sun, 04 Jun 2006 10:44:03 -0700 (PDT) User-Agent: Microsoft-Entourage/11.2.3.060209 Date: Sun, 04 Jun 2006 19:42:53 +0200 Subject: [encore] FW: encore: timothy.miley@wmich.edu post From: Cynthia Haynes To: Message-ID: Thread-Topic: encore: timothy.miley@wmich.edu post Thread-Index: AcaH/k4yjORjPPPxEdqwJQAWy5Ijwg== In-Reply-To: Mime-version: 1.0 Content-type: multipart/alternative; boundary="B_3232294980_18448049" X-Virus-Scanned: amavisd-new at utdallas.edu X-archive-position: 1674 X-ecartis-version: Ecartis v1.0.0 Sender: encore-bounce@utdallas.edu Errors-to: encore-bounce@utdallas.edu X-original-sender: cynthia.haynes@gmail.com Precedence: bulk Reply-to: cynthia.haynes@gmail.com List-help: List-unsubscribe: List-software: Ecartis version 1.0.0 List-Id: X-List-ID: X-list: encore > This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible. --B_3232294980_18448049 Content-type: text/plain; charset="US-ASCII" Content-transfer-encoding: 7bit From what I saw on the logs=2C the MOO started reporting errors rather r= ecently=2C however the backup version that I have from the 25th of April= appears truncated=2E It has an email that ends mid sentence with end o= f file=2E So it=27s certainly possible that we might try the next oldest copy of t= he MOO and be ok=2E * Timothy H=2E Miley -- timothy=2Emiley=40wmich=2Eedu = =22Si tuviera que elegir entre pan y libertad=2C elegir=EDa libertad par= a luchar por el pan=2E=22 -- Written on a wall in Santiago=2C Chile (Translation=3A If I had to choose between bread and freedom=2C I would = choose freedom in order to = fight for the bread=2E) ----- Original Message ----- From=3A Lennie Irvin =3CLirvin=40accdvm=2Eaccd=2Eedu=3E Date=3A Sunday=2C June 4=2C 2006 9=3A23 am Subject=3A RE=3A =5Bencore=5D MOO down--help needed!!! =3E From what I understand of their situation=2C they had run out of = =3E memory on the previous server=2E Would that account for the = =3E corruption = =3E to the backup copy of the database=3F =3E = =3E Tell me if this scenario could be what happened=3A Every time the = =3E moo = =3E checkpointed=2C it backed itself up to the encore=2Edb=2Enew file=2C= but = =3E the = =3E server said wait a minute=2C you don=27t have room and denied the = =3E writing = =3E of the new version of the file=3F I don=27t know=3F It seems that = if = =3E they = =3E had memory problems on that server it would also have limited their = =3E ability to create ANY new objects in the moo=2E I believe they were= = =3E active in the moo creating things during this period when the = =3E server = =3E was supposed to be out of memory=2E It seems like there would have = =3E been an error message even when they created a single object in the = =3E moo in this case=3F =3E = =3E It seems like it might be important to pin down the dates for when = =3E the server ran out of memory=2E If you get the exact date=2C you co= uld = =3E find the encore=2Edb=2Enew from the day before the server ran out of= = =3E memory and see if that version worked=2E =3E = =3E As another option=2C I presume that the server was having tape = =3E backups = =3E made of it=3F If somehow the encore=2Edb=2Enew was not copying but t= he = =3E encore=2Edb=2Edb was able to take new data=2C then perhaps the tape = =3E backup = =3E of just the encore=2Edb=2Edb might work=3F =3E = =3E Tim--I hope you are able to get you moo back up and running=2E Keep= = =3E us informed! =3E = =3E Lennie =3E = =3E = =3E At 09=3A52 AM 6/3/2006=2C Kevin Jepson wrote=3A =3E =3ELennie =3E =3E =3E =3EIt looks to me like the backup copy of the database is corrupted = =3E somehow=2E=3E =3E =3EThe standard checkpoint copy is the =22encore=2Edb=2Enew=22 file = and it is = =3E =3Ealways made when the MOO is running so that shouldn=27t cause a = =3E problem=2E=2E=3E =3E =3EDid this restart error come up when the old MOO was restarted or = =3E was = =3E =3Eit on the new system=3F =3E =3E =3E =3EAs for the procedure to move it (assuming no OS problems with OS = =3E X) = =3E =3EI would do this=3A =3E =3E =3E =3EIf the old MOO is still running copy encore=2Edb=2Enew from old s= erver=2E =3E =3E =3E =3EOn the new server load the encore=2Edb=2Enew file and rename it = =3E encore=2Edb=2E=3E =3E =3EStart the new MOO using the standard script=2E =3E =3E =3E =3ECiao =3E =3EKJ =3E =3E-----Original Message----- =3E =3EFrom=3A encore-bounce=40utdallas=2Eedu =5Bencore-bounce=40utdalla= s=2Eedu=5D = =3E =3EOn Behalf Of Lennie Irvin =3E =3ESent=3A June 3=2C 2006 7=3A35 AM =3E =3ETo=3A encore=40utdallas=2Eedu =3E =3ECc=3A timothy=2Emiley=40wmich=2Eedu =3E =3ESubject=3A =5Bencore=5D MOO down--help needed!!! =3E =3E =3E =3EI=27ve been in correspondence with Tim Miley and Allen Webb at = =3E =3ESecondary Worlds about some problems they have had transferring = =3E =3Etheir moo from one server box to another=2E Right now=2C they ar= e = =3E =3Eencountering some pretty major problems=2E They specifically are= = =3E =3Ehaving trouble loading a backed up version of the database=2E I = had = =3E a = =3E =3Ecouple of questions to ask that could help them=3A =3E =3E =3E =3E1) Are there any particular problems with moving a moo from a UNI= X = =3E =3Ebox to a Mac OS X box=3F =3E =3E =3E =3E2) Question about restoring a backed up version of the = =3E =3Edatabase=3A Currently=2C they have a good copy of the database a= s a = =3E =3Edbnew=2Edb version (file name has =22new=22 in it)=2E =3E =3ECan someone confirm this as the proper restore sequence=3F =3E =3E =3E =3ERestoring a db from a dbnew=2Edb version=3A =3E =3E =3E =3E1) Save a copy of your backup dbnew=2Edb file=2E =3E =3E2) Rename this file db=2Edb =3E =3E3) Shut down moo =3E =3E4) Physically replace the db=2Edb file with the backup copy you j= ust = =3E made=2E=3E5) Restart the moo =3E =3E =3E =3EAm I missing anything with this restore sequence=3F Here is a = =3E =3Edescription of what they have currently been doing and the error = =3E =3Ethey have been receiving=3A =3E =3E =3E =3E*************** =3E =3EThe standard restart script was used=2E The moo read from the = =3E =3EenCore=2Edb file and wrote to enCore=2Edb=2Enew=2E A person off = site = =3E copied = =3E =3Ethe enCore=2Edb=2Enew file (I believe) while the MOO was running=2C= so = =3E =3Ealthough we have an newer version archived by the offsite user=2C= = =3E his = =3E =3Eversion would not load=2E It gives the following error=3A =3E =3E =3E =3E =3E=3E May 26 14=3A54=3A38=3A VALIDATE=3A Phase 1=3A Check for i= nvalid objects =2E=2E=2E =3E =3E =3E=3E May 26 14=3A54=3A38=3A VALIDATE=3A Phase 2=3A Check for c= ycles =2E=2E=2E =3E =3E =3E=3E May 26 14=3A54=3A38=3A VALIDATE=3A Phase 3=3A Check for i= nconsistencies =2E=2E=2E =3E =3E =3E=3E May 26 14=3A54=3A38=3A VALIDATING the object hierarchies = =2E=2E=2E finished=2E =3E =3E =3E=3E May 26 14=3A54=3A38=3A LOADING=3A Reading 2666 MOO verb p= rograms=2E=2E=2E =3E =3E =3E=3E May 26 14=3A54=3A40=3A LOADING=3A Done reading 2666 verb = programs=2E=2E=2E =3E =3E =3E=3E May 26 14=3A54=3A40=3A LOADING=3A Reading forked and susp= ended tasks=2E=2E=2E =3E =3E =3E=3E May 26 14=3A54=3A40=3A *** DBIO=5FREAD=5FNUM=3A Bad numbe= r=3A =22=22 at file = =3E pos=2E 11526144 =3E =3E =3E =3EI would imagine that the problem results from attempting to copy = a = =3E =3Edatabase file from a moo that is currently live=2C and thus = =3E constantly changing=2E =3E =3E*************************** =3E =3E =3E =3EIf you have any answers=2C please reply to the encore list and cc= =3A = =3E it = =3E =3Eto timothy=2Emiley=40wmich=2Eedu =3E =3E =3E =3EThanks for your help! =3E =3E =3E =3ELennie =3E =3E =3E =3E =3E =3E =3E =3E =3E =3E-- =3E =3ENo virus found in this outgoing message=2E =3E =3EChecked by AVG Free Edition=2E =3E =3EVersion=3A 7=2E1=2E394 / Virus Database=3A 268=2E8=2E1/355 - Rele= ase Date=3A = =3E 02/06/2006 // eompost 448316A0:1222.1:rapber ------ End of Forwarded Message --B_3232294980_18448049 Content-type: text/html; charset="US-ASCII" Content-transfer-encoding: quoted-printable FW: encore: timothy.miley@wmich.edu post
From what I saw on the logs=3D2C the MOO started reporting errors rather r=3D ecently=3D2C however the backup version that I have from the 25th of April=3D  appears truncated=3D2E  It has an email that ends mid sentence wit= h end o=3D
f file=3D2E

So it=3D27s certainly possible that we might try the next oldest copy of t=3D he MOO and be ok=3D2E

* Timothy H=3D2E Miley   -- timothy=3D2Emiley=3D40wmich=3D2Eedu =3D

=3D22Si tuviera que elegir entre pan y libertad=3D2C elegir=3DEDa libertad par=3D a luchar por el pan=3D2E=3D22
 -- Written on a wall in Santiago=3D2C Chile
(Translation=3D3A If I had to choose between bread and freedom=3D2C I would =3D choose freedom in order to =3D

fight for the bread=3D2E)

----- Original Message -----
From=3D3A Lennie Irvin =3D3CLirvin=3D40accdvm=3D2Eaccd=3D2Eedu=3D3E
Date=3D3A Sunday=3D2C June 4=3D2C 2006 9=3D3A23 am
Subject=3D3A RE=3D3A =3D5Bencore=3D5D MOO down--help needed!!!

=3D3E From what I understand of their situation=3D2C they had run out of =3D

=3D3E memory on the previous server=3D2E  Would that account for the =3D

=3D3E corruption =3D

=3D3E to the backup copy of the database=3D3F
=3D3E =3D

=3D3E Tell me if this scenario could be what happened=3D3A  Every time the= =3D

=3D3E moo =3D

=3D3E checkpointed=3D2C it backed itself up to the encore=3D2Edb=3D2Enew file=3D2C=3D  but =3D

=3D3E the =3D

=3D3E server said wait a minute=3D2C you don=3D27t have room and denied the =3D

=3D3E writing =3D

=3D3E of the new version of the file=3D3F  I don=3D27t know=3D3F  It seem= s that =3D
if =3D

=3D3E they =3D

=3D3E had memory problems on that server it would also have limited their =3D
=3D3E ability to create ANY new objects in the moo=3D2E  I believe they we= re=3D
 =3D

=3D3E active in the moo creating things during this period when the =3D

=3D3E server =3D

=3D3E was supposed to be out of memory=3D2E  It seems like there would hav= e =3D

=3D3E been an error message even when they created a single object in the =3D
=3D3E moo in this case=3D3F
=3D3E =3D

=3D3E It seems like it might be important to pin down the dates for when =3D
=3D3E the server ran out of memory=3D2E  If you get the exact date=3D2C you = co=3D
uld =3D

=3D3E find the encore=3D2Edb=3D2Enew from the day before the server ran out of=3D  =3D

=3D3E memory and see if that version worked=3D2E
=3D3E =3D

=3D3E As another option=3D2C I presume that the server was having tape =3D

=3D3E backups =3D

=3D3E made of it=3D3F If somehow the encore=3D2Edb=3D2Enew was not copying but t=3D he =3D

=3D3E encore=3D2Edb=3D2Edb was able to take new data=3D2C then perhaps the tape =3D
=3D3E backup =3D

=3D3E of just the encore=3D2Edb=3D2Edb might work=3D3F
=3D3E =3D

=3D3E Tim--I hope you are able to get you moo back up and running=3D2E  Ke= ep=3D
 =3D

=3D3E us informed!
=3D3E =3D

=3D3E Lennie
=3D3E =3D

=3D3E =3D

=3D3E At 09=3D3A52 AM 6/3/2006=3D2C Kevin Jepson wrote=3D3A
=3D3E =3D3ELennie
=3D3E =3D3E
=3D3E =3D3EIt looks to me like the backup copy of the database is corrupted =3D
=3D3E somehow=3D2E=3D3E
=3D3E =3D3EThe standard checkpoint copy is the =3D22encore=3D2Edb=3D2Enew=3D22 file =3D and it is =3D

=3D3E =3D3Ealways made when the MOO is running so that shouldn=3D27t cause a =3D
=3D3E problem=3D2E=3D2E=3D3E
=3D3E =3D3EDid this restart error come up when the old MOO was restarted or =3D
=3D3E was =3D

=3D3E =3D3Eit on the new system=3D3F
=3D3E =3D3E
=3D3E =3D3EAs for the procedure to move it (assuming no OS problems with OS =3D
=3D3E X) =3D

=3D3E =3D3EI would do this=3D3A
=3D3E =3D3E
=3D3E =3D3EIf the old MOO is still running copy encore=3D2Edb=3D2Enew from old s=3D erver=3D2E
=3D3E =3D3E
=3D3E =3D3EOn the new server load the encore=3D2Edb=3D2Enew file and rename it =3D
=3D3E encore=3D2Edb=3D2E=3D3E
=3D3E =3D3EStart the new MOO using the standard script=3D2E
=3D3E =3D3E
=3D3E =3D3ECiao
=3D3E =3D3EKJ
=3D3E =3D3E-----Original Message-----
=3D3E =3D3EFrom=3D3A encore-bounce=3D40utdallas=3D2Eedu =3D5Bencore-bounce=3D40utdalla=3D s=3D2Eedu=3D5D =3D

=3D3E =3D3EOn Behalf Of Lennie Irvin
=3D3E =3D3ESent=3D3A June 3=3D2C 2006 7=3D3A35 AM
=3D3E =3D3ETo=3D3A encore=3D40utdallas=3D2Eedu
=3D3E =3D3ECc=3D3A timothy=3D2Emiley=3D40wmich=3D2Eedu
=3D3E =3D3ESubject=3D3A =3D5Bencore=3D5D MOO down--help needed!!!
=3D3E =3D3E
=3D3E =3D3EI=3D27ve been in correspondence with Tim Miley and Allen Webb at =3D

=3D3E =3D3ESecondary Worlds about some problems they have had transferring =3D
=3D3E =3D3Etheir moo from one server box to another=3D2E  Right now=3D2C they = ar=3D
e =3D

=3D3E =3D3Eencountering some pretty major problems=3D2E  They specifically a= re=3D
 =3D

=3D3E =3D3Ehaving trouble loading a backed up version of the database=3D2E  = I =3D
had =3D

=3D3E a =3D

=3D3E =3D3Ecouple of questions to ask that could help them=3D3A
=3D3E =3D3E
=3D3E =3D3E1) Are there any particular problems with moving a moo from a UNI=3D X =3D

=3D3E =3D3Ebox to a Mac OS X box=3D3F
=3D3E =3D3E
=3D3E =3D3E2) Question about restoring a backed up version of the =3D

=3D3E =3D3Edatabase=3D3A  Currently=3D2C they have a good copy of the database= a=3D
s a =3D

=3D3E =3D3Edbnew=3D2Edb version  (file name has =3D22new=3D22 in it)=3D2E
=3D3E =3D3ECan someone confirm this as the proper restore sequence=3D3F
=3D3E =3D3E
=3D3E =3D3ERestoring a db from a dbnew=3D2Edb version=3D3A
=3D3E =3D3E
=3D3E =3D3E1) Save a copy of your backup dbnew=3D2Edb file=3D2E
=3D3E =3D3E2) Rename this file db=3D2Edb
=3D3E =3D3E3) Shut down moo
=3D3E =3D3E4) Physically replace the db=3D2Edb file with the backup copy you j=3D ust =3D

=3D3E made=3D2E=3D3E5) Restart the moo
=3D3E =3D3E
=3D3E =3D3EAm I missing anything with this restore sequence=3D3F  Here is a = =3D

=3D3E =3D3Edescription of what they have currently been doing and the error =3D
=3D3E =3D3Ethey have been receiving=3D3A
=3D3E =3D3E
=3D3E =3D3E***************
=3D3E =3D3EThe standard restart script was used=3D2E  The moo read from the = =3D

=3D3E =3D3EenCore=3D2Edb file and wrote to enCore=3D2Edb=3D2Enew=3D2E  A person of= f =3D
site =3D

=3D3E copied =3D

=3D3E =3D3Ethe enCore=3D2Edb=3D2Enew file (I believe) while the MOO was running=3D2C=3D=
 so =3D

=3D3E =3D3Ealthough we have an newer version archived by the offsite user=3D2C=3D  =3D

=3D3E his =3D

=3D3E =3D3Eversion would not load=3D2E  It gives the following error=3D3A
=3D3E =3D3E
=3D3E =3D3E =3D3E=3D3E May 26 14=3D3A54=3D3A38=3D3A VALIDATE=3D3A Phase 1=3D3A Check for i=3D nvalid objects =3D2E=3D2E=3D2E
=3D3E =3D3E =3D3E=3D3E May 26 14=3D3A54=3D3A38=3D3A VALIDATE=3D3A Phase 2=3D3A Check for c=3D ycles =3D2E=3D2E=3D2E
=3D3E =3D3E =3D3E=3D3E May 26 14=3D3A54=3D3A38=3D3A VALIDATE=3D3A Phase 3=3D3A Check for i=3D nconsistencies =3D2E=3D2E=3D2E
=3D3E =3D3E =3D3E=3D3E May 26 14=3D3A54=3D3A38=3D3A VALIDATING the object hierarchies =3D =3D2E=3D2E=3D2E finished=3D2E
=3D3E =3D3E =3D3E=3D3E May 26 14=3D3A54=3D3A38=3D3A LOADING=3D3A Reading 2666 MOO verb p=3D rograms=3D2E=3D2E=3D2E
=3D3E =3D3E =3D3E=3D3E May 26 14=3D3A54=3D3A40=3D3A LOADING=3D3A Done reading 2666 verb =3D programs=3D2E=3D2E=3D2E
=3D3E =3D3E =3D3E=3D3E May 26 14=3D3A54=3D3A40=3D3A LOADING=3D3A Reading forked and susp=3D ended tasks=3D2E=3D2E=3D2E
=3D3E =3D3E =3D3E=3D3E May 26 14=3D3A54=3D3A40=3D3A *** DBIO=3D5FREAD=3D5FNUM=3D3A Bad numbe=3D r=3D3A =3D22=3D22 at file =3D

=3D3E pos=3D2E 11526144
=3D3E =3D3E
=3D3E =3D3EI would imagine that the problem results from attempting to copy =3D a =3D

=3D3E =3D3Edatabase file from a moo that is currently live=3D2C and thus =3D

=3D3E constantly changing=3D2E
=3D3E =3D3E***************************
=3D3E =3D3E
=3D3E =3D3EIf you have any answers=3D2C please reply to the encore list and cc=3D =3D3A =3D

=3D3E it =3D

=3D3E =3D3Eto timothy=3D2Emiley=3D40wmich=3D2Eedu
=3D3E =3D3E
=3D3E =3D3EThanks for your help!
=3D3E =3D3E
=3D3E =3D3ELennie
=3D3E =3D3E
=3D3E =3D3E
=3D3E =3D3E
=3D3E =3D3E
=3D3E =3D3E--
=3D3E =3D3ENo virus found in this outgoing message=3D2E
=3D3E =3D3EChecked by AVG Free Edition=3D2E
=3D3E =3D3EVersion=3D3A 7=3D2E1=3D2E394 / Virus Database=3D3A 268=3D2E8=3D2E1/355 - Rele=3D ase Date=3D3A =3D

=3D3E 02/06/2006

// eompost 448316A0:1222.1:rapber



------ End of Forwarded Message
--B_3232294980_18448049-- From jean-marc.giffin@acadiau.ca Mon Jun 5 13:26:01 2006 Received: with ECARTIS (v1.0.0; list encore); Mon, 05 Jun 2006 13:26:02 -0500 (CDT) Return-Path: X-Original-To: encore@nobel.utdallas.edu Delivered-To: encore@nobel.utdallas.edu Received: from iq1.utdallas.edu (iq1-pmn.utdallas.edu [192.168.1.7]) by nobel.utdallas.edu (Postfix) with ESMTP id 959D05BCF for ; Mon, 5 Jun 2006 13:26:01 -0500 (CDT) Received: from localhost (mf2-pmn.utdallas.edu [192.168.1.14]) by iq1.utdallas.edu (Postfix) with ESMTP id 60CAB28EB for ; Mon, 5 Jun 2006 13:26:01 -0500 (CDT) Received: from mx2.utdallas.edu ([129.110.10.17]) by localhost (mf2.utdallas.edu [10.110.10.14]) (amavisd-new, port 10024) with LMTP id 08961-01-72 for ; Mon, 5 Jun 2006 13:25:42 -0500 (CDT) Received: from stanley.acadiau.ca (stanley.acadiau.ca [131.162.201.38]) by mx2.utdallas.edu (Postfix) with ESMTP id 3FC873509 for ; Mon, 5 Jun 2006 13:17:40 -0500 (CDT) Received: from localhost (localhost [127.0.0.1]) by stanley.acadiau.ca (Postfix) with ESMTP id B971E19BBC2 for ; Mon, 5 Jun 2006 15:17:39 -0300 (ADT) Received: from stanley.acadiau.ca ([127.0.0.1]) by localhost (helios.acadiau.ca [127.0.0.1]) (amavisd-new, port 10026) with LMTP id 08559-01-9 for ; Mon, 5 Jun 2006 15:17:37 -0300 (ADT) Received: from exchange.ad.acadiau.ca (exchange.acadiau.ca [131.162.200.60]) by stanley.acadiau.ca (Postfix) with ESMTP id 9C5C719BD3A for ; Mon, 5 Jun 2006 15:16:59 -0300 (ADT) X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C688CC.1CD9E961" Subject: [encore] Editing the Front-End Date: Mon, 5 Jun 2006 15:16:06 -0300 Message-ID: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: Editing the Front-End Thread-Index: AcaHe8Ka1EeoVSeWQZGMmjmNnJDIlQBMZWjQ From: "Jean-Marc Giffin" To: X-Virus-Scanned: by amavisd-new at acadiau.ca X-Virus-Scanned: amavisd-new at utdallas.edu X-archive-position: 1675 X-ecartis-version: Ecartis v1.0.0 Sender: encore-bounce@utdallas.edu Errors-to: encore-bounce@utdallas.edu X-original-sender: jean-marc.giffin@acadiau.ca Precedence: bulk Reply-to: jean-marc.giffin@acadiau.ca List-help: List-unsubscribe: List-software: Ecartis version 1.0.0 List-Id: X-List-ID: X-list: encore This is a multi-part message in MIME format. ------_=_NextPart_001_01C688CC.1CD9E961 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hey All, =20 I found something about editing the Front-End that programmers may be very interested in. =20 Last week, Kevin generously took the time to warn me about the difficulties of messing with the encore frontend, and everything he mentions is right. The biggest problems that Kevin correctly points out are mentioned in the following list: =20 1) Object Descriptions - As you have already found out, trying to hunt down where the various WEB display elements come from has been quite a challenge. A simple example is how the WEB side of the Xpress interface displays these objects. In short it doesn't! They appear in the WEB display as room objects. If the user clicks on them, which with a normal non-room object shows the user the objects description, they are summarily moved INTO the object!.. They DO NOT USE THE OBJECT'S VERBS for their input. So instead of calling the objects version of the "look" and "look_self" verbs to get the description it tries to read the Objects description property! Consequently the description property is never really correct. EnCore does not follow the rules and tries to bypass the MOO object hierarchy to make it's display thus making such "on the fly" changes almost impossible to achieve. 2) enCore verbs are =20 a) WIZ owned,=20 =20 b) not really aware of the user in MOO space,=20 =20 c) stuck trying to both generate an interactive display AND generate a WEB display where no user is really present at all (browsing from the WEB),=20 =20 d) scattered across several objects and utilities such that trying to customize them has potentially bad effects on the system as a whole. =20 This presented a challenge, and I wanted to see if I could edit this front-end so that the WEB display was affected. What I tried doing was making it so that your description was dynamically edited, based on which items you were carrying. So for example, if I am wizard and my description is: =20 A wonderful wizard that you must obey, or else... =20 But I were also carrying around the objects "Mangy Cat" and "Pet Rock", then my description would read: =20 A wonderful wizard that you must obey, or else... He carefully carries around a precious pet rock. A mangy cat attaches itself to his back. =20 Of course, if the wizard drops the mangy cat and the pet rock, then his description would return to normal. =20 So how was I going to do this? First I needed to know: =20 a) Where is a player's description located? b) Where is a player's inventory located? c) How can I make this work for ALL players, respective to the items they have? =20 After spending some time looking around, I found my answers: =20 a) The player's description is (simply enough) player.description b) The player's inventory is stored in player.contents (this caused a lot of trouble for a while, because I got this and player.owned_objects mixed up!) c) In order to make the proper changes, I had to edit the "Generic Player", which was object #6 for me. =20 First, the "things" that described the player must have a property that tells what the alteration to the character will be. So I added a property to "$thing" called "describe_player_msg". The reason for "_msg" is that it can be accessed from @messages.=20 =20 For an individual item's "describe_player_msg", I set "Pet Rock"'s using pronoun substitutions. What this does is make it so that if a female has the pet rock, it will say: "She carefully carries around a precious pet rock" But if the player is male, it will say: "He carefully carries around a precious pet rock" =20 So I set Pet Rock's to be: "%S carefully carries around a precious pet rock." =20 Then, to actually get this property, we'll create a verb in $thing called "describe_player_msg()". It only has the code: =20 return this.describe_player_msg; =20 --- =20 Next, I went into #6 (generic player) and added a "describe()" verb. It is always a good idea to make new verbs as much as you can instead of editing existing ones, if it will do the job. I also made a verb "getDescription()". The reason I made two is this: =20 A) describe() actually "tell()"s the player what the description is. B) getDescription() RETURNS the description. =20 The difference is important. So the code for describe() was this: =20 player:tell(getDescription()); =20 and the code for getDescription was this: =20 return this.description; =20 Easy enough! Tested it out, and now when you type something like "describe me", it will say: =20 A wonderful wizard that you must obey, or else... =20 But what we REALLY want is for it to say (assuming that he is carrying the Pet Rock): =20 A wonderful wizard that you must obey, or else... He carefully carries around a precious pet rock =20 So what do we do? We have to modify getDescription() so that it adds on the extra part. First we come up with an algorithm: =20 1. Get the current description 2. Go through the player's contents (inventory) 3. If the current object has the property "describe_player_msg", and it is not blank, add the object's "describe_player_msg" to the player's description, making sure to format the pronoun substitutions. 4. Return the description. =20 The code I came up with is as follows: =20 1: description =3D this.description; 2: for item in (this.contents) 3: if ($object_utils:has_property(item, "describe_player_msg")) 4: if (toobj(item).describe_player_msg) 5: item_desc =3D $string_utils:pronoun_sub(toobj(item):describe_player_msg()); 6: description =3D tostr(description, "
", item_desc); 7: endif 8: endif 9: endfor 10: return description; =20 Now when you type in "describe me" in encore, it will append the "describe_player_msg" to the player's description. =20 But this doesn't change the WEB interface. Here's how I did that: =20 Look in the verb "_html" of "Generic Player". It's return value is "out". Looking backwards, we see that "out" is an append of "out, extra", and is originally gotten from "pass(user)". This means that the parent's "_html" out value will pass through this verb. =20 Working backwards, we now have to go to Generic Player's parent, which is "encore web object". Load it's "_html" verb. =20 The "description" part of it is loaded way at the bottom with the lines: =20 36: description =3D $encore_web_utils:detect_urls(user, this.description); 37: description =3D $encore_web_utils:insert_line_breaks(description); 38: description =3D $encore_web_utils:align($encore_web_utils:p(description), this.text_alignment); =20 Most of the work is done on line 36 there, since the others are just web formatting. So instead, we do this: =20 33: if ($object_utils:has_verb(this, "getDescription")) 34: description =3D this:getDescription(); 35: else 36: description =3D $encore_web_utils:detect_urls(user, this.description); 37: endif =20 So now, if the object DOES have a getDescription(), it will load that up instead, else it will get the regular description. =20 Now, if you observe a player in the WEB interface, it should give you a description that includes the object's added stuff... =20 BUT WAIT! The pronouns are wrong. Instead of "he" or "she", we get "it". I tried a number of ways to change this, and the best way I have found is this: Change the getDescription() verb of player, so that the line: =20 5: item_desc =3D $string_utils:pronoun_sub(toobj(item):describe_player_msg()); =20 To this: =20 5: item_desc =3D $string_utils:pronoun_sub(toobj(item):describe_player_msg(), this); =20 Notice the extra parameter "this". This is an optional parameter of the "pronoun_sub()" verb which explicitedly say "who" the pronoun should be relative to. There are probably some gaps in my explanation, but I have to get back to work! I just wanted to share this, because doing all this took a few hours to narrow down the best methods, what to change, where to change it, etc. So if anyone is editing the web interface of encore, this should save you hours or work. Jean-Marc Giffin =20 -- No virus found in this outgoing message. Checked by AVG Free Edition. Version: 7.1.394 / Virus Database: 268.8.1/355 - Release Date: 02/06/2006 ------_=_NextPart_001_01C688CC.1CD9E961 Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Message

Hey = All,

 

I found something about editing the Front-End that programmers may be very interested = in.

 

Last week, Kevin generously took = the time to warn me about the difficulties of messing with the encore frontend, and everything he mentions is right. The biggest problems that Kevin = correctly points out are mentioned in the following = list:

 

1)       = Object Descriptions - As you have already found out, trying to hunt down where the various WEB display = elements come from has been quite a challenge.  A simple example is how = the WEB side of the Xpress interface displays these objects. In short = it doesn't! They appear in the WEB display as room objects.  = If the user clicks on them, which with a normal non-room object shows the = user the objects description, they are summarily moved INTO the = object!.. They DO NOT USE THE = OBJECT'S VERBS for their input.  So instead of calling the objects version = of the "look" and "look_self" verbs to get the = description it tries to read the Objects description property!  Consequently the description property is never really correct. EnCore does not = follow the rules and tries to bypass the MOO object hierarchy to make = it's display thus making such "on the fly" changes almost = impossible to achieve.

2) = enCore verbs are

 

a) WIZ owned,

 

b) not really aware of the user in MOO space, =

 

c) stuck trying to both generate an interactive display AND = generate a WEB display where no user is really present at all (browsing from the = WEB),

 

d) scattered across several objects and utilities such that = trying to customize them has potentially bad effects on the system as a = whole.

 

This presented a challenge, and I = wanted to see if I could edit this front-end so that the WEB display was = affected.

What I tried doing was making it so = that your description was dynamically edited, based on which items you were carrying. So for example, if I am wizard and my description = is:

 

A wonderful wizard that you must obey, or = else...

 

But I were also carrying around the objects = “Mangy Cat” and “Pet Rock”, then my description would = read:

 

A wonderful wizard that you must obey, or = else...

He carefully carries around a precious pet = rock.

A mangy cat attaches itself to his = back.

 

Of course, if the wizard drops the mangy cat and the pet rock, = then his description would return to normal.

 

So how was I going to do this? First I needed to = know:

 

a)      = Where is a player’s description located?

b)      = Where is a player’s inventory located?

c)       = How can I make this work for ALL players, respective to the items they = have?

 

After spending some time looking around, I found my = answers:

 

a)      = The player’s description is (simply enough) = player.description

b)      = The player’s inventory is stored in player.contents (this caused a lot = of trouble for a while, because I got this and player.owned_objects mixed = up!)

c)       = In order to make the proper changes, I had to edit the “Generic = Player”, which was object #6 for me.

 

First, the “things” that described the player must = have a property that tells what the alteration to the character will be. So I = added a property to “$thing” called = “describe_player_msg”. The reason for “_msg” is that it can be accessed from @messages. =

 

For an individual item’s = “describe_player_msg”, I set “Pet Rock”’s using pronoun substitutions. What this = does is make it so that if a female has the pet rock, it will = say:

“She carefully carries around a precious pet = rock”

But if the player is male, it will = say:

“He carefully carries around a precious pet = rock”

 

So I set Pet Rock’s to be:

“%S carefully carries around a precious pet = rock.”

 

Then, to actually get this property, we’ll create a verb = in $thing called “describe_player_msg()”. It only has the = code:

 

return = this.describe_player_msg;

 

---

 

Next,  I went into #6 (generic player) and added a = “describe()” verb. It is always a good idea to make new verbs as much as you can = instead of editing existing ones, if it will do the job. I also made a verb = “getDescription()”. The reason I made two is this:

 

A)    = describe() actually “tell()”s the player what the description = is.

B)    = getDescription() RETURNS the description.

 

The difference is important. So the code for describe() was = this:

 

player:tell(getDescription= ());

 

and the code for getDescription was = this:

 

return = this.description;

 

Easy enough! Tested it out, and now when you type something like = “describe me”, it will say:

 

A wonderful wizard that you must obey, or = else...

 

But what we REALLY want is for it to say (assuming that he is = carrying the Pet Rock):

 

A wonderful wizard that you must obey, or = else...

He carefully carries around a precious pet = rock

 

So what do we do? We have to modify getDescription() so that it = adds on the extra part.

First we come up with an algorithm:

 

1.      = Get the current description

2.      = Go through the player’s contents (inventory)

3.      = If the current object has the property “describe_player_msg”, = and it is not blank, add the object’s “describe_player_msg” = to the player’s description, making sure to format the pronoun = substitutions.

4.      = Return the description.

 

The code I came up with is as = follows:

 

1: description =3D = this.description;

 2: for item in = (this.contents)

 3:   if = ($object_utils:has_property(item, "describe_player_msg"))

 4:     if (toobj(item).describe_player_msg)

 5:       = item_desc =3D $string_utils:pronoun_sub(toobj(item):describe_player_msg());<= /span>

 6:       = description =3D tostr(description, "<br />", = item_desc);

 7:     = endif

 8:   = endif

 9: endfor

10: return = description;

 

Now when you type in “describe me” in encore, it = will append the “describe_player_msg” to the player’s = description.

 

But this doesn’t change the WEB interface. Here’s = how I did that:

 

Look in the verb “_html” of “Generic = Player”. It’s return value is “out”. Looking backwards, we see = that “out” is an append of “out, extra”, and is originally gotten from = “pass(user)”. This means that the parent’s “_html” out value will = pass through this verb.

 

Working backwards, we now have to go to Generic Player’s = parent, which is “encore web object”. Load it’s = “_html” verb.

 

The “description” part of it is loaded way at the = bottom with the lines:

 

36:   description =3D $encore_web_utils:detect_urls(user, = this.description);

37:   description =3D $encore_web_utils:insert_line_breaks(description);

38:   description =3D $encore_web_utils:align($encore_web_utils:p(description), = this.text_alignment);

 

Most of the work is done on line 36 there, since the others are = just web formatting. So instead, we do this:

 

33:   if ($object_utils:has_verb(this, "getDescription"))

34:     description =3D this:getDescription();

35:   else

36:     description =3D $encore_web_utils:detect_urls(user, = this.description);

37:   endif

 

So now, if the object DOES have a getDescription(), it will load = that up instead, else it will get the regular = description.

 

Now, if you observe a player in the WEB interface, it should = give you a description that includes the object’s added = stuff…

 

BUT WAIT! The pronouns are wrong. Instead of “he” or = “she”, we get “it”. I tried a number of ways to change this, and = the best way I have found is this: Change the getDescription() verb of player, so = that the line:

 

5:       item_desc = =3D $string_utils:pronoun_sub(toobj(item):describe_player_msg());<= /span>

 

To this:

 

5:       item_desc = =3D $string_utils:pronoun_sub(toobj(item):describe_player_msg(), = this);

 

Notice the = extra parameter “this”. This is an optional parameter of the = “pronoun_sub()” verb which explicitedly say “who” the pronoun should be = relative to.

There are = probably some gaps in my explanation, but I have to get back to work! I just wanted to = share this, because doing all this took a few hours to narrow down the best methods, = what to change, where to change it, etc. So if anyone is editing the web = interface of encore, this should save you hours or = work.

Jean-Marc = Giffin

 =


--
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.1.394 / Virus Database: 268.8.1/355 - Release Date: = 02/06/2006

------_=_NextPart_001_01C688CC.1CD9E961-- From kevijeps@telusplanet.net Mon Jun 5 18:17:25 2006 Received: with ECARTIS (v1.0.0; list encore); Mon, 05 Jun 2006 18:17:25 -0500 (CDT) Return-Path: X-Original-To: encore@nobel.utdallas.edu Delivered-To: encore@nobel.utdallas.edu Received: from iq1.utdallas.edu (iq1-pmn.utdallas.edu [192.168.1.7]) by nobel.utdallas.edu (Postfix) with ESMTP id 770F85BCF for ; Mon, 5 Jun 2006 18:17:25 -0500 (CDT) Received: from localhost (mf2-pmn.utdallas.edu [192.168.1.14]) by iq1.utdallas.edu (Postfix) with ESMTP id 29AD5535C for ; Mon, 5 Jun 2006 18:17:25 -0500 (CDT) Received: from mx2.utdallas.edu ([129.110.10.17]) by localhost (mf2.utdallas.edu [10.110.10.14]) (amavisd-new, port 10024) with LMTP id 11238-01-75 for ; Mon, 5 Jun 2006 18:17:20 -0500 (CDT) Received: from priv-edtnes16.telusplanet.net (outbound04.telus.net [199.185.220.223]) by mx2.utdallas.edu (Postfix) with ESMTP id 612F7345C for ; Mon, 5 Jun 2006 18:17:20 -0500 (CDT) Received: from priv-edtnaa06.telusplanet.net ([199.126.223.252]) by priv-edtnes16.telusplanet.net (InterMail vM.6.01.05.04 201-2131-123-105-20051025) with ESMTP id <20060605231719.LEWO9356.priv-edtnes16.telusplanet.net@priv-edtnaa06.telusplanet.net>; Mon, 5 Jun 2006 17:17:19 -0600 Received: from lilith (d199-126-223-252.abhsia.telus.net [199.126.223.252]) by priv-edtnaa06.telusplanet.net (BorderWare MXtreme Infinity Mail Firewall) with ESMTP id 332DKPNT3L; Mon, 5 Jun 2006 17:17:19 -0600 (MDT) From: "Kevin Jepson" To: , Subject: [encore] Re: Editing the Front-End Date: Mon, 5 Jun 2006 17:16:48 -0600 Message-ID: <004f01c688f6$1f0dd390$5a0119ac@lilith> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0050_01C688C3.D4736390" X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook, Build 10.0.6626 X-MIMEOLE: Produced By Microsoft MimeOLE V6.00.2900.2869 Importance: Normal In-Reply-To: X-Virus-Scanned: amavisd-new at utdallas.edu X-archive-position: 1676 X-ecartis-version: Ecartis v1.0.0 Sender: encore-bounce@utdallas.edu Errors-to: encore-bounce@utdallas.edu X-original-sender: kevijeps@telusplanet.net Precedence: bulk Reply-to: kevijeps@telusplanet.net List-help: List-unsubscribe: List-software: Ecartis version 1.0.0 List-Id: X-List-ID: X-list: encore This is a multi-part message in MIME format. ------=_NextPart_000_0050_01C688C3.D4736390 Content-Type: text/plain; charset="windows-1250" Content-Transfer-Encoding: 7bit Jean-Marc Excellant! Way to rise to the challenge :-) Thanks for that clear description of your investigation and solution. I look forward to hearing more about the ways you find to make your system work the way you want it to. Ciao KJ -- No virus found in this outgoing message. Checked by AVG Free Edition. Version: 7.1.394 / Virus Database: 268.8.1/355 - Release Date: 02/06/2006 ------=_NextPart_000_0050_01C688C3.D4736390 Content-Type: text/html; charset="windows-1250" Content-Transfer-Encoding: quoted-printable Message
Jean-Marc
 
Excellant!
 
Way to=20 rise to the challenge :-)
 
Thanks=20 for that clear description of your investigation and=20 solution.
 
I look forward to hearing more about the = ways you find=20 to make your system work the = way you want=20 it to.
 
Ciao
KJ
 

--
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.1.394 / Virus Database: 268.8.1/355 - Release Date: = 02/06/2006

------=_NextPart_000_0050_01C688C3.D4736390-- From jean-marc.giffin@acadiau.ca Tue Jun 6 09:58:50 2006 Received: with ECARTIS (v1.0.0; list encore); Tue, 06 Jun 2006 09:58:50 -0500 (CDT) Return-Path: X-Original-To: encore@nobel.utdallas.edu Delivered-To: encore@nobel.utdallas.edu Received: from iq1.utdallas.edu (iq1-pmn.utdallas.edu [192.168.1.7]) by nobel.utdallas.edu (Postfix) with ESMTP id 1C5AE5BC4 for ; Tue, 6 Jun 2006 09:58:50 -0500 (CDT) Received: from localhost (mf2-pmn.utdallas.edu [192.168.1.14]) by iq1.utdallas.edu (Postfix) with ESMTP id DE45C4A40 for ; Tue, 6 Jun 2006 09:58:49 -0500 (CDT) Received: from mx2.utdallas.edu ([129.110.10.17]) by localhost (mf2.utdallas.edu [10.110.10.14]) (amavisd-new, port 10024) with LMTP id 04770-01-47 for ; Tue, 6 Jun 2006 09:58:43 -0500 (CDT) Received: from stanley.acadiau.ca (stanley.acadiau.ca [131.162.201.38]) by mx2.utdallas.edu (Postfix) with ESMTP id 1A25534F7 for ; Tue, 6 Jun 2006 09:56:51 -0500 (CDT) Received: from localhost (localhost [127.0.0.1]) by stanley.acadiau.ca (Postfix) with ESMTP id 6BB4419AD4B for ; Tue, 6 Jun 2006 11:56:51 -0300 (ADT) Received: from stanley.acadiau.ca ([127.0.0.1]) by localhost (helios.acadiau.ca [127.0.0.1]) (amavisd-new, port 10026) with LMTP id 02212-02-3 for ; Tue, 6 Jun 2006 11:56:48 -0300 (ADT) Received: from exchange.ad.acadiau.ca (exchange.acadiau.ca [131.162.200.60]) by stanley.acadiau.ca (Postfix) with ESMTP id DD68E19ACD6 for ; Tue, 6 Jun 2006 11:56:48 -0300 (ADT) X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C68979.561238A7" Subject: [encore] Builder? Date: Tue, 6 Jun 2006 11:56:29 -0300 Message-ID: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: Builder? Thread-Index: AcaJeWQvvG+Gs+f4Tr2a9AXMtlf5GQ== From: "Jean-Marc Giffin" To: X-Virus-Scanned: by amavisd-new at acadiau.ca X-Virus-Scanned: amavisd-new at utdallas.edu X-archive-position: 1677 X-ecartis-version: Ecartis v1.0.0 Sender: encore-bounce@utdallas.edu Errors-to: encore-bounce@utdallas.edu X-original-sender: jean-marc.giffin@acadiau.ca Precedence: bulk Reply-to: jean-marc.giffin@acadiau.ca List-help: List-unsubscribe: List-software: Ecartis version 1.0.0 List-Id: X-List-ID: X-list: encore This is a multi-part message in MIME format. ------_=_NextPart_001_01C68979.561238A7 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Howdy Encorers, =20 Does anyone know where the class property of whether or not a player is a builder is stored? Basically, I would like to make it so that all new created accounts are builders, but I have not been able to easily find or isolate the location as to where this takes place. =20 Anyone have any ideas? =20 Thanks! =20 Jean-Marc Giffin ------_=_NextPart_001_01C68979.561238A7 Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable

Howdy Encorers,

 

Does anyone know where the class property of whether = or not a player is a builder is stored?

Basically, I would like to make it so that all new = created accounts are builders, but I have not been able to easily find or = isolate the location as to where this takes place.

 

Anyone have any ideas?

 

Thanks!

 

Jean-Marc Giffin

------_=_NextPart_001_01C68979.561238A7-- From jung@uib.no Tue Jun 6 12:11:54 2006 Received: with ECARTIS (v1.0.0; list encore); Tue, 06 Jun 2006 12:11:54 -0500 (CDT) Return-Path: X-Original-To: encore@nobel.utdallas.edu Delivered-To: encore@nobel.utdallas.edu Received: from iq1.utdallas.edu (iq1-pmn.utdallas.edu [192.168.1.7]) by nobel.utdallas.edu (Postfix) with ESMTP id 71D845BC4 for ; Tue, 6 Jun 2006 12:11:54 -0500 (CDT) Received: from localhost (mf2-pmn.utdallas.edu [192.168.1.14]) by iq1.utdallas.edu (Postfix) with ESMTP id 22DF64C40 for ; Tue, 6 Jun 2006 12:11:54 -0500 (CDT) Received: from mx2.utdallas.edu ([129.110.10.17]) by localhost (mf2.utdallas.edu [10.110.10.14]) (amavisd-new, port 10024) with LMTP id 18694-01-53 for ; Tue, 6 Jun 2006 12:11:47 -0500 (CDT) Received: from noralf.uib.no (noralf.uib.no [129.177.30.12]) by mx2.utdallas.edu (Postfix) with ESMTP id 1FD433557 for ; Tue, 6 Jun 2006 11:55:51 -0500 (CDT) Received: from alfred.uib.no (smtp.uib.no) [129.177.30.120] by noralf.uib.no for encore@utdallas.edu with esmtp (Exim 4.34) id 1FneqM-0004sL-3a; Tue, 06 Jun 2006 18:55:50 +0200 Received: from 117.84-48-30.nextgentel.com ([10.24.104.19]) [84.48.30.117] by smtp.uib.no for encore@utdallas.edu with esmtp (Exim 4.34) id 1FneqL-0006wk-SU; Tue, 06 Jun 2006 18:55:49 +0200 Message-ID: <4485B39A.2050707@uib.no> Date: Tue, 06 Jun 2006 18:55:54 +0200 From: Daniel Jung User-Agent: Mozilla Thunderbird 0.8 (Windows/20040913) X-Accept-Language: en-us, en MIME-Version: 1.0 Cc: encore@utdallas.edu Subject: [encore] Re: Builder? References: In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-checked-clean: by exiscan on noralf X-Scanner: c1e660cabceb8de318c2d69c0ae297ea http://tjinfo.uib.no/virus.html X-UiB-SpamFlag: NO UIB: 4 hits, 8.0 required X-UiB-SpamReport: spamassassin found; 4.0 BODY: Probably more lottery X-Virus-Scanned: amavisd-new at utdallas.edu X-archive-position: 1678 X-ecartis-version: Ecartis v1.0.0 Sender: encore-bounce@utdallas.edu Errors-to: encore-bounce@utdallas.edu X-original-sender: jung@uib.no Precedence: bulk Reply-to: jung@uib.no List-help: List-unsubscribe: List-software: Ecartis version 1.0.0 List-Id: X-List-ID: X-list: encore Jean-Marc Giffin wrote: > Howdy Encorers, > > > > Does anyone know where the class property of whether or not a player is > a builder is stored? It's a class, not a property. The tree is something like that: . $player |- $mail_recipient_class |-- $player (Frand's Player Class) |--- $builder |---- $prog '----- $wiz When you create an account, the "default creation player class" is used as template to create the accounts. This information is stored in $player_class. Do this eval $player_class It should give you something like => #90 (Frand's Player Class) If you want to chacnge it to builder, do this: @set #0.player_class to $builder Done. BTW in Xpress, you can easily choose the parent of a batch with a radio button at each creation batch. For later change of an account level, change-parent the player. Do this: @chparent #xxx to $builder where xxx is the number of the player, of course. - Daniel From Lirvin@accdvm.accd.edu Wed Jun 7 06:30:15 2006 Received: with ECARTIS (v1.0.0; list encore); Wed, 07 Jun 2006 06:30:15 -0500 (CDT) Return-Path: X-Original-To: encore@nobel.utdallas.edu Delivered-To: encore@nobel.utdallas.edu Received: from iq1.utdallas.edu (iq1-pmn.utdallas.edu [192.168.1.7]) by nobel.utdallas.edu (Postfix) with ESMTP id E9E635BB0 for ; Wed, 7 Jun 2006 06:30:14 -0500 (CDT) Received: from localhost (mf2-pmn.utdallas.edu [192.168.1.14]) by iq1.utdallas.edu (Postfix) with ESMTP id C1E724C0E for ; Wed, 7 Jun 2006 06:30:14 -0500 (CDT) Received: from mx2.utdallas.edu ([129.110.10.17]) by localhost (mf2.utdallas.edu [10.110.10.14]) (amavisd-new, port 10024) with LMTP id 05744-01-50 for ; Wed, 7 Jun 2006 06:30:13 -0500 (CDT) Received: from mx3.lsn.net (mx3.lsn.net [66.90.130.75]) by mx2.utdallas.edu (Postfix) with ESMTP id DA45634B4 for ; Wed, 7 Jun 2006 06:30:12 -0500 (CDT) Received: from Gilgamesh.accdvm.accd.edu (72-48-64-55.dyn.grandenetworks.net [72.48.64.55]) by mx3.lsn.net (8.13.5/8.13.5) with ESMTP id k57BTkmM022021 for ; Wed, 7 Jun 2006 06:30:13 -0500 Message-Id: <6.2.5.6.0.20060607062716.028d3298@accdvm.accd.edu> X-Mailer: QUALCOMM Windows Eudora Version 6.2.5.6 Date: Wed, 07 Jun 2006 06:29:43 -0500 To: encore@utdallas.edu From: Lennie Irvin Subject: [encore] Subject matter experts needed for doc project Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed X-Virus-Scanned: ClamAV 0.88.2/1517/Tue Jun 6 19:05:07 2006 on mx0.lsn.net X-Virus-Status: Clean X-Virus-Scanned: amavisd-new at utdallas.edu X-archive-position: 1679 X-ecartis-version: Ecartis v1.0.0 Sender: encore-bounce@utdallas.edu Errors-to: encore-bounce@utdallas.edu X-original-sender: Lirvin@accdvm.accd.edu Precedence: bulk Reply-to: Lirvin@accdvm.accd.edu List-help: List-unsubscribe: List-software: Ecartis version 1.0.0 List-Id: X-List-ID: X-list: encore I need a couple people willing to be on call as "subject matter experts" to the writers working on the documentation project for enCore v5 High Five. These writers will at times have questions about what something is or how something works within enCore, and I'd like to have a few people "on call" so to speak to provide timely answers to them. If you are interested and able to help, please let me know and I'll provide more details. Thanks, Lennie From jean-marc.giffin@acadiau.ca Fri Jun 9 11:42:48 2006 Received: with ECARTIS (v1.0.0; list encore); Fri, 09 Jun 2006 11:42:48 -0500 (CDT) Return-Path: X-Original-To: encore@nobel.utdallas.edu Delivered-To: encore@nobel.utdallas.edu Received: from iq1.utdallas.edu (iq1-pmn.utdallas.edu [192.168.1.7]) by nobel.utdallas.edu (Postfix) with ESMTP id 773485BAD for ; Fri, 9 Jun 2006 11:42:48 -0500 (CDT) Received: from localhost (mf2-pmn.utdallas.edu [192.168.1.14]) by iq1.utdallas.edu (Postfix) with ESMTP id 29531A464 for ; Fri, 9 Jun 2006 11:42:48 -0500 (CDT) Received: from mx2.utdallas.edu ([129.110.10.17]) by localhost (mf2.utdallas.edu [10.110.10.14]) (amavisd-new, port 10024) with LMTP id 03463-01-35 for ; Fri, 9 Jun 2006 11:42:40 -0500 (CDT) Received: from stanley.acadiau.ca (stanley.acadiau.ca [131.162.201.38]) by mx2.utdallas.edu (Postfix) with ESMTP id 82BC33674 for ; Fri, 9 Jun 2006 11:34:50 -0500 (CDT) Received: from localhost (localhost [127.0.0.1]) by stanley.acadiau.ca (Postfix) with ESMTP id CBC0019ACA5 for ; Fri, 9 Jun 2006 13:34:49 -0300 (ADT) Received: from stanley.acadiau.ca ([127.0.0.1]) by localhost (helios.acadiau.ca [127.0.0.1]) (amavisd-new, port 10026) with LMTP id 66288-02 for ; Fri, 9 Jun 2006 13:34:48 -0300 (ADT) Received: from exchange.ad.acadiau.ca (exchange.acadiau.ca [131.162.200.60]) by stanley.acadiau.ca (Postfix) with ESMTP id A7FD419ACC6 for ; Fri, 9 Jun 2006 13:34:48 -0300 (ADT) X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C68BE2.9F99BF2F" Subject: [encore] Special Characters? Date: Fri, 9 Jun 2006 13:35:07 -0300 Message-ID: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: Special Characters? Thread-Index: AcaL4qq+ynpWGowRQw+ZkIpI0q6erA== From: "Jean-Marc Giffin" To: X-Virus-Scanned: by amavisd-new at acadiau.ca X-Virus-Scanned: amavisd-new at utdallas.edu X-archive-position: 1680 X-ecartis-version: Ecartis v1.0.0 Sender: encore-bounce@utdallas.edu Errors-to: encore-bounce@utdallas.edu X-original-sender: jean-marc.giffin@acadiau.ca Precedence: bulk Reply-to: jean-marc.giffin@acadiau.ca List-help: List-unsubscribe: List-software: Ecartis version 1.0.0 List-Id: X-List-ID: X-list: encore This is a multi-part message in MIME format. ------_=_NextPart_001_01C68BE2.9F99BF2F Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hey Encoreneers, =20 I know this should be easy to know and locate, but I can't seem to actually find it. =20 I'm trying to make a string from a list, so I use: =20 $string_utils:from_list(the_string_to_seperate, " "); =20 However, instead of a SPACE separator, I want newlines. =20 What are the special characters in Encore? For example, what are the characters for newline and tabs? =20 I'm used to it being "\n" or "\t", but those get stripped by the parser, so it isn't those, and I can't seem to find any reference to them in documentation... =20 Anyone know? =20 Thanks! =20 Jean Of mArc ------_=_NextPart_001_01C68BE2.9F99BF2F Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable

Hey Encoreneers,

 

I know this should be easy to know and locate, but I = can’t seem to actually find it.

 

I’m trying to make a string from a list, so I = use:

 

$string_utils:from_list(the_string_to_seperate, = “ “);

 

However, instead of a SPACE separator, I want = newlines.

 

What are the special characters in Encore? For = example, what are the characters for newline and tabs?

 

I’m used to it being “\n” or = “\t”, but those get stripped by the parser, so it isn’t those, and I = can’t seem to find any reference to them in = documentation…

 

Anyone know?

 

Thanks!

 

Jean Of mArc

------_=_NextPart_001_01C68BE2.9F99BF2F-- From jean-marc.giffin@acadiau.ca Mon Jun 12 13:44:40 2006 Received: with ECARTIS (v1.0.0; list encore); Mon, 12 Jun 2006 13:44:40 -0500 (CDT) Return-Path: X-Original-To: encore@nobel.utdallas.edu Delivered-To: encore@nobel.utdallas.edu Received: from iq1.utdallas.edu (iq1-pmn.utdallas.edu [192.168.1.7]) by nobel.utdallas.edu (Postfix) with ESMTP id 49CCD5C6C for ; Mon, 12 Jun 2006 13:44:40 -0500 (CDT) Received: from localhost (mf2-pmn.utdallas.edu [192.168.1.14]) by iq1.utdallas.edu (Postfix) with ESMTP id 174FE4C41 for ; Mon, 12 Jun 2006 13:44:40 -0500 (CDT) Received: from mx2.utdallas.edu ([129.110.10.17]) by localhost (mf2.utdallas.edu [10.110.10.14]) (amavisd-new, port 10024) with LMTP id 04354-01-3 for ; Mon, 12 Jun 2006 13:44:33 -0500 (CDT) Received: from stanley.acadiau.ca (stanley.acadiau.ca [131.162.201.38]) by mx2.utdallas.edu (Postfix) with ESMTP id 0BD05361B for ; Mon, 12 Jun 2006 13:32:13 -0500 (CDT) Received: from localhost (localhost [127.0.0.1]) by stanley.acadiau.ca (Postfix) with ESMTP id F110419AD8F for ; Mon, 12 Jun 2006 15:32:04 -0300 (ADT) Received: from stanley.acadiau.ca ([127.0.0.1]) by localhost (helios.acadiau.ca [127.0.0.1]) (amavisd-new, port 10026) with LMTP id 97712-01-7 for ; Mon, 12 Jun 2006 15:32:04 -0300 (ADT) Received: from exchange.ad.acadiau.ca (exchange.acadiau.ca [131.162.200.60]) by stanley.acadiau.ca (Postfix) with ESMTP id F11C419AD84 for ; Mon, 12 Jun 2006 15:32:03 -0300 (ADT) X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C68E4E.80458B6D" Subject: [encore] Sort Lists Date: Mon, 12 Jun 2006 15:32:19 -0300 Message-ID: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: Sort Lists Thread-Index: AcaL4qq+ynpWGowRQw+ZkIpI0q6erACa7c4g From: "Jean-Marc Giffin" To: X-Virus-Scanned: by amavisd-new at acadiau.ca X-Virus-Scanned: amavisd-new at utdallas.edu X-archive-position: 1681 X-ecartis-version: Ecartis v1.0.0 Sender: encore-bounce@utdallas.edu Errors-to: encore-bounce@utdallas.edu X-original-sender: jean-marc.giffin@acadiau.ca Precedence: bulk Reply-to: jean-marc.giffin@acadiau.ca List-help: List-unsubscribe: List-software: Ecartis version 1.0.0 List-Id: X-List-ID: X-list: encore This is a multi-part message in MIME format. ------_=_NextPart_001_01C68E4E.80458B6D Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable I guess no one is quite sure about the special characters issues, since no one has responded yet. =20 Is there a way to sort lists alphabetically? I haven't found anything to do so yet... =20 Thanks! =20 Jean-Marc Giffin ------_=_NextPart_001_01C68E4E.80458B6D Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable

I guess no one is quite sure about = the special characters issues, since no one has responded = yet.

 

Is there a way to sort lists alphabetically? I haven’t found anything to do so = yet…

 

Thanks!

=

 

Jean-Marc = Giffin

------_=_NextPart_001_01C68E4E.80458B6D-- From kevijeps@telusplanet.net Mon Jun 12 17:48:12 2006 Received: with ECARTIS (v1.0.0; list encore); Mon, 12 Jun 2006 17:48:12 -0500 (CDT) Return-Path: X-Original-To: encore@nobel.utdallas.edu Delivered-To: encore@nobel.utdallas.edu Received: from iq1.utdallas.edu (iq1-pmn.utdallas.edu [192.168.1.7]) by nobel.utdallas.edu (Postfix) with ESMTP id DADDC5C6C for ; Mon, 12 Jun 2006 17:48:11 -0500 (CDT) Received: from localhost (mf2-pmn.utdallas.edu [192.168.1.14]) by iq1.utdallas.edu (Postfix) with ESMTP id BA8A34EA7 for ; Mon, 12 Jun 2006 17:48:11 -0500 (CDT) Received: from mx2.utdallas.edu ([129.110.10.17]) by localhost (mf2.utdallas.edu [10.110.10.14]) (amavisd-new, port 10024) with LMTP id 01024-01-68 for ; Mon, 12 Jun 2006 17:48:08 -0500 (CDT) Received: from priv-edmwes33.telusplanet.net (defout.telus.net [204.209.205.55]) by mx2.utdallas.edu (Postfix) with ESMTP id 6855F344F for ; Mon, 12 Jun 2006 17:48:08 -0500 (CDT) Received: from priv-edmwaa06.telusplanet.net ([199.126.223.252]) by priv-edmwes33.telusplanet.net (InterMail vM.6.01.05.04 201-2131-123-105-20051025) with ESMTP id <20060612224806.FNAT5519.priv-edmwes33.telusplanet.net@priv-edmwaa06.telusplanet.net>; Mon, 12 Jun 2006 16:48:06 -0600 Received: from lilith (d199-126-223-252.abhsia.telus.net [199.126.223.252]) by priv-edmwaa06.telusplanet.net (BorderWare MXtreme Infinity Mail Firewall) with ESMTP id DCBAJC0VQ3; Mon, 12 Jun 2006 16:48:06 -0600 (MDT) From: "Kevin Jepson" To: , Subject: [encore] Re: Sort Lists Date: Mon, 12 Jun 2006 16:48:06 -0600 Message-ID: <000401c68e72$45cf5770$5a0119ac@lilith> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0005_01C68E3F.FB397B50" X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook, Build 10.0.6626 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2869 Importance: Normal In-Reply-To: X-Virus-Scanned: amavisd-new at utdallas.edu X-archive-position: 1682 X-ecartis-version: Ecartis v1.0.0 Sender: encore-bounce@utdallas.edu Errors-to: encore-bounce@utdallas.edu X-original-sender: kevijeps@telusplanet.net Precedence: bulk Reply-to: kevijeps@telusplanet.net List-help: List-unsubscribe: List-software: Ecartis version 1.0.0 List-Id: X-List-ID: X-list: encore This is a multi-part message in MIME format. ------=_NextPart_000_0005_01C68E3F.FB397B50 Content-Type: text/plain; charset="windows-1250" Content-Transfer-Encoding: quoted-printable Hi Jean Marc =20 Try the $list_utils. Here is the help file for them: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D List utilities (#55): ---- append (list,list,..) =3D> result of concatenating the given = lists reverse (list) =3D> reversed list remove_duplicates (list) =3D> list with all duplicates removed compress (list) =3D> list with consecutive duplicates = removed setremove_all (list,elt) =3D> list with all occurrences of elt = removed find_insert (sortedlist,e) =3D> index of first element > e in = sortedlist sort (list[,keys]) =3D> sorted list count (elt,list) =3D> count of elt found in list. flatten (list) =3D> flatten all recursive lists into = one list randomly_permute (list) =3D> list with elements randomly = permuted longest (list) =3D> longest in list (consisting of str = or list) shortest (list) =3D> shortest in list (as above) =20 make (n[,e]) =3D> list of n copies of e range (m,n) =3D> {m,m+1,...,n} =20 arrayset (list,val,i[,j,k...]) =3D> array modified so that list[i][j][k]=3D=3Dval =20 -- Mapping functions (take a list and do something to each element): =20 map_prop ({o...},prop) =3D> list of o.(prop) for = all o map_verb ({o...},verb[,args]) =3D> list of o:(verb)(@args) = for all o map_arg ([n,]obj,verb,{a...},args) =3D> list of obj:(verb)(a,@args) for = all a map_builtin (objectlist, function) =3D> applies function to all in = objectlist =20 -- Association list functions -- =20 An association list (alist) is a list of pairs (2-element lists), though = the following functions have been generalized for lists of n-tuples = (n-element lists). In each case i defaults to 1. =20 assoc (targ,alist[,i]) =3D> 1st tuple in alist whose i-th element = is targ iassoc (targ,alist[,i]) =3D> index of same. assoc_prefix (targ,alist[,i]) =3D> ... whose i-th element has targ as a = prefix iassoc_prefix(targ,alist[,i]) =3D> index of same. iassoc_sorted(targ,slist[,i]) =3D> index of last element in sortedlist = <=3D targ slice (alist[,i]) =3D> list of i-th elements sort_alist (alist[,i]) =3D> alist sorted on i-th elements. =20 -- Functions that suspend -- =20 Each of these either suspends(0) as needed or takes an interval in = seconds for the suspend as a first argument. See help $list_utils:. =20 sort_suspended iassoc_suspended sort_alist_suspended reverse_suspended randomly_permute_suspended =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =20 There are several sorts there. :-) =20 Ciao KJ =20 -----Original Message----- From: encore-bounce@utdallas.edu [mailto:encore-bounce@utdallas.edu] On Behalf Of Jean-Marc Giffin Sent: June 12, 2006 12:32 PM To: encore@utdallas.edu Subject: [encore] Sort Lists I guess no one is quite sure about the special characters issues, since = no one has responded yet. =20 Is there a way to sort lists alphabetically? I haven=92t found anything = to do so yet=85 =20 Thanks! =20 Jean-Marc Giffin -- No virus found in this incoming message. Checked by AVG Free Edition. Version: 7.1.394 / Virus Database: 268.8.3/361 - Release Date: = 11/06/2006 --=20 No virus found in this outgoing message. Checked by AVG Free Edition. Version: 7.1.394 / Virus Database: 268.8.3/361 - Release Date: = 11/06/2006 =20 ------=_NextPart_000_0005_01C68E3F.FB397B50 Content-Type: text/html; charset="windows-1250" Content-Transfer-Encoding: quoted-printable Message
Hi=20 Jean Marc
 
Try=20 the $list_utils.
Here=20 is the help file for them:
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D
List=20 utilities=20 (#55):
----
append        &= nbsp;  =20 (list,list,..) =3D> result of concatenating the given=20 lists
reverse         &nb= sp;=20 (list)         =3D> reversed=20 list
remove_duplicates = (list)        =20 =3D> list with all duplicates=20 removed
compress         = =20 (list)         =3D> list with = consecutive duplicates removed
setremove_all    =20 (list,elt)     =3D> list with all occurrences of = elt=20 removed
find_insert       = (sortedlist,e) =3D>=20 index of first element > e in=20 sortedlist
sort         &= nbsp;   =20 (list[,keys])  =3D> sorted=20 list
count          =   =20 (elt,list)     =3D> count of elt found in=20 list.
flatten         &nb= sp;=20 (list)         =3D> flatten = all=20 recursive lists into one list
randomly_permute =20 (list)         =3D> list with = elements=20 randomly=20 permuted
longest         =  =20 (list)         =3D> longest = in list=20 (consisting of str or=20 list)
shortest         =20 (list)         =3D> shortest = in list=20 (as above)
 
make          =    =20 (n[,e])        =3D> list of n = copies of=20 e
range          &nb= sp; =20 (m,n)          =3D>=20 {m,m+1,...,n}
 
arrayset   (list,val,i[,j,k...]) =3D> array = modified so that=20 list[i][j][k]=3D=3Dval
 
--=20 Mapping functions (take a list and do something to each=20 element):
 
map_prop=20 ({o...},prop)          =    =20 =3D> list of=20 o.(prop)           = ; for=20 all o
map_verb = ({o...},verb[,args])       =20 =3D> list of o:(verb)(@args)     for all = o
map_arg =20 ([n,]obj,verb,{a...},args) =3D> list of obj:(verb)(a,@args) for all=20 a
map_builtin (objectlist, function)  =3D> applies function = to all in=20 objectlist
 
--=20 Association list functions --
 
An=20 association list (alist) is a list of pairs (2-element lists), though = the=20 following functions have been generalized for lists of n-tuples = (n-element=20 lists).  In each case i defaults to 1.
 
assoc        = (targ,alist[,i]) =3D>=20 1st tuple in alist whose i-th element is=20 targ
iassoc       (targ,alist[,i]) = =3D> index=20 of same.
assoc_prefix (targ,alist[,i]) =3D> ... whose i-th element = has targ=20 as a prefix
iassoc_prefix(targ,alist[,i]) =3D> index of=20 same.
iassoc_sorted(targ,slist[,i]) =3D> index of last element in = sortedlist=20 <=3D=20 targ
slice          =   =20 (alist[,i]) =3D> list of i-th=20 elements
sort_alist        = (alist[,i])=20 =3D> alist sorted on i-th elements.
 
--=20 Functions that suspend --
 
Each=20 of these either suspends(0) as needed or takes an interval in seconds = for the=20 suspend as a first argument. See help=20 $list_utils:<verb>.
 
sort_suspended        &n= bsp;=20 iassoc_suspended         =20 sort_alist_suspended
reverse_suspended     &n= bsp;=20 randomly_permute_suspended
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
 
There=20 are several sorts there. :-)
 
Ciao
KJ
 
-----Original Message-----
From:=20 encore-bounce@utdallas.edu [mailto:encore-bounce@utdallas.edu] On = Behalf Of=20 Jean-Marc Giffin
Sent: June 12, 2006 12:32 = PM
To:=20 encore@utdallas.edu
Subject: [encore] Sort=20 Lists

I guess no = one is=20 quite sure about the special characters issues, since no one has = responded=20 yet.

 

Is there a = way to=20 sort lists alphabetically? I haven=92t found anything to do so=20 yet=85

 

Thanks!

 

Jean-Marc=20 Giffin


--
No virus found in this incoming = message.
Checked by=20 AVG Free Edition.
Version: 7.1.394 / Virus Database: 268.8.3/361 - = Release=20 Date: 11/06/2006


--
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.1.394 / Virus Database: 268.8.3/361 - Release Date: = 11/06/2006

------=_NextPart_000_0005_01C68E3F.FB397B50-- From jean-marc.giffin@acadiau.ca Tue Jun 13 09:17:31 2006 Received: with ECARTIS (v1.0.0; list encore); Tue, 13 Jun 2006 09:17:31 -0500 (CDT) Return-Path: X-Original-To: encore@nobel.utdallas.edu Delivered-To: encore@nobel.utdallas.edu Received: from iq1.utdallas.edu (iq1-pmn.utdallas.edu [192.168.1.7]) by nobel.utdallas.edu (Postfix) with ESMTP id 5A9EA5C86 for ; Tue, 13 Jun 2006 09:17:31 -0500 (CDT) Received: from localhost (mf2-pmn.utdallas.edu [192.168.1.14]) by iq1.utdallas.edu (Postfix) with ESMTP id EB55D51FC for ; Tue, 13 Jun 2006 09:17:30 -0500 (CDT) Received: from mx2.utdallas.edu ([129.110.10.17]) by localhost (mf2.utdallas.edu [10.110.10.14]) (amavisd-new, port 10024) with LMTP id 23562-01-54 for ; Tue, 13 Jun 2006 09:17:27 -0500 (CDT) Received: from stanley.acadiau.ca (stanley.acadiau.ca [131.162.201.38]) by mx2.utdallas.edu (Postfix) with ESMTP id 17F033463 for ; Tue, 13 Jun 2006 09:17:27 -0500 (CDT) Received: from localhost (localhost [127.0.0.1]) by stanley.acadiau.ca (Postfix) with ESMTP id 4574F19BB59; Tue, 13 Jun 2006 11:17:26 -0300 (ADT) Received: from stanley.acadiau.ca ([127.0.0.1]) by localhost (helios.acadiau.ca [127.0.0.1]) (amavisd-new, port 10026) with LMTP id 77837-01-2; Tue, 13 Jun 2006 11:17:22 -0300 (ADT) Received: from exchange.ad.acadiau.ca (exchange.acadiau.ca [131.162.200.60]) by stanley.acadiau.ca (Postfix) with ESMTP id 862D119AD0D; Tue, 13 Jun 2006 11:17:22 -0300 (ADT) X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C68EF3.F206ABAB" Subject: [encore] Re: Sort Lists Date: Tue, 13 Jun 2006 11:16:36 -0300 Message-ID: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [encore] Sort Lists Thread-Index: AcaOck+TruzUEQodSM2Hbc7+VoMPaQAgVdHg From: "Jean-Marc Giffin" To: "Kevin Jepson" , , X-Virus-Scanned: by amavisd-new at acadiau.ca X-Virus-Scanned: amavisd-new at utdallas.edu X-archive-position: 1683 X-ecartis-version: Ecartis v1.0.0 Sender: encore-bounce@utdallas.edu Errors-to: encore-bounce@utdallas.edu X-original-sender: jean-marc.giffin@acadiau.ca Precedence: bulk Reply-to: jean-marc.giffin@acadiau.ca List-help: List-unsubscribe: List-software: Ecartis version 1.0.0 List-Id: X-List-ID: X-list: encore This is a multi-part message in MIME format. ------_=_NextPart_001_01C68EF3.F206ABAB Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hey Kevin, =20 I've already looked at the API for the $list_utils, but did not find them helpful. In particular, I've been trying to use the $list_utils:sort() function, but it taks in a "list" and "[keys]" as parameters. The problem is, I'm not quite sure how to indicate that I want the list sorted alphabetically... What makes it even harder is that the list is a list of object names, not direct strings, but the resulting list needs to be a list of objects, sorted by their name alphabetically, not by object number... =20 Right now though, I'm just trying to find a good way of getting the list sorted. =20 Thanks, =20 Jean-Marc Giffin =20 ________________________________ From: Kevin Jepson [mailto:kevijeps@telusplanet.net]=20 Sent: Monday, June 12, 2006 7:48 PM To: jean-marc.giffin@acadiau.ca; encore@utdallas.edu Subject: RE: [encore] Sort Lists =20 Hi Jean Marc =20 Try the $list_utils. Here is the help file for them: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D List utilities (#55): ---- append (list,list,..) =3D> result of concatenating the given lists reverse (list) =3D> reversed list remove_duplicates (list) =3D> list with all duplicates removed compress (list) =3D> list with consecutive duplicates removed setremove_all (list,elt) =3D> list with all occurrences of elt removed find_insert (sortedlist,e) =3D> index of first element > e in sortedlist sort (list[,keys]) =3D> sorted list count (elt,list) =3D> count of elt found in list. flatten (list) =3D> flatten all recursive lists into = one list randomly_permute (list) =3D> list with elements randomly = permuted longest (list) =3D> longest in list (consisting of str or list) shortest (list) =3D> shortest in list (as above) =20 make (n[,e]) =3D> list of n copies of e range (m,n) =3D> {m,m+1,...,n} =20 arrayset (list,val,i[,j,k...]) =3D> array modified so that list[i][j][k]=3D=3Dval =20 -- Mapping functions (take a list and do something to each element): =20 map_prop ({o...},prop) =3D> list of o.(prop) for all o map_verb ({o...},verb[,args]) =3D> list of o:(verb)(@args) = for all o map_arg ([n,]obj,verb,{a...},args) =3D> list of obj:(verb)(a,@args) for all a map_builtin (objectlist, function) =3D> applies function to all in objectlist =20 -- Association list functions -- =20 An association list (alist) is a list of pairs (2-element lists), though the following functions have been generalized for lists of n-tuples (n-element lists). In each case i defaults to 1. =20 assoc (targ,alist[,i]) =3D> 1st tuple in alist whose i-th element is targ iassoc (targ,alist[,i]) =3D> index of same. assoc_prefix (targ,alist[,i]) =3D> ... whose i-th element has targ as a prefix iassoc_prefix(targ,alist[,i]) =3D> index of same. iassoc_sorted(targ,slist[,i]) =3D> index of last element in sortedlist = <=3D targ slice (alist[,i]) =3D> list of i-th elements sort_alist (alist[,i]) =3D> alist sorted on i-th elements. =20 -- Functions that suspend -- =20 Each of these either suspends(0) as needed or takes an interval in seconds for the suspend as a first argument. See help $list_utils:. =20 sort_suspended iassoc_suspended sort_alist_suspended reverse_suspended randomly_permute_suspended =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =20 There are several sorts there. :-) =20 Ciao KJ =20 -----Original Message----- From: encore-bounce@utdallas.edu [mailto:encore-bounce@utdallas.edu] On Behalf Of Jean-Marc Giffin Sent: June 12, 2006 12:32 PM To: encore@utdallas.edu Subject: [encore] Sort Lists I guess no one is quite sure about the special characters issues, since no one has responded yet. =20 Is there a way to sort lists alphabetically? I haven't found anything to do so yet... =20 Thanks! =20 Jean-Marc Giffin =20 -- No virus found in this incoming message. Checked by AVG Free Edition. Version: 7.1.394 / Virus Database: 268.8.3/361 - Release Date: 11/06/2006 -- No virus found in this outgoing message. Checked by AVG Free Edition. Version: 7.1.394 / Virus Database: 268.8.3/361 - Release Date: 11/06/2006 ------_=_NextPart_001_01C68EF3.F206ABAB Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Message

Hey = Kevin,

 

I’ve already looked at the = API for the $list_utils, but did not find them helpful.

In particular, I’ve been = trying to use the $list_utils:sort() function, but it taks in a “list” and = “[keys]” as parameters. The problem is, I’m not quite sure how to indicate = that I want the list sorted alphabetically… What makes it even harder is that the = list is a list of object names, not direct strings, but the resulting list needs = to be a list of objects, sorted by their name alphabetically, not by object = number…

 

Right now though, I’m just = trying to find a good way of getting the list sorted.

 

Thanks,

=

 

Jean-Marc = Giffin

 


From: Kevin = Jepson [mailto:kevijeps@telusplanet.net]
Sent: Monday, June 12, = 2006 7:48 PM
To: = jean-marc.giffin@acadiau.ca; encore@utdallas.edu
Subject: RE: [encore] = Sort Lists

 

Hi Jean = Marc

 

Try the = $list_utils.

Here is the help file for = them:

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

List utilities (#55):
----
append            (list,list,..) =3D> result of concatenating the given lists
reverse           (list)         =3D> reversed = list
remove_duplicates (list)         = =3D> list with all duplicates removed
compress          (list)         =3D> list with consecutive duplicates removed
setremove_all     (list,elt)     = =3D> list with all occurrences of elt removed
find_insert       (sortedlist,e) =3D> = index of first element > e in sortedlist
sort           &nb= sp;  (list[,keys])  =3D> sorted list
count           &n= bsp; (elt,list)     =3D> count of elt found in = list.
flatten           (list)         =3D> flatten = all recursive lists into one list
randomly_permute  = (list)         =3D> list with elements randomly permuted
longest           (list)         =3D> longest = in list (consisting of str or list)
shortest          (list)         =3D> shortest = in list (as above)

 

make     &n= bsp;        (n[,e])        =3D> list of n = copies of e
range           &n= bsp; (m,n)          =3D> = {m,m+1,...,n}

 

arrayset   = (list,val,i[,j,k...]) =3D> array modified so that = list[i][j][k]=3D=3Dval

 

-- Mapping functions (take a list = and do something to each element):

 

map_prop ({o...},prop)          =     =3D> list of = o.(prop)           = ; for all o
map_verb ({o...},verb[,args])        = =3D> list of o:(verb)(@args)     for all o
map_arg  ([n,]obj,verb,{a...},args) =3D> list of = obj:(verb)(a,@args) for all a
map_builtin (objectlist, function)  =3D> applies function to all = in objectlist

 

-- Association list functions = --

 

An association list (alist) is a = list of pairs (2-element lists), though the following functions have been = generalized for lists of n-tuples (n-element lists).  In each case i defaults = to 1.

 

assoc     &= nbsp;  (targ,alist[,i]) =3D> 1st tuple in alist whose i-th element is = targ
iassoc       (targ,alist[,i]) =3D> = index of same.
assoc_prefix (targ,alist[,i]) =3D> ... whose i-th element has targ as = a prefix
iassoc_prefix(targ,alist[,i]) =3D> index of same.
iassoc_sorted(targ,slist[,i]) =3D> index of last element in = sortedlist <=3D targ
slice           &n= bsp; (alist[,i]) =3D> list of i-th elements
sort_alist        (alist[,i]) =3D> = alist sorted on i-th elements.

 

-- Functions that suspend = --

 

Each of these either suspends(0) as = needed or takes an interval in seconds for the suspend as a first argument. See = help $list_utils:<verb>.

 

sort_suspended   &nbs= p;      iassoc_suspended          sort_alist_suspended
reverse_suspended       randomly_permute_suspended

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D

 

There are several sorts there. = :-)

 

Ciao

KJ

 

-----Original = Message-----
From: = encore-bounce@utdallas.edu [mailto:encore-bounce@utdallas.edu] On Behalf Of Jean-Marc Giffin
Sent: June 12, 2006 12:32 = PM
To: = encore@utdallas.edu
Subject: [encore] Sort = Lists

I guess no one is quite sure about = the special characters issues, since no one has responded = yet.

 

Is there a way to sort lists alphabetically? I haven’t found anything to do so = yet…

 

Thanks!

=

 

Jean-Marc = Giffin

 

--
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.1.394 / Virus Database: 268.8.3/361 - Release Date: = 11/06/2006


--
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.1.394 / Virus Database: 268.8.3/361 - Release Date: = 11/06/2006

------_=_NextPart_001_01C68EF3.F206ABAB-- From jean-marc.giffin@acadiau.ca Tue Jun 13 09:56:45 2006 Received: with ECARTIS (v1.0.0; list encore); Tue, 13 Jun 2006 09:56:45 -0500 (CDT) Return-Path: X-Original-To: encore@nobel.utdallas.edu Delivered-To: encore@nobel.utdallas.edu Received: from iq1.utdallas.edu (iq1-pmn.utdallas.edu [192.168.1.7]) by nobel.utdallas.edu (Postfix) with ESMTP id 28AA55BCC for ; Tue, 13 Jun 2006 09:56:45 -0500 (CDT) Received: from localhost (mf2-pmn.utdallas.edu [192.168.1.14]) by iq1.utdallas.edu (Postfix) with ESMTP id 11B4B4C11 for ; Tue, 13 Jun 2006 09:56:45 -0500 (CDT) Received: from mx2.utdallas.edu ([129.110.10.17]) by localhost (mf2.utdallas.edu [10.110.10.14]) (amavisd-new, port 10024) with LMTP id 26361-01-98 for ; Tue, 13 Jun 2006 09:56:31 -0500 (CDT) Received: from stanley.acadiau.ca (stanley.acadiau.ca [131.162.201.38]) by mx2.utdallas.edu (Postfix) with ESMTP id 22762350B for ; Tue, 13 Jun 2006 09:55:36 -0500 (CDT) Received: from localhost (localhost [127.0.0.1]) by stanley.acadiau.ca (Postfix) with ESMTP id 6FE7B19BC84 for ; Tue, 13 Jun 2006 11:55:35 -0300 (ADT) Received: from stanley.acadiau.ca ([127.0.0.1]) by localhost (helios.acadiau.ca [127.0.0.1]) (amavisd-new, port 10026) with LMTP id 83144-01-4 for ; Tue, 13 Jun 2006 11:55:32 -0300 (ADT) Received: from exchange.ad.acadiau.ca (exchange.acadiau.ca [131.162.200.60]) by stanley.acadiau.ca (Postfix) with ESMTP id 3528919BB4D for ; Tue, 13 Jun 2006 11:55:32 -0300 (ADT) X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C68EF9.51A799E9" Subject: [encore] Re: Sort Lists Date: Tue, 13 Jun 2006 11:55:23 -0300 Message-ID: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [encore] Sort Lists Thread-Index: AcaOck+TruzUEQodSM2Hbc7+VoMPaQAgVdHgAAFmAjA= From: "Jean-Marc Giffin" To: X-Virus-Scanned: by amavisd-new at acadiau.ca X-Virus-Scanned: amavisd-new at utdallas.edu X-archive-position: 1684 X-ecartis-version: Ecartis v1.0.0 Sender: encore-bounce@utdallas.edu Errors-to: encore-bounce@utdallas.edu X-original-sender: jean-marc.giffin@acadiau.ca Precedence: bulk Reply-to: jean-marc.giffin@acadiau.ca List-help: List-unsubscribe: List-software: Ecartis version 1.0.0 List-Id: X-List-ID: X-list: encore This is a multi-part message in MIME format. ------_=_NextPart_001_01C68EF9.51A799E9 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hey, =20 Alright, so it was pretty simple to get the list sorted alphabetically using the $list_utils:sort() function, but I still have to figure out how to resort the objects themselves accordingly... =20 Thanks, =20 Jean-Marc Giffin =20 ________________________________ From: Jean-Marc Giffin [mailto:jean-marc.giffin@acadiau.ca]=20 Sent: Tuesday, June 13, 2006 11:17 AM To: Kevin Jepson; jean-marc.giffin@acadiau.ca; encore@utdallas.edu Subject: RE: [encore] Sort Lists =20 Hey Kevin, =20 I've already looked at the API for the $list_utils, but did not find them helpful. In particular, I've been trying to use the $list_utils:sort() function, but it taks in a "list" and "[keys]" as parameters. The problem is, I'm not quite sure how to indicate that I want the list sorted alphabetically... What makes it even harder is that the list is a list of object names, not direct strings, but the resulting list needs to be a list of objects, sorted by their name alphabetically, not by object number... =20 Right now though, I'm just trying to find a good way of getting the list sorted. =20 Thanks, =20 Jean-Marc Giffin =20 ________________________________ From: Kevin Jepson [mailto:kevijeps@telusplanet.net]=20 Sent: Monday, June 12, 2006 7:48 PM To: jean-marc.giffin@acadiau.ca; encore@utdallas.edu Subject: RE: [encore] Sort Lists =20 Hi Jean Marc =20 Try the $list_utils. Here is the help file for them: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D List utilities (#55): ---- append (list,list,..) =3D> result of concatenating the given lists reverse (list) =3D> reversed list remove_duplicates (list) =3D> list with all duplicates removed compress (list) =3D> list with consecutive duplicates removed setremove_all (list,elt) =3D> list with all occurrences of elt removed find_insert (sortedlist,e) =3D> index of first element > e in sortedlist sort (list[,keys]) =3D> sorted list count (elt,list) =3D> count of elt found in list. flatten (list) =3D> flatten all recursive lists into = one list randomly_permute (list) =3D> list with elements randomly = permuted longest (list) =3D> longest in list (consisting of str or list) shortest (list) =3D> shortest in list (as above) =20 make (n[,e]) =3D> list of n copies of e range (m,n) =3D> {m,m+1,...,n} =20 arrayset (list,val,i[,j,k...]) =3D> array modified so that list[i][j][k]=3D=3Dval =20 -- Mapping functions (take a list and do something to each element): =20 map_prop ({o...},prop) =3D> list of o.(prop) for all o map_verb ({o...},verb[,args]) =3D> list of o:(verb)(@args) = for all o map_arg ([n,]obj,verb,{a...},args) =3D> list of obj:(verb)(a,@args) for all a map_builtin (objectlist, function) =3D> applies function to all in objectlist =20 -- Association list functions -- =20 An association list (alist) is a list of pairs (2-element lists), though the following functions have been generalized for lists of n-tuples (n-element lists). In each case i defaults to 1. =20 assoc (targ,alist[,i]) =3D> 1st tuple in alist whose i-th element is targ iassoc (targ,alist[,i]) =3D> index of same. assoc_prefix (targ,alist[,i]) =3D> ... whose i-th element has targ as a prefix iassoc_prefix(targ,alist[,i]) =3D> index of same. iassoc_sorted(targ,slist[,i]) =3D> index of last element in sortedlist = <=3D targ slice (alist[,i]) =3D> list of i-th elements sort_alist (alist[,i]) =3D> alist sorted on i-th elements. =20 -- Functions that suspend -- =20 Each of these either suspends(0) as needed or takes an interval in seconds for the suspend as a first argument. See help $list_utils:. =20 sort_suspended iassoc_suspended sort_alist_suspended reverse_suspended randomly_permute_suspended =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =20 There are several sorts there. :-) =20 Ciao KJ =20 -----Original Message----- From: encore-bounce@utdallas.edu [mailto:encore-bounce@utdallas.edu] On Behalf Of Jean-Marc Giffin Sent: June 12, 2006 12:32 PM To: encore@utdallas.edu Subject: [encore] Sort Lists I guess no one is quite sure about the special characters issues, since no one has responded yet. =20 Is there a way to sort lists alphabetically? I haven't found anything to do so yet... =20 Thanks! =20 Jean-Marc Giffin =20 -- No virus found in this incoming message. Checked by AVG Free Edition. Version: 7.1.394 / Virus Database: 268.8.3/361 - Release Date: 11/06/2006 -- No virus found in this outgoing message. Checked by AVG Free Edition. Version: 7.1.394 / Virus Database: 268.8.3/361 - Release Date: 11/06/2006 ------_=_NextPart_001_01C68EF9.51A799E9 Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Message

Hey,

 

Alright, so it was pretty simple to = get the list sorted alphabetically using the $list_utils:sort() function, = but I still have to figure out how to resort the objects themselves = accordingly…

 

Thanks,

=

 

Jean-Marc = Giffin

 


From: = Jean-Marc Giffin [mailto:jean-marc.giffin@acadiau.ca]
Sent: Tuesday, June 13, = 2006 11:17 AM
To: Kevin Jepson; jean-marc.giffin@acadiau.ca; encore@utdallas.edu
Subject: RE: [encore] = Sort Lists

 

Hey = Kevin,

 

I’ve already looked at the = API for the $list_utils, but did not find them = helpful.

In particular, I’ve been = trying to use the $list_utils:sort() function, but it taks in a “list” = and “[keys]” as parameters. The problem is, I’m not quite = sure how to indicate that I want the list sorted alphabetically… What = makes it even harder is that the list is a list of object names, not direct = strings, but the resulting list needs to be a list of objects, sorted by their name alphabetically, not by object number…

 

Right now though, I’m just = trying to find a good way of getting the list sorted.

 

Thanks,

=

 

Jean-Marc = Giffin

 


From: Kevin = Jepson [mailto:kevijeps@telusplanet.net]
Sent: Monday, June 12, = 2006 7:48 PM
To: = jean-marc.giffin@acadiau.ca; encore@utdallas.edu
Subject: RE: [encore] = Sort Lists

 

Hi Jean = Marc

 

Try the = $list_utils.

Here is the help file for = them:

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

List utilities (#55):
----
append            (list,list,..) =3D> result of concatenating the given lists
reverse           (list)         =3D> reversed = list
remove_duplicates (list)         = =3D> list with all duplicates removed
compress          (list)         =3D> list with consecutive duplicates removed
setremove_all     (list,elt)     = =3D> list with all occurrences of elt removed
find_insert       (sortedlist,e) =3D> = index of first element > e in sortedlist
sort           &nb= sp;  (list[,keys])  =3D> sorted list
count           &n= bsp; (elt,list)     =3D> count of elt found in = list.
flatten           (list)         =3D> flatten = all recursive lists into one list
randomly_permute  = (list)         =3D> list with elements randomly permuted
longest           (list)         =3D> longest = in list (consisting of str or list)
shortest          (list)         =3D> shortest = in list (as above)

 

make     &n= bsp;        (n[,e])        =3D> list of n = copies of e
range           &n= bsp; (m,n)          =3D> = {m,m+1,...,n}

 

arrayset   = (list,val,i[,j,k...]) =3D> array modified so that = list[i][j][k]=3D=3Dval

 

-- Mapping functions (take a list = and do something to each element):

 

map_prop ({o...},prop)          =     =3D> list of o.(prop)           = ; for all o
map_verb ({o...},verb[,args])        = =3D> list of o:(verb)(@args)     for all o
map_arg  ([n,]obj,verb,{a...},args) =3D> list of = obj:(verb)(a,@args) for all a
map_builtin (objectlist, function)  =3D> applies function to all = in objectlist

 

-- Association list functions = --

 

An association list (alist) is a = list of pairs (2-element lists), though the following functions have been = generalized for lists of n-tuples (n-element lists).  In each case i defaults = to 1.

 

assoc     &= nbsp;  (targ,alist[,i]) =3D> 1st tuple in alist whose i-th element is = targ
iassoc       (targ,alist[,i]) =3D> = index of same.
assoc_prefix (targ,alist[,i]) =3D> ... whose i-th element has targ as = a prefix
iassoc_prefix(targ,alist[,i]) =3D> index of same.
iassoc_sorted(targ,slist[,i]) =3D> index of last element in = sortedlist <=3D targ
slice           &n= bsp; (alist[,i]) =3D> list of i-th elements
sort_alist        (alist[,i]) =3D> = alist sorted on i-th elements.

 

-- Functions that suspend = --

 

Each of these either suspends(0) as = needed or takes an interval in seconds for the suspend as a first argument. See = help $list_utils:<verb>.

 

sort_suspended   &nbs= p;      iassoc_suspended          sort_alist_suspended
reverse_suspended       randomly_permute_suspended

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D

 

There are several sorts there. = :-)

 

Ciao

KJ

 

-----Original = Message-----
From: = encore-bounce@utdallas.edu [mailto:encore-bounce@utdallas.edu] On Behalf Of Jean-Marc = Giffin
Sent: June 12, 2006 12:32 = PM
To: = encore@utdallas.edu
Subject: [encore] Sort = Lists

I guess no one is quite sure about = the special characters issues, since no one has responded = yet.

 

Is there a way to sort lists alphabetically? I haven’t found anything to do so = yet…

 

Thanks!

=

 

Jean-Marc = Giffin

 

--
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.1.394 / Virus Database: 268.8.3/361 - Release Date: = 11/06/2006


--
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.1.394 / Virus Database: 268.8.3/361 - Release Date: = 11/06/2006

------_=_NextPart_001_01C68EF9.51A799E9-- From alexborgia@hotmail.com Tue Jun 13 10:44:04 2006 Received: with ECARTIS (v1.0.0; list encore); Tue, 13 Jun 2006 10:44:04 -0500 (CDT) Return-Path: X-Original-To: encore@nobel.utdallas.edu Delivered-To: encore@nobel.utdallas.edu Received: from iq1.utdallas.edu (iq1-pmn.utdallas.edu [192.168.1.7]) by nobel.utdallas.edu (Postfix) with ESMTP id 2DEBB5CCC for ; Tue, 13 Jun 2006 10:44:04 -0500 (CDT) Received: from localhost (mf2-pmn.utdallas.edu [192.168.1.14]) by iq1.utdallas.edu (Postfix) with ESMTP id D59345248 for ; Tue, 13 Jun 2006 10:44:03 -0500 (CDT) Received: from mx2.utdallas.edu ([129.110.10.17]) by localhost (mf2.utdallas.edu [10.110.10.14]) (amavisd-new, port 10024) with LMTP id 01330-01-83 for ; Tue, 13 Jun 2006 10:43:49 -0500 (CDT) Received: from hotmail.com (bay106-dav9.bay106.hotmail.com [65.54.161.81]) by mx2.utdallas.edu (Postfix) with ESMTP id 7095535E5 for ; Tue, 13 Jun 2006 10:35:32 -0500 (CDT) Received: from mail pickup service by hotmail.com with Microsoft SMTPSVC; Tue, 13 Jun 2006 08:35:31 -0700 Message-ID: Received: from 198.168.153.20 by BAY106-DAV9.phx.gbl with DAV; Tue, 13 Jun 2006 15:35:30 +0000 X-Originating-IP: [198.168.153.20] X-Originating-Email: [alexborgia@hotmail.com] X-Sender: alexborgia@hotmail.com From: "Alexandre Borgia" To: Subject: [encore] Re: Sort Lists Date: Tue, 13 Jun 2006 11:37:05 -0400 Message-ID: <000601c68eff$3991f7f0$2ac71fac@CLINFO.MCGILL.CA> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0007_01C68EDD.B28057F0" X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook, Build 10.0.6626 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2869 Importance: Normal In-Reply-To: X-OriginalArrivalTime: 13 Jun 2006 15:35:31.0414 (UTC) FILETIME=[012C8F60:01C68EFF] X-Virus-Scanned: amavisd-new at utdallas.edu X-archive-position: 1685 X-ecartis-version: Ecartis v1.0.0 Sender: encore-bounce@utdallas.edu Errors-to: encore-bounce@utdallas.edu X-original-sender: alexborgia@hotmail.com Precedence: bulk Reply-to: alexborgia@hotmail.com List-help: List-unsubscribe: List-software: Ecartis version 1.0.0 List-Id: X-List-ID: X-list: encore This is a multi-part message in MIME format. ------=_NextPart_000_0007_01C68EDD.B28057F0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: quoted-printable Hi, =20 You can use the $string_utils:sort() function and provide a = list of names as the "keys" (second) parameter. The "keys" are an alternate = list of values that is used when performing comparison (when you specify only = one argument, it is the same as the original list). =20 Let's say you have: List =3D {1, 3, 2} Keys =3D {"c", "b", "a"} =20 $list_utils:sort(List) =3D> {1, 2, 3} (as expected, this = sorts the list) $list_utils:sort(List, Keys) =3D> {2, 3, 1} (this time, = the list is sorted using our alternate key list to determine new indexes. = Since the "keys" are in inverse alphabetical order, this reverses the original list). =20 =20 On top of my head (cannot try on a MOO right now) you can = write a one-liner like this: =20 $list_utils:sort( object_list, $list_utils:map_prop(object_list, "name") ); =20 This method should work quite nicely for small lists. "map_prop" creates a list of object names based on your original object list, and this is what will be used as the keys for sorting. Note that = you can also build the list of keys manually: simply loop through your = objects and create another list of strings that represents on what criteria you = want to sort your original list. =20 Hope this helps! =20 - Alexandre =20 -----Original Message----- From: encore-bounce@utdallas.edu [mailto:encore-bounce@utdallas.edu] On Behalf Of Jean-Marc Giffin Sent: Tuesday, June 13, 2006 10:17 AM To: Kevin Jepson; jean-marc.giffin@acadiau.ca; encore@utdallas.edu Subject: [encore] Re: Sort Lists =20 Hey Kevin, =20 I've already looked at the API for the $list_utils, but did not find = them helpful. In particular, I've been trying to use the $list_utils:sort() function, = but it taks in a "list" and "[keys]" as parameters. The problem is, I'm not quite sure how to indicate that I want the list sorted alphabetically. = What makes it even harder is that the list is a list of object names, not = direct strings, but the resulting list needs to be a list of objects, sorted by their name alphabetically, not by object number. =20 Right now though, I'm just trying to find a good way of getting the list sorted. =20 Thanks, =20 Jean-Marc Giffin =20 _____ =20 From: Kevin Jepson [mailto:kevijeps@telusplanet.net]=20 Sent: Monday, June 12, 2006 7:48 PM To: jean-marc.giffin@acadiau.ca; encore@utdallas.edu Subject: RE: [encore] Sort Lists =20 Hi Jean Marc =20 Try the $list_utils. Here is the help file for them: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D List utilities (#55): ---- append (list,list,..) =3D> result of concatenating the given = lists reverse (list) =3D> reversed list remove_duplicates (list) =3D> list with all duplicates removed compress (list) =3D> list with consecutive duplicates = removed setremove_all (list,elt) =3D> list with all occurrences of elt = removed find_insert (sortedlist,e) =3D> index of first element > e in = sortedlist sort (list[,keys]) =3D> sorted list count (elt,list) =3D> count of elt found in list. flatten (list) =3D> flatten all recursive lists into = one list randomly_permute (list) =3D> list with elements randomly = permuted longest (list) =3D> longest in list (consisting of str = or list) shortest (list) =3D> shortest in list (as above) =20 make (n[,e]) =3D> list of n copies of e range (m,n) =3D> {m,m+1,...,n} =20 arrayset (list,val,i[,j,k...]) =3D> array modified so that list[i][j][k]=3D=3Dval =20 -- Mapping functions (take a list and do something to each element): =20 map_prop ({o...},prop) =3D> list of o.(prop) for = all o map_verb ({o...},verb[,args]) =3D> list of o:(verb)(@args) = for all o map_arg ([n,]obj,verb,{a...},args) =3D> list of obj:(verb)(a,@args) for = all a map_builtin (objectlist, function) =3D> applies function to all in = objectlist =20 -- Association list functions -- =20 An association list (alist) is a list of pairs (2-element lists), though = the following functions have been generalized for lists of n-tuples = (n-element lists). In each case i defaults to 1. =20 assoc (targ,alist[,i]) =3D> 1st tuple in alist whose i-th element = is targ iassoc (targ,alist[,i]) =3D> index of same. assoc_prefix (targ,alist[,i]) =3D> ... whose i-th element has targ as a = prefix iassoc_prefix(targ,alist[,i]) =3D> index of same. iassoc_sorted(targ,slist[,i]) =3D> index of last element in sortedlist = <=3D targ slice (alist[,i]) =3D> list of i-th elements sort_alist (alist[,i]) =3D> alist sorted on i-th elements. =20 -- Functions that suspend -- =20 Each of these either suspends(0) as needed or takes an interval in = seconds for the suspend as a first argument. See help $list_utils:. =20 sort_suspended iassoc_suspended sort_alist_suspended reverse_suspended randomly_permute_suspended =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =20 There are several sorts there. :-) =20 Ciao KJ =20 -----Original Message----- From: encore-bounce@utdallas.edu [mailto:encore-bounce@utdallas.edu] On Behalf Of Jean-Marc Giffin Sent: June 12, 2006 12:32 PM To: encore@utdallas.edu Subject: [encore] Sort Lists I guess no one is quite sure about the special characters issues, since = no one has responded yet. =20 Is there a way to sort lists alphabetically? I haven't found anything to = do so yet. =20 Thanks! =20 Jean-Marc Giffin =20 -- No virus found in this incoming message. Checked by AVG Free Edition. Version: 7.1.394 / Virus Database: 268.8.3/361 - Release Date: = 11/06/2006 -- No virus found in this outgoing message. Checked by AVG Free Edition. Version: 7.1.394 / Virus Database: 268.8.3/361 - Release Date: = 11/06/2006 ------=_NextPart_000_0007_01C68EDD.B28057F0 Content-Type: text/html; charset="US-ASCII" Content-Transfer-Encoding: quoted-printable Message

Hi,

 

      =       You can use the $string_utils:sort() function and provide a list of names as = the “keys” (second) parameter.  The “keys” are an alternate list = of values that is used when performing comparison (when you specify only = one argument, it is the same as the original list).

 

      =       Let’s say you have:

      =       List =3D {1, 3, 2}

      =       Keys =3D {“c”, “b”, = “a”}

 

      =       $list_utils:sort(List)  =3D>  {1, 2, 3}   (as expected, this sorts the = list)

      =       $list_utils:sort(List, Keys)  =3D>  {2, 3, 1}   (this time, the list is = sorted using our alternate key list to determine new indexes.  Since the = “keys” are in inverse alphabetical order, this reverses the original = list).

 

 

      =       On top of my head (cannot try on a MOO right now) you can write a one-liner = like this:

 

      =             &= nbsp;     $list_utils:sort( object_list, $list_utils:map_prop(object_list, “name”) = );

 

      =       This method should work quite nicely for small lists.  = “map_prop” creates a list of object names based on your original object list, and this is = what will be used as the keys for sorting.  Note that you can also build the = list of keys manually: simply loop through your objects and create another list = of strings that represents on what criteria you want to sort your original = list.

 

      =       Hope this helps!

 

- Alexandre

 

-----Original = Message-----
From: = encore-bounce@utdallas.edu [mailto:encore-bounce@utdallas.edu] On Behalf Of Jean-Marc Giffin
Sent:
Tuesday, June 13, 2006 10:17 = AM
To: Kevin Jepson; jean-marc.giffin@acadiau.ca; encore@utdallas.edu
Subject: [encore] Re: = Sort Lists

 

Hey = Kevin,

 

I’ve = already looked at the API for the $list_utils, but did not find them = helpful.

In particular, = I’ve been trying to use the $list_utils:sort() function, but it taks in a “list” and “[keys]” as parameters. The problem = is, I’m not quite sure how to indicate that I want the list sorted alphabetically… What makes it even harder is that the list is a = list of object names, not direct strings, but the resulting list needs to be a = list of objects, sorted by their name alphabetically, not by object = number…

 

Right now = though, I’m just trying to find a good way of getting the list = sorted.

 

Thanks,

 

Jean-Marc = Giffin

 


From: Kevin Jepson [mailto:kevijeps@telusplanet.net]
Sent: Monday, June 12, = 2006 7:48 PM
To: = jean-marc.giffin@acadiau.ca; encore@utdallas.edu
Subject: RE: [encore] = Sort Lists

 

Hi Jean = Marc

 

Try the = $list_utils.

Here is the help = file for them:

=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

List utilities = (#55):
----
append            (list,list,..) =3D> result of concatenating the given lists
reverse           (list)         =3D> reversed = list
remove_duplicates (list)         = =3D> list with all duplicates removed
compress          (list)         =3D> list with consecutive duplicates removed
setremove_all     (list,elt)     = =3D> list with all occurrences of elt removed
find_insert       (sortedlist,e) =3D> = index of first element > e in sortedlist
sort           &nb= sp;  (list[,keys])  =3D> sorted list
count           &n= bsp; (elt,list)     =3D> count of elt found in = list.
flatten           (list)         =3D> flatten = all recursive lists into one list
randomly_permute  = (list)         =3D> list with elements randomly permuted
longest           (list)         =3D> longest = in list (consisting of str or list)
shortest          (list)         =3D> shortest = in list (as above)

 

make  &= nbsp;           (n[,e])        =3D> list of n = copies of e
range           &n= bsp; (m,n)          =3D> = {m,m+1,...,n}

 

arrayset &nb= sp; (list,val,i[,j,k...]) =3D> array modified so that = list[i][j][k]=3D=3Dval

 

-- Mapping = functions (take a list and do something to each element):

 

map_prop ({o...},prop)          =     =3D> list of o.(prop)           = ; for all o
map_verb ({o...},verb[,args])        = =3D> list of o:(verb)(@args)     for all o
map_arg  ([n,]obj,verb,{a...},args) =3D> list of = obj:(verb)(a,@args) for all a
map_builtin (objectlist, function)  =3D> applies function to all = in objectlist

 

-- Association = list functions --

 

An association = list (alist) is a list of pairs (2-element lists), though the following = functions have been generalized for lists of n-tuples (n-element lists).  In = each case i defaults to 1.

 

assoc  =       (targ,alist[,i]) =3D> 1st tuple in alist whose i-th element is = targ
iassoc       (targ,alist[,i]) =3D> = index of same.
assoc_prefix (targ,alist[,i]) =3D> ... whose i-th element has targ as = a prefix
iassoc_prefix(targ,alist[,i]) =3D> index of same.
iassoc_sorted(targ,slist[,i]) =3D> index of last element in = sortedlist <=3D targ
slice           &n= bsp; (alist[,i]) =3D> list of i-th elements
sort_alist        (alist[,i]) =3D> = alist sorted on i-th elements.

 

-- Functions = that suspend --

 

Each of these = either suspends(0) as needed or takes an interval in seconds for the suspend as = a first argument. See help $list_utils:<verb>.

 

sort_suspended&nb= sp;         iassoc_suspended          sort_alist_suspended
reverse_suspended       randomly_permute_suspended

=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

 

There are = several sorts there. :-)

 

Ciao

KJ<= /p>

 

-----Original Message-----
From: = encore-bounce@utdallas.edu [mailto:encore-bounce@utdallas.edu] On Behalf Of Jean-Marc Giffin
Sent: June 12, 2006 12:32 = PM
To: = encore@utdallas.edu
Subject: [encore] Sort = Lists

I guess no one = is quite sure about the special characters issues, since no one has responded = yet.

 

Is there a way = to sort lists alphabetically? I haven’t found anything to do so = yet…

 

Thanks!

 

Jean-Marc = Giffin

 

--
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.1.394 / Virus Database: 268.8.3/361 - Release Date: = 11/06/2006


--
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.1.394 / Virus Database: 268.8.3/361 - Release Date: = 11/06/2006

------=_NextPart_000_0007_01C68EDD.B28057F0-- From kevijeps@telusplanet.net Tue Jun 13 11:10:59 2006 Received: with ECARTIS (v1.0.0; list encore); Tue, 13 Jun 2006 11:10:59 -0500 (CDT) Return-Path: X-Original-To: encore@nobel.utdallas.edu Delivered-To: encore@nobel.utdallas.edu Received: from iq1.utdallas.edu (iq1-pmn.utdallas.edu [192.168.1.7]) by nobel.utdallas.edu (Postfix) with ESMTP id 989F25CCC for ; Tue, 13 Jun 2006 11:10:59 -0500 (CDT) Received: from localhost (mf2-pmn.utdallas.edu [192.168.1.14]) by iq1.utdallas.edu (Postfix) with ESMTP id 5157B49F3 for ; Tue, 13 Jun 2006 11:10:59 -0500 (CDT) Received: from mx2.utdallas.edu ([129.110.10.17]) by localhost (mf2.utdallas.edu [10.110.10.14]) (amavisd-new, port 10024) with LMTP id 04691-01-34 for ; Tue, 13 Jun 2006 11:10:20 -0500 (CDT) Received: from priv-edtnes15.telusplanet.net (outbound04.telus.net [199.185.220.223]) by mx2.utdallas.edu (Postfix) with ESMTP id B1C9F2CA1 for ; Tue, 13 Jun 2006 10:57:01 -0500 (CDT) Received: from priv-edtnaa06.telusplanet.net ([199.126.223.252]) by priv-edtnes15.telusplanet.net (InterMail vM.6.01.05.04 201-2131-123-105-20051025) with ESMTP id <20060613155659.LDFF16499.priv-edtnes15.telusplanet.net@priv-edtnaa06.telusplanet.net>; Tue, 13 Jun 2006 09:56:59 -0600 Received: from lilith (d199-126-223-252.abhsia.telus.net [199.126.223.252]) by priv-edtnaa06.telusplanet.net (BorderWare MXtreme Infinity Mail Firewall) with ESMTP id 5193RKJX7S; Tue, 13 Jun 2006 09:56:58 -0600 (MDT) From: "Kevin Jepson" To: , Subject: [encore] Re: Sort Lists Date: Tue, 13 Jun 2006 09:56:58 -0600 Message-ID: <000601c68f02$018d1e90$5a0119ac@lilith> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0007_01C68ECF.B6FBD650" X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook, Build 10.0.6626 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2869 Importance: Normal In-Reply-To: X-Virus-Scanned: amavisd-new at utdallas.edu X-archive-position: 1686 X-ecartis-version: Ecartis v1.0.0 Sender: encore-bounce@utdallas.edu Errors-to: encore-bounce@utdallas.edu X-original-sender: kevijeps@telusplanet.net Precedence: bulk Reply-to: kevijeps@telusplanet.net List-help: List-unsubscribe: List-software: Ecartis version 1.0.0 List-Id: X-List-ID: X-list: encore This is a multi-part message in MIME format. ------=_NextPart_000_0007_01C68ECF.B6FBD650 Content-Type: text/plain; charset="windows-1250" Content-Transfer-Encoding: quoted-printable Hi Jean Marc If you get the list of objects and their numbers then sort the list by object name that should work. I did a similar thing for my EnCore 4 MOO so that properties and verbs = were sorted alphabetically in the Object editor. =20 Here is the code I used. =20 Added after line 20 in the verb :view_objects on the = $Xpress_Program_editor: "=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D"; "Modified to produce sorted list by KRJ Nov 20,05"; "Make a list of properties"; property_list =3D $object_utils:all_properties_suspended(object); "Attempt to sort property list alphabetically"; property_list =3D $list_utils:sort_suspended(1, property_list); "for property in ($object_utils:all_properties_suspended(object))"; for property in (property_list) "=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3DEnd = Changes=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D"; =20 Similar code was used after line 29 in the verb :view_verbs on that same object. =20 "=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D"; "New code to sort verb list"; "Added by KRJ November 27, 2005"; = "=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D"; for vrb_number in [1..length(verb_list)] vrb_name =3D verb_list[vrb_number]; vrb_record =3D {vrb_name, vrb_number}; vrb_data =3D HYPERLINK "mailto:\{@vrb_data"{@vrb_data, = vrb_record}; endfor vrb_data =3D $list_utils:sort_alist(vrb_data); for line in [1..length(vrb_data)] vrb_number =3D vrb_data[line][2]; vrb_name =3D vrb_data[line][1]; "End new code"; = "=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D"; =20 The Verb list is similar to the {Object, Object Number} list you are = trying to sort in that it is a list of tuples {verb, verb number}. =20 I'm sure there are more efficient ways to do this but it worked for me = :-) =20 Ciao KJ -----Original Message----- From: encore-bounce@utdallas.edu [mailto:encore-bounce@utdallas.edu] On Behalf Of Jean-Marc Giffin Sent: June 13, 2006 8:55 AM To: encore@utdallas.edu Subject: [encore] Re: Sort Lists Hey, =20 Alright, so it was pretty simple to get the list sorted alphabetically = using the $list_utils:sort() function, but I still have to figure out how to resort the objects themselves accordingly=85 =20 Thanks, =20 Jean-Marc Giffin =20 _____ =20 From: Jean-Marc Giffin [mailto:jean-marc.giffin@acadiau.ca]=20 Sent: Tuesday, June 13, 2006 11:17 AM To: Kevin Jepson; jean-marc.giffin@acadiau.ca; encore@utdallas.edu Subject: RE: [encore] Sort Lists =20 Hey Kevin, =20 I=92ve already looked at the API for the $list_utils, but did not find = them helpful. In particular, I=92ve been trying to use the $list_utils:sort() = function, but it taks in a =93list=94 and =93[keys]=94 as parameters. The problem is, = I=92m not quite sure how to indicate that I want the list sorted alphabetically=85 = What makes it even harder is that the list is a list of object names, not = direct strings, but the resulting list needs to be a list of objects, sorted by their name alphabetically, not by object number=85 =20 Right now though, I=92m just trying to find a good way of getting the = list sorted. =20 Thanks, =20 Jean-Marc Giffin =20 _____ =20 From: Kevin Jepson [mailto:kevijeps@telusplanet.net]=20 Sent: Monday, June 12, 2006 7:48 PM To: jean-marc.giffin@acadiau.ca; encore@utdallas.edu Subject: RE: [encore] Sort Lists =20 Hi Jean Marc =20 Try the $list_utils. Here is the help file for them: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D List utilities (#55): ---- append (list,list,..) =3D> result of concatenating the given = lists reverse (list) =3D> reversed list remove_duplicates (list) =3D> list with all duplicates removed compress (list) =3D> list with consecutive duplicates = removed setremove_all (list,elt) =3D> list with all occurrences of elt = removed find_insert (sortedlist,e) =3D> index of first element > e in = sortedlist sort (list[,keys]) =3D> sorted list count (elt,list) =3D> count of elt found in list. flatten (list) =3D> flatten all recursive lists into = one list randomly_permute (list) =3D> list with elements randomly = permuted longest (list) =3D> longest in list (consisting of str = or list) shortest (list) =3D> shortest in list (as above) =20 make (n[,e]) =3D> list of n copies of e range (m,n) =3D> {m,m+1,...,n} =20 arrayset (list,val,i[,j,k...]) =3D> array modified so that list[i][j][k]=3D=3Dval =20 -- Mapping functions (take a list and do something to each element): =20 map_prop ({o...},prop) =3D> list of o.(prop) for = all o map_verb ({o...},verb[,args]) =3D> list of o:(verb)(@args) = for all o map_arg ([n,]obj,verb,{a...},args) =3D> list of obj:(verb)(a,@args) for = all a map_builtin (objectlist, function) =3D> applies function to all in = objectlist =20 -- Association list functions -- =20 An association list (alist) is a list of pairs (2-element lists), though = the following functions have been generalized for lists of n-tuples = (n-element lists). In each case i defaults to 1. =20 assoc (targ,alist[,i]) =3D> 1st tuple in alist whose i-th element = is targ iassoc (targ,alist[,i]) =3D> index of same. assoc_prefix (targ,alist[,i]) =3D> ... whose i-th element has targ as a = prefix iassoc_prefix(targ,alist[,i]) =3D> index of same. iassoc_sorted(targ,slist[,i]) =3D> index of last element in sortedlist = <=3D targ slice (alist[,i]) =3D> list of i-th elements sort_alist (alist[,i]) =3D> alist sorted on i-th elements. =20 -- Functions that suspend -- =20 Each of these either suspends(0) as needed or takes an interval in = seconds for the suspend as a first argument. See help $list_utils:. =20 sort_suspended iassoc_suspended sort_alist_suspended reverse_suspended randomly_permute_suspended =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =20 There are several sorts there. :-) =20 Ciao KJ =20 -----Original Message----- From: encore-bounce@utdallas.edu [mailto:encore-bounce@utdallas.edu] On Behalf Of Jean-Marc Giffin Sent: June 12, 2006 12:32 PM To: encore@utdallas.edu Subject: [encore] Sort Lists I guess no one is quite sure about the special characters issues, since = no one has responded yet. =20 Is there a way to sort lists alphabetically? I haven=92t found anything = to do so yet=85 =20 Thanks! =20 Jean-Marc Giffin =20 -- No virus found in this incoming message. Checked by AVG Free Edition. Version: 7.1.394 / Virus Database: 268.8.3/361 - Release Date: = 11/06/2006 -- No virus found in this outgoing message. Checked by AVG Free Edition. Version: 7.1.394 / Virus Database: 268.8.3/361 - Release Date: = 11/06/2006 -- No virus found in this incoming message. Checked by AVG Free Edition. Version: 7.1.394 / Virus Database: 268.8.3/362 - Release Date: = 12/06/2006 --=20 No virus found in this outgoing message. Checked by AVG Free Edition. Version: 7.1.394 / Virus Database: 268.8.3/362 - Release Date: = 12/06/2006 =20 ------=_NextPart_000_0007_01C68ECF.B6FBD650 Content-Type: text/html; charset="windows-1250" Content-Transfer-Encoding: quoted-printable Message
Hi=20 Jean Marc
If you=20 get the list of objects and their numbers then sort the list by object = name=20 that should work.
I did=20 a similar thing for my EnCore 4 MOO so that properties and verbs were = sorted=20 alphabetically in the Object editor.
 
Here=20 is the code I used.
 
Added after line 20 in the verb = :view_objects on=20 the $Xpress_Program_editor:
"=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D";
   =20 "Modified to produce sorted list by KRJ Nov = 20,05";
    "Make=20 a list of properties";
    property_list =3D=20 $object_utils:all_properties_suspended(object);
    = "Attempt=20 to sort property list alphabetically";
    = property_list =3D=20 $list_utils:sort_suspended(1, property_list);
    "for = property in=20 ($object_utils:all_properties_suspended(object))";
    = for=20 property in (property_list)
      = "=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3DEnd=20 Changes=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D";
 
Similar code was used after line 29 in the verb :view_verbs on = that same=20 object.
 
"=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D";
    "New code to=20 sort verb list";
    "Added by KRJ November 27,=20 2005";
   =20 "=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D";
    for vrb_number in=20 [1..length(verb_list)]
      vrb_name =3D=20 verb_list[vrb_number];
      vrb_record =3D = {vrb_name,=20 vrb_number};
      vrb_data =3D {@vrb_data, = vrb_record};
   =20 endfor
    vrb_data =3D=20 $list_utils:sort_alist(vrb_data);
    for line in=20 [1..length(vrb_data)]
      vrb_number =3D=20 vrb_data[line][2];
      vrb_name =3D=20 vrb_data[line][1];
      "End new=20 code";
     =20 "=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D";
 
The=20 Verb list is similar to the {Object, Object Number} list you are trying = to sort=20 in that it is a list of tuples {verb, verb number}.
 
I'm=20 sure there are more efficient ways to do this but it worked for me=20 :-)
 
Ciao
KJ
-----Original Message-----
From:=20 encore-bounce@utdallas.edu [mailto:encore-bounce@utdallas.edu] On = Behalf Of=20 Jean-Marc Giffin
Sent: June 13, 2006 8:55 = AM
To:=20 encore@utdallas.edu
Subject: [encore] Re: Sort=20 Lists

Hey,

 

Alright, so = it was=20 pretty simple to get the list sorted alphabetically using the=20 $list_utils:sort() function, but I still have to figure out how to = resort the=20 objects themselves accordingly=85

 

Thanks,

 

Jean-Marc=20 Giffin

 


From:=20 Jean-Marc Giffin [mailto:jean-marc.giffin@acadiau.ca]
Sent:
Tuesday, June 13, 2006 = 11:17=20 AM
To: Kevin = Jepson;=20 jean-marc.giffin@acadiau.ca; encore@utdallas.edu
Subject: RE: [encore] Sort=20 Lists

 

Hey=20 Kevin,

 

I=92ve = already looked=20 at the API for the $list_utils, but did not find them=20 helpful.

In = particular, I=92ve=20 been trying to use the $list_utils:sort() function, but it taks in a = =93list=94=20 and =93[keys]=94 as parameters. The problem is, I=92m not quite sure = how to indicate=20 that I want the list sorted alphabetically=85 What makes it even = harder is that=20 the list is a list of object names, not direct strings, but the = resulting list=20 needs to be a list of objects, sorted by their name alphabetically, = not by=20 object number=85

 

Right now = though, I=92m=20 just trying to find a good way of getting the list=20 sorted.

 

Thanks,

 

Jean-Marc=20 Giffin

 


From: Kevin=20 Jepson [mailto:kevijeps@telusplanet.net]
Sent:
Monday, June 12, 2006 = 7:48=20 PM
To:=20 jean-marc.giffin@acadiau.ca; encore@utdallas.edu
Subject: RE: [encore] Sort=20 Lists

 

Hi Jean=20 Marc

 

Try the=20 $list_utils.

Here is the = help file=20 for them:

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D

List = utilities=20 = (#55):
----
append        &= nbsp;  =20 (list,list,..) =3D> result of concatenating the given=20 = lists
reverse         &nb= sp;=20 (list)         =3D> = reversed=20 list
remove_duplicates=20 (list)         =3D> list = with all=20 duplicates=20 = removed
compress         = =20 (list)         =3D> list = with=20 consecutive duplicates = removed
setremove_all    =20 (list,elt)     =3D> list with all occurrences = of elt=20 removed
find_insert       = (sortedlist,e)=20 =3D> index of first element > e in=20 = sortedlist
sort         &= nbsp;   =20 (list[,keys])  =3D> sorted=20 = list
count          =   =20 (elt,list)     =3D> count of elt found in=20 = list.
flatten         &nb= sp;=20 (list)         =3D> flatten = all=20 recursive lists into one list
randomly_permute =20 (list)         =3D> list = with=20 elements randomly=20 = permuted
longest         =  =20 (list)         =3D> longest = in list=20 (consisting of str or=20 = list)
shortest         =20 (list)         =3D> = shortest in list=20 (as above)

 

make          &n= bsp;  =20 (n[,e])        =3D> list of n = copies of=20 = e
range          &nb= sp; =20 (m,n)          =3D>=20 {m,m+1,...,n}

 

arrayset  =20 (list,val,i[,j,k...]) =3D> array modified so that=20 list[i][j][k]=3D=3Dval

 

-- Mapping = functions=20 (take a list and do something to each=20 element):

 

map_prop=20 = ({o...},prop)          =    =20 =3D> list of=20 = o.(prop)           = ; for=20 all o
map_verb=20 ({o...},verb[,args])        =3D> = list of=20 o:(verb)(@args)     for all o
map_arg =20 ([n,]obj,verb,{a...},args) =3D> list of obj:(verb)(a,@args) for all = a
map_builtin (objectlist, function)  =3D> applies function = to all in=20 objectlist

 

-- = Association list=20 functions --

 

An = association list=20 (alist) is a list of pairs (2-element lists), though the following = functions=20 have been generalized for lists of n-tuples (n-element lists).  = In each=20 case i defaults to 1.

 

assoc       =20 (targ,alist[,i]) =3D> 1st tuple in alist whose i-th element is=20 targ
iassoc       (targ,alist[,i]) = =3D>=20 index of same.
assoc_prefix (targ,alist[,i]) =3D> ... whose i-th = element=20 has targ as a prefix
iassoc_prefix(targ,alist[,i]) =3D> index of = same.
iassoc_sorted(targ,slist[,i]) =3D> index of last element = in=20 sortedlist <=3D=20 = targ
slice          =   =20 (alist[,i]) =3D> list of i-th=20 elements
sort_alist        = (alist[,i])=20 =3D> alist sorted on i-th = elements.

 

-- = Functions that=20 suspend --

 

Each of = these either=20 suspends(0) as needed or takes an interval in seconds for the suspend = as a=20 first argument. See help=20 $list_utils:<verb>.

 

sort_suspended        &nbs= p;=20 iassoc_suspended          = = sort_alist_suspended
reverse_suspended     &n= bsp;=20 randomly_permute_suspended

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

 

There are = several=20 sorts there. :-)

 

Ciao

KJ

 

-----Original=20 Message-----
From:=20 encore-bounce@utdallas.edu [mailto:encore-bounce@utdallas.edu] = On Behalf Of
Jean-Marc=20 Giffin
Sent: June = 12, 2006=20 12:32 PM
To:=20 encore@utdallas.edu
Subject: [encore] Sort=20 Lists

I guess = no one is=20 quite sure about the special characters issues, since no one has = responded=20 yet.

 

Is there = a way to=20 sort lists alphabetically? I haven=92t found anything to do so=20 yet=85

 

Thanks!

 

Jean-Marc = Giffin

 

--
No virus found in this incoming=20 message.
Checked by AVG Free Edition.
Version: 7.1.394 / Virus = Database: 268.8.3/361 - Release Date:=20 11/06/2006


--
No virus found in this outgoing = message.
Checked by=20 AVG Free Edition.
Version: 7.1.394 / Virus Database: 268.8.3/361 - = Release=20 Date: 11/06/2006


--
No virus found in this incoming = message.
Checked by=20 AVG Free Edition.
Version: 7.1.394 / Virus Database: 268.8.3/362 - = Release=20 Date: 12/06/2006


--
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.1.394 / Virus Database: 268.8.3/362 - Release Date: = 12/06/2006

------=_NextPart_000_0007_01C68ECF.B6FBD650-- From jean-marc.giffin@acadiau.ca Wed Jun 14 08:05:34 2006 Received: with ECARTIS (v1.0.0; list encore); Wed, 14 Jun 2006 08:05:35 -0500 (CDT) Return-Path: X-Original-To: encore@nobel.utdallas.edu Delivered-To: encore@nobel.utdallas.edu Received: from iq1.utdallas.edu (iq1-pmn.utdallas.edu [192.168.1.7]) by nobel.utdallas.edu (Postfix) with ESMTP id CC5F75C87 for ; Wed, 14 Jun 2006 08:05:34 -0500 (CDT) Received: from localhost (mf2-pmn.utdallas.edu [192.168.1.14]) by iq1.utdallas.edu (Postfix) with ESMTP id 435324D26 for ; Wed, 14 Jun 2006 08:05:34 -0500 (CDT) Received: from mx2.utdallas.edu ([129.110.10.17]) by localhost (mf2.utdallas.edu [10.110.10.14]) (amavisd-new, port 10024) with LMTP id 02069-01-79 for ; Wed, 14 Jun 2006 08:05:29 -0500 (CDT) Received: from stanley.acadiau.ca (stanley.acadiau.ca [131.162.201.38]) by mx2.utdallas.edu (Postfix) with ESMTP id 703B934E7 for ; Wed, 14 Jun 2006 08:05:29 -0500 (CDT) Received: from localhost (localhost [127.0.0.1]) by stanley.acadiau.ca (Postfix) with ESMTP id 4CC9819AD79 for ; Wed, 14 Jun 2006 10:05:28 -0300 (ADT) Received: from stanley.acadiau.ca ([127.0.0.1]) by localhost (helios.acadiau.ca [127.0.0.1]) (amavisd-new, port 10026) with LMTP id 80770-01-2 for ; Wed, 14 Jun 2006 10:05:26 -0300 (ADT) Received: from exchange.ad.acadiau.ca (exchange.acadiau.ca [131.162.200.60]) by stanley.acadiau.ca (Postfix) with ESMTP id 8392B19ACF1 for ; Wed, 14 Jun 2006 10:05:23 -0300 (ADT) X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C68FB2.E5524A6C" Subject: [encore] Search list for string Date: Wed, 14 Jun 2006 10:03:00 -0300 Message-ID: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: Search list for string Thread-Index: AcaPst1oHvvly7ZlTiKNElPReZ1ZBA== From: "Jean-Marc Giffin" To: X-Virus-Scanned: by amavisd-new at acadiau.ca X-Virus-Scanned: amavisd-new at utdallas.edu X-archive-position: 1687 X-ecartis-version: Ecartis v1.0.0 Sender: encore-bounce@utdallas.edu Errors-to: encore-bounce@utdallas.edu X-original-sender: jean-marc.giffin@acadiau.ca Precedence: bulk Reply-to: jean-marc.giffin@acadiau.ca List-help: List-unsubscribe: List-software: Ecartis version 1.0.0 List-Id: X-List-ID: X-list: encore This is a multi-part message in MIME format. ------_=_NextPart_001_01C68FB2.E5524A6C Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Although I could probably find it by doing some searching, I figured it would be quicker to find out if anyone here knows: =20 Is there a built-in command to help search a list for a particular string? For example if I had list: { "hello", "world" } and I searched for "world", it would return an index of 2? =20 If not, it would not be hard to make it myself, but no point in reinventing the mousepad if it already exists. =20 Thanks! =20 Jean-Marc Giffin ------_=_NextPart_001_01C68FB2.E5524A6C Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable

Although I could probably find it by doing some = searching, I figured it would be quicker to find out if anyone here = knows:

 

Is there a built-in command to help search a list for = a particular string?

For example if I had = list:

{ “hello”, “world” } and I = searched for “world”, it would return an index of = 2?

 

If not, it would not be hard to make it myself, but = no point in reinventing the mousepad if it already = exists.

 

Thanks!

 

Jean-Marc Giffin

------_=_NextPart_001_01C68FB2.E5524A6C-- From st05223@lingo.uib.no Wed Jun 14 08:57:57 2006 Received: with ECARTIS (v1.0.0; list encore); Wed, 14 Jun 2006 08:57:57 -0500 (CDT) Return-Path: X-Original-To: encore@nobel.utdallas.edu Delivered-To: encore@nobel.utdallas.edu Received: from iq1.utdallas.edu (iq1-pmn.utdallas.edu [192.168.1.7]) by nobel.utdallas.edu (Postfix) with ESMTP id 01F415BEA for ; Wed, 14 Jun 2006 08:57:56 -0500 (CDT) Received: from localhost (mf2-pmn.utdallas.edu [192.168.1.14]) by iq1.utdallas.edu (Postfix) with ESMTP id C438655F9 for ; Wed, 14 Jun 2006 08:57:56 -0500 (CDT) Received: from mx2.utdallas.edu ([129.110.10.17]) by localhost (mf2.utdallas.edu [10.110.10.14]) (amavisd-new, port 10024) with LMTP id 06715-01-61 for ; Wed, 14 Jun 2006 08:57:56 -0500 (CDT) Received: from noralf.uib.no (noralf.uib.no [129.177.30.12]) by mx2.utdallas.edu (Postfix) with ESMTP id 6D7DF3442 for ; Wed, 14 Jun 2006 08:57:56 -0500 (CDT) Received: from alfalfa.uib.no (webmail.uib.no) [129.177.13.21] by noralf.uib.no with esmtp (Exim 4.34) id 1FqVsY-0002MZ-J3; Wed, 14 Jun 2006 15:57:55 +0200 Received: from httpd by webmail.uib.no with local (Exim 4.12) id 1FqVsY-0004cQ-00; Wed, 14 Jun 2006 15:57:54 +0200 Received: from huminf213102.klientdrift.uib.no [129.177.213.102] as user st05223@localhost by webmail.uib.no with HTTP; Wed, 14 Jun 2006 15:57:54 +0200 Message-ID: <1150293474.449015e20ca3a@webmail.uib.no> Date: Wed, 14 Jun 2006 15:57:54 +0200 From: "Trond K. Pettersen" To: jean-marc.giffin@acadiau.ca Cc: encore@utdallas.edu Subject: [encore] Re: Search list for string References: In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit User-Agent: Internet Messaging Program (IMP) 3.1-cvs X-checked-clean: by exiscan on noralf X-Scanner: 6a0fe7e41cce988d64360c00c4a6385e http://tjinfo.uib.no/virus.html X-UiB-SpamFlag: NO UIB: -2.5 hits, 8.0 required X-UiB-SpamReport: spamassassin found; 1.3 From: ends in numbers -9.0 Message received from UIB -0.4 Did not pass through any untrusted hosts 5.5 URI: Uses a dotted-decimal IP address in URL X-Virus-Scanned: amavisd-new at utdallas.edu X-Spam-Status: No, score=3.311 tagged_above=1 required=8 tests=[BAYES_50=0.001, FORGED_RCVD_HELO=0.135, NORMAL_HTTP_TO_IP=0.175, UTD_NUM_URL=3] X-Spam-Score: 3.311 X-Spam-Level: *** X-archive-position: 1688 X-ecartis-version: Ecartis v1.0.0 Sender: encore-bounce@utdallas.edu Errors-to: encore-bounce@utdallas.edu X-original-sender: st05223@lingo.uib.no Precedence: bulk Reply-to: st05223@lingo.uib.no List-help: List-unsubscribe: List-software: Ecartis version 1.0.0 List-Id: X-List-ID: X-list: encore Hi Jean-Marc, Quoting Jean-Marc Giffin : > Is there a built-in command to help search a list for a particular > string? As far as I know, there is no built-in that will do what you want. All built-ins should btw be covered in Pavel's Manual (http://129.110.23.73/xpress/texts/ProgrammersManual_toc.html). > > For example if I had list: > > { "hello", "world" } and I searched for "world", it would return an > index of 2? $list_utils:index_all(list, key) will do what you want, except that it will return a list of indexes. Hence you can e.g. do: res = 0; try res = $list_utils:index_all({ "hello", "world" }, "world")[1]; except e (E_RANGE) endtry or simply res = $list_utils:index_all({"hello", "world"}, "world")[1]; if you dare to live with exceptions. -Trond K. Pettersen -- Lingo support http://lingo.uib.no From jung@uib.no Wed Jun 14 11:39:38 2006 Received: with ECARTIS (v1.0.0; list encore); Wed, 14 Jun 2006 11:39:38 -0500 (CDT) Return-Path: X-Original-To: encore@nobel.utdallas.edu Delivered-To: encore@nobel.utdallas.edu Received: from iq1.utdallas.edu (iq1-pmn.utdallas.edu [192.168.1.7]) by nobel.utdallas.edu (Postfix) with ESMTP id E66025BEC for ; Wed, 14 Jun 2006 11:39:37 -0500 (CDT) Received: from localhost (mf2-pmn.utdallas.edu [192.168.1.14]) by iq1.utdallas.edu (Postfix) with ESMTP id 965E4566C for ; Wed, 14 Jun 2006 11:39:37 -0500 (CDT) Received: from mx2.utdallas.edu ([129.110.10.17]) by localhost (mf2.utdallas.edu [10.110.10.14]) (amavisd-new, port 10024) with LMTP id 23822-01-22 for ; Wed, 14 Jun 2006 11:39:31 -0500 (CDT) Received: from noralf.uib.no (noralf.uib.no [129.177.30.12]) by mx2.utdallas.edu (Postfix) with ESMTP id AC66D359A for ; Wed, 14 Jun 2006 11:30:44 -0500 (CDT) Received: from alfred.uib.no (smtp.uib.no) [129.177.30.120] by noralf.uib.no for encore@utdallas.edu with esmtp (Exim 4.34) id 1FqYGR-0002LJ-3W; Wed, 14 Jun 2006 18:30:43 +0200 Received: from 117.84-48-30.nextgentel.com ([10.24.104.19]) [84.48.30.117] by smtp.uib.no for encore@utdallas.edu with esmtp (Exim 4.34) id 1FqYGQ-0003W5-Om; Wed, 14 Jun 2006 18:30:42 +0200 Message-ID: <449039BF.6030506@uib.no> Date: Wed, 14 Jun 2006 18:30:55 +0200 From: Daniel Jung User-Agent: Mozilla Thunderbird 0.8 (Windows/20040913) X-Accept-Language: en-us, en MIME-Version: 1.0 Cc: encore@utdallas.edu Subject: [encore] Re: Search list for string References: In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-checked-clean: by exiscan on noralf X-Scanner: 6bf1b86ebc7bc3aa5e5dbff73a63e66e http://tjinfo.uib.no/virus.html X-UiB-SpamFlag: NO UIB: 0 hits, 8.0 required X-UiB-SpamReport: spamassassin found; X-Virus-Scanned: amavisd-new at utdallas.edu X-Amavis-Alert: BAD HEADER Improper folded header field made up entirely of whitespace in message header 'X-UiB-SpamReport': X-archive-position: 1689 X-ecartis-version: Ecartis v1.0.0 Sender: encore-bounce@utdallas.edu Errors-to: encore-bounce@utdallas.edu X-original-sender: jung@uib.no Precedence: bulk Reply-to: jung@uib.no List-help: List-unsubscribe: List-software: Ecartis version 1.0.0 List-Id: X-List-ID: X-list: encore Jean-Marc Giffin wrote: > Is there a built-in command to help search a list for a particular > string? (1) There is the "x in " expression: eval "world" in {"hello", "world"} => 2 eval "something" in {"hello", "world"} => 0 eval "something" in {} => 0 The target MUST be a list, cf. eval "something" in "" => Type mismatch (2) There is the is_member builtin eval is_member("world", {"hello", "world"}) => 2 eval is_member("something", {"hello", "world"}) => 0 Again, the target MUST be a list. Note, too, that the is_member() builtin is case sensitive, while the "in"-construction is not. Both "methods" return the position of the string in the list, "0" being "not found" (remember MOO lists are 1-based) HTH - Daniel From jean-marc.giffin@acadiau.ca Wed Jun 14 12:05:05 2006 Received: with ECARTIS (v1.0.0; list encore); Wed, 14 Jun 2006 12:05:05 -0500 (CDT) Return-Path: X-Original-To: encore@nobel.utdallas.edu Delivered-To: encore@nobel.utdallas.edu Received: from iq1.utdallas.edu (iq1-pmn.utdallas.edu [192.168.1.7]) by nobel.utdallas.edu (Postfix) with ESMTP id 6F0965C7E for ; Wed, 14 Jun 2006 12:05:05 -0500 (CDT) Received: from localhost (mf2-pmn.utdallas.edu [192.168.1.14]) by iq1.utdallas.edu (Postfix) with ESMTP id 2EC3056A3 for ; Wed, 14 Jun 2006 12:05:05 -0500 (CDT) Received: from mx2.utdallas.edu ([129.110.10.17]) by localhost (mf2.utdallas.edu [10.110.10.14]) (amavisd-new, port 10024) with LMTP id 25518-01-74 for ; Wed, 14 Jun 2006 12:04:59 -0500 (CDT) Received: from stanley.acadiau.ca (stanley.acadiau.ca [131.162.201.38]) by mx2.utdallas.edu (Postfix) with ESMTP id 1AD173527 for ; Wed, 14 Jun 2006 11:55:58 -0500 (CDT) Received: from localhost (localhost [127.0.0.1]) by stanley.acadiau.ca (Postfix) with ESMTP id 5878219ADAE; Wed, 14 Jun 2006 13:55:58 -0300 (ADT) Received: from stanley.acadiau.ca ([127.0.0.1]) by localhost (helios.acadiau.ca [127.0.0.1]) (amavisd-new, port 10026) with LMTP id 10245-02-2; Wed, 14 Jun 2006 13:55:55 -0300 (ADT) Received: from exchange.ad.acadiau.ca (exchange.acadiau.ca [131.162.200.60]) by stanley.acadiau.ca (Postfix) with ESMTP id B3BDE19ACC5; Wed, 14 Jun 2006 13:55:53 -0300 (ADT) X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Subject: [encore] Re: Search list for string Date: Wed, 14 Jun 2006 13:54:10 -0300 Message-ID: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [encore] Re: Search list for string Thread-Index: AcaP0TK3Vshh7HPSTcyxi+Bh47BGPwAAdjPw From: "Jean-Marc Giffin" To: Cc: X-Virus-Scanned: by amavisd-new at acadiau.ca X-Virus-Scanned: amavisd-new at utdallas.edu X-archive-position: 1690 X-ecartis-version: Ecartis v1.0.0 Sender: encore-bounce@utdallas.edu Errors-to: encore-bounce@utdallas.edu X-original-sender: jean-marc.giffin@acadiau.ca Precedence: bulk Reply-to: jean-marc.giffin@acadiau.ca List-help: List-unsubscribe: List-software: Ecartis version 1.0.0 List-Id: X-List-ID: X-list: encore Thanks for the help! That's exactly what I was looking for; makes it easy when you ask someone who knows where it is off-hand! Thanks again, Jean-Marc Giffin -----Original Message----- From: encore-bounce@utdallas.edu [mailto:encore-bounce@utdallas.edu] On Behalf Of Daniel Jung Sent: Wednesday, June 14, 2006 1:31 PM Cc: encore@utdallas.edu Subject: [encore] Re: Search list for string Jean-Marc Giffin wrote: > Is there a built-in command to help search a list for a particular > string? (1) There is the "x in " expression: eval "world" in {"hello", "world"} =3D> 2 eval "something" in {"hello", "world"} =3D> 0 eval "something" in {} =3D> 0 The target MUST be a list, cf. eval "something" in "" =3D> Type mismatch (2) There is the is_member builtin eval is_member("world", {"hello", "world"}) =3D> 2 eval is_member("something", {"hello", "world"}) =3D> 0 Again, the target MUST be a list. Note, too, that the is_member()=20 builtin is case sensitive, while the "in"-construction is not. Both "methods" return the position of the string in the list, "0" being=20 "not found" (remember MOO lists are 1-based) HTH - Daniel From jean-marc.giffin@acadiau.ca Thu Jun 15 08:00:11 2006 Received: with ECARTIS (v1.0.0; list encore); Thu, 15 Jun 2006 08:00:12 -0500 (CDT) Return-Path: X-Original-To: encore@nobel.utdallas.edu Delivered-To: encore@nobel.utdallas.edu Received: from iq1.utdallas.edu (iq1-pmn.utdallas.edu [192.168.1.7]) by nobel.utdallas.edu (Postfix) with ESMTP id A5F065BE0 for ; Thu, 15 Jun 2006 08:00:11 -0500 (CDT) Received: from localhost (mf2-pmn.utdallas.edu [192.168.1.14]) by iq1.utdallas.edu (Postfix) with ESMTP id 7E6E95954 for ; Thu, 15 Jun 2006 08:00:11 -0500 (CDT) Received: from mx2.utdallas.edu ([129.110.10.17]) by localhost (mf2.utdallas.edu [10.110.10.14]) (amavisd-new, port 10024) with LMTP id 18014-01-21 for ; Thu, 15 Jun 2006 08:00:09 -0500 (CDT) Received: from stanley.acadiau.ca (stanley.acadiau.ca [131.162.201.38]) by mx2.utdallas.edu (Postfix) with ESMTP id 3A40A2CA1 for ; Thu, 15 Jun 2006 08:00:09 -0500 (CDT) Received: from localhost (localhost [127.0.0.1]) by stanley.acadiau.ca (Postfix) with ESMTP id 2BCED19BB6F for ; Thu, 15 Jun 2006 10:00:06 -0300 (ADT) Received: from stanley.acadiau.ca ([127.0.0.1]) by localhost (helios.acadiau.ca [127.0.0.1]) (amavisd-new, port 10026) with LMTP id 96393-01-7 for ; Thu, 15 Jun 2006 10:00:01 -0300 (ADT) Received: from exchange.ad.acadiau.ca (exchange.acadiau.ca [131.162.200.60]) by stanley.acadiau.ca (Postfix) with ESMTP id 187C319BC99 for ; Thu, 15 Jun 2006 09:59:42 -0300 (ADT) X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C6907B.37CEECF8" Subject: [encore] Action Pre-verb? Date: Thu, 15 Jun 2006 09:57:13 -0300 Message-ID: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: Action Pre-verb? Thread-Index: AcaQezjjp8Jjk+hmTWaN17vwAB7FFw== From: "Jean-Marc Giffin" To: X-Virus-Scanned: by amavisd-new at acadiau.ca X-Virus-Scanned: amavisd-new at utdallas.edu X-archive-position: 1691 X-ecartis-version: Ecartis v1.0.0 Sender: encore-bounce@utdallas.edu Errors-to: encore-bounce@utdallas.edu X-original-sender: jean-marc.giffin@acadiau.ca Precedence: bulk Reply-to: jean-marc.giffin@acadiau.ca List-help: List-unsubscribe: List-software: Ecartis version 1.0.0 List-Id: X-List-ID: X-list: encore This is a multi-part message in MIME format. ------_=_NextPart_001_01C6907B.37CEECF8 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hey all! =20 Is there a verb or something that encore goes through BEFORE a player gets a chance to do an action? =20 For example, if I type "go left" (assuming that a "left" exit exists) is there a verb that gets run BEFORE the go action? =20 The reason I ask is that I would like to make different "states" that the player could be in. For example, one state could be "stuck". If the player is stuck, obviously they can't go anywhere, but it seems sort of like bad programming if I have to go into the "go" verb and type "if (state =3D=3D 'stuck') ..." and then go into "@go" and type "if (state = =3D=3D 'stuck') ..." and then go into "@dig", etc... =20 Of course, it would be a LIST of things that players can't do, and how encore responds to it. For example, a player that is stuck can't "go, @go, @dig", but the player would be unhindered if they tried to "say", for example... =20 Any ideas? =20 Thanks! " can'esponds to it. For example, a player that is stuld be " =20 ------_=_NextPart_001_01C6907B.37CEECF8 Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable

Hey all!

 

Is there a verb or something that encore goes through = BEFORE a player gets a chance to do an action?

 

For example, if I type “go left” = (assuming that a “left” exit exists) is there a verb that gets run BEFORE = the go action?

 

The reason I ask is that I would like to make = different “states” that the player could be in. For example, one state could be “stuck”. If the player is stuck, obviously they can’t = go anywhere, but it seems sort of like bad programming if I have to go into = the “go” verb and type “if (state =3D=3D = ‘stuck’) …” and then go into “@go” and type “if = (state =3D=3D ‘stuck’) …” and then go into “@dig”, etc…

 

Of course, it would be a LIST of things that players can’t do, and how encore responds to it. For example, a player = that is stuck can’t “go, @go, @dig”, but the player would be unhindered if they tried to “say”, for = example…

 

Any ideas?

 

Thanks! " = can'esponds to it. For example, a player that is stuld be = "

 

------_=_NextPart_001_01C6907B.37CEECF8-- From Lisa.Mentz@pepperdine.edu Mon Jun 19 13:51:17 2006 Received: with ECARTIS (v1.0.0; list encore); Mon, 19 Jun 2006 13:51:18 -0500 (CDT) Return-Path: X-Original-To: encore@nobel.utdallas.edu Delivered-To: encore@nobel.utdallas.edu Received: from iq1.utdallas.edu (iq1-pmn.utdallas.edu [192.168.1.7]) by nobel.utdallas.edu (Postfix) with ESMTP id C4A555C85 for ; Mon, 19 Jun 2006 13:51:16 -0500 (CDT) Received: from localhost (mf2-pmn.utdallas.edu [192.168.1.14]) by iq1.utdallas.edu (Postfix) with ESMTP id DEDCE4D50 for ; Mon, 19 Jun 2006 13:51:15 -0500 (CDT) Received: from mx2.utdallas.edu ([129.110.10.17]) by localhost (mf2.utdallas.edu [10.110.10.14]) (amavisd-new, port 10024) with LMTP id 11628-01-44 for ; Mon, 19 Jun 2006 13:51:10 -0500 (CDT) Received: from mercury.pepperdine.edu (mercury.pepperdine.edu [137.159.8.35]) by mx2.utdallas.edu (Postfix) with ESMTP id 3BDD8351B for ; Mon, 19 Jun 2006 13:47:47 -0500 (CDT) Received: from mal-xconn1.pepperdine.edu (mal-xconn1.pepperdine.edu [137.159.8.42]) by mercury.pepperdine.edu (Pep-6.40o) with ESMTP id k5JIlk5i019605 for ; Mon, 19 Jun 2006 11:47:46 -0700 (PDT) Received: by mal-xconn1.pepperdine.edu with Internet Mail Service (5.5.2657.72) id ; Mon, 19 Jun 2006 11:47:30 -0700 Message-ID: <6FFDE0E08F13D311A6260008C7916D0E011E09B6@mal-xsmail4.pepperdine.edu> From: "Mentz, Lisa (student)" To: "'encore@utdallas.edu'" Subject: [encore] Copyright information? Date: Mon, 19 Jun 2006 11:47:17 -0700 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2657.72) Content-Type: text/plain X-Virus-Scanned: amavisd-new at utdallas.edu X-archive-position: 1692 X-ecartis-version: Ecartis v1.0.0 Sender: encore-bounce@utdallas.edu Errors-to: encore-bounce@utdallas.edu X-original-sender: Lisa.Mentz@pepperdine.edu Precedence: bulk Reply-to: Lisa.Mentz@pepperdine.edu List-help: List-unsubscribe: List-software: Ecartis version 1.0.0 List-Id: X-List-ID: X-list: encore Hello all, I'm not sure who specifically could address this so I'll put it out to the group..I'm in my second round of APA edits to clear my dissertation. I have a screenshot of my MOO that I developed with using enCore. The APA review committee keeps asking me to get permission to use the screen shot. Who do I need to request permission from? -Lisa Mentz From jung@uib.no Mon Jun 19 14:41:05 2006 Received: with ECARTIS (v1.0.0; list encore); Mon, 19 Jun 2006 14:41:05 -0500 (CDT) Return-Path: X-Original-To: encore@nobel.utdallas.edu Delivered-To: encore@nobel.utdallas.edu Received: from iq1.utdallas.edu (iq1-pmn.utdallas.edu [192.168.1.7]) by nobel.utdallas.edu (Postfix) with ESMTP id 93CE45C85 for ; Mon, 19 Jun 2006 14:41:05 -0500 (CDT) Received: from localhost (mf2-pmn.utdallas.edu [192.168.1.14]) by iq1.utdallas.edu (Postfix) with ESMTP id E72D7481F for ; Mon, 19 Jun 2006 14:41:04 -0500 (CDT) Received: from mx2.utdallas.edu ([129.110.10.17]) by localhost (mf2.utdallas.edu [10.110.10.14]) (amavisd-new, port 10024) with LMTP id 16791-01-59 for ; Mon, 19 Jun 2006 14:40:59 -0500 (CDT) Received: from noralf.uib.no (noralf.uib.no [129.177.30.12]) by mx2.utdallas.edu (Postfix) with ESMTP id 4736C344D for ; Mon, 19 Jun 2006 14:40:56 -0500 (CDT) Received: from alfred.uib.no (smtp.uib.no) [129.177.30.120] by noralf.uib.no for encore@utdallas.edu with esmtp (Exim 4.34) id 1FsPcB-0004dl-9n; Mon, 19 Jun 2006 21:40:55 +0200 Received: from 117.84-48-30.nextgentel.com ([10.24.104.19]) [84.48.30.117] by smtp.uib.no for encore@utdallas.edu with esmtp (Exim 4.34) id 1FsPcB-0007Te-1E; Mon, 19 Jun 2006 21:40:51 +0200 Message-ID: <4496FDBE.8080607@uib.no> Date: Mon, 19 Jun 2006 21:40:46 +0200 From: Daniel Jung User-Agent: Mozilla Thunderbird 0.8 (Windows/20040913) X-Accept-Language: en-us, en MIME-Version: 1.0 To: "'encore@utdallas.edu'" Subject: [encore] Re: Copyright information? References: <6FFDE0E08F13D311A6260008C7916D0E011E09B6@mal-xsmail4.pepperdine.edu> In-Reply-To: <6FFDE0E08F13D311A6260008C7916D0E011E09B6@mal-xsmail4.pepperdine.edu> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-checked-clean: by exiscan on noralf X-Scanner: d5f5dcb6a6bf3e4f2daef6e9e445642c http://tjinfo.uib.no/virus.html X-UiB-SpamFlag: NO UIB: 4 hits, 8.0 required X-UiB-SpamReport: spamassassin found; 4.0 BODY: Probably more lottery X-Virus-Scanned: amavisd-new at utdallas.edu X-archive-position: 1693 X-ecartis-version: Ecartis v1.0.0 Sender: encore-bounce@utdallas.edu Errors-to: encore-bounce@utdallas.edu X-original-sender: jung@uib.no Precedence: bulk Reply-to: jung@uib.no List-help: List-unsubscribe: List-software: Ecartis version 1.0.0 List-Id: X-List-ID: X-list: encore Mentz, Lisa (student) wrote: > I have > a screenshot of my MOO that I developed with using enCore. The APA review > committee keeps asking me to get permission to use the screen shot. Who do I > need to request permission from? Well... if it is YOUR MOO, it would be... you! According to http://www.gnu.org/copyleft/gpl.html, which is your license to use the enCore software, the whole thing is yours, and you can use it and its results freely. This includes screenshots. Except if the screenshot itself has protected material in it. Say a substantial part of the screenshot contains a painting which is not public domain (e.g., a screenshot of a room with room description and MM-content). Same goes for texts. If it's a room with a room description which a student of yours has made, it would be polite to tell the student that you want to use that screenshot. If the screenshot reveals any real name connected to an email address, or an address, or contains any denigrating utterances, I would be carefull though, not due to copyright issues, but to ethical ones. Good luck! - Daniel From jean-marc.giffin@acadiau.ca Thu Jun 22 08:10:57 2006 Received: with ECARTIS (v1.0.0; list encore); Thu, 22 Jun 2006 08:10:58 -0500 (CDT) Return-Path: X-Original-To: encore@nobel.utdallas.edu Delivered-To: encore@nobel.utdallas.edu Received: from iq1.utdallas.edu (iq1-pmn.utdallas.edu [192.168.1.7]) by nobel.utdallas.edu (Postfix) with ESMTP id AD73A5BC0 for ; Thu, 22 Jun 2006 08:10:57 -0500 (CDT) Received: from localhost (mf2-pmn.utdallas.edu [192.168.1.14]) by iq1.utdallas.edu (Postfix) with ESMTP id 711D35942 for ; Thu, 22 Jun 2006 08:10:57 -0500 (CDT) Received: from mx2.utdallas.edu ([129.110.10.17]) by localhost (mf2.utdallas.edu [10.110.10.14]) (amavisd-new, port 10024) with LMTP id 04444-01-79 for ; Thu, 22 Jun 2006 08:10:50 -0500 (CDT) Received: from stanley.acadiau.ca (stanley.acadiau.ca [131.162.201.38]) by mx2.utdallas.edu (Postfix) with ESMTP id C3525345C for ; Thu, 22 Jun 2006 08:10:49 -0500 (CDT) Received: from localhost (localhost [127.0.0.1]) by stanley.acadiau.ca (Postfix) with ESMTP id 7934D19BC63 for ; Thu, 22 Jun 2006 10:10:48 -0300 (ADT) Received: from stanley.acadiau.ca ([127.0.0.1]) by localhost (helios.acadiau.ca [127.0.0.1]) (amavisd-new, port 10026) with LMTP id 10366-01-5 for ; Thu, 22 Jun 2006 10:10:45 -0300 (ADT) Received: from exchange.ad.acadiau.ca (exchange.acadiau.ca [131.162.200.60]) by stanley.acadiau.ca (Postfix) with ESMTP id 9692B19BBC1 for ; Thu, 22 Jun 2006 10:10:37 -0300 (ADT) X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C695FD.0BB22AD3" Subject: [encore] Re: Action Pre-verb? Date: Thu, 22 Jun 2006 10:09:07 -0300 Message-ID: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [encore] Action Pre-verb? Thread-Index: AcaUs7mdXVAWKVMnR3C2GBD+oQwongBSRJrw From: "Jean-Marc Giffin" To: X-Virus-Scanned: by amavisd-new at acadiau.ca X-Virus-Scanned: amavisd-new at utdallas.edu X-archive-position: 1694 X-ecartis-version: Ecartis v1.0.0 Sender: encore-bounce@utdallas.edu Errors-to: encore-bounce@utdallas.edu X-original-sender: jean-marc.giffin@acadiau.ca Precedence: bulk Reply-to: jean-marc.giffin@acadiau.ca List-help: List-unsubscribe: List-software: Ecartis version 1.0.0 List-Id: X-List-ID: X-list: encore This is a multi-part message in MIME format. ------_=_NextPart_001_01C695FD.0BB22AD3 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hey Ron, =20 No, there's hasn't really been much of a reply to the query about action pre-verbs. I'm assuming by the lack of response that there is no verb that gets called by the player whenever they call a verb... I guess I'll have to look into event-aware rooms and see how they suit the issue... if they are not what I'm looking for, I'll have to come up with something somehow. =20 Thanks, =20 Jean-Marc Giffin. =20 ________________________________ From: Ron Broglio [mailto:ron.broglio@lcc.gatech.edu]=20 Sent: Tuesday, June 20, 2006 6:52 PM To: jean-marc.giffin@acadiau.ca Subject: Re: [encore] Action Pre-verb? =20 Hi Jean-Marc,=20 Did you ever get a reply to this query? I've usually had to solve this with event-aware rooms but I'm not sure with the particular issue you are discussing but in general the event-aware has been my work around.=20 =20 Ron=20 On Jun 15, 2006, at 8:57 AM, Jean-Marc Giffin wrote:=20 =20 Hey all!=20 =20 Is there a verb or something that encore goes through BEFORE a player gets a chance to do an action?=20 =20 For example, if I type "go left" (assuming that a "left" exit exists) is there a verb that gets run BEFORE the go action?=20 =20 The reason I ask is that I would like to make different "states" that the player could be in. For example, one state could be "stuck". If the player is stuck, obviously they can't go anywhere, but it seems sort of like bad programming if I have to go into the "go" verb and type "if (state =3D=3D 'stuck') ..." and then go into "@go" and type "if (state = =3D=3D 'stuck') ..." and then go into "@dig", etc...=20 =20 Of course, it would be a LIST of things that players can't do, and how encore responds to it. For example, a player that is stuck can't "go, @go, @dig", but the player would be unhindered if they tried to "say", for example...=20 =20 Any ideas?=20 =20 Thanks!=20 =20 ------_=_NextPart_001_01C695FD.0BB22AD3 Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable

Hey = Ron,

 

No, there’s hasn’t = really been much of a reply to the query about action pre-verbs. I’m assuming by the = lack of response that there is no verb that gets called by the player whenever they call = a verb…

I guess I’ll have to look = into event-aware rooms and see how they suit the issue… if they are not what = I’m looking for, I’ll have to come up with something somehow.

 

Thanks,

=

 

Jean-Marc = Giffin.

 


From: Ron = Broglio [mailto:ron.broglio@lcc.gatech.edu]
Sent: Tuesday, June 20, = 2006 6:52 PM
To: = jean-marc.giffin@acadiau.ca
Subject: Re: [encore] = Action Pre-verb?

 

Hi Jean-Marc,

Did you ever get a reply to this query? I've usually had to = solve this with event-aware rooms but I'm not sure with the particular issue you = are discussing but in general the event-aware has been my work around. =

 

Ron



On Jun 15, 2006, at 8:57 AM, Jean-Marc Giffin wrote: =

 

Hey all!

 

Is there a verb or something that encore goes through = BEFORE a player gets a chance to do an action?

 

For example, if I type “go left” = (assuming that a “left” exit exists) is there a verb that gets run BEFORE the go = action?

 

The reason I ask is that I would like to make = different “states” that the player could be in. For example, one state = could be “stuck”. If the player is stuck, obviously they can’t go anywhere, but it = seems sort of like bad programming if I have to go into the “go” verb and = type “if (state =3D=3D ‘stuck’) …” and then go into “@go” = and type “if (state =3D=3D ‘stuck’) …” and = then go into “@dig”, etc…

 

Of course, it would be a LIST of things that players = can’t do, and how encore responds to it. For example, a player that is stuck = can’t “go, @go, @dig”, but the player would be unhindered if they = tried to “say”, for example…

 

Any ideas?

 

Thanks!

 

------_=_NextPart_001_01C695FD.0BB22AD3-- From Lirvin@accdvm.accd.edu Fri Jun 23 15:52:22 2006 Received: with ECARTIS (v1.0.0; list encore); Fri, 23 Jun 2006 15:52:22 -0500 (CDT) Return-Path: X-Original-To: encore@nobel.utdallas.edu Delivered-To: encore@nobel.utdallas.edu Received: from iq1.utdallas.edu (iq1-pmn.utdallas.edu [192.168.1.7]) by nobel.utdallas.edu (Postfix) with ESMTP id 0CBBB5BF5 for ; Fri, 23 Jun 2006 15:52:21 -0500 (CDT) Received: from localhost (mf2-pmn.utdallas.edu [192.168.1.14]) by iq1.utdallas.edu (Postfix) with ESMTP id AEEE1A207 for ; Fri, 23 Jun 2006 15:52:21 -0500 (CDT) Received: from mx2.utdallas.edu ([129.110.10.17]) by localhost (mf2.utdallas.edu [10.110.10.14]) (amavisd-new, port 10024) with LMTP id 00338-01-35 for ; Fri, 23 Jun 2006 15:52:16 -0500 (CDT) Received: from mx2.lsn.net (mx2.lsn.net [66.90.130.74]) by mx2.utdallas.edu (Postfix) with ESMTP id A146C3460 for ; Fri, 23 Jun 2006 15:52:13 -0500 (CDT) Received: from Gilgamesh.accdvm.accd.edu (72-48-64-55.dyn.grandenetworks.net [72.48.64.55]) by mx2.lsn.net (8.13.5.20060308/8.13.5) with ESMTP id k5NKq8Ie001784 for ; Fri, 23 Jun 2006 15:52:09 -0500 Message-Id: <6.2.5.6.0.20060623154715.026e4ae0@accdvm.accd.edu> X-Mailer: QUALCOMM Windows Eudora Version 6.2.5.6 Date: Fri, 23 Jun 2006 15:52:15 -0500 To: encore@utdallas.edu From: Lennie Irvin Subject: [encore] 2nd call for content experts Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed X-Virus-Scanned: ClamAV 0.88.2/1562/Fri Jun 23 02:50:07 2006 on mx0.lsn.net X-Virus-Status: Clean X-Virus-Scanned: amavisd-new at utdallas.edu X-archive-position: 1695 X-ecartis-version: Ecartis v1.0.0 Sender: encore-bounce@utdallas.edu Errors-to: encore-bounce@utdallas.edu X-original-sender: Lirvin@accdvm.accd.edu Precedence: bulk Reply-to: Lirvin@accdvm.accd.edu List-help: List-unsubscribe: List-software: Ecartis version 1.0.0 List-Id: X-List-ID: X-list: encore Hi Everyone, Writers may begin very soon working on producing the help documentation for the new enCore v5 (High Five). A number of these writers will have limited knowledge of how enCore works, so they may require some help as they work on their help documentation. I need a few people to be on call to answer these questions from the writers in a timely fashion. If you are willing to help out and be on this writer's help list, I would sure appreciate it. Please contact me off list. Thanks, Lennie From kevijeps@telusplanet.net Sat Jun 24 01:29:09 2006 Received: with ECARTIS (v1.0.0; list encore); Sat, 24 Jun 2006 01:29:09 -0500 (CDT) Return-Path: X-Original-To: encore@nobel.utdallas.edu Delivered-To: encore@nobel.utdallas.edu Received: from iq1.utdallas.edu (iq1-pmn.utdallas.edu [192.168.1.7]) by nobel.utdallas.edu (Postfix) with ESMTP id 276115BF5 for ; Sat, 24 Jun 2006 01:29:09 -0500 (CDT) Received: from localhost (mf2-pmn.utdallas.edu [192.168.1.14]) by iq1.utdallas.edu (Postfix) with ESMTP id D23FD4A03 for ; Sat, 24 Jun 2006 01:29:08 -0500 (CDT) Received: from mx2.utdallas.edu ([129.110.10.17]) by localhost (mf2.utdallas.edu [10.110.10.14]) (amavisd-new, port 10024) with LMTP id 19817-01 for ; Sat, 24 Jun 2006 01:28:59 -0500 (CDT) Received: from priv-edmwes34.telusplanet.net (defout.telus.net [204.209.205.55]) by mx2.utdallas.edu (Postfix) with ESMTP id CB74D3452 for ; Sat, 24 Jun 2006 01:28:58 -0500 (CDT) Received: from priv-edmwaa05.telusplanet.net ([199.126.223.252]) by priv-edmwes34.telusplanet.net (InterMail vM.6.01.05.04 201-2131-123-105-20051025) with ESMTP id <20060624062855.YBAC14547.priv-edmwes34.telusplanet.net@priv-edmwaa05.telusplanet.net>; Sat, 24 Jun 2006 00:28:55 -0600 Received: from lilith (d199-126-223-252.abhsia.telus.net [199.126.223.252]) by priv-edmwaa05.telusplanet.net (BorderWare MXtreme Infinity Mail Firewall) with ESMTP id 64GRUUBNA0; Sat, 24 Jun 2006 00:28:54 -0600 (MDT) From: "Kevin Jepson" To: Cc: Subject: [encore] Re: Action Pre-verb? Date: Sat, 24 Jun 2006 00:28:53 -0600 Message-ID: <002c01c69757$77c7ce90$5a0119ac@lilith> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_002D_01C69725.2D2D5E90" X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook, Build 10.0.6626 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2869 Importance: Normal In-Reply-To: X-Virus-Scanned: amavisd-new at utdallas.edu X-archive-position: 1696 X-ecartis-version: Ecartis v1.0.0 Sender: encore-bounce@utdallas.edu Errors-to: encore-bounce@utdallas.edu X-original-sender: kevijeps@telusplanet.net Precedence: bulk Reply-to: kevijeps@telusplanet.net List-help: List-unsubscribe: List-software: Ecartis version 1.0.0 List-Id: X-List-ID: X-list: encore This is a multi-part message in MIME format. ------=_NextPart_000_002D_01C69725.2D2D5E90 Content-Type: text/plain; charset="windows-1250" Content-Transfer-Encoding: quoted-printable Jean-Marc =20 Perhaps this is a bit too late to be of help but here goes. =20 The LambdaMOO server relies on the object hierarchy to decide what to do when it receives a command. =20 The following is lifted verbatim from the LambdaMoo Programming manual. =20 From this you can see that the Server has a priority that it uses to = find verbs which match the parsed command string. =20 I hope you find this useful. =20 Oh, and as far as EnCore goes the same process is used the only = difference is that the WEB server is always tracking the display as setup by the = _html verb on whatever object is being displayed. =20 Ciao KJ +++++++++++++++++++++++++Begin Excerpt+++++++++++++++++++++++++ Command Parsing *************** The MOO server is able to do a small amount of parsing on the = commands that a player enters. In particular, it can break apart commands that follow = one of the following forms: VERB VERB DIRECT-OBJECT VERB DIRECT-OBJECT PREPOSITION INDIRECT-OBJECT Real examples of these forms, meaningful in the LambdaCore database, = are as follows: look take yellow bird put yellow bird in cuckoo clock Note that English articles (i.e., `the', `a', and `an') are not = generally used in MOO commands; the parser does not know that they are not = important parts of objects' names. To have any of this make real sense, it is important to understand precisely how the server decides what to do when a player types a = command. First, the server checks whether or not the first non-blank character = in the command is one of the following: " : ; If so, that character is replaced by the corresponding command below, followed by a space: say emote eval For example, the command "Hi, there. is treated exactly as if it were as follows: say Hi, there. The server next breaks up the command into words. In the simplest = case, the command is broken into words at every run of space characters; for example, the command `foo bar baz' would be broken into the words `foo', `bar', = and `baz'. To force the server to include spaces in a "word", all or part = of a word can be enclosed in double-quotes. For example, the command foo "bar mumble" baz" "fr"otz" bl"o"rt is broken into the words `foo', `bar mumble', `baz frotz', and `blort'. Finally, to include a double-quote or a backslash in a word, they can be preceded by a backslash, just like in MOO strings. Having thus broken the string into words, the server next checks to = see if the first word names any of the three "built-in" commands: `.program', `PREFIX', or `SUFFIX'. The first one of these is only available to programmers and the other two are intended for use by client programs; = all three are described in the final chapter of this document, "Server = Commands and Database Assumptions". If the first word isn't one of the above, = then we get to the usual case: a normal MOO command. The server now tries to parse the command into a verb, direct object, preposition and indirect object. The first word is taken to be the = verb. The server then tries to find one of the prepositional phrases listed at the = end of the previous section, using the match that occurs earliest in the command. For example, in the very odd command `foo as bar to baz', the server = would take `as' as the preposition, not `to'. If the server succeeds in finding a preposition, it considers the = words between the verb and the preposition to be the direct object and those = after the preposition to be the indirect object. In both cases, the sequence = of words is turned into a string by putting one space between each pair of words. Thus, in the odd command from the previous paragraph, there are no = words in the direct object (i.e., it is considered to be the empty string, `""') = and the indirect object is `"bar to baz"'. If there was no preposition, then the direct object is taken to be = all of the words after the verb and the indirect object is the empty string. The next step is to try to find MOO objects that are named by the = direct and indirect object strings. First, if an object string is empty, then the corresponding object is = the special object `#-1' (aka `$nothing' in LambdaCore). If an object = string has the form of an object number (i.e., a hash mark (`#') followed by = digits), and the object with that number exists, then that is the named object. If = the object string is either `"me"' or `"here"', then the player object = itself or its location is used, respectively. Otherwise, the server considers all of the objects whose location is either the player (i.e., the objects the player is "holding", so to speak) or = the room the player is in (i.e., the objects in the same room as the = player); it will try to match the object string against the various names for these objects. The matching done by the server uses the `aliases' property of each = of the objects it considers. The value of this property should be a list of strings, the various alternatives for naming the object. If it is not a list, = then the empty list is used; if an object does not have an `aliases' property, = then a list containing the value of the `name' property is used instead. The server checks to see if the object string in the command is = either exactly equal to or a prefix of any alias; if there are any exact = matches, the prefix matches are ignored. If exactly one of the objects being = considered has a matching alias, that object is used. If more than one has a = match, then the special object `#-2' (aka `$ambiguous_match' in LambdaCore) is used. = If there are no matches, then the special object `#-3' (aka `$failed_match' = in LambdaCore) is used. So, now the server has identified a verb string, a preposition = string, and direct- and indirect-object strings and objects. It then looks at each = of the verbs defined on each of the following four objects, in order: 1. the player who typed the command, 2. the room the player is in, 3. the direct object, if any, and 4. the indirect object, if any. For each of these verbs in turn, it tests if all of the the following = are true: * the verb string in the command matches one of the names for = the verb, * the direct- and indirect-object values found by matching are allowed by the corresponding argument specifiers for the verb, and * the preposition string in the command is matched by the preposition specifier for the verb. I'll explain each of these criteria in turn. Every verb has one or more names; all of the names are kept in a = single string, separated by spaces. In the simplest case, a verb-name is just = a word made up of any characters other than spaces and stars (i.e., ` ' and = `*'). In this case, the verb-name matches only itself; that is, the name must be matched exactly. If the name contains a single star, however, then the name matches = any prefix of itself that is at least as long as the part before the star. = For example, the verb-name `foo*bar' matches any of the strings `foo', = `foob', `fooba', or `foobar'; note that the star itself is not considered part = of the name. If the verb name *ends* in a star, then it matches any string that = begins with the part before the star. For example, the verb-name `foo*' = matches any of the strings `foo', `foobar', `food', or `foogleman', among many = others. As a special case, if the verb-name is `*' (i.e., a single star all by = itself), then it matches anything at all. Recall that the argument specifiers for the direct and indirect = objects are drawn from the set `none', `any', and `this'. If the specifier is = `none', then the corresponding object value must be `#-1' (aka `$nothing' in LambdaCore); that is, it must not have been specified. If the specifier = is `any', then the corresponding object value may be anything at all. = Finally, if the specifier is `this', then the corresponding object value must be = the same as the object on which we found this verb; for example, if we are considering verbs on the player, then the object value must be the = player object. Finally, recall that the argument specifier for the preposition is = either `none', `any', or one of several sets of prepositional phrases, given = above. A specifier of `none' matches only if there was no preposition found in = the command. A specifier of `any' always matches, regardless of what preposition was found, if any. If the specifier is a set of prepositional phrases, = then the one found must be in that set for the specifier to match. So, the server considers several objects in turn, checking each of = their verbs in turn, looking for the first one that meets all of the criteria = just explained. If it finds one, then that is the verb whose program will be executed for this command. If not, then it looks for a verb named `huh' = on the room that the player is in; if one is found, then that verb will be called. This feature is useful for implementing room-specific command parsing or error recovery. If the server can't even find a `huh' verb to run, = it prints an error message like `I couldn't understand that.' and the = command is considered complete. At long last, we have a program to run in response to the command = typed by the player. When the code for the program begins execution, the = following built-in variables will have the indicated values: player an object, the player who typed the command this an object, the object on which this verb was found caller an object, the same as `player' verb a string, the first word of the command argstr a string, everything after the first word of the command args a list of strings, the words in `argstr' dobjstr a string, the direct object string found during parsing dobj an object, the direct object value found during matching prepstr a string, the prepositional phrase found during parsing iobjstr a string, the indirect object string iobj an object, the indirect object value {END OF THIS SET OF BITS FROM PAVEL'S MANUAL.} ---------------------------------------------- =20 =20 --=20 No virus found in this outgoing message. Checked by AVG Free Edition. Version: 7.1.394 / Virus Database: 268.9.3/374 - Release Date: = 23/06/2006 =20 ------=_NextPart_000_002D_01C69725.2D2D5E90 Content-Type: text/html; charset="windows-1250" Content-Transfer-Encoding: quoted-printable Message
Jean-Marc
 
Perhaps this is a bit too late to be of help = but here=20 goes.
 
The=20 LambdaMOO server relies on the object hierarchy to decide what to do = when it=20 receives a command.
 
The=20 following is lifted verbatim from the LambdaMoo Programming=20 manual.
 
From=20 this you can see that the Server has a priority that it uses to find = verbs which=20 match the parsed command string.
 
I hope=20 you find this useful.
 
Oh,=20 and as far as EnCore goes the same process is used the only difference = is that=20 the WEB server is always tracking the display as setup by the _html verb = on=20 whatever object is being displayed.
 
Ciao
KJ
+++++++++++++++++++++++++Begin =
Excerpt+++++++++++++++++++++++++
Command Parsing
***************

   The MOO server is able to do a small amount of parsing on the =
commands that
a player enters.  In particular, it can break apart commands that follow =
one
of the following forms:

     VERB
     VERB DIRECT-OBJECT
     VERB DIRECT-OBJECT PREPOSITION INDIRECT-OBJECT

   Real examples of these forms, meaningful in the LambdaCore database, =
are as
follows:

     look
     take yellow bird
     put yellow bird in cuckoo clock

   Note that English articles (i.e., `the', `a', and `an') are not =
generally
used in MOO commands; the parser does not know that they are not =
important
parts of objects' names.

   To have any of this make real sense, it is important to understand
precisely how the server decides what to do when a player types a =
command.

   First, the server checks whether or not the first non-blank character =
in the
command is one of the following:

     "        :        ;

If so, that character is replaced by the corresponding command below, =
followed
by a space:

     say      emote    eval

For example, the command

     "Hi, there.

is treated exactly as if it were as follows:

     say Hi, there.

   The server next breaks up the command into words.  In the simplest =
case,
the command is broken into words at every run of space characters; for =
example,
the command `foo bar baz' would be broken into the words `foo', `bar', =
and
`baz'.  To force the server to include spaces in a "word", all or part =
of a
word can be enclosed in double-quotes.  For example, the command

     foo "bar mumble" baz" "fr"otz" bl"o"rt

is broken into the words `foo', `bar mumble', `baz frotz', and `blort'.
Finally, to include a double-quote or a backslash in a word, they can be
preceded by a backslash, just like in MOO strings.

   Having thus broken the string into words, the server next checks to =
see if
the first word names any of the three "built-in" commands: `.program',
`PREFIX', or `SUFFIX'.  The first one of these is only available to
programmers and the other two are intended for use by client programs; =
all
three are described in the final chapter of this document, "Server =
Commands
and Database Assumptions".  If the first word isn't one of the above, =
then we
get to the usual case: a normal MOO command.

   The server now tries to parse the command into a verb, direct object,
preposition and indirect object.  The first word is taken to be the =
verb.  The
server then tries to find one of the prepositional phrases listed at the =
end
of the previous section, using the match that occurs earliest in the =
command.
For example, in the very odd command `foo as bar to baz', the server =
would
take `as' as the preposition, not `to'.

   If the server succeeds in finding a preposition, it considers the =
words
between the verb and the preposition to be the direct object and those =
after
the preposition to be the indirect object.  In both cases, the sequence =
of
words is turned into a string by putting one space between each pair of =
words.
 Thus, in the odd command from the previous paragraph, there are no =
words in
the direct object (i.e., it is considered to be the empty string, `""') =
and
the indirect object is `"bar to baz"'.

   If there was no preposition, then the direct object is taken to be =
all of
the words after the verb and the indirect object is the empty string.

   The next step is to try to find MOO objects that are named by the =
direct
and indirect object strings.

   First, if an object string is empty, then the corresponding object is =
the
special object `#-1' (aka `$nothing' in LambdaCore).  If an object =
string has
the form of an object number (i.e., a hash mark (`#') followed by =
digits), and
the object with that number exists, then that is the named object.  If =
the
object string is either `"me"' or `"here"', then the player object =
itself or
its location is used, respectively.

   Otherwise, the server considers all of the objects whose location is =
either
the player (i.e., the objects the player is "holding", so to speak) or =
the
room the player is in (i.e., the objects in the same room as the =
player); it
will try to match the object string against the various names for these
objects.

   The matching done by the server uses the `aliases' property of each =
of the
objects it considers.  The value of this property should be a list of =
strings,
the various alternatives for naming the object.  If it is not a list, =
then the
empty list is used; if an object does not have an `aliases' property, =
then a
list containing the value of the `name' property is used instead.

   The server checks to see if the object string in the command is =
either
exactly equal to or a prefix of any alias; if there are any exact =
matches, the
prefix matches are ignored.  If exactly one of the objects being =
considered
has a matching alias, that object is used.  If more than one has a =
match, then
the special object `#-2' (aka `$ambiguous_match' in LambdaCore) is used. =
If
there are no matches, then the special object `#-3' (aka `$failed_match' =
in
LambdaCore) is used.

   So, now the server has identified a verb string, a preposition =
string, and
direct- and indirect-object strings and objects.  It then looks at each =
of the
verbs defined on each of the following four objects, in order:

       1. the player who typed the command,

       2. the room the player is in,

       3. the direct object, if any, and

       4. the indirect object, if any.

For each of these verbs in turn, it tests if all of the the following =
are true:

        * the verb string in the command matches one of the names for =
the verb,

        * the direct- and indirect-object values found by matching are =
allowed
          by the corresponding argument specifiers for the verb, and

        * the preposition string in the command is matched by the =
preposition
          specifier for the verb.

I'll explain each of these criteria in turn.

   Every verb has one or more names; all of the names are kept in a =
single
string, separated by spaces.  In the simplest case, a verb-name is just =
a word
made up of any characters other than spaces and stars (i.e., ` ' and =
`*').  In
this case, the verb-name matches only itself; that is, the name must be
matched exactly.

   If the name contains a single star, however, then the name matches =
any
prefix of itself that is at least as long as the part before the star.  =
For
example, the verb-name `foo*bar' matches any of the strings `foo', =
`foob',
`fooba', or `foobar'; note that the star itself is not considered part =
of the
name.

   If the verb name *ends* in a star, then it matches any string that =
begins
with the part before the star.  For example, the verb-name `foo*' =
matches any
of the strings `foo', `foobar', `food', or `foogleman', among many =
others.  As
a special case, if the verb-name is `*' (i.e., a single star all by =
itself),
then it matches anything at all.

   Recall that the argument specifiers for the direct and indirect =
objects are
drawn from the set `none', `any', and `this'.  If the specifier is =
`none',
then the corresponding object value must be `#-1' (aka `$nothing' in
LambdaCore); that is, it must not have been specified.  If the specifier =
is
`any', then the corresponding object value may be anything at all.  =
Finally,
if the specifier is `this', then the corresponding object value must be =
the
same as the object on which we found this verb; for example, if we are
considering verbs on the player, then the object value must be the =
player
object.

   Finally, recall that the argument specifier for the preposition is =
either
`none', `any', or one of several sets of prepositional phrases, given =
above.
A specifier of `none' matches only if there was no preposition found in =
the
command.  A specifier of `any' always matches, regardless of what =
preposition
was found, if any.  If the specifier is a set of prepositional phrases, =
then
the one found must be in that set for the specifier to match.

   So, the server considers several objects in turn, checking each of =
their
verbs in turn, looking for the first one that meets all of the criteria =
just
explained.  If it finds one, then that is the verb whose program will be
executed for this command.  If not, then it looks for a verb named `huh' =
on
the room that the player is in; if one is found, then that verb will be
called.  This feature is useful for implementing room-specific command =
parsing
or error recovery.  If the server can't even find a `huh' verb to run, =
it
prints an error message like `I couldn't understand that.' and the =
command is
considered complete.

   At long last, we have a program to run in response to the command =
typed by
the player.  When the code for the program begins execution, the =
following
built-in variables will have the indicated values:

     player    an object, the player who typed the command
     this      an object, the object on which this verb was found
     caller    an object, the same as `player'
     verb      a string, the first word of the command
     argstr    a string, everything after the first word of the command
     args      a list of strings, the words in `argstr'
     dobjstr   a string, the direct object string found during parsing
     dobj      an object, the direct object value found during matching
     prepstr   a string, the prepositional phrase found during parsing
     iobjstr   a string, the indirect object string
     iobj      an object, the indirect object value

{END OF THIS SET OF BITS FROM PAVEL'S MANUAL.}
----------------------------------------------
 
<= /DIV>
 

--
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.1.394 / Virus Database: 268.9.3/374 - Release Date: = 23/06/2006

------=_NextPart_000_002D_01C69725.2D2D5E90-- From kevijeps@telusplanet.net Sat Jun 24 01:59:58 2006 Received: with ECARTIS (v1.0.0; list encore); Sat, 24 Jun 2006 01:59:59 -0500 (CDT) Return-Path: X-Original-To: encore@nobel.utdallas.edu Delivered-To: encore@nobel.utdallas.edu Received: from iq1.utdallas.edu (iq1-pmn.utdallas.edu [192.168.1.7]) by nobel.utdallas.edu (Postfix) with ESMTP id A415E5BF5 for ; Sat, 24 Jun 2006 01:59:58 -0500 (CDT) Received: from localhost (mf2-pmn.utdallas.edu [192.168.1.14]) by iq1.utdallas.edu (Postfix) with ESMTP id 714DB4B8A for ; Sat, 24 Jun 2006 01:59:58 -0500 (CDT) Received: from mx2.utdallas.edu ([129.110.10.17]) by localhost (mf2.utdallas.edu [10.110.10.14]) (amavisd-new, port 10024) with LMTP id 19364-01-94 for ; Sat, 24 Jun 2006 01:59:55 -0500 (CDT) Received: from priv-edmwes23.telusplanet.net (defout.telus.net [204.209.205.55]) by mx2.utdallas.edu (Postfix) with ESMTP id 522D62CA1 for ; Sat, 24 Jun 2006 01:59:54 -0500 (CDT) Received: from priv-edmwaa05.telusplanet.net ([199.126.223.252]) by priv-edmwes23.telusplanet.net (InterMail vM.6.01.05.04 201-2131-123-105-20051025) with ESMTP id <20060624065954.ZRWX8816.priv-edmwes23.telusplanet.net@priv-edmwaa05.telusplanet.net>; Sat, 24 Jun 2006 00:59:54 -0600 Received: from lilith (d199-126-223-252.abhsia.telus.net [199.126.223.252]) by priv-edmwaa05.telusplanet.net (BorderWare MXtreme Infinity Mail Firewall) with ESMTP id 65HTMW5Q12; Sat, 24 Jun 2006 00:59:53 -0600 (MDT) From: "Kevin Jepson" To: , Subject: [encore] Re: Action Pre-verb? Date: Sat, 24 Jun 2006 00:59:53 -0600 Message-ID: <003301c6975b$cb672330$5a0119ac@lilith> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0034_01C69729.80CCB330" X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook, Build 10.0.6626 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2869 Importance: Normal In-Reply-To: X-Virus-Scanned: amavisd-new at utdallas.edu X-archive-position: 1697 X-ecartis-version: Ecartis v1.0.0 Sender: encore-bounce@utdallas.edu Errors-to: encore-bounce@utdallas.edu X-original-sender: kevijeps@telusplanet.net Precedence: bulk Reply-to: kevijeps@telusplanet.net List-help: List-unsubscribe: List-software: Ecartis version 1.0.0 List-Id: X-List-ID: X-list: encore This is a multi-part message in MIME format. ------=_NextPart_000_0034_01C69729.80CCB330 Content-Type: text/plain; charset="windows-1250" Content-Transfer-Encoding: quoted-printable Jean-Marc =20 Further to my previous post... =20 If you wanted to do testing like you describe it would have to be done = at or near the root of the Object Hierachy. That is on an object that is = beneath all others so that all objects inherit the test as part of their = responses. This is what Jan and Cynthia did with the EnCore Web object and EnCore = Web Class. By inserting these objects into the base of the whole hierachy = they added web functionality to every object. =20 You could do the same with a modified generic room if the default = movement scheme was what you wanted modified =20 Since the verbs are examined from local and specific to generic and ultimately to root, deciding where to modify the standard verbs is the trick. The closer to the Root object you go the more objects inherit = the verbs/behaviours. A modification to $Root impacts every object! =20 Far from being "sort of like bad programming" to modify the verbs like = this it is exactly the way to do it in an object oriented environment like = moo. =20 Ideally there are no verbs being executed that are not on objects of = some sort (this is of course where EnCore breaks the rules a bit as the whole = WEB behaviour is essentially separate from the object hierarchy).=20 =20 Feature objects get around this by adding verbs and functionality to = the player without really modifying the player's object or object class.=20 =20 Ciao KJ -----Original Message----- From: encore-bounce@utdallas.edu [mailto:encore-bounce@utdallas.edu] On Behalf Of Jean-Marc Giffin Sent: June 22, 2006 7:09 AM To: encore@utdallas.edu Subject: [encore] Re: Action Pre-verb? Hey Ron, =20 No, there=92s hasn=92t really been much of a reply to the query about = action pre-verbs. I=92m assuming by the lack of response that there is no verb = that gets called by the player whenever they call a verb=85 I guess I=92ll have to look into event-aware rooms and see how they suit = the issue=85 if they are not what I=92m looking for, I=92ll have to come up = with something somehow. =20 Thanks, =20 Jean-Marc Giffin. =20 _____ =20 From: Ron Broglio [mailto:ron.broglio@lcc.gatech.edu]=20 Sent: Tuesday, June 20, 2006 6:52 PM To: jean-marc.giffin@acadiau.ca Subject: Re: [encore] Action Pre-verb? =20 Hi Jean-Marc,=20 Did you ever get a reply to this query? I've usually had to solve this = with event-aware rooms but I'm not sure with the particular issue you are discussing but in general the event-aware has been my work around.=20 =20 Ron=20 On Jun 15, 2006, at 8:57 AM, Jean-Marc Giffin wrote:=20 =20 Hey all!=20 =20 Is there a verb or something that encore goes through BEFORE a player = gets a chance to do an action?=20 =20 For example, if I type =93go left=94 (assuming that a =93left=94 exit = exists) is there a verb that gets run BEFORE the go action?=20 =20 The reason I ask is that I would like to make different =93states=94 = that the player could be in. For example, one state could be =93stuck=94. If the = player is stuck, obviously they can=92t go anywhere, but it seems sort of like = bad programming if I have to go into the =93go=94 verb and type =93if (state = =3D=3D =91stuck=92) =85=94 and then go into =93@go=94 and type =93if (state = =3D=3D =91stuck=92) =85=94 and then go into =93@dig=94, etc=85=20 =20 Of course, it would be a LIST of things that players can=92t do, and how encore responds to it. For example, a player that is stuck can=92t = =93go, @go, @dig=94, but the player would be unhindered if they tried to =93say=94, = for example=85=20 =20 Any ideas?=20 =20 Thanks!=20 =20 -- No virus found in this incoming message. Checked by AVG Free Edition. Version: 7.1.394 / Virus Database: 268.9.1/369 - Release Date: = 19/06/2006 --=20 No virus found in this outgoing message. Checked by AVG Free Edition. Version: 7.1.394 / Virus Database: 268.9.3/374 - Release Date: = 23/06/2006 =20 ------=_NextPart_000_0034_01C69729.80CCB330 Content-Type: text/html; charset="windows-1250" Content-Transfer-Encoding: quoted-printable Message
Jean-Marc
 
Further to my previous = post...
 
If you=20 wanted to do testing like you describe it would have to be done at or = near the=20 root of the Object Hierachy.  That is on an object that is beneath = all=20 others so that all objects inherit the test as part of their responses. = This is=20 what Jan and Cynthia did with the EnCore Web object and EnCore Web = Class. By=20 inserting these objects into the base of the whole hierachy they added = web=20 functionality to every object.
 
You=20 could do the same with a modified generic room if the default movement = scheme=20 was what you wanted modified
 
Since=20 the verbs are examined from local and specific to generic and = ultimately to=20 root, deciding where to modify the standard verbs is the trick.  = The closer=20 to the Root object you go the more objects inherit the = verbs/behaviours.  A=20 modification to $Root impacts every object!
 
Far from being "sort of like bad programming" to modify = the verbs=20 like this it is exactly the way to do it in an object oriented = environment like=20 moo.
 
Ideally there are no verbs being executed = that are not=20 on objects of some sort (this is of course where EnCore breaks the rules = a bit=20 as the whole WEB behaviour is essentially separate from the object = hierarchy).=20
 
Feature objects get around this by  = adding verbs=20 and functionality to the player without really modifying the = player's=20 object or object class. 
 
Ciao
KJ
-----Original Message-----
From:=20 encore-bounce@utdallas.edu [mailto:encore-bounce@utdallas.edu] On = Behalf Of=20 Jean-Marc Giffin
Sent: June 22, 2006 7:09 = AM
To:=20 encore@utdallas.edu
Subject: [encore] Re: Action=20 Pre-verb?

Hey=20 Ron,

 

No, = there=92s hasn=92t=20 really been much of a reply to the query about action pre-verbs. I=92m = assuming=20 by the lack of response that there is no verb that gets called by the = player=20 whenever they call a verb=85

I guess = I=92ll have to=20 look into event-aware rooms and see how they suit the issue=85 if they = are not=20 what I=92m looking for, I=92ll have to come up with something=20 somehow.

 

Thanks,

 

Jean-Marc=20 Giffin.

 


From: Ron=20 Broglio [mailto:ron.broglio@lcc.gatech.edu]
Sent:
Tuesday, June 20, 2006 = 6:52=20 PM
To:=20 jean-marc.giffin@acadiau.ca
Subject: Re: [encore] Action=20 Pre-verb?

 

Hi Jean-Marc, =

Did you ever get a reply to this query? I've = usually=20 had to solve this with event-aware rooms but I'm not sure with the = particular=20 issue you are discussing but in general the event-aware has been my = work=20 around.

 

Ron



On Jun 15, 2006, at 8:57 AM, Jean-Marc = Giffin wrote:=20

 

Hey all! =

 =20

Is there a verb or = something=20 that encore goes through BEFORE a player gets a chance to do an=20 action?

 =20

For example, if I type = =93go left=94=20 (assuming that a =93left=94 exit exists) is there a verb that gets = run BEFORE=20 the go action?

 =20

The reason I ask is = that I would=20 like to make different =93states=94 that the player could be in. For = example,=20 one state could be =93stuck=94. If the player is stuck, obviously = they can=92t go=20 anywhere, but it seems sort of like bad programming if I have to go = into the=20 =93go=94 verb and type =93if (state =3D=3D =91stuck=92) =85=94 and = then go into =93@go=94 and type=20 =93if (state =3D=3D =91stuck=92) =85=94 and then go into =93@dig=94, = etc=85=20

 =20

Of course, it would be = a LIST of=20 things that players can=92t do, and how encore responds to it. For = example, a=20 player that is stuck can=92t =93go, @go, @dig=94, but the player = would be=20 unhindered if they tried to =93say=94, for example=85=20

 =20

Any = ideas?=20

 =20

Thanks!=20

 =20


--
No virus found in this incoming = message.
Checked by=20 AVG Free Edition.
Version: 7.1.394 / Virus Database: 268.9.1/369 - = Release=20 Date: 19/06/2006


--
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.1.394 / Virus Database: 268.9.3/374 - Release Date: = 23/06/2006

------=_NextPart_000_0034_01C69729.80CCB330-- From Lirvin@accdvm.accd.edu Mon Jun 26 06:47:55 2006 Received: with ECARTIS (v1.0.0; list encore); Mon, 26 Jun 2006 06:47:55 -0500 (CDT) Return-Path: X-Original-To: encore@nobel.utdallas.edu Delivered-To: encore@nobel.utdallas.edu Received: from iq1.utdallas.edu (iq1-pmn.utdallas.edu [192.168.1.7]) by nobel.utdallas.edu (Postfix) with ESMTP id 166435BAD for ; Mon, 26 Jun 2006 06:47:55 -0500 (CDT) Received: from localhost (mf2-pmn.utdallas.edu [192.168.1.14]) by iq1.utdallas.edu (Postfix) with ESMTP id D44A051C1 for ; Mon, 26 Jun 2006 06:47:54 -0500 (CDT) Received: from mx2.utdallas.edu ([129.110.10.17]) by localhost (mf2.utdallas.edu [10.110.10.14]) (amavisd-new, port 10024) with LMTP id 05054-01-90 for ; Mon, 26 Jun 2006 06:47:48 -0500 (CDT) Received: from mx2.lsn.net (mx2.lsn.net [66.90.130.74]) by mx2.utdallas.edu (Postfix) with ESMTP id 486FF3452 for ; Mon, 26 Jun 2006 06:47:48 -0500 (CDT) Received: from Gilgamesh.accdvm.accd.edu (66-90-187-240.dyn.grandenetworks.net [66.90.187.240]) by mx2.lsn.net (8.13.5.20060308/8.13.5) with ESMTP id k5QBlhF9028255 for ; Mon, 26 Jun 2006 06:47:45 -0500 Message-Id: <6.2.5.6.0.20060626064607.02974ea8@accdvm.accd.edu> X-Mailer: QUALCOMM Windows Eudora Version 6.2.5.6 Date: Mon, 26 Jun 2006 06:47:39 -0500 To: encore@utdallas.edu From: Lennie Irvin Subject: [encore] Fwd: RE: Encore--help for new install Mime-Version: 1.0 Content-Type: multipart/related; type="multipart/alternative"; boundary="=====================_80732093==.REL" X-Virus-Scanned: ClamAV 0.88.2/1563/Mon Jun 26 04:00:08 2006 on mx0.lsn.net X-Virus-Status: Clean X-Virus-Scanned: amavisd-new at utdallas.edu X-archive-position: 1698 X-ecartis-version: Ecartis v1.0.0 Sender: encore-bounce@utdallas.edu Errors-to: encore-bounce@utdallas.edu X-original-sender: Lirvin@accdvm.accd.edu Precedence: bulk Reply-to: Lirvin@accdvm.accd.edu List-help: List-unsubscribe: List-software: Ecartis version 1.0.0 List-Id: X-List-ID: X-list: encore --=====================_80732093==.REL Content-Type: multipart/alternative; boundary="=====================_80732093==.ALT" --=====================_80732093==.ALT Content-Type: text/plain; charset="us-ascii"; format=flowed Any help you all might provide for Michael as he sets up a new installation of enCore would be great. I think he is installing on a windows server, so that may be affecting the external mail situation. Thanks, Lennie >Subject: RE: Encore >Date: Mon, 26 Jun 2006 15:39:51 +1200 >X-MS-Has-Attach: yes >X-MS-TNEF-Correlator: >Thread-Topic: Encore >Thread-Index: AcaVK8DzhJGKP+B4TYG6M/iRFZ09IQDhHeSw >From: "Michael Eathorne-Gould" >To: "Lennie Irvin" >X-PMX-Version: 5.2.0.264296, Antispam-Engine: 2.3.0.1, >Antispam-Data: 2006.6.25.202933 >X-PerlMx-Spam: Gauge=IIIIIII, Probability=7%, Report='HTML_50_70 >0.1, __CP_MEDIA_BODY 0, __CP_URI_IN_BODY 0, __CT 0, >__CTYPE_HAS_BOUNDARY 0, __CTYPE_MULTIPART 0, __CTYPE_MULTIPART_ALT >0, __EMBEDDED_IMG 0, __EXTRA_MPART_TYPE_1 0, __EXTRA_MPART_TYPE_N1 >0, __HAS_MSGID 0, __HTML_FONT_BLUE 0, __IMS_MSGID 0, __MIME_HTML 0, >__MIME_VERSION 0, __SANE_MSGID 0, __STOCK_CRUFT 0, __TAG_EXISTS_HTML 0' >X-NAS-BWL: Found match for 'MEathorne-Gould@business.otago.ac.nz' on >the allowed list (183 addresses, 0 domains) >X-NAS-Classification: 0 >X-NAS-MessageID: 1095 >X-NAS-Validation: {DFF16927-88E6-4EAA-A097-460B7E65289B} > >Hi sorry to bother you again. I have things working more or less at >the moment apart from a couple of things. > >The first is mail -- I understand that Encore includes an internal >mailer, however I am having some issues with it. > >The first is that the mail web page does not display properly > >I get the following page when I click on mail > >[] > > >And I cannot get the top menu to display properly. I have looked >inside the database and can see where the top menu is generated but >can't see why it is not happening. Internal mail is working as I can >reply to pre-existing mail to other internal users. > >Next is that from the documentation it seems that you should be able >to send external email, but how can you configure this I can't see >anywhere that you can do this and external mail is definitely not working. > > >---------- >From: Lennie Irvin [mailto:Lirvin@accdvm.accd.edu] >Sent: Thursday, 22 June 2006 12:11 a.m. >To: Michael Eathorne-Gould >Subject: RE: Encore > >Hi Michael, > >It sounds like you have made good progress. I know that v5 will not >be ready in 3-4 weeks time, so it sounds like v4 is your starting >place. I have a winmoo installation guide that is not 100% complete >that I will try to get for you. As I recall, you need to do some >initial configuration things for the moo via telnet and the @config >command. Perhaps you have done these. I strongly recommend that >you get on the enCore list and use it as a resource (there are a lot >of people that know more than I do on that list): http://listar.utdallas.edu/ > >Also, this user guide may be helpful: >http://www.accd.edu/sac/english/lirvin/4guide/index.html > >I'll look for that guide for you. I may not have it until Friday, though. > >Take care, > >Lennie > >At 09:01 PM 6/20/2006, you wrote: >>Thanks for replying. >> >>How long do you think until the new version will be released? I >>have about 3-4 weeks before it needs to be running. >> >>I did manage to download version 4 in the end. Perhaps it was >>something going wrong at this end. >> >>I'm new to moo's so will be doing things by trial and error to get >>it all going. I unpacked Xpress and stuck it in the www root >>directory on our windows box and it all started working so thats >>the first part of it done. Now I have to go through the db file and >>look at how they have put it all together. I take it you would >>normally edit things in the moo in Xpress itself, thats what it >>looks like to me anyway. The db file can be manually opened and >>edited of course and thats what I did initially to see what was in it. >> >>I notice in the test they did here there are a whole lot of images >>that appear to be stored in various places on the web rather than >>on the local server. My guess is that this is not normal and they >>should be all local as a few of them are broken and the website >>they link to are not up anymore. >> >>There will be a lot of work to do with coding the objects etc in >>the moo I imagine as well, I have to just take that 1 step at a time :-) >> >>Thanks for your reply, I'll keep in touch as I go and if you don't >>mind hit you up for Q and A occasionally. >> >>Cheers >>Mike >> >> >> >>---------- >>From: Lennie Irvin [ mailto:Lirvin@accdvm.accd.edu] >>Sent: Tuesday, 20 June 2006 3:55 p.m. >>To: Michael Eathorne-Gould >>Subject: Re: Encore >> >>Hi Michael, >> >>Good to hear from you. A virtual hotel! How interesting. >> >>I think I may be able to provide some help in getting you >>restarted. First, though, a couple of questions-- >> >>1) When do you need to be up and running by? If soon, then you >>should go ahead and do a v4 installation. If you are not in a big >>hurry, you maybe could wait for v5 to come out. >> >>2) What kind of server are you wanting to install your enCore site >>on? You mentioned winmoo, so I presume you are talking about a >>window's server. enCore is happier on a UNIX or LINUX (or MacOS) >>box, but it can work on a windows server. Installation and set up >>is a bit more complicated on a windows server, but it can be >>done. I have always heard to steer more toward a UNIX/Linux box if >>you are able to. >> >>v4 downloads are available at http://lingua.utdallas.edu/encore/ >>. I just tried the website and it worked for me??? Let me know if >>you still have problems. >> >>For more current information about enCore, you might visit the >>enCore Consortium website http://www.encore-consortium.org/ . I >>would recommend signing up for the encore-list for users, so you >>can tap into other enCore users to help you with questions (click >>on the Communication link within the consortium site). >> >>Let me know how else I can help you. I have an old guide for a >>windows installation if you need it. >> >>Take care, >> >>Lennie >> >> >>At 10:15 PM 6/19/2006, you wrote: >> >>>Hi >>> >>>I work in IT support at the School of Business, University of >>>Otago, New Zealand >>> >>>I have been asked to look into restarting a project that began >>>last year for one of our Tourism lecturers with a virtual hotel. >>>The project was begun with Ecore Xpress 4.01 and Winmoo. >>> >>>Unfortunately the person who began this task is no longer here and >>>no one else appears to have any knowledge of what they were doing. >>>I have found Winmoo on the original server but have been unable >>>get a copy of Encore 4.01 or been able to download it from >>>anywhere on the web (the link at >>>http://lingua.utdallas.edu/encore/ >>>does not work). I have found reference to version 5 in several >>>places but again no downloads, and your name appears in one >>>newsgroup talking about Encore 5 beta. >>> >>>Could you help me with perhaps getting Version 4 or even the beta for 5? >>> >>>Thanks in advance >>>Mike Eathorne-Gould > --=====================_80732093==.ALT Content-Type: text/html; charset="us-ascii" Any help you all might provide for Michael as he sets up a new installation of enCore would be great.  I think he is installing on a windows server, so that may be affecting the external mail situation. 

Thanks,

Lennie


Subject: RE: Encore
Date: Mon, 26 Jun 2006 15:39:51 +1200
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator:
Thread-Topic: Encore
Thread-Index: AcaVK8DzhJGKP+B4TYG6M/iRFZ09IQDhHeSw
From: "Michael Eathorne-Gould" <MEathorne-Gould@business.otago.ac.nz>
To: "Lennie Irvin" <Lirvin@accdvm.accd.edu>
X-PMX-Version: 5.2.0.264296, Antispam-Engine: 2.3.0.1, Antispam-Data: 2006.6.25.202933
X-PerlMx-Spam: Gauge=IIIIIII, Probability=7%, Report='HTML_50_70 0.1, __CP_MEDIA_BODY 0, __CP_URI_IN_BODY 0, __CT 0, __CTYPE_HAS_BOUNDARY 0, __CTYPE_MULTIPART 0, __CTYPE_MULTIPART_ALT 0, __EMBEDDED_IMG 0, __EXTRA_MPART_TYPE_1 0, __EXTRA_MPART_TYPE_N1 0, __HAS_MSGID 0, __HTML_FONT_BLUE 0, __IMS_MSGID 0, __MIME_HTML 0, __MIME_VERSION 0, __SANE_MSGID 0, __STOCK_CRUFT 0, __TAG_EXISTS_HTML 0'
X-NAS-BWL: Found match for 'MEathorne-Gould@business.otago.ac.nz' on the allowed list (183 addresses, 0 domains)
X-NAS-Classification: 0
X-NAS-MessageID: 1095
X-NAS-Validation: {DFF16927-88E6-4EAA-A097-460B7E65289B}

Hi sorry to bother you again. I have things working more or less at the moment apart from a couple of things.
 
The first is mail -- I understand that Encore includes an internal mailer, however I am having some issues with it.
 
The first is that the mail web page does not display properly
 
I get the following page when I click on mail
 
[]
 
And I cannot get the top menu to display properly. I have looked inside the database and can see where the top menu is generated but can't see why it is not happening. Internal mail is working as I can reply to pre-existing mail to other internal users.
 
Next is that from the documentation it seems that you should be able to send external email, but how can you configure this I can't see anywhere that you can do this and external mail is definitely not working.


From: Lennie Irvin [ mailto:Lirvin@accdvm.accd.edu]
Sent: Thursday, 22 June 2006 12:11 a.m.
To: Michael Eathorne-Gould
Subject: RE: Encore

Hi Michael,

It sounds like you have made good progress.  I know that v5 will not be ready in 3-4 weeks time, so it sounds like v4 is your starting place.  I have a winmoo installation guide that is not 100% complete that I will try to get for you.  As I recall, you need to do some initial configuration things for the moo via telnet and the @config command.  Perhaps you have done these.  I strongly recommend that you get on the enCore list and use it as a resource (there are a lot of people that know more than I do on that list): http://listar.utdallas.edu/

Also, this user guide may be helpful: http://www.accd.edu/sac/english/lirvin/4guide/index.html

I'll look for that guide for you.  I may not have it until Friday, though.

Take care,

Lennie

At 09:01 PM 6/20/2006, you wrote:
Thanks for replying.
 
How long do you think until the new version will be released? I have about 3-4 weeks before it needs to be running.
 
I did manage to download version 4 in the end. Perhaps it was something going wrong at this end.
 
I'm new to moo's so will be doing things by trial and error to get it all going. I unpacked Xpress and stuck it in the www root directory on our windows box and it all started working so thats the first part of it done. Now I have to go through the db file and look at how they have put it all together. I take it you would normally edit things in the moo in Xpress itself, thats what it looks like to me anyway. The db file can be manually opened and edited of course and thats what I did initially to see what was in it.
 
I notice in the test they did here there are a whole lot of images that appear to be stored in various places on the web rather than on the local server. My guess is that this is not normal and they should be all local as a few of them are broken and the website they link to are not up anymore.
 
There will be a lot of work to do with coding the objects etc in the moo I imagine as well, I have to just take that 1 step at a time :-)
 
Thanks for your reply, I'll keep in touch as I go and if you don't mind hit you up for Q and A occasionally.
 
Cheers
Mike
 


From: Lennie Irvin [ mailto:Lirvin@accdvm.accd.edu]
Sent: Tuesday, 20 June 2006 3:55 p.m.
To: Michael Eathorne-Gould
Subject: Re: Encore

Hi Michael,

Good to hear from you.  A virtual hotel!  How interesting. 

I think I may be able to provide some help in getting you restarted.  First, though, a couple of questions--

1) When do you need to be up and running by?  If soon, then you should go ahead and do a v4 installation.  If you are not in a big hurry, you maybe could wait for v5 to come out. 

2) What kind of server are you wanting to install your enCore site on?  You mentioned winmoo, so I presume you are talking about a window's server.  enCore is happier on a UNIX or LINUX (or MacOS) box, but it can work on a windows server.  Installation and set up is a bit more complicated on a windows server, but it can be done.  I have always heard to steer more toward a UNIX/Linux box if you are able to.

v4 downloads are available at http://lingua.utdallas.edu/encore/ .  I just tried the website and it worked for me???  Let me know if you still have problems. 

For more current information about enCore, you might visit the enCore Consortium website http://www.encore-consortium.org/ .  I would recommend signing up for the encore-list for users, so you can tap into other enCore users to help you with questions (click on the Communication link within the consortium site). 

Let me know how else I can help you.  I have an old guide for a windows installation if you need it. 

Take care,

Lennie


At 10:15 PM 6/19/2006, you wrote:

Hi

I work in IT support at the School of Business, University of Otago, New Zealand

I have been asked to look into restarting a project that began last year for one of our Tourism lecturers with a virtual hotel. The project was begun with Ecore Xpress 4.01 and Winmoo.

Unfortunately the person who began this task is no longer here and no one else appears to have any knowledge of what they were doing. I have found Winmoo on the original server but have been unable get a copy of Encore 4.01 or been able to download it from anywhere on the web (the link at http://lingua.utdallas.edu/encore/ does not work). I have found reference to version 5 in several places but again no downloads, and your name appears in one newsgroup talking about Encore 5 beta.

Could you help me with perhaps getting Version 4 or even the beta for 5?

Thanks in advance
Mike Eathorne-Gould

--=====================_80732093==.ALT-- --=====================_80732093==.REL Content-Type: image/jpeg; name="4cfdf6f.jpg"; x-mac-type="4A504547"; x-mac-creator="4A565752" Content-ID: <6.2.5.6.0.20060626064607.02974ea8@accdvm.accd.edu.1> Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="4cfdf6f.jpg" /9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcU FhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCALSAmQDASIA AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3 ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3 uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDh59ck 1SYySnzId37uJvugdjjpnnr/AEq3BdQoP+PK0J94hXM6MCtqhCs3A4VSxPHYDkmvc/DviaHQtE03 TtW0PQI5bZtl1PcSpcSnOW8sxqNysAVy/wA6rgqN7gIf03F4l4OMYUoKTfS9tF18z436uq05SqT5 UutrnnB1KID/AI8rP/vyKjbVYe9jaf8AfkV6F8ePDpstRi1S0jsobGRxEqQxFGB2Dg/NtxlWIIUH 5jnPGOX8N+BJvE2kWt1o94J7o3a215beWAbVGziUnd8y4HoOcjtUYLNKGJw/1ia5Vez8n6/8NroK vl1SjW9knzaXMT+1of8Anxs/+/Qo/taH/nxs/wDv0KWTw/Pearf2/heO812ztZPL+1WtoxD9Ruwu 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 zg4yMnB5OewoA5X4sf8AJLPGX/YFvf8A0Q9fOP7GulWmuaP8QtM1KFJ7S6is4pEdcggi4H519OeK /CuleK7MWmtpeS2u1kaGG+nt0kVsZDrE6hxwOGzjnHU1zWh/B3wVoDzPoNhqOmNMAJDZazewlwOm 7bMM4yevrQBc0m7TwV4X8E+Gr6e3k1iSG10xI42JWRo4h5rrkA7QqOQSBztHU4r5f+JgB/bItAQC DrOkgg/7lvX1Fp/wy8K2Hii18RxWN3NrdsCsV5d6lc3LqCrKR+8kYEYZuvrmqWq/BzwPqviKbXr/ AEm4l1iWYXDXY1K6WQSAgqVIkG3GBgDAUAAYAFAHc/YrX7d9t+zQfbPL8rz/ACx5mzOdu7rjPOK+ Mf2KgD8VNUyAcaNKR7fv4K+0Ly3S7tJ7aYyCKZGjYxyNG4BGDtdSGU88EEEdQa4nwj8JfBXg/Wk1 bw3pEljfqjR+Yt9cMGVhyrK0hVh0OCDyAeoBoA439qrQJpPg9qDaFbJCkV9HfXyW8IBmTkMzYHOC UYt6JzxXAeYn/DCu3cM7tuPf+08/yr6rdFkRkdQyMMFSMgj0Nch/wrPwh5fkf2LH9h3b/sHmyfY9 2c7vs27yt2e+3NAHzppunX+n/sUa42omQJdXUdxao6bSkJuoAMeoLKzA9w1dx+xjBDcfCbWYp4o5 YpNYmR0dQwZfIg4IPUc17P4s8J6N4t0P+x9etHuNM3q5t455IFYr90Hy2UkDrtPGQDjIGK3gfwL4 e8DW11beFrGSxt7lxJLEbqaVSwGNwEjsFOOCRjOBnOBgA6G3gitreOC2ijhgjUIkcahVVR0AA4Aq SiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK KKACiiigAooooAKKKKACmy/dH+8P5inU2X7o/wB4fzFDA/ODW/8AkIy/hRRrf/IRl/Civ06t/El6 ni0f4cfQ99/Zw/5D2m/73/tK5r6kr5b/AGcP+Q9pv+9/7Sua+pK+Jz//AJGNX5f+ko78B/AXz/Nh RRRXjnWFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF 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