Hi,
I recently spent some time to get Self running on Windows and made a first version available on http://www.gliebe.de/self/download.html . It needs cygwin and XFree, which you can get from http://www.cygwin.com Have fun,
Harald
Harald,
This is a *really* good news! Thank you very much for your work!!!!
On the other side: I was not abled to run it. I get
$ ./Self.exe -s Demo.snap Self VM fatal error (../../../vm/src/any/memory/universe.cpp, line 491): Snapshot is corrupt near: String table, file position: 0xcbd2ca
VM Version: 4.1.10, Sun 08 Dec 02 14:15:11 Cygwin
Any idea?
TIA,
Diego Gomez Deck
Hi,
I recently spent some time to get Self running on Windows and made a first version available on http://www.gliebe.de/self/download.html . It needs cygwin and XFree, which you can get from http://www.cygwin.com Have fun,
Harald
-- Harald Gliebe harald@gliebe.de
Diego,
it seems that the snapshot is really corrupt, it expects to find the string 'String table' somewhere near the specified address in the snapshot, but can't find it. I just tried to download it myself and it worked for me, however I noticed that the browser or webserver unpacked the gzipped file during the download. Could you run a md5 checksum over your snapshot to verify that the file was correctly downloaded. I get
$ md5sum Demo.snap 5b2988f9805903a5a01f7da25a9ef5af Demo.snap
and for completeness
$ md5sum Self.exe 03c46053ca6fb32a7f1835d492736904 Self.exe
Please tell me if the download hasn't worked for you, maybe I have to change something with the webserver.
Btw, you should call Self on cygwin with -c flag (which disables realtime signals, that are not yet completly implemented):
./Self -c -s Demo.snap
Best regards,
Harald
On Sun, 2002-12-08 at 22:08, diegogomezdeck@consultar.com wrote:
Harald,
This is a *really* good news! Thank you very much for your work!!!!
On the other side: I was not abled to run it. I get
$ ./Self.exe -s Demo.snap Self VM fatal error (../../../vm/src/any/memory/universe.cpp, line 491): Snapshot is corrupt near: String table, file position: 0xcbd2ca
VM Version: 4.1.10, Sun 08 Dec 02 14:15:11 Cygwin
Any idea?
TIA,
Diego Gomez Deck
Hi,
I recently spent some time to get Self running on Windows and made a first version available on http://www.gliebe.de/self/download.html . It needs cygwin and XFree, which you can get from http://www.cygwin.com Have fun,
Harald
-- Harald Gliebe harald@gliebe.de
Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
Hi,
Both checksums are ok. I also tried to create an snapshort for myself and when I try to use the new snapshot I get the same problem.
Anyway, creating all from the sources with:
Self -c -f ../../../objects/all2.self
seems to works!!
Any idea about the snapshots? version of cygnus?
Cheers,
Diego Gomez Deck
Diego,
it seems that the snapshot is really corrupt, it expects to find the string 'String table' somewhere near the specified address in the snapshot, but can't find it. I just tried to download it myself and it worked for me, however I noticed that the browser or webserver unpacked the gzipped file during the download. Could you run a md5 checksum over your snapshot to verify that the file was correctly downloaded. I get
$ md5sum Demo.snap 5b2988f9805903a5a01f7da25a9ef5af Demo.snap
and for completeness
$ md5sum Self.exe 03c46053ca6fb32a7f1835d492736904 Self.exe
Please tell me if the download hasn't worked for you, maybe I have to change something with the webserver.
Btw, you should call Self on cygwin with -c flag (which disables realtime signals, that are not yet completly implemented):
./Self -c -s Demo.snap
Best regards,
Harald
Hi,
This is strange, I just checked the corresponding code and up to the point of your error message, only some file reading and memory allocation has been done. I'll have another look at it tomorrow to see what could cause the error.
My cygwin version is 1.3.17.
Harald
On Sun, 2002-12-08 at 23:21, diegogomezdeck@consultar.com wrote:
Hi,
Both checksums are ok. I also tried to create an snapshort for myself and when I try to use the new snapshot I get the same problem.
Anyway, creating all from the sources with:
Self -c -f ../../../objects/all2.self
seems to works!!
Any idea about the snapshots? version of cygnus?
Cheers,
Diego Gomez Deck
Diego,
it seems that the snapshot is really corrupt, it expects to find the string 'String table' somewhere near the specified address in the snapshot, but can't find it. I just tried to download it myself and it worked for me, however I noticed that the browser or webserver unpacked the gzipped file during the download. Could you run a md5 checksum over your snapshot to verify that the file was correctly downloaded. I get
$ md5sum Demo.snap 5b2988f9805903a5a01f7da25a9ef5af Demo.snap
and for completeness
$ md5sum Self.exe 03c46053ca6fb32a7f1835d492736904 Self.exe
Please tell me if the download hasn't worked for you, maybe I have to change something with the webserver.
Btw, you should call Self on cygwin with -c flag (which disables realtime signals, that are not yet completly implemented):
./Self -c -s Demo.snap
Best regards,
Harald
Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
Harald Gliebe wrote: Dear Harald: I would like to know if it is possible to teach the tutorial made by Dave and Randy in this windows version? If it is possible, please let me know about how many Mbytes of memory I shall have? A PC with 500 MBytes RAM memory is enough? And what about the Linux version? Which one is better? Which one should I try? BEst wishes and my compliments for the achievement! Albertina
Diego,
it seems that the snapshot is really corrupt, it expects to find the string 'String table' somewhere near the specified address in the snapshot, but can't find it. I just tried to download it myself and it worked for me, however I noticed that the browser or webserver unpacked the gzipped file during the download. Could you run a md5 checksum over your snapshot to verify that the file was correctly downloaded. I get
$ md5sum Demo.snap 5b2988f9805903a5a01f7da25a9ef5af Demo.snap
and for completeness
$ md5sum Self.exe 03c46053ca6fb32a7f1835d492736904 Self.exe
Please tell me if the download hasn't worked for you, maybe I have to change something with the webserver.
Btw, you should call Self on cygwin with -c flag (which disables realtime signals, that are not yet completly implemented):
./Self -c -s Demo.snap
Best regards,
Harald
On Sun, 2002-12-08 at 22:08, diegogomezdeck@consultar.com wrote:
Harald,
This is a *really* good news! Thank you very much for your work!!!!
On the other side: I was not abled to run it. I get
$ ./Self.exe -s Demo.snap Self VM fatal error (../../../vm/src/any/memory/universe.cpp, line 491): Snapshot is corrupt near: String table, file position: 0xcbd2ca
VM Version: 4.1.10, Sun 08 Dec 02 14:15:11 Cygwin
Any idea?
TIA,
Diego Gomez Deck
Hi,
I recently spent some time to get Self running on Windows and made a first version available on http://www.gliebe.de/self/download.html . It needs cygwin and XFree, which you can get from http://www.cygwin.com Have fun,
Harald
-- Harald Gliebe harald@gliebe.de
Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
-- Harald Gliebe harald@gliebe.de
Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
Harald,
thank you very much for this early and wonderful Christmas gift!
On Sunday 08 December 2002 20:35, Albertina Lourenci wrote:
I would like to know if it is possible to teach the tutorial made by Dave and Randy in this windows version?
Don't you mean the tutorial by Mario and Randy? If so, then everything described there should work with this version with a few exceptions:
- none of the supplied snapshots includes the bank account object, though the tutorial included in Demo.snap teaches you how to build it (in fact, there is some overlap between the two tutorials) - the "Find slot..." menu option no longer works exactly as described in the "Finding inherited methods" section (you should type the method name you are looking for in the object's evaluator, select it and only then choose "Find slot..." from the menu) - the debugger no longer has an "abort" button (use the "x" dismiss button instead) - it seems that the two bugs described in the pie wedge "baseDrawOn:" don't currently exist
These are changes from 4.0 to 4.1.6, not anything that is specific to Windows. For the most part, things work exactly the same whether you are on a Sparc, a Mac, Linux or Windows.
If it is possible, please let me know about how many Mbytes of memory I shall have? A PC with 500 MBytes RAM memory is enough?
A machine with half as much would probably work fine. Since the "good" compiler isn't there, it is important to have a fast processor. But even on my 233MHz Pentium II machine it is usable.
And what about the Linux version?
Same thing.
Which one is better? Which one should I try?
The Windows version requires two extra packages, so it might be harder for you to set it up. If you don't already have a Linux machine, however, then getting Cygwin/XFree to work is easier than changing OSes.
-- Jecel
Hi,
the error below is caused by some CR/LF conversion, when cygwin is installed with default text file mode set to DOS. The VM used to open the snapshots in text mode, which doesn't make any difference on Unix platforms but may convert the file contents on Windows. An update of the Cygwin VM (0.2.4.1) that fixes this bug is available on
http://www.gliebe.de/self/download.html .
Thanks for reporting the bug,
Harald
diegogomezdeck@consultar.com schrieb am 08.12.2002, 22:08:57:
Harald,
This is a *really* good news! Thank you very much for your work!!!!
On the other side: I was not abled to run it. I get
$ ./Self.exe -s Demo.snap Self VM fatal error (../../../vm/src/any/memory/universe.cpp, line 491): Snapshot is corrupt near: String table, file position: 0xcbd2ca
VM Version: 4.1.10, Sun 08 Dec 02 14:15:11 Cygwin
Any idea?
TIA,
Diego Gomez Deck
Hi,
I recently spent some time to get Self running on Windows and made a first version available on http://www.gliebe.de/self/download.html . It needs cygwin and XFree, which you can get from http://www.cygwin.com Have fun,
Harald
-- Harald Gliebe
Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
Eureka!!!
A milestone was reached! We have Self running on Windows!!!
Thank you very much for the work...
Cheers,
Diego Gomez Deck
PS: I don't need to say that the last VM work fine :-)
Hi,
the error below is caused by some CR/LF conversion, when cygwin is installed with default text file mode set to DOS. The VM used to open the snapshots in text mode, which doesn't make any difference on Unix platforms but may convert the file contents on Windows. An update of the Cygwin VM (0.2.4.1) that fixes this bug is available on
http://www.gliebe.de/self/download.html .
Thanks for reporting the bug,
Harald
Have there been any papers written on implementing design patterns in delegation/object based languages? I'm interested in how delegation or object based inheritance can simplify design. For example these patterns from the Gamma, et al book seem to become non-issues in such a language : Prototype - built in to object based languages. Singleton - built in to object based languages. Chain of Responsibility - can be done easily by delegating to next object in chain. State - can be done easily with an assignable parent slot. Strategy - can be done easily with an assignable parent slot. Decorator - can be done easily with an assignable parent slot. Proxy - proxy can delegate to the other object. But I am also and perhaps more interested in design idioms that naturally arise out of differential programming, beyond the few that are mentioned in the papers on the Self site.
--- james mccartney
James McCartney wrote: Dear James:
It is curious but there is a general trend in all new computational paradigms
(AOSD, HyperJ, etc) to be unable to discard design patterns and assert it is possible to simplify
them at least! And of course they forget that doing this introduce the same faults they are critcizing in design patterns in the new techniques. In the chapter about Does Aspect Oriented Programming make sense ? in my Scientific Report Devising a generative morphodynamic level, see homepage: http://www.lsi.usp.br/~lourenci I have tried to cover the most intriguing papers relating design patterns and other viewpoints about them (and at least the references make evident if read carefully what I state above. They complicate things instead of making things simple, and holistic and worse do not complexify the world.) In the deep discussion with Jim Coplien who spearheaded the design pattern movement, I finally realized there is indeed something special about the design patterns.I believe James Noble( who was part of the prototype community) and Robert Biddle have been trying to unravel the design patterns' true nature. This is rather concerned with the nature of literature I mean the fact literature feeds on figural language especially metaphor and metonymy. A wonderful book about this is Paul de Man's Allegories of Reading Figural language in Rousseau, Nietzche, Rilke and Proust.The preface is orgasmic! After twelve years old, I suffocated all my romantic trends especially poetry! However since I am an architect and an architectural language has the nature of Chinese, I mean obviously poetry, I reencountered in part this split in my research. Having abandoned verbal languages, I went so far that right now I am applying modulation to architecture, symmetry groups of the plane and the dotless plane and computer science! There is a trend to consider the aesthetic superiority of metaphor over metonymy.Our first examples dealing with the rhetorical questions were rhetorizations of grammar, figures generated by syntactical paradigms, wehreas the Proust example could be better described as a grammatization of rhetoric. By passing from a paradigmatic structure based on contingent association 'such as metonymy, the mechanical, repetitive aspect of grammatical forms is shown to be operative in a passage that seemed at first sight to celebrate the self-willed and autonomous inventiveness of a subject....Yet our reading of the Proust passage shows that precisely when the highest claims are being made for the unifying power of metaphor, these very images rely in fact on the deceptive use of semi-automatic grammatical patterns. The deconstruction of metaphor and of all rhetorical patterns such as mimesis, paronomasia, or personification that use resemblance as a way to disguise differences, takes us back to the impersonal precision of grammar and of a semiology derived from grammatical patterns. There seems to be a difference then between what I called the rhetorization of grammar (as in rhetorical question) and the grammatization of rhetoric, as in the readings of the type sketched out in the passage from Proust.
Hence after the rhetorical reading of the Proust passage, we can no longer believe the assertion made in this passage about the intrinsic metaphysical superiority of metaphor over metonymy. What is implied here, is that I abandoned the direct concern with metaphor and centered my attention on the pragmatic metonymic modes. Something like Rauschenberg's did (see my III Scientific REport). Whilst Alexander embraced metaphor in the A pattern language which inspired the design patterns! Or better this tunes with Agile Software Development. Not being able to define the essence and not feeling confident on metaphors let's look for situations where art and poetry can occur! This is exactly what Alistair Cockburn does!
And curiously this opened the gate for discourse!
And of course there are many leaps in the reasoning here but concluding when I introduce modulation into my ecodesign model and its underlying geometric model, that necessarily must be implemented by computer I am introducing rhetorics into software systems or the multiplicity of meanings!!! And obviously all my attempt is to deconstruct "class-based languages" A class for me is simply a pattern! The non-attractive metonymic nature of prototype based language especially Self is the key for expressiveness!!!Its hermeneutic nature or its nature of a game, allowing the multiplicity of discourse through Kansas it doesn't matter where you are sitting down in the world opens the gate to the multiplicity of
discourse and reaches the core of the Peircean semiotics based on the interpretant!
So please when you simplify don't forget that metaphor and metonymy are different faces of the same coin. One cannot live without the other! I mean the what (Jim Coplien's efforts in software) and the how (Alistair's efforts in software) must be intertwined! (see my paper for rOOts conference in my homepage!).
I am sure software is inaugurating a luminous era and I hope 2003 will be a bright Year for software development!
Best wishes, Albertina
Have there been any papers written on implementing design patterns in delegation/object based languages? I'm interested in how delegation or object based inheritance can simplify design. For example these patterns from the Gamma, et al book seem to become non-issues in such a language : Prototype - built in to object based languages. Singleton - built in to object based languages. Chain of Responsibility - can be done easily by delegating to next object in chain. State - can be done easily with an assignable parent slot. Strategy - can be done easily with an assignable parent slot. Decorator - can be done easily with an assignable parent slot. Proxy - proxy can delegate to the other object. But I am also and perhaps more interested in design idioms that naturally arise out of differential programming, beyond the few that are mentioned in the papers on the Self site.
--- james mccartney
Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
On Thursday 02 January 2003 19:20, James McCartney wrote:
Have there been any papers written on implementing design patterns in delegation/object based languages? I'm interested in how delegation or object based inheritance can simplify design.
You might want to search the archives of this list for "design patterns". There were several interesting discussions, including the one starting at http://groups.yahoo.com/group/self-interest/message/841 and http://groups.yahoo.com/group/self-interest/message/882
For example these patterns from the Gamma, et al book seem to become non-issues in such a language : Prototype - built in to object based languages. Singleton - built in to object based languages. Chain of Responsibility - can be done easily by delegating to next object in chain. State - can be done easily with an assignable parent slot. Strategy - can be done easily with an assignable parent slot. Decorator - can be done easily with an assignable parent slot. Proxy - proxy can delegate to the other object.
Exactly - see my own list in message 882.
But I am also and perhaps more interested in design idioms that naturally arise out of differential programming, beyond the few that are mentioned in the papers on the Self site.
I can't think of any new patterns enabled by Self right now, but it would be interesting to look into this.
Note that on the other hand there are a few patterns that are required by Self due to "The Power Of Simplicity". Inheritance of structure (or shape) is a pattern, shared behavior in traits trees is a pattern and so on. Which is a good thing. A language can't and shouldn't have everything and what is left out will have to be dealt with somehow.
-- Jecel
Thanks for the ref.
One thing about using delegation for something like Chain of Responsibility: If you've delegated to a parent and that parent has its own methods and state, then that parent may want to have self refer to the parent instead of the original receiver in order that there are no unintended naming conflicts with other parents of the receiver or the receiver itself. How is this normally dealt with?
On Friday, January 3, 2003, at 01:24 PM, Jecel Assumpcao Jr wrote:
You might want to search the archives of this list for "design patterns". There were several interesting discussions, including the one starting at http://groups.yahoo.com/group/self-interest/message/841 and http://groups.yahoo.com/group/self-interest/message/882
On Friday 03 January 2003 21:39, James McCartney wrote:
One thing about using delegation for something like Chain of Responsibility: If you've delegated to a parent and that parent has its own methods and state, then that parent may want to have self refer to the parent instead of the original receiver in order that there are no unintended naming conflicts with other parents of the receiver or the receiver itself. How is this normally dealt with?
I would say that this is not normally dealt with. You know the old joke:
"Doctor, it hurts when I do this." "Then don't do that!"
You avoid the problem by a careful selection of method names so there is no conflict. Yes, I know that this is impossible in the general case. But I am not sure changing the meaning of "self" will help that much.
obj1 = (| chain* <- (| m1 = (m2+1). m2 = (42) |). m3 = (m1/2). otherParent* = xxx |)
I am supposing you are worried that obj1 might inherit a different "m2" from otherParent and want to force "m1" to call the one in the chain object and not any other. One solution is to use directed resend:
m1 = (chain.m2+1)
though this will only work if all children refer to this object via a "chain*" slot and it will fail if the method is invoked on the chain object itself. Another issue is that "self" is only changed in the lookup of "m2" and any messages sent inside "m2" will use obj1 as "self" instead. That might be what you want, but I suspect it isn't.
Explicit delegation will change "self" for all further sends inside the invoked method:
m1 = (chain m2+1)
but, once again, we are counting on a particular structure in the children. More generic solutions will be very awkward and involve reflection, while simpler solutions are possible for particular cases (a global oddball object normally has a name that it can use to refer to itself, for example).
-- Jecel
(I've sent Harald a private email about this.)
New to the group!
I'm very new to Cygwin, and my Unix skills have rusted for 15 years or more. I'm trying to get Self/x86 running, having been interested in it for some time (Smalltalk is my current language of choice).
I'm running Windows 98. I have dowloaded and installed the latest versions of Cygwin and XFree. I've downloaded the latest version of Self/x86, with the bugfix mentioned in this thread, and moved the files to /usr/self.
Typing
cd /usr/self ./Self -c -s Demo.snap
in the bash window in X produces
"Self VM fatal error (../../../vm/src/any/zone/zone.cpp, line 155): i and stub zones overlap"
Anyone got any clues? Thanks for any help.
Cheers, Paul
On Mon, 14 Apr 2003, Paul Chapman wrote:
Typing
cd /usr/self ./Self -c -s Demo.snap
in the bash window in X produces
"Self VM fatal error (../../../vm/src/any/zone/zone.cpp, line 155): i and stub zones overlap"
Anyone got any clues? Thanks for any help.
I do not have a Windows installation, but I've noticed that the Demo image often doesn't work with Self/x86 while the barebones image does. Can you get the latter to load?
Brian,
I do not have a Windows installation, but I've noticed that the
Demo image
often doesn't work with Self/x86 while the barebones image does.
Can you
get the latter to load?
Nope.
I've just redownloaded everything, and used Unix tools (gunzip, tar) under Cygwin exclusively to unpack the files, just to be sure WinZip wasn't screwing with them.
Same error message on both Demo.snap and Empty.snap.
Thanks anyway. :)
Had a bad few days all round: trying to find an incremental, OO, platform-independent (or at least multi-platform) environment for a project. Talks2 looked good but is flakey and incomplete. DSelf same. No luck with Sun's Self, as you can see. Thinking of having another look at Squeak, but last time I was overwhelmed by its features and had trouble finding how to do the simple stuff. :)
Cheers, Paul
On Monday 14 April 2003 17:32, Paul Chapman wrote:
I've just redownloaded everything, and used Unix tools (gunzip, tar) under Cygwin exclusively to unpack the files, just to be sure WinZip wasn't screwing with them.
I haven't tried Self on Windows myself, but did use an older version of Cygwin to get Little Smalltalk and GNU Smalltalk to run in Windows. It wasn't too easy to get all the details right.
The Mac version of Self is also a bit complicated to set up. The Sparc and the Linux versions are the easiest - just download and go.
What is the "-c" option? The versions I use don't have that.
Same error message on both Demo.snap and Empty.snap.
What happens if you run Self without any snapshot at all? Do you get to the VM# prompt ok?
Had a bad few days all round: trying to find an incremental, OO, platform-independent (or at least multi-platform) environment for a project. Talks2 looked good but is flakey and incomplete. DSelf same. No luck with Sun's Self, as you can see. Thinking of having another look at Squeak, but last time I was overwhelmed by its features and had trouble finding how to do the simple stuff. :)
Io (http://www.iolanguage.com/) is a good scripting level language, more like GNU Smalltalk than Squeak or Self (for now, at least).
I hope that someone figures out your problem so you can try Self - it is certainly worth looking into even if you then decide to use something else.
-- Jecel
Jecel,
What is the "-c" option? The versions I use don't have that.
Not sure.
What happens if you run Self without any snapshot at all? Do you
get to
the VM# prompt ok?
Didn't know you could do that. I get the same error message. I guess it's not a snapshot problem, then.
I hope that someone figures out your problem so you can try Self -
it is
certainly worth looking into even if you then decide to use
something
else.
I've been itching to play with it ever since first discovering it a year ago.
Cheers, Paul
This is great! Self now runs on under 4 operating systems, and 3 architectures.
Out of curiosity: what changes did you have to make for your port?
Mike
On Sunday, December 8, 2002, at 09:39 AM, Harald Gliebe wrote:
Hi,
I recently spent some time to get Self running on Windows and made a first version available on http://www.gliebe.de/self/download.html . It needs cygwin and XFree, which you can get from http://www.cygwin.com Have fun,
Harald
-- Harald Gliebe harald@gliebe.de
Hi Mike,
Actually there were surprisingly few changes to make for the cygwin version, the cygwin package provides excellent support for porting unix apps to windows. src/any and src/i386 are almost unchanged, most changes were necessary in src/unix, often only different location of header files or method signatures. The bigger problems I encountered were the following: - signal handling and timers: cygwin provides the standard signal support, but not the advanced features like sigaction and signal stacks. I also couldn't get the timers to work correctly. I worked around the latter problem by using directly using a win32 multimedia timer. - no syscall on cygwin: The syscall function doesn't exist on cygwin, for the Self methods that uses syscalls (e.g. unixGlobals os mkdir:) I had to define new primitives.
Btw, from the Self pages at Sun I asume that you together with David Ungar are currently responsible for the Self versions for Solaris and OS X. I added a command switch (-b) to the Linux and Cygwin version to import a snapshot from Mac or Sparc which are stored in big-endian byte-order (you still need to file in the linux/cygwin specific stuff to use it) It would be nice if the Solaris/OS X versions would provide the same functionality, so that you can use a snapshot on all supported platforms. I can send you a patch for this, if you're interested.
Ideally the byte-order could also be autodetected by the VM, but this might require a change of the snapshot format to add the byte-order information.
Harald
On Sun, 2002-12-08 at 23:07, Michael Abd-El-Malek wrote:
This is great! Self now runs on under 4 operating systems, and 3 architectures.
Out of curiosity: what changes did you have to make for your port?
Mike
On Sunday, December 8, 2002, at 09:39 AM, Harald Gliebe wrote:
Hi,
I recently spent some time to get Self running on Windows and made a first version available on http://www.gliebe.de/self/download.html . It needs cygwin and XFree, which you can get from http://www.cygwin.com Have fun,
Harald
-- Harald Gliebe harald@gliebe.de
Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
self-interest@lists.selflanguage.org