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
discussion.
                            :
                            :

5. URLs of similar projects : Well, there's IDLE, and from about
1995-98 Appletalk did something similar... but this is really a new
concept.

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
   non-committer developers.

      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 ______________________
   [X] No

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

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
       notifications
   [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.

11. Notes/comments:
A. For prior discussion of this concept, see (oldest to newest):
http://wiki.laptop.org/go/Develop#Human_Language_and_Culture_Concerns
http://wiki.laptop.org/go/Source-code_editor_with_transparent_native-language_display
http://wiki.laptop.org/go/Source-code_editor_with_transparent_native-language_display/design
http://lists.laptop.org/pipermail/sugar/2007-August/003012.html and
associated thread.


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

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.

D. Status:
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.

E. Plans:
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...
URL: <http://lists.laptop.org/pipermail/devel/attachments/20070809/af213b56/attachment.html>


More information about the Devel mailing list