Uroborus: Difference between revisions
(La pagina de mundito en plone) |
m (proofread) |
||
(8 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
Welcome to '''Ouroborus'''! | === Welcome to '''Ouroborus'''! === | ||
_Important_, you can contribute this wiki in two ways: | '''_Important_, you can contribute this wiki in two ways:''' | ||
- Commenting -> just | - Commenting -> just edit the page. | ||
- Editing -> just [http://linux.ajusco.upn.mx/wiki/index.php?title=Special:UserLogin "register"] | |||
We are creating a free, open source tool for teaching biology using artificial life simulations | We are creating a free, open source tool for teaching biology using artificial life simulations | ||
Line 14: | Line 15: | ||
Python might be a controversial choice, but it can always be extended, and we feel that it is ideal for the ObjectArchitecture we are working on, besides, there is "Moore's Law.":http://www.webopedia.com/TERM/M/Moores_Law.html | Python might be a controversial choice, but it can always be extended, and we feel that it is ideal for the ObjectArchitecture we are working on, besides, there is "Moore's Law.":http://www.webopedia.com/TERM/M/Moores_Law.html | ||
This page is for important issues concerning | This page is for important issues concerning Ouroborus Project. | ||
Feel free to edit this page or comment it in order to mention your ideas. | Feel free to edit this page or comment it in order to mention your ideas. | ||
Feel even freer to reorder or format this page as a HomePage. | Feel even freer to reorder or format this page as a HomePage. | ||
Contact Information. | === Contact Information. === | ||
We will hold regular meetings Monday from 18:00-19:30 at | |||
"irc://linux.ajusco.upn.mx/mundito/":irc://linux.ajusco.upn.mx/mundito/. port 7000 | "irc://linux.ajusco.upn.mx/mundito/":irc://linux.ajusco.upn.mx/mundito/. port 7000 | ||
This is the "plan for the next meeting":http://talleres.ajusco.upn.mx/portal/projects/mundito/meetingTopics. | This is the "plan for the next meeting":http://talleres.ajusco.upn.mx/portal/projects/mundito/meetingTopics. | ||
Download the code. | === Download the code. === | ||
You can make a svn(subversion) anonymous checkout: 'svn checkout svn://linux.ajusco.upn.mx/mundito' | |||
Theoretical Basis. | === Theoretical Basis. === | ||
The theoretical foundations of Ouroborus arise from complex systems theory; | |||
complex systems are those which contain a relatively large number of elements, | complex systems are those which contain a relatively large number of elements, | ||
not so many as to be able to perform mechanical statistics on the entire system, | not so many as to be able to perform mechanical statistics on the entire system, | ||
Line 42: | Line 43: | ||
The Ouroborus simulation is based on Stephen Wolfram's ideas concerning "cellular automata":http://www.ifs.tuwien.ac.at/~aschatt/info/ca/ca.html, but with a higher level of abstraction. | The Ouroborus simulation is based on Stephen Wolfram's ideas concerning "cellular automata":http://www.ifs.tuwien.ac.at/~aschatt/info/ca/ca.html, but with a higher level of abstraction. | ||
The gameboard will be a grid-like array of celluar automata, and the gamepieces will be mobile objects with a sensitive aura or neighbourhood around them. These mobile automata (MA) will be able to interact with the CA, i.e. the gameboard, which will record the MA's properties; in other words the gamepieces will secrete substances which will diffuse over the board. The MA will also sense amd react to other MA. | The gameboard will be a grid-like array of celluar automata, and the gamepieces will be mobile objects with a sensitive aura or neighbourhood around them. These mobile automata (MA) will be able to interact with the CA, i.e. the gameboard, which will record the MA's properties; in other words the gamepieces will secrete substances which will diffuse over the board. The MA will also sense amd react to other MA. | ||
In technical terms the board and the MA will have universal computation properties (they will be Turing machines). | In technical terms the board and the MA will have universal computation properties (they will be Turing machines). | ||
Line 48: | Line 50: | ||
the MA will have genotype and phenotype attributes. | the MA will have genotype and phenotype attributes. | ||
The phenotype will determine the way in which the MA's reproduce, and will also control mobility and sensitivity. | The phenotype will determine the way in which the MA's reproduce, and will also control mobility and sensitivity. | ||
The genotype is only a symbolic representation of the MA's genetic code; | The genotype is only a symbolic representation of the MA's genetic code; | ||
using this, it will be easy to teach and model the process of evolution complete with Mendel's laws. | using this, it will be easy to teach and model the process of evolution complete with Mendel's laws. | ||
Line 53: | Line 56: | ||
Architecture. | === Architecture. === | ||
I recently came accross this interesting concept: "Symbiosis Ware":http://c2.com/cgi/wiki?SymbiosisWare. | |||
Question: are we writing SymbiosisWare? | Question: are we writing SymbiosisWare? | ||
I say we are! | I say we are! | ||
Line 80: | Line 83: | ||
team want to solve: | team want to solve: | ||
- the first is about the speed | - the first is about the speed for cage libraries, (the cellular automata librery is to slow),the solution is make speed profiling and rewrite the slow functions in pyrex, pyrex is a mix of python and C (http://www.cosc.canterbury.ac.nz/~greg/python/Pyrex/) | ||
- the second is | - the second is construct the user interface (graphical user interface), this interface will be a mix of xml and wxpython | ||
You can see the "developers manual":http://linux.ajusco.upn.mx/~mundito/mundito/Development_manual.html in construction. | You can see the "developers manual":http://linux.ajusco.upn.mx/~mundito/mundito/Development_manual.html in construction. | ||
Line 106: | Line 109: | ||
We will use RegressionTests for the testing of the source code. | We will use RegressionTests for the testing of the source code. | ||
Documentation. | === Documentation. === | ||
Here you can place links to all kinds of relevant documentation, | |||
which includes python tutorials, articles about artificial life, | which includes python tutorials, articles about artificial life, | ||
pygame tutorials, manuals for mundito users and developers, etc... | pygame tutorials, manuals for mundito users and developers, etc... | ||
Line 124: | Line 127: | ||
(the markup should be structural, format should be applied by a CSS stylesheet), | (the markup should be structural, format should be applied by a CSS stylesheet), | ||
and the translation itself needs some serious work (both technical and in terms of style); | and the translation itself needs some serious work (both technical and in terms of style); | ||
still, we provide it with the hope that someone might find it | still, we provide it with the hope that someone might find it useful, | ||
maybe even fix it (if you do, don't forget to send it to us). | maybe even fix it (if you do, don't forget to send it to us). | ||
Line 132: | Line 135: | ||
but, of course, everyone else is invited to join in. | but, of course, everyone else is invited to join in. | ||
CAGE. | === CAGE. === | ||
The "Cage homepage":http://www.alcyone.com/software/cage/index.html is the only documentation I can find for it. | |||
(This of course means that we will need to write some tutorials or HowTos for it.) | (This of course means that we will need to write some tutorials or HowTos for it.) | ||
Networking. | === Networking. === | ||
Docs about the "standard implementation of socket networking":http://docs.python.org/lib/module-socket.html. | |||
A "Socket Programming HOWTO":http://www.amk.ca/python/howto/sockets/ | A "Socket Programming HOWTO":http://www.amk.ca/python/howto/sockets/ | ||
by "Gordon McMillan":http://www.hrdag.org/about/gordon_macmillan.shtml, (gmcm@hypernet.com), can be found in "A.M. Kuchling's page":http://www.amk.ca/. | by "Gordon McMillan":http://www.hrdag.org/about/gordon_macmillan.shtml, (gmcm@hypernet.com), can be found in "A.M. Kuchling's page":http://www.amk.ca/. | ||
Line 147: | Line 150: | ||
or need to see them again. | or need to see them again. | ||
=== Servers and services available === | |||
* Linux | |||
** Mailing lists (talleres, mundito) | |||
** Mediawiki wiki/ contents from our old site on Plone are now in this wiki | |||
** svn (available at /var/svn) but with no new commits since 2005, when the repository was moved to [http://sourceforge.net/projects/ouroborus/ Sourceforge], major contributors of the 72 revisions on this repository (mundito) where David and Vian. | |||
** Sobby | |||
* Janus | |||
** Private ftp for ouroborus developers (filtered by the FW actually) | |||
* Sagan | |||
**Squishdot news site, mainly used to report work http://sagan.ajusco.upn.mx:8080/linux | |||
=== Wiki's Sandbox === | |||
If you just want to play with the wiki, visit the [[SandBox]], this content will be mantained, but we ask you not to alter another contributions. | |||
Comments? | Comments? | ||
Below is a space for comments. | |||
You can also use it to experiment with this wiki, | You can also use it to experiment with this wiki, | ||
to create pages not related to mundito, etc... | to create pages not related to mundito, etc... | ||
WritingSample de Palmis. | [[WritingSample]] de Palmis. | ||
Line 189: | Line 203: | ||
<b>parece que los estuviera oyendo...</b> --2004/03/24 00:32 CST<br> | <b>parece que los estuviera oyendo...</b> --2004/03/24 00:32 CST<br> | ||
I love deadlines. I love the whooshing noise they make as they go by --Douglas Adams ( | I love deadlines. I love the whooshing noise they make as they go by --Douglas Adams (http://www.edge.org/documents/adams_index.html"Lament For Douglas]) | ||
Line 195: | Line 209: | ||
Check out this article by Jaron Lanier for an interesting argument about the use of dimensions in computation: | Check out this article by Jaron Lanier for an interesting argument about the use of dimensions in computation: | ||
http://www.edge.org/3rd_culture/lanier03/lanier_index.html | http://www.edge.org/3rd_culture/lanier03/lanier_index.html | ||
=== All the other contents of plone === | |||
*[[ApplicationProtocol]] | |||
*[[CAs]] | |||
*[[CourseSyllabus]] | |||
*[[ObjectArchitecture]] | |||
** [[PicoWorld]] | |||
*** [[CoolNames]] | |||
*[[RegressionTests]] | |||
*[[SandBox]] | |||
*[[ToDoList]] | |||
*[[VersionControl]] | |||
** [[ManualSubversion]] | |||
*[[WorkShop]] | |||
[[WritingSample]] |
Latest revision as of 18:41, 8 November 2010
Welcome to Ouroborus![edit]
_Important_, you can contribute this wiki in two ways:
- Commenting -> just edit the page.
- Editing -> just "register"
We are creating a free, open source tool for teaching biology using artificial life simulations
which we hope will be sufficiently complex to exhibit Interesting Behaviour.
It will be written in "Python":http://www.python.org/ with "Pygame":http://www.pygame.org/].
We will create windows executables with
"py2exe":http://starship.python.net/crew/theller/py2exe/index.html .
Python might be a controversial choice, but it can always be extended, and we feel that it is ideal for the ObjectArchitecture we are working on, besides, there is "Moore's Law.":http://www.webopedia.com/TERM/M/Moores_Law.html
This page is for important issues concerning Ouroborus Project. Feel free to edit this page or comment it in order to mention your ideas. Feel even freer to reorder or format this page as a HomePage.
Contact Information.[edit]
We will hold regular meetings Monday from 18:00-19:30 at "irc://linux.ajusco.upn.mx/mundito/":irc://linux.ajusco.upn.mx/mundito/. port 7000
This is the "plan for the next meeting":http://talleres.ajusco.upn.mx/portal/projects/mundito/meetingTopics.
Download the code.[edit]
You can make a svn(subversion) anonymous checkout: 'svn checkout svn://linux.ajusco.upn.mx/mundito'
Theoretical Basis.[edit]
The theoretical foundations of Ouroborus arise from complex systems theory; complex systems are those which contain a relatively large number of elements, not so many as to be able to perform mechanical statistics on the entire system, and not so few that we could analyse them with differential equations. These systems cannot be broken up into their constituent parts in order to be analysed, because the dynamics of the entire system depend on the complete interaction of the parts.
As an example of a complex system you can think of the human brain: if you try to understand the behaviour of the entire system by studying the neurons only, you won't go very far at all since you will need one differential equation for each neuron and the mammalian brain has hundreds of thousands of them, making it impossible to model. On the other hand if you focus on the statistics of the system you won't find too much of interest either. So we must conclude that somewhere in between order (the mechanisistic view) and disorder (statistics) lie some interesting phenomena known as complex systems.
The Ouroborus simulation is based on Stephen Wolfram's ideas concerning "cellular automata":http://www.ifs.tuwien.ac.at/~aschatt/info/ca/ca.html, but with a higher level of abstraction.
The gameboard will be a grid-like array of celluar automata, and the gamepieces will be mobile objects with a sensitive aura or neighbourhood around them. These mobile automata (MA) will be able to interact with the CA, i.e. the gameboard, which will record the MA's properties; in other words the gamepieces will secrete substances which will diffuse over the board. The MA will also sense amd react to other MA. In technical terms the board and the MA will have universal computation properties (they will be Turing machines).
Since Ouroborus is an artificial life simulation created with the purpose of teaching biology, the MA will have genotype and phenotype attributes. The phenotype will determine the way in which the MA's reproduce, and will also control mobility and sensitivity.
The genotype is only a symbolic representation of the MA's genetic code; using this, it will be easy to teach and model the process of evolution complete with Mendel's laws. Once we have evolution plus the MA-CA interaction, we will end up with a practical tool for teaching ecology.
Architecture.[edit]
I recently came accross this interesting concept: "Symbiosis Ware":http://c2.com/cgi/wiki?SymbiosisWare. Question: are we writing SymbiosisWare? I say we are!
Ouroborus implements the "model-view-controller":http://ootips.org/mvc-pattern.html pattern with the "observer":http://ootips.org/observer-pattern.html pattern to communicate the three parts. "This":http://java.sun.com/blueprints/patterns/MVC-detailed.html MVC page is worthy of a visit just to check out the "diagram":http://java.sun.com/blueprints/patterns/images/mvc-structure-generic.gif detailing the pattern.
As we intend to allow the model to be distributed among any number of peers, we must create an ApplicationProtocol for it.
"Cage":http://www.alcyone.com/software/cage/index.html is a generic and fairly complete cellular automata simulation engine, as described by its homepage, we need to evaluate it to see if it will fit our needs.
"CAML":http://caml.sourceforge.net/ is an XML language application for describing CAs.
Now we have a ToDoList, please populate it with things to do. there are two problems that ouroborus team want to solve:
- the first is about the speed for cage libraries, (the cellular automata librery is to slow),the solution is make speed profiling and rewrite the slow functions in pyrex, pyrex is a mix of python and C (http://www.cosc.canterbury.ac.nz/~greg/python/Pyrex/)
- the second is construct the user interface (graphical user interface), this interface will be a mix of xml and wxpython You can see the "developers manual":http://linux.ajusco.upn.mx/~mundito/mundito/Development_manual.html in construction.
">Here you find the code. You can download it as ">zip archive or as a gzipped ">tarball.
Currently available creatures to populate Ouroborus may be viewed ">here.
We need to decide on a VersionControl system - Subversion! Our Subversion is currently down, meanwhile panx will edit the [http://www.spacemonkey.info/neighborhoods.py"> neighborhood.py] file. Someone please commit it as soon as our version control is back online.
Our progress will be tracked using ">ZenTrack, at ">our site. You can find some Zentrack manuals ">here.
We will use RegressionTests for the testing of the source code.
Documentation.[edit]
Here you can place links to all kinds of relevant documentation, which includes python tutorials, articles about artificial life, pygame tutorials, manuals for mundito users and developers, etc...
A "pygame tutorial":http://sjbrown.ezide.com/writing-games.html for the model-view-controller and observer patterns in games. Also there is a "tutorial":http://www.pygame.org/docs/tut/Executable.html for packaging pygame applications with "py2exe":http://starship.python.net/crew/theller/py2exe/index.html.
An excellent "python tutorial":http://www.python.org/doc/current/tut/tut.html written by Guido van Rossum, the creator of python and its Benevolent Dictator for Life.
"A paper":http://www.auml.org/auml/supplements/Cranefield1-OAS2001.pdf on UML and agent modelling.
A very rough and unmantained "translation of Guido's tutorial":http://talleres.ajusco.upn.mx/library/Manuales/python/index.html to Spanish. I am not at all proud of this translation, the formatting needs to be completely redone (the markup should be structural, format should be applied by a CSS stylesheet), and the translation itself needs some serious work (both technical and in terms of style); still, we provide it with the hope that someone might find it useful, maybe even fix it (if you do, don't forget to send it to us).
CourseSyllabus for a 10 hour Python Workshop with Ouroborus.
Ismael Olea and I (Jergas) are organizing a technical documentation WorkShop for mundito developers, but, of course, everyone else is invited to join in.
CAGE.[edit]
The "Cage homepage":http://www.alcyone.com/software/cage/index.html is the only documentation I can find for it. (This of course means that we will need to write some tutorials or HowTos for it.)
Networking.[edit]
Docs about the "standard implementation of socket networking":http://docs.python.org/lib/module-socket.html. A "Socket Programming HOWTO":http://www.amk.ca/python/howto/sockets/ by "Gordon McMillan":http://www.hrdag.org/about/gordon_macmillan.shtml, (gmcm@hypernet.com), can be found in "A.M. Kuchling's page":http://www.amk.ca/.
Below are the standard help files for those of you who do not know them
or need to see them again.
Servers and services available[edit]
- Linux
- Mailing lists (talleres, mundito)
- Mediawiki wiki/ contents from our old site on Plone are now in this wiki
- svn (available at /var/svn) but with no new commits since 2005, when the repository was moved to Sourceforge, major contributors of the 72 revisions on this repository (mundito) where David and Vian.
- Sobby
- Janus
- Private ftp for ouroborus developers (filtered by the FW actually)
- Sagan
- Squishdot news site, mainly used to report work http://sagan.ajusco.upn.mx:8080/linux
Wiki's Sandbox[edit]
If you just want to play with the wiki, visit the SandBox, this content will be mantained, but we ask you not to alter another contributions.
Comments?
Below is a space for comments. You can also use it to experiment with this wiki, to create pages not related to mundito, etc...
WritingSample de Palmis.
From unknown Mon Dec 8 21:32:04 -0600 2003
From:
Date: Mon, 08 Dec 2003 21:32:04 -0600
Subject:
Message-ID: <20031208213204-0600@talleres.ajusco.upn.mx>
Estoy nadamas probando
From unknown Mon Dec 15 16:25:46 -0600 2003 From: Date: Mon, 15 Dec 2003 16:25:46 -0600 Subject: Message-ID: <20031215162546-0600@talleres.ajusco.upn.mx> In-reply-to: <20031208213204-0600@talleres.ajusco.upn.mx>
hola, quien esta nomas probando? saludos, jergas
From unknown Thu Jan 8 13:05:49 -0600 2004 From: Date: Thu, 08 Jan 2004 13:05:49 -0600 Subject: YoProbando Message-ID: <20040108130549-0600@talleres.ajusco.upn.mx>
Yo. Yo sigo probando. Yo.
parece que los estuviera oyendo... --2004/03/24 00:32 CST
I love deadlines. I love the whooshing noise they make as they go by --Douglas Adams (http://www.edge.org/documents/adams_index.html"Lament For Douglas])
leeanse esto --2004/03/24 08:11 CST
Check out this article by Jaron Lanier for an interesting argument about the use of dimensions in computation:
http://www.edge.org/3rd_culture/lanier03/lanier_index.html