Requesting space on Git
Jameson "Chema" Quinn
jquinn at cs.oberlin.edu
Thu Aug 9 23:02:57 EDT 2007
1. Project name : Idly Develop
2. Existing website, if any : none
3. One-line description : A proof of concept for multilingual programming
4. Longer description : An IDLE-based program editor demonstrating the
concept of transparent non-English-based editing of
real python code. See notes, below, for further
5. URLs of similar projects : Well, there's IDLE, and from about
1995-98 Appletalk did something similar... but this is really a new
6. Committer list
Please list the maintainer (lead developer) as the first entry. Only list
developers who need to be given accounts so that they can commit to your
project's code repository, or push their own. There is no need to list
Username Full name SSH2 key URL E-mail
-------- --------- ------------ ------
#1 homunq Jameson Quinn www.casarizoma.org/id_dsa.pub
jquinn at cs.oberlin.edu
I know that at least a couple of others would be interested, I'd be
happy to allow any who want to to sign up.
7. Preferred development model
[X] Central tree. Every developer can push his changes directly to the
project's git tree. This is the standard model that will be familiar to
CVS and Subversion users, and that tends to work well for most projects.
[ ] Maintainer-owned tree. Every developer creates his own git tree, or
multiple git trees. He periodically asks the maintainer to look at one
or more of these trees, and merge changes into the maintainer-owned,
"main" tree. This is the model used by the Linux kernel, and is
well-suited to projects wishing to maintain a tighter control on code
entering the main tree.
If you choose the maintainer-owned tree model, but wish to set up some
shared trees where all of your project's committers can commit directly,
as might be the case with a "discussion" tree, or a tree for an individual
feature, you may send us such a request by e-mail, and we will set up the
tree for you.
8. Set up a project mailing list:
[ ] Yes, named after our project name
[ ] Yes, named ______________________
When your project is just getting off the ground, we suggest you eschew
a separate mailing list and instead keep discussion about your project
on the main OLPC development list. This will give you more input and
potentially attract more developers to your project; when the volume of
messages related to your project reaches some critical mass, we can
trivially create a separate mailing list for you.
If you need multiple lists, let us know. We discourage having many
mailing lists for smaller projects, as this tends to
stunt the growth of your project community. You can always add more lists
9. Commit notifications
[ ] Notification of commits to the main tree should be e-mailed to the list
we chose to create above
[ ] A separate mailing list, <projectname>-git, should be created for commit
[X] No commit notifications, please
10. Shell accounts
As a general rule, we don't provide shell accounts to developers unless
there's a demonstrated need. If you have one, please explain here, and
list the usernames of the committers above needing shell access.
A. For prior discussion of this concept, see (oldest to newest):
B. Note on terminology: For what follows,
(Spanish) is shorthand for "user's non-English native language".
(Arabic) is short for "another non-English language".
(*Spanish) and (*English) are interchangeable variables for two
languages, one of which is English.
C. Basic concepts and design philosophy
Write in Spanish-based quasiPython, save in English-based Python.
reason: this keeps code fully portable, yet lowers the barriers to
entry, especially for younger children who are not comfortable with
Built-in translations of python keywords for all OLPC target languages
reason: it's easy, there are so few.
Easy, GUI-based and dictionary-supported tools for translation of identifiers
reason: if everyone can translate, it will go fast. Wiki-style philosophy.
Ditto for line-by-line translation of docstrings and comments
reason: line-by-line translation allows the possibility of twext,
not too fine or too granular.
Translate ONLY module "public interfaces", not internals.
(ie, what would go in a .h file if python had them - the things that
get used by another module that imports it)
reason: this simplifies the task of translating. It is probably not
especially productive to try to translate module internals.
Also, see next point.
The translation UI only lets you translate INTO your preferred
language the interfaces of modules IMPORTED BY your modules
reason: this is the most useful user case. Restricting things to
this case MASSIVELY simplifies the programming task
and reduces the possible errors created, as the model is already
focused on the interface between two specific files, so
overtranslation is not a risk, and as it is also reasonable in this
case to expect user input on what file the translation
is intended to apply to.
new module in idlelib with >300 LOC. Of these, ~100 do the simple,
static translation, and work; the other ~200 are focused
on managing multiple translation dictionaries for multiple open files,
these currently run but are buggy/incomplete.
minor modifications to EditorWindow, IOBinding, and a couple other
existing IDLE modules (not ColorDelegator yet).
These make a working editor and shell with a static translation of
keywords from English to Spanish.
This is intended as a proof-of-concept.
I expect that about 60-80% of the code could be reused with an AbiWord
editor gadget (rather than the tk text gadget IDLE uses)
for the real Develop activity.
I also expect that when it's done, making it generalizable to computer
languages other than Python would be about 20% additional work.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Devel