Ideas for PyKata for GSoC 2010

2 views
Skip to first unread message

Abhishek Mishra

unread,
Mar 25, 2010, 3:01:27 PM3/25/10
to pyw...@googlegroups.com
Hi everyone,

I'm planning to work on PyKata for GSoC 2010, under the Education
projects of PSF umbrella.
A few words about me - I'm a student, I love Python and it has become
my primary language for doing anything now. http://github.com/ideamonk

Here I would like to discuss possible ideas for PyKata in GSoC 2010.

What is PyKata?
===============
PyKata is a community-authored website with contributions from
teachers and students in math and science, as well as technical
professionals. It provides you a way to quickly write programs on the
web, execute them on the fly online, and proceed through excercises
classified in various categories. It is designed to aid teachers as
well as students. http://en.wikipedia.org/wiki/Kata
Website - http://pykata.appspot.com/
Vision - http://pykata.appspot.com/vision/
Code - http://code.google.com/p/pykata/ , currently based on webapp+django

What features are provided currently?
=====================================
1. It lets you write, execute and automatically evaluate your code online.
2. Saves your work-in-progress.
3. Shows your overall progress as to problems solved.
4. Lets community contribute problems.
5. Static help

Why should PyKata be developed further under GSoC '10?
======================================================
Python has been a liberating force for many programmers, and has been
great at restoring the fun and playfullness to programming. I believe
Python is the best when it comes to teaching programming at school and
college levels. http://is.gd/aYO08 and personally while discussing
python with some friends, I've noticed a fair amount of excitement
they've shown at Python.
This calls for a need for one obvious way/place for Pythonistas to
learn, practice and teach Python. I believe PyKata could serve this
purpose very well once developed into a feature rich platform.


===========================================
Ideas for PyKata development under GSoC '10
===========================================

1. UI/UX improvements
------------------
PyKata could benefit from an improved design (more web2.0-ish). This
would not only make it attractive but also help us present the
progress data, user profiles, live statistics, tutorials, news, etc in
a better way as it would encourage more social interaction upon
growing.
http://twitpic.com/1aux8n/full

Create an addictive and interactive user experience. Use game style
interaction to drive participation, include points, badges, rewards -
a great example for that would be http://stackoverflow.com

Create a flow - once a student gets a problem right, show which way to
proceed on result page.
If a student goes wrong repetitevely, show him/her possible tutorials
related to it.
http://twitpic.com/1auytp/full

Some examples - http://www.codechef.com/
http://scarky.com/stats/sites/ http://codegolf.com/

2. Porting to Web2Py
-----------------
Currently PyKata is based on django+webapp framework to run on
AppEngine. This is great, however we would like to make the entry of
new developers into PyKata very very easy.
Django is known to have a steep learning curve while web2py is a much
more simpler and easy to learn framework for web development. Moreover
support for web2py is active and porting to Google AppEngine is not
much of an effort.

3. User Profiles
-------------
Create a per user personal profile. This would help individuals track
their personal progress. Also add two levels of views to these
profiles - a personal view, a public view. Public views would be
instrumental for a teacher to track progress of students.
Currently the only way to track progress is to either look at ticks on
'All problems page' or to do the same on category pages.
http://twitpic.com/1av0x0/full

4. Live execution results
----------------------
Currently PyKata takes you to another page to show results of current
code execution. Then the user hits back button to modify the code, or
copy-pastes the traceback for reference and hits back to debug the
code. This user experience could be simplified by placing a live
result box on right side of the editor.

5. A Wiki/Tutorials section
------------------------
Provide a mechanism to easily contribute tutorials on PyKata. Also
provide a way to keep history of these documents. Adding support for
discussions too would be a nice thing to have.
Allow documents to be taggable for searchability. Create a way to do
topic-wise and author-wise searches. This would also help in showing
possible tutorials to a student when he/she fails at a problem
multiple times.
Add content moderation support. Allow users to access older version of
documents.

6. Batch upload problems/ solution-uploads
---------------------------------------
A contributor of problems/tutorials might have many contents already
written in say, text files. Copy pasting from them and uploading one
by one might not be a great user experience. Simplify this task by
allowing flash/javascript based bulk uploads. Also provide server side
validation.
Eg. http://www.fyneworks.com/jquery/multiple-file-upload/

7. Course planning feature
-----------------------
It is expected that PyKata once launched and contributed to, would
become a big repository of Python learning problems. Allow teachers to
create lessons by handpicking existing problems and tutorials and
making a definite learning track or a roadmap out of them.

8. User types
----------
A good way to encourage participation would be to expose different users.
Different user types - learners, one-by-one contributors, experts,
content contributors, admins, developers.
A 'karma ranking' or community rating approach to classify users would
be great. This would encourage already contributing members to
contribute more.

9. Export Import of Data
---------------------
Create a way for people to run a local copy of PyKata on their
infrastructure. As such it would be nice for them to be able to export
and import problems/content from main PyKata website to their local
copies. This idea seems very helpful for students countries like
India, where many colleges are not really well connected. (Eg.
students living in college hostel of my college)

10. Ratings
-------
Create a way for the community to rate contents - including users,
problems, tutorials. This would help us gather good statistical data
for further analysis.

11. Social Networks integration
---------------------------
Though not at all a priority task, and not even a tough thing to do.
At a later finishing stage, it would be nice to have integration to
social networks like Facebook, twitter, etc to gain more popularity.
Though not at all a concern right now.

I'm looking forward to your suggestion on improving these or adding to
these ideas.
I was able to do some mockups as linked above, but couldn't find time
to do more today.

Looking forward to some more brainstorming and criticism. I fear that
though I've listed out many possibilities for PyKata, yet I would like
your comments to sort them in priority.
I might have missed some too.

Thanks,
Abhishek

Andre Roberge

unread,
Mar 25, 2010, 3:09:08 PM3/25/10
to pyw...@googlegroups.com
Good (although a bit long) description.  Two things that need to be added:

1. proposed timeline; you might incorporate some of the ideas you mentioned into that timeline and make sure you avoid duplication
2. you should include a paragraph or two describing your programming experience.

André


--
You received this message because you are subscribed to the Google Groups "PyWhip" group.
To post to this group, send email to pyw...@googlegroups.com.
To unsubscribe from this group, send email to pywhip+un...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/pywhip?hl=en.


David MacQuigg

unread,
Mar 25, 2010, 9:17:56 PM3/25/10
to pyw...@googlegroups.com
Abhishek, your proposal is excellent. If this doesn't get you a spot in
GSoC, I can't imagine what is wrong with them.

After we collect everyone's comments, we can put the first part of this
up on our PyKata website. The last part should probably go on your
website, as there will be other students applying for the position, and
we don't want to show any bias. Andre's suggestion of including a
summary of your qualifications would also be best on your website, or in
whatever application form GSoC requires. None of us is familiar with
the GSoC procedures, so you might want to look into that yourself.

Another thing we might add to the PyKata website is statements from
teachers about their plans for using PyKata. Since we don't have a lot
of students yet, these statements will take the place of student
testimonials. Here is my statement:

I plan to use PyKata in helping my clients (circuit design engineers)
learn Python. Many times I have seen simple tasks not done, or
delegated to a professional programmer. With PyKata, I can say - Don't
hire a Perl programmer for that lab setup you need! Take a few days and
learn Python. I also plan to use Python as the scripting language in a
new circuit-design platform. The plan is that the design engineers will
take over once they see how simple it is to write their own scripts.
These engineers now use the poorly-designed proprietary languages that
come with each vendor's tools. Python can replace all these languages.
Learn Python and you have not just a language for one tool from one
vendor, but a tool you can use in just about anything involving computation.

I'm also planning to use PyKata to get Python into our classes in
Engineering and Science. Students have basically the same problem as
professionals - a need for a language that is simple enough that it
doesn't distract them from the task at hand, learning fundamentals. If
we organize this website right, teachers will be able to select just
what they need for their particular subject, and avoid all the
programming cruft that is typically taught in a multi-year sequence
designed for future programmers.

I need to condense these statements. I'll wait until others have
contributed their statements, then delete anything that others have said
better.

See comments below.

Wouldn't it be cool if students could have a team competing with other
schools. Members of the team could wear jackets with the school logo
and patches showing their ranking (black belt, brown belt, etc.).

> Create a flow - once a student gets a problem right, show which way to
> proceed on result page.
> If a student goes wrong repetitevely, show him/her possible tutorials
> related to it.
> http://twitpic.com/1auytp/full
>
> Some examples - http://www.codechef.com/
> http://scarky.com/stats/sites/ http://codegolf.com/
>

Nice collection. Many ideas here to inspire our design. I like the
cartoon graphics.

> 2. Porting to Web2Py
> -----------------
> Currently PyKata is based on django+webapp framework to run on
> AppEngine. This is great, however we would like to make the entry of
> new developers into PyKata very very easy.
> Django is known to have a steep learning curve while web2py is a much
> more simpler and easy to learn framework for web development. Moreover
> support for web2py is active and porting to Google AppEngine is not
> much of an effort.
>

Let's make the PyKata website a shining example of good coding, maybe
even have a manual of website design, focused on just the features in
PyKata.

> 3. User Profiles
> -------------
> Create a per user personal profile. This would help individuals track
> their personal progress. Also add two levels of views to these
> profiles - a personal view, a public view. Public views would be
> instrumental for a teacher to track progress of students.
> Currently the only way to track progress is to either look at ticks on
> 'All problems page' or to do the same on category pages.
> http://twitpic.com/1av0x0/full
>
> 4. Live execution results
> ----------------------
> Currently PyKata takes you to another page to show results of current
> code execution. Then the user hits back button to modify the code, or
> copy-pastes the traceback for reference and hits back to debug the
> code. This user experience could be simplified by placing a live
> result box on right side of the editor.
>

I agree completely. Javabat seems so much more responsive, even though
PyKata is only a few extra clicks. If the live results won't fit on the
same page, let's make it a pop-up window.

> 5. A Wiki/Tutorials section
> ------------------------
> Provide a mechanism to easily contribute tutorials on PyKata. Also
> provide a way to keep history of these documents. Adding support for
> discussions too would be a nice thing to have.
> Allow documents to be taggable for searchability. Create a way to do
> topic-wise and author-wise searches. This would also help in showing
> possible tutorials to a student when he/she fails at a problem
> multiple times.
> Add content moderation support. Allow users to access older version of
> documents.
>

This is where we can really branch out to fields other than CS. Our
structure could be something like Wikipedia, or even better
Citizendium. Teachers could write an entire series of articles on a
particular subject. Others could contribute, but the editors keep
control (as in Citizendium) so we can encourage authors who are really
good, but would prefer not to have edit wars with loudmouths and
know-nothings.

This is a bit different, but I found http://www.khanacademy.org/ to be
very interesting. I generally don't like lectures, but Khan does a
really good job with an online whiteboard. The range of topics is also
amazing. This could be a good format also for teaching programming.

> 6. Batch upload problems/ solution-uploads
> ---------------------------------------
> A contributor of problems/tutorials might have many contents already
> written in say, text files. Copy pasting from them and uploading one
> by one might not be a great user experience. Simplify this task by
> allowing flash/javascript based bulk uploads. Also provide server side
> validation.
> Eg. http://www.fyneworks.com/jquery/multiple-file-upload/
>

See also the upload format I suggested:
http://code.google.com/p/pykata/wiki/UploadFormat We want to have
something that is not too much different than a well-written Python
program, so all the author has to do is add a few tags. With a little
effort, we can do things like parse the docstrings to extract examples,
automatically include the examples in the testcases, etc. Doctests are
cool. Python is perfect for teaching a "tests first" methodology.

> 7. Course planning feature
> -----------------------
> It is expected that PyKata once launched and contributed to, would
> become a big repository of Python learning problems. Allow teachers to
> create lessons by handpicking existing problems and tutorials and
> making a definite learning track or a roadmap out of them.
>

I really like the Time Machine in my new Mac. Scroll back to any point
in time, and recover the exact state of all files at that time. It
doesn't take a lot of disk space either. Only the files that are
changed are copied to the external disk. All the others are simply tied
in to a link tree. We could do something like this to preserve the
state of problems that are selected by a teacher to include in a lesson
plan. Of course, if the teacher wants to modify a problem, then we make
a copy instead of a link. Like the Python garbage collector, a problem
version is deleted only if the last link to it is removed.

> 8. User types
> ----------
> A good way to encourage participation would be to expose different users.
> Different user types - learners, one-by-one contributors, experts,
> content contributors, admins, developers.
> A 'karma ranking' or community rating approach to classify users would
> be great. This would encourage already contributing members to
> contribute more.
>
> 9. Export Import of Data
> ---------------------
> Create a way for people to run a local copy of PyKata on their
> infrastructure. As such it would be nice for them to be able to export
> and import problems/content from main PyKata website to their local
> copies. This idea seems very helpful for students countries like
> India, where many colleges are not really well connected. (Eg.
> students living in college hostel of my college)
>

We could use the same format for import and export of data. The export
script should be quite easy, since the pieces in the database are
already parsed. Google is working on a bulkloader for data, but the
data dump may be not fit for human consumption. We need our exported
data to be nicely formatted - an example of how a Python program should
be written.

> 10. Ratings
> -------
> Create a way for the community to rate contents - including users,
> problems, tutorials. This would help us gather good statistical data
> for further analysis.
>
> 11. Social Networks integration
> ---------------------------
> Though not at all a priority task, and not even a tough thing to do.
> At a later finishing stage, it would be nice to have integration to
> social networks like Facebook, twitter, etc to gain more popularity.
> Though not at all a concern right now.
>

Can we just use a google discussion group for this? Seems like they
have all the features we need. I need to learn more about Facebook,
Twitter, etc. so I can keep up with the kids.

> I'm looking forward to your suggestion on improving these or adding to
> these ideas.
> I was able to do some mockups as linked above, but couldn't find time
> to do more today.
>
> Looking forward to some more brainstorming and criticism. I fear that
> though I've listed out many possibilities for PyKata, yet I would like
> your comments to sort them in priority.
> I might have missed some too.
>

You have a very good sense of what is needed, and I think your
priorities are right also.

-- Dave

Andre Roberge

unread,
Mar 25, 2010, 9:45:08 PM3/25/10
to pyw...@googlegroups.com
On Thu, Mar 25, 2010 at 10:17 PM, David MacQuigg <macq...@box67.com> wrote:
Abhishek, your proposal is excellent.  If this doesn't get you a spot in GSoC, I can't imagine what is wrong with them.

Not to put a damper on things ... I have been a mentor for four years in a row and the quality of applications has risen steadily.  This year, the PSF has stated that priority would be given to Python 3 projects and preferences would be given to very well qualified candidates.  (I'm paraphrasing from memory...)
 

After we collect everyone's comments, we can put the first part of this up on our PyKata website.  The last part should probably go on your website, as there will be other students applying for the position, and we don't want to show any bias.

I'm not sure this is a good idea.  Applications are confidential to avoid students plagiarizing from each other (among other things).   Mentors have access to all students applications and can comment on them in a confidential manner.

If you, David, are interested in ranking applications, you should join the PSF mentor list.
 
 Andre's suggestion of including a summary of your qualifications would also be best on your website, or in whatever application form GSoC requires.  None of us is familiar with the GSoC procedures, so you might want to look into that yourself.

There is no set GSoC procedures: they vary from organization to organization.  However, given what I mentioned about the PSF's priorities for this year, the qualifications should be included in the application.
 

Emphasis on the GSoC application is on code production.
 


2. Porting to Web2Py
  -----------------
Currently PyKata is based on django+webapp framework to run on
AppEngine. This is great, however we would like to make the entry of
new developers into PyKata very very easy.
Django is known to have a steep learning curve while web2py is a much
more simpler and easy to learn framework for web development. Moreover
support for web2py is active and porting to Google AppEngine is not
much of an effort.
 

Let's make the PyKata website a shining example of good coding, maybe even have a manual of website design, focused on just the features in PyKata.


The production of something like a manual can not be part of a GSoC project. 
 
Something like this best belong (imo) on the showmedo site ... and is not relevant for GSoC: what is desired is code only, not pedagogical material.


I don't have anything else to add at this point.

André

 

Abhishek Mishra

unread,
Mar 26, 2010, 10:55:26 AM3/26/10
to pyw...@googlegroups.com
Hi guys, quite a busy day today, will be back in another 4-5 hrs.

Abhishek

David MacQuigg

unread,
Mar 26, 2010, 1:37:43 PM3/26/10
to pyw...@googlegroups.com
Andre Roberge wrote:
> On Thu, Mar 25, 2010 at 10:17 PM, David MacQuigg <macq...@box67.com
> <mailto:macq...@box67.com>> wrote:
>
> Abhishek, your proposal is excellent. If this doesn't get you a
> spot in GSoC, I can't imagine what is wrong with them.
>
>
> Not to put a damper on things ... I have been a mentor for four years
> in a row and the quality of applications has risen steadily. This
> year, the PSF has stated that priority would be given to Python 3
> projects and preferences would be given to very well qualified
> candidates. (I'm paraphrasing from memory...)

Who makes the decision, PSF or Google? Maybe we should apply
independently to Google. "Python 3 projects" seems to imply projects
focused on migrating code, adding features specific to Python 3, etc.
Since PyKata works within a limited environment, where the "print"
statement is not used, I can't see that we have to worry about
migration. When GAE switches to Python 3, whatever glitches might arise
in our code should be quick and easy for us to fix.

I am truly impressed with the qualifications of our candidates. We just
need to make sure these qualifications are clear in their applications.

> After we collect everyone's comments, we can put the first part of
> this up on our PyKata website. The last part should probably go
> on your website, as there will be other students applying for the
> position, and we don't want to show any bias.
>
>
> I'm not sure this is a good idea. Applications are confidential to
> avoid students plagiarizing from each other (among other things).
> Mentors have access to all students applications and can comment on
> them in a confidential manner.
>
> If you, David, are interested in ranking applications, you should join
> the PSF mentor list.

Andy is our GSoC mentor. I'll help if he needs it. Ohterwise I've got
to focus my limited time on other parts of the project.

> Andre's suggestion of including a summary of your qualifications
> would also be best on your website, or in whatever application
> form GSoC requires. None of us is familiar with the GSoC
> procedures, so you might want to look into that yourself.
>
>
> There is no set GSoC procedures: they vary from organization to
> organization. However, given what I mentioned about the PSF's
> priorities for this year, the qualifications should be included in the
> application.

I hope you and Andy can guide us through this mess. I'm finding the
python.org website to be very disorganized on GSoC info.

This doesn't seem right. Do you have a link to any clarification of
this policy. Documentation is an essential part of most programming
projects. Good projects generally do documentation in parallel with
code development. Big blunderous organizations, like what I am very
familiar with, have a separate department for documentation, and often
the tech writers have difficulty even getting cooperation from the
developers, since they have moved on to the next project.

I'll bet that policy is a little more flexible than just a simple
"cannot be part of". Either extreme is bad. No documentation is bad
for the project. 100% effort on documentation smells like an effort to
offload some dirty work on GSoC.

I don't mean to disregard your advice and experience with GSoC. If
putting any emphasis on documentation will hurt our chances, let's word
it carefully. We do want to emphasize that our goal is a finished
product that can be easily maintained and extended by future student
developers.

Perhaps we should also make clear our commitment of time and effort in
helping our "lead developer" so he doesn't have to worry about
"production" details. Just get the essentials written out, and I will
help with the editing and organization. This could also be a good role
for a future GSoC student. Anything he doesn't understand, we need to
clarify.

Agreed. The emphasis should not be on the content, but on the code
necessary to make adding content easy. That could be something as
simple as a link to a showmedo page, or it might be best to have a
whiteboard built in. Just brainstorming at this point.

-- Dave

Andre Roberge

unread,
Mar 26, 2010, 8:05:25 PM3/26/10
to pyw...@googlegroups.com
Hi everyone,

Before I add a few more comments to this conversation, I would like to state something very unambiguously:

In my opinion, of all the educational projects I have seen over the years, including Crunchy towards which I am hopelessly biased, the project that has the greatest potential of having a positive impact for Python teaching is Pykata.

(I'll explain why at a later time if anyone is interested.)

So, please take my comments as being made in a completely constructive spirit.

On Fri, Mar 26, 2010 at 2:37 PM, David MacQuigg <macq...@box67.com> wrote:
Andre Roberge wrote:

On Thu, Mar 25, 2010 at 10:17 PM, David MacQuigg <macq...@box67.com <mailto:macq...@box67.com>> wrote:

   Abhishek, your proposal is excellent.  If this doesn't get you a
   spot in GSoC, I can't imagine what is wrong with them.


Not to put a damper on things ... I have been a mentor for four years in a row and the quality of applications has risen steadily.  This year, the PSF has stated that priority would be given to Python 3 projects and preferences would be given to very well qualified candidates.  (I'm paraphrasing from memory...)

Who makes the decision, PSF or Google?  Maybe we should apply independently to Google.  "Python 3 projects" seems to imply projects focused on migrating code, adding features specific to Python 3, etc.  Since PyKata works within a limited environment, where the "print" statement is not used, I can't see that we have to worry about migration.  When GAE switches to Python 3, whatever glitches might arise in our code should be quick and easy for us to fix.


Google selects mentoring organizations.  Each mentoring organizations then make their own selections.

Mentoring organizations had to apply to be considered as such before March 12 - so there is no way that Pykata could apply independently to Google.   (see http://socghop.appspot.com/document/show/gsoc_program/google/gsoc2010/faqs#org_apply)

The PSF has probably been the one organizations that has had the most projects allowed over the years.  A PyKata project would fall nicely (in my opinion) under the umbrella of the PSF.

However, to quote from an email written by Titus Brown on this year's SoC list:
===
The foundation's representative (basically, Arc, with some input from me)
makes the final decision according to whatever criteria we've laid out, but
before that we need to get good projects with great students and enthusiastic
mentors.  In particular, Google awards us a number of slots roughly correlated
with how many good proposals we have.

There's no good way to guarantee that a proposal is funded, but we'll do
our best to tell you what the decision points are.  This year we (Arc and
myself, with the input of Steve Holden, the PSF chair) have decided to focus
on the transition to python3, and, absent enough good python3 proposals,
on recruiting good students.
===

I personally don't think that there will be enough "python3" proposals - and that it should be possible for a student working on Pykata to be chosen.

 
I am truly impressed with the qualifications of our candidates.  We just need to make sure these qualifications are clear in their applications.

It should be "*They* should make sure that their qualifications are clear...".  Students can and should benefit from feedback before submitting their applications ... but, in the end, it is *they* who submit *their* proposal for a project.

(SNIP)



   Let's make the PyKata website a shining example of good coding,
   maybe even have a manual of website design, focused on just the
   features in PyKata.


The production of something like a manual can not be part of a GSoC project.

This doesn't seem right.  Do you have a link to any clarification of this policy.  Documentation is an essential part of most programming projects.  Good projects generally do documentation in parallel with code development.  Big blunderous organizations, like what I am very familiar with, have a separate department for documentation, and often the tech writers have difficulty even getting cooperation from the developers, since they have moved on to the next project.

Sorry, I don't have a link.  I just know from previous discussions that the emphasis of Google Summer of **Code** project is on the coding aspect.  Some documentation to go along the code is expected. 

 
I'll bet that policy is a little more flexible than just a simple "cannot be part of".

Sorry, that was perhaps an exaggeration of my part ... and a misreading; however, the mention of "a manual of website design" does not strike me as having anything to do with a coding project, nor does it strike me as something relatively minor - hence my original comment.
 
 Either extreme is bad.  No documentation is bad for the project.  100% effort on documentation smells like an effort to offload some dirty work on GSoC.

I don't mean to disregard your advice and experience with GSoC.  If putting any emphasis on documentation will hurt our chances, let's word it carefully.  We do want to emphasize that our goal is a finished product that can be easily maintained and extended by future student developers.
Perhaps we should also make clear our commitment of time and effort in helping our "lead developer" so he doesn't have to worry about "production" details.  Just get the essentials written out, and I will help with the editing and organization.  

Again, I disagree slightly.  Students proposals are like job applications that *they* make.  Interested students will log in into the Google site, write their applications which will be visible by all (PSF) mentors for feedback and comments.   Here, on the pywhip list (or off-list), we can interact with students, make suggestions for improvements for their applications, etc., but (unless I am misunderstanding what you suggest) we should not be "helping with the editing and organizing" of any individual student application: this is a competition for students and doing something that amounts to writing a proposal for a given student is cheating (in my opinion).

Regards,

André

Abhishek Mishra

unread,
Mar 27, 2010, 3:27:08 AM3/27/10
to PyWhip
Hi everyone,

Thanks for the feedback.

Here is a rough sketch of my tentative plans for timeline, however my
submitted proposal would have a more detailed one.

March 29 - April 9: Preparing a more detailed proposal, detailing
every feature planned to be implemented.
Interim Period: Mentoring organizations review and rank student
proposals; where necessary, mentoring organizations may request
further proposal detail from the student applicant.
April 10 - April 25: Time to hit back to acads, April end to May 13th
happens to be my end semester exam. At the same time utilizing this
time to learn more web2py and svn. I am used to git and bzr as of now.
April 26: Accepted student proposals announced on the Google Summer of
Code 2010 site.

April 26 - May24 Community Bonding Period: Students get to know
mentors, read documentation, get up to speed to begin working on their
projects.
April 26 - May 13th - low action due to exams :( mostly
discussions / clearing doubts on which approach to follow for a
feature
May 13th - May 14th - Going through all existing discussions/code
and wiki documentation to not to miss anything.
May 15th - May 24th - Starting with finishing Task2 (porting to
web2py). Laying out clear plans for implementing features (feature -
time period mapping). Starting with some features that can be
experimented independently and later integrated.
Setting up a development, testing
appengine instances (maybe this could be done my mentoring team for
ownership issues)

May 24 - July 11 : Students begin coding for their GSoC projects;
Starting with a basic ui layout to match to the mockups,
(partial Task1)
I will start implementing features one by one.
Once Features are done with basic ui layout. It would be
a nice time to improve the design then, as spending more time on
design in beginning might make us slow with features. (completion of
Task1 towards end)

May 24 - May 28 - Plan out db models for storing data
related to every task. Many of the features are inter-related, it
would be essential to think of best ways to model schema structures to
avoid any issues later. I would mostly be sitting with paper and pen
thinking and emulating things in my mind, creating blueprints,
diagrams.
May 28 - May 29 - Task3 - Basic user profile support to
be done - I believe this task would also go iterations as many
suggestions are expected to come after initial work, once basic
profile support is done in a day, it would be worked upon other days
too.
May 30 - June 1 - Task3 is also related to Task8 (User
types/roles), hence it would good to work on both together.
June 2 - June 6 - Start with Task4 to provide live
execution results. This task might take some time in case I encounter
issues to be resolved with safe code execution
June 7 - June 17 - Start with Task5 - wiki/tutorial
sections, this might take some more time compared to others. A secure
flawless way of user generated content submission along with desired
changelog/history would be implemented.
June 18 - June 19 - Integrate Task10 (Ratings) to content
and user profiles, fix any bugs from last week's work.
June 20 - June 23 - Right now Task1(partial), Task3,
Task8, Task4, Task5 and Task10 would be done. Time to test them.
June 24 - June June 24 - Task6 Implementation of multi-
upload / batch upload
June 25 - July 5 - Now that user roles are defined and
content submission features are done with, it would be nice to spend
some time on Task7 to help teachers cherry-pick problems, tutorials
and make interesting learning tracks for students.
This might also expose bugs in
previously done tasks, so would be great to spend more time on it.
July 5 - July 11 - More testing of features, cushion time
if things get late in above plan, more specifically to get things
ready for mid-term evals.

July 12: 19:00 UTC Mentors and students can begin submitting mid-term
evaluations.
July 16: 19:00 UTC Mid-term evaluations deadline;
July 17 - August 9 Interim Period: Mentors give students a helping
hand and guidance on their projects.
July 17 - July 20 - Focus on Task9 - import/export
of data. Web2py's already existing json and xml support would be very
helpful here :)
July 20 - July 25 - Improvement of UI of PyKata -
resulting in completion of Task1
July 26 - July 26 - Task 11 - Trivial social network
integration for making project more popular.
July 27 - August 9 - Writing documentation, even
more testing, fix any filed bugs so far.
August 9: Suggested 'pencils down' date. Take a week to scrub code,
write tests, improve documentation, etc.
August 16: 19:00 UTC
Firm 'pencils down' date. Mentors, students and organization
administrators can begin submitting final evaluations to Google.
August 20: 19:00 UTC
Final evaluation deadline
Google begins issuing student and mentoring organization
payments provided forms and evaluations are on file.
August 23:
Final results of GSoC 2010 announced :)
August 30: Students can begin submitting required code samples to
Google
^^ I am not clear on this, but anyways as our code will be on
code.google.com, no issues :D

2. Something more about my programming experience -

I started programming with QuickBasic back in my school days mostly
writing games - http://blog.ideamonk.in/search/label/QBASIC
In starting years at college, I spent some time doing programming
problems on SPOJ - https://www.spoj.pl/users/ideamonk/ initially in C/C
++ and later in Python.
I believe in giving back to the community, and created Spoj Rank
tracker addon for firefox - https://addons.mozilla.org/en-US/firefox/addon/12336/
and later a backup tool for SPOJ submissions in Python
http://github.com/ideamonk/spojbackup
During my first year at college I also created a PHP+DevCpp+VB based
programming contest platform for college - CodeFire http://github.com/ideamonk/CodeFire
, which is actively used for ICPC prelims at my college.
I started http://madetokill.com/ with friends to fetch us some work in
holidays. I learnt a good deal of PHP, HTML, CSS, jQuery and a bit of
Photoshop from this experience. A happy client - http://www.bestdealaz.com/

I started using linux I think 1.5 years ago and have been using python
since last summer as I recall.
My experience with Python has been delightful so far -
I began with a simple pastebin helper - PyPaste
http://blog.ideamonk.in/2009/08/pypaste-pastebins-at-your-terminal.html
I felt the need of a twitter panel applet for gnome and learnt some
PyGTK to create it - http://blog.ideamonk.in/2009/11/introducing-gtweetbar-alpha.html
Since I was already interested into making webapps, I also tried
Google AppEngine and created a small app called Web2Hunter -
http://blog.ideamonk.in/2009/09/web2hunter-find-that-awesome-domain.html
http://www.youtube.com/watch?v=XyURw35v2u8 (a short intro to it at
PyCon India 09)
I wanted to create photo-mosaics one day, I wrote pymos for it along
with a friend who helped me modularize and package it -
http://blog.ideamonk.in/2009/11/pymos-creating-mosaics-of-your-photos.html
I used it to create a poster for FOSS.in 2009 http://foss.in/promote/posters
, that really made me happy as I wrote something useful.
I felt the need to receive sms alerts for new incoming mails as I do
not own a gprs phone. I came up with an OAuth based solution - http://lenny.in
which runs on AppEngine and uses twitter to send alerts.
Another AppEngine project I did and am yet to add finishing touches is
Poorman's datastore - http://github.com/ideamonk/poorman It lets one
use multiple free appengine instances as a unified, distributed
datastore.

Open Source experience -
I contribute to SahanaPy project which uses web2py -
https://launchpad.net/sahana/+topcontributors , which mostly involves
font-end work, the current theme, nice error pages, etc.
I am writing a PyQt based gui for apt-offline - an offline APT based
package manager for debian based distros - http://github.com/ideamonk/apt-offline
http://packages.debian.org/unstable/apt-offline

So far Python has become my major programming language for any work I
do these days.
I can summarize my programming experience as -

-> Languages : C; C++; Python; VisualBasic 6
-> Operating Systems : Any Debian based distro, currently Arch
Linux and Windows 7
-> Databases : MySQL, familiar with NoSQL (redis,
memcached) usage
-> Web Development : XHTML; CSS; JavaScript; PHP; jQuery;
Firebug; AJAX;
Smarty templates; Google App Engine
-> GUI Frameworks : familiar with PyGTK, PyQt
-> Security : nmap; netcat; wireshark; metasploit and
various other tools
-> Graphics : Allegro Game Programming Library; Python
Imaging Library;
familiar with PyGame
-> Environment : Vim; Kate; Eclipse(PyDev); Notepad++ on
windows
-> Version Control : git, bazaar

-> Blogs / Sites / Mailing Lists I follow :
Hacker News, StackOverflow, ThinkVitamin, A-List-Apart,
Igvita.com, Bangpypers, ilug-bengaluru,

my blog - http://blog.ideamonk.in
irc nick on freenode - ideamonk

.... Looks like I went long again !

...


On Mar 26, 12:09 am, Andre Roberge <andre.robe...@gmail.com> wrote:
> Good (although a bit long) description.  Two things that need to be added:
>
> 1. proposed timeline; you might incorporate some of the ideas you mentioned
> into that timeline and make sure you avoid duplication
> 2. you should include a paragraph or two describing your programming
> experience.
>
> André
>

> On Thu, Mar 25, 2010 at 4:01 PM, Abhishek Mishra <ideam...@gmail.com> wrote:
> > Hi everyone,
>
> > I'm planning to work on PyKata for GSoC 2010, under the Education
> > projects of PSF umbrella.
> > A few words about me - I'm a student, I love Python and it has become

> > my primary language for doing anything now.http://github.com/ideamonk


>
> > Here I would like to discuss possible ideas for PyKata in GSoC 2010.
>
> > What is PyKata?
> > ===============
> > PyKata is a community-authored website with contributions from
> > teachers and students in math and science, as well as technical
> > professionals. It provides you a way to quickly write programs on the
> > web, execute them on the fly online, and proceed through excercises
> > classified in various categories. It is designed to aid teachers as
> > well as students.http://en.wikipedia.org/wiki/Kata
> > Website -http://pykata.appspot.com/
> > Vision -http://pykata.appspot.com/vision/

> > Code -http://code.google.com/p/pykata/, currently based on webapp+django


>
> > What features are provided currently?
> > =====================================
> > 1. It lets you write, execute and automatically evaluate your code online.
> > 2. Saves your work-in-progress.
> > 3. Shows your overall progress as to problems solved.
> > 4. Lets community contribute problems.
> > 5. Static help
>
> > Why should PyKata be developed further under GSoC '10?
> > ======================================================
> > Python has been a liberating force for many programmers, and has been
> > great at restoring the fun and playfullness to programming. I believe
> > Python is the best when it comes to teaching programming at school and

> > college levels.http://is.gd/aYO08and personally while discussing


> > python with some friends, I've noticed a fair amount of excitement
> > they've shown at Python.
> > This calls for a need for one obvious way/place for Pythonistas to
> > learn, practice and teach Python. I believe PyKata could serve this
> > purpose very well once developed into a feature rich platform.
>
> > ===========================================
> > Ideas for PyKata development under GSoC '10
> > ===========================================
>
> > 1. UI/UX improvements
> >   ------------------
> > PyKata could benefit from an improved design (more web2.0-ish). This
> > would not only make it attractive but also help us present the
> > progress data, user profiles, live statistics, tutorials, news, etc in
> > a better way as it would encourage more social interaction upon
> > growing.
> >http://twitpic.com/1aux8n/full
>
> > Create an addictive and interactive user experience. Use game style
> > interaction to drive participation, include points, badges, rewards -

> > a great example for that would behttp://stackoverflow.com


>
> > Create a flow - once a student gets a problem right, show which way to
> > proceed on result page.
> > If a student goes wrong repetitevely, show him/her possible tutorials
> > related to it.
> >http://twitpic.com/1auytp/full
>
> > Some examples -http://www.codechef.com/

> >http://scarky.com/stats/sites/http://codegolf.com/

> > Eg.http://www.fyneworks.com/jquery/multiple-file-upload/

> > pywhip+un...@googlegroups.com<pywhip%2Bunsu...@googlegroups.com>

Abhishek Mishra

unread,
Mar 27, 2010, 3:29:20 AM3/27/10
to PyWhip
Since some formatting broke in the mail I've attached the files.


On Sat, Mar 27, 2010 at 12:57 PM, Abhishek Mishra <idea...@gmail.com> wrote:
Hi everyone,
<snip>
timelineplan_profile.txt

Abhishek Mishra

unread,
Mar 27, 2010, 5:03:45 AM3/27/10
to PyWhip
Hi Dave, thanks for the reply.

On Mar 26, 6:17 am, David MacQuigg <macqu...@box67.com> wrote:
> Abhishek, your proposal is excellent.  If this doesn't get you a spot in
> GSoC, I can't imagine what is wrong with them.
>

^^ Thats very reassuring, thanks.

> After we collect everyone's comments, we can put the first part of this
> up on our PyKata website.  The last part should probably go on your
> website, as there will be other students applying for the position, and
> we don't want to show any bias.  Andre's suggestion of including a
> summary of your qualifications would also be best on your website, or in
> whatever application form GSoC requires.  None of us is familiar with
> the GSoC procedures, so you might want to look into that yourself.
>

^^ Even I'm not much familiar with all GSoC procedures. Right now what
I believe is that I should start working on my proposal and submit it
by 9th April. Maybe I might also write a blog post if at all I find
time.
Promoting the idea and project as well has been suggested in advice
for gsoc students - http://code.google.com/p/google-summer-of-code/wiki/AdviceforStudents

I notice these changes just 9hrs ago :). Agreed Python is very well
suited for rapid development. I personally like it as python reduces
the time gab between idea-generation and implementation very well. If
even at 12am in the morning I get an idea, I could very easily get it
done or atleast prototype it by night and also catch up a few hrs of
sleep :D

> See comments below.
>
> Abhishek Mishra wrote:
> > Hi everyone,
>

<snip snip>

>
> > ===========================================
> > Ideas for PyKata development under GSoC '10
> > ===========================================
>
> > 1. UI/UX improvements
> >    ------------------
> > PyKata could benefit from an improved design (more web2.0-ish). This
> > would not only make it attractive but also help us present the
> > progress data, user profiles, live statistics, tutorials, news, etc in
> > a better way as it would encourage more social interaction upon
> > growing.
> >http://twitpic.com/1aux8n/full
>
> > Create an addictive and interactive user experience. Use game style
> > interaction to drive participation, include points, badges, rewards -

> > a great example for that would behttp://stackoverflow.com


>
> Wouldn't it be cool if students could have a team competing with other
> schools.  Members of the team could wear jackets with the school logo
> and patches showing their ranking (black belt, brown belt, etc.).
>
> > Create a flow - once a student gets a problem right, show which way to
> > proceed on result page.
> > If a student goes wrong repetitevely, show him/her possible tutorials
> > related to it.
> >http://twitpic.com/1auytp/full
>
> > Some examples -http://www.codechef.com/

> >http://scarky.com/stats/sites/http://codegolf.com/


>
> Nice collection.  Many ideas here to inspire our design.  I like the
> cartoon graphics.
>

I'm planning to put more such mock-ups in the main proposal to explain
the ideas.

> > 2. Porting to Web2Py
> >    -----------------
> > Currently PyKata is based on django+webapp framework to run on
> > AppEngine. This is great, however we would like to make the entry of
> > new developers into PyKata very very easy.
> > Django is known to have a steep learning curve while web2py is a much
> > more simpler and easy to learn framework for web development. Moreover
> > support for web2py is active and porting to Google AppEngine is not
> > much of an effort.
>
> Let's make the PyKata website a shining example of good coding, maybe
> even have a manual of website design, focused on just the features in
> PyKata.
>

Yes once we're done with the features, we must include some guidelines
for upcoming developers. It becomes necessary and I've noticed such
guidelines in projects like SahanaPy, come very handy before we
students write down anything to be merged.

> > 3. User Profiles
> >    -------------
> > Create a per user personal profile. This would help individuals track
> > their personal progress. Also add two levels of views to these
> > profiles - a personal view, a public view. Public views would be
> > instrumental for a teacher to track progress of students.
> > Currently the only way to track progress is to either look at ticks on
> > 'All problems page' or to do the same on category pages.
> >http://twitpic.com/1av0x0/full
>
> > 4. Live execution results
> >    ----------------------
> > Currently PyKata takes you to another page to show results of current
> > code execution. Then the user hits back button to modify the code, or
> > copy-pastes the traceback for reference and hits back to debug the
> > code. This user experience could be simplified by placing a live
> > result box on right side of the editor.
>
> I agree completely.  Javabat seems so much more responsive, even though
> PyKata is only a few extra clicks.  If the live results won't fit on the
> same page, let's make it a pop-up window.
>

Yup... the best part is if we have a url in web2py as http://foo.com/bar
once can always supply http://foo.com/bar.json or .xml in end to get
the pure data.
This feature of web2py will be very helpful in due course of time.

> > 5. A Wiki/Tutorials section
> >    ------------------------
> > Provide a mechanism to easily contribute tutorials on PyKata. Also
> > provide a way to keep history of these documents. Adding support for
> > discussions too would be a nice thing to have.
> > Allow documents to be taggable for searchability. Create a way to do
> > topic-wise and author-wise searches. This would also help in showing
> > possible tutorials to a student when he/she fails at a problem
> > multiple times.
> > Add content moderation support. Allow users to access older version of
> > documents.
>
> This is where we can really branch out to fields other than CS.  Our
> structure could be something like Wikipedia, or even better
> Citizendium.  Teachers could write an entire series of articles on a
> particular subject.  Others could contribute, but the editors keep
> control (as in Citizendium) so we can encourage authors who are really
> good, but would prefer not to have edit wars with loudmouths and
> know-nothings.
>
> This is a bit different, but I found http://www.khanacademy.org/ to be
> very interesting.  I generally don't like lectures, but Khan does a
> really good job with an online whiteboard.  The range of topics is also
> amazing.  This could be a good format also for teaching programming.
>

Khanacademy is interesting. Wow it too runs over appspot :)
Just took a brief look at fractional reserve banking tutorial. Agreed
such ways of teaching are great. We could either work out our own ways
of doing animated whiteboard or stick to embedding youtube for a quick
solution. I will think over this too.
Ah we could do one with html5 canvas element. But browser support
would make that wait for another 1-2 years. Lot of good innovations
happening with html5 -
https://developer.mozilla.org/en/Canvas_tutorial
http://www.canvasdemos.com/
Moderation rights could be planned in a way that content creator gets
to review any changes made by others and so on.

> > 6. Batch upload problems/ solution-uploads
> >    ---------------------------------------
> > A contributor of problems/tutorials might have many contents already
> > written in say, text files. Copy pasting from them and uploading one
> > by one might not be a great user experience. Simplify this task by
> > allowing flash/javascript based bulk uploads. Also provide server side
> > validation.

> > Eg.http://www.fyneworks.com/jquery/multiple-file-upload/


>
> See also the upload format I suggested: http://code.google.com/p/pykata/wiki/UploadFormat We want to have
> something that is not too much different than a well-written Python
> program, so all the author has to do is add a few tags.  With a little
> effort, we can do things like parse the docstrings to extract examples,
> automatically include the examples in the testcases, etc.  Doctests are
> cool.  Python is perfect for teaching a "tests first" methodology.
>

This would be really great to have uploads in python already :) just
bookmarked uploadformat for reference.

> > 7. Course planning feature
> >    -----------------------
> > It is expected that PyKata once launched and contributed to, would
> > become a big repository of Python learning problems. Allow teachers to
> > create lessons by handpicking existing problems and tutorials and
> > making a definite learning track or a roadmap out of them.
>
> I really like the Time Machine in my new Mac.  Scroll back to any point
> in time, and recover the exact state of all files at that time.  It
> doesn't take a lot of disk space either.  Only the files that are
> changed are copied to the external disk.  All the others are simply tied
> in to a link tree.  We could do something like this to preserve the
> state of problems that are selected by a teacher to include in a lesson
> plan.  Of course, if the teacher wants to modify a problem, then we make
> a copy instead of a link.  Like the Python garbage collector, a problem
> version is deleted only if the last link to it is removed.
>

Oh yes, as PyKata allows one to edit problems, it would be nice to
have problems selected by a teacher preserved in its state at time of
selection. I would do some research on some good ways to just store
diffs/deltas and render them for any specified point of time.

> > 8. User types
> >    ----------
> > A good way to encourage participation would be to expose different users.
> > Different user types - learners, one-by-one contributors, experts,
> > content contributors, admins, developers.
> > A 'karma ranking' or community rating approach to classify users would
> > be great. This would encourage already contributing members to
> > contribute more.
>
> > 9. Export Import of Data
> >    ---------------------
> > Create a way for people to run a local copy of PyKata on their
> > infrastructure. As such it would be nice for them to be able to export
> > and import problems/content from main PyKata website to their local
> > copies. This idea seems very helpful for students countries like
> > India, where many colleges are not really well connected. (Eg.
> > students living in college hostel of my college)
>
> We could use the same format for import and export of data.  The export
> script should be quite easy, since the pieces in the database are
> already parsed.  Google is working on a bulkloader for data, but the
> data dump may be not fit for human consumption.  We need our exported
> data to be nicely formatted - an example of how a Python program should
> be written.
>

Initially I was thinking in terms of xml and json. But since we
already have a good format for uploads, it would make sense to follow
the similarity. Agreed.

> > 10. Ratings
> >     -------
> > Create a way for the community to rate contents - including users,
> > problems, tutorials. This would help us gather good statistical data
> > for further analysis.
>
> > 11. Social Networks integration
> >     ---------------------------
> > Though not at all a priority task, and not even a tough thing to do.
> > At a later finishing stage, it would be nice to have integration to
> > social networks like Facebook, twitter, etc to gain more popularity.
> > Though not at all a concern right now.
>
> Can we just use a google discussion group for this?  Seems like they
> have all the features we need.   I need to learn more about Facebook,
> Twitter, etc. so I can keep up with the kids.
>

:D Yes we could use google groups very well for additional support,
brainstorming future ideas, discussions etc. Facebook/twitter
integration, though wont take much of an effort to implement, would
help in popularizing our project. This is more of a post-completion
community outreach kind of effort driving interested people from
social networks to main project website.

> > I'm looking forward to your suggestion on improving these or adding to
> > these ideas.
> > I was able to do some mockups as linked above, but couldn't find time
> > to do more today.
>
> > Looking forward to some more brainstorming and criticism. I fear that
> > though I've listed out many possibilities for PyKata, yet I would like
> > your comments to sort them in priority.
> > I might have missed some too.
>
> You have a very good sense of what is needed, and I think your
> priorities are right also.
>
> -- Dave

Thanks Dave...

Abhishek Mishra

unread,
Mar 27, 2010, 5:27:13 AM3/27/10
to PyWhip
Hi Andre,

On Mar 26, 6:45 am, Andre Roberge <andre.robe...@gmail.com> wrote:


> On Thu, Mar 25, 2010 at 10:17 PM, David MacQuigg <macqu...@box67.com> wrote:
> > Abhishek, your proposal is excellent.  If this doesn't get you a spot in
> > GSoC, I can't imagine what is wrong with them.
>
> Not to put a damper on things ... I have been a mentor for four years in a
> row and the quality of applications has risen steadily.  This year, the PSF
> has stated that priority would be given to Python 3 projects and preferences
> would be given to very well qualified candidates.  (I'm paraphrasing from
> memory...)
>
>
>
> > After we collect everyone's comments, we can put the first part of this up
> > on our PyKata website.  The last part should probably go on your website, as
> > there will be other students applying for the position, and we don't want to
> > show any bias.
>
> I'm not sure this is a good idea.  Applications are confidential to avoid
> students plagiarizing from each other (among other things).   Mentors have
> access to all students applications and can comment on them in a
> confidential manner.
>

Andre, we had initially decided to have discussion open to PyKata
developers for quick brainstorming as the PSF gsoc page hardly
mentions much on it. Looking at many other idea lists, I had come
across little more detailed task outlines in formats like -

1. Task
a. sub task 1
b. sub task 2
.
.

Such a description gives a nice direction for a student to think. But
since here we didn't have much and I really wish to work upon PyKata I
though it would be best to put up ideas in discussion with mentors.


> If you, David, are interested in ranking applications, you should join the
> PSF mentor list.
>
> >  Andre's suggestion of including a summary of your qualifications would
> > also be best on your website, or in whatever application form GSoC requires.
> >  None of us is familiar with the GSoC procedures, so you might want to look
> > into that yourself.
>
> There is no set GSoC procedures: they vary from organization to
> organization.  However, given what I mentioned about the PSF's priorities
> for this year, the qualifications should be included in the application.
>
>

Andre, as time comes closer, is there a specific format for writing
GSoC proposals that a student has to follow?

>
> > Another thing we might add to the PyKata website is statements from

<snip>

> >> If a student goes wrong repetitevely, show him/her possible tutorials
> >> related to it.
> >>http://twitpic.com/1auytp/full
>
> >> Some examples -http://www.codechef.com/

> >>http://scarky.com/stats/sites/http://codegolf.com/


>
> > Nice collection.  Many ideas here to inspire our design.  I like the
> > cartoon graphics.
>
> Emphasis on the GSoC application is on code production.
>

Andre, ofcourse as I chalked out in my timeline plan, feature
implementation is more of a priority and involves pure coding.
Completion of eye-candy looks or attractive looks is something that I
plan to implement after I'm done with core functionalities needed by
PyKata.

>
>
> >  2. Porting to Web2Py
> >>   -----------------
> >> Currently PyKata is based on django+webapp framework to run on
> >> AppEngine. This is great, however we would like to make the entry of
> >> new developers into PyKata very very easy.
> >> Django is known to have a steep learning curve while web2py is a much
> >> more simpler and easy to learn framework for web development. Moreover
> >> support for web2py is active and porting to Google AppEngine is not
> >> much of an effort.
>
> > Let's make the PyKata website a shining example of good coding, maybe even
> > have a manual of website design, focused on just the features in PyKata.
>
> The production of something like a manual can not be part of a GSoC
> project.
>

But Andre, I believe a lot of changes might happen to the codebase, so
even if this might not be required by GSoC, but in the long run to
make it easier for newcomers to understand what changes did PyKata go
through, it would be important to document them along with code.
One of my friends informs me that last year Open64 had a documentation
work and mentor was a Googler, I guess it's upon organization to
decide. Here we're atleast not documenting existing code but newly
written code for a purpose.

>
>

<snip>

>
> > This is a bit different, but I foundhttp://www.khanacademy.org/to be


> > very interesting.  I generally don't like lectures, but Khan does a really
> > good job with an online whiteboard.  The range of topics is also amazing.
> >  This could be a good format also for teaching programming.
>
> > Something like this best belong (imo) on the showmedo site ... and is not
>
> relevant for GSoC: what is desired is code only, not pedagogical material.
>
> I don't have anything else to add at this point.
>
> André
>

These ideas certainly help PyKata but as from code's perspective they
might not involve much of it. As a part of my GSoC work definitely I
wouldn't be adding content!! but I wish to write code to make life of
people would would do it, easier :)

My main aim is to make PyKata a really well known place to learn
Python.

Abhishek Mishra

unread,
Mar 27, 2010, 5:45:19 AM3/27/10
to PyWhip

>
> Sorry, that was perhaps an exaggeration of my part ... and a misreading;
> however, the mention of "a manual of website design" does not strike me as
> having anything to do with a coding project, nor does it strike me as
> something relatively minor - hence my original comment.
>

Ofcourse I wouldn't like to write a "manual of website design" this
summer. That task would call for some more experience and expertise
from my side. What we can do, if not desired by GSoC/PSF policies,
would be to add any such guidelines after gsoc into the wiki.

Designing documents is mentioned under PSF expectations
http://wiki.python.org/moin/SummerOfCode/Expectations but I'm not sure
if it points to proposal/idea docs or docs while coding.

regards,
Abhishek

David MacQuigg

unread,
Mar 27, 2010, 3:10:37 PM3/27/10
to pyw...@googlegroups.com
Abhishek Mishra wrote:
> Hi everyone,
>
> Thanks for the feedback.
>
> Here is a rough sketch of my tentative plans for timeline, however my
> submitted proposal would have a more detailed one.
>
> March 29 - April 9: Preparing a more detailed proposal, detailing
> every feature planned to be implemented.
> Interim Period: Mentoring organizations review and rank student
> proposals; where necessary, mentoring organizations may request
> further proposal detail from the student applicant.
> April 10 - April 25: Time to hit back to acads, April end to May 13th
> happens to be my end semester exam. At the same time utilizing this
> time to learn more web2py and svn. I am used to git and bzr as of now.
>

Don't worry about SVN. I will continue as admin for the repository.
I've added "commit" privileges for idea...@gmail.com. Practice a few
commits on the "test" branch before making any changes to the trunk.
There are several SVN clients available. I use TortoiseSVN, running on
my Windows XP box. It is quite easy to install and use.

If you would like to start fresh with web2py, I'll set up a separate
branch of our repository.

> April 26: Accepted student proposals announced on the Google Summer of
> Code 2010 site.
>
> April 26 - May24 Community Bonding Period: Students get to know
> mentors, read documentation, get up to speed to begin working on their
> projects.
> April 26 - May 13th - low action due to exams :( mostly
> discussions / clearing doubts on which approach to follow for a
> feature
> May 13th - May 14th - Going through all existing discussions/code
> and wiki documentation to not to miss anything.
> May 15th - May 24th - Starting with finishing Task2 (porting to
> web2py). Laying out clear plans for implementing features (feature -
> time period mapping). Starting with some features that can be
> experimented independently and later integrated.
> Setting up a development, testing
> appengine instances (maybe this could be done my mentoring team for
> ownership issues)
>

The O'Reilly book just out "Google App Engine" is very helpful in
getting set up.

Your timeline looks good, perhaps even a little ambitious. I would like
to see one or two major milestones, the first being getting the existing
site (perhaps re-implemented in web2py) getting that site debugged.
That will give us something we can actually use if you get run over by a
bus before finishing the larger plan. :>)

The second milestone could be a just the features we most want to have
(teacher feedback), basically giving us a website as good as JavaBat.

I know the temptation will be to rush ahead, and not debug a version
that is only a milestone, but I have seen too many projects take on too
much and miss their deadlines. That's not a disaster with a large team
having continuity, but in this case, we don't have the option of
continuing past the deadline.

I would rather sacrifice a few features at the end to have some
assurance that we will have at least a simple version running smoothly.

Multiple branches in SVN can make this easy. When we have what looks
like a completed milestone branch, continue development on the main
branch. Then over the next few weeks, as we discover problems in the
milestone, we can give those fixes higher priority than continued
development of the main branch.

Abhishek Mishra wrote:


> On Mar 26, 6:45 am, Andre Roberge <andre.robe...@gmail.com> wrote:
>
>> On Thu, Mar 25, 2010 at 10:17 PM, David MacQuigg <macqu...@box67.com> wrote:
>>
>>
>>> After we collect everyone's comments, we can put the first part of this up
>>> on our PyKata website. The last part should probably go on your website, as
>>> there will be other students applying for the position, and we don't want to
>>> show any bias.
>>>
>> I'm not sure this is a good idea. Applications are confidential to avoid
>> students plagiarizing from each other (among other things). Mentors have
>> access to all students applications and can comment on them in a
>> confidential manner.
>>
>
> Andre, we had initially decided to have discussion open to PyKata
> developers for quick brainstorming as the PSF gsoc page hardly
> mentions much on it.

I think as long as our discussion forum is open to all students who
might apply, we should continue to use this forum. In fact, I would
say, let's use this forum exclusively, and not have private discussions
with any of our candidates until the decision is made to select one of
them for GSoC. All of this is open-source. Students should know not to
copy something another student posts here, without proper attribution.

My earlier suggestion of helping our "lead developer" so he doesn't have
to worry about "production" details was referring to production of the
project documentation next summer, not the student's private application
to GSoC in the next few weeks. We still don't know who that lead
developer will be.

My choice of words "manual of website design" was a little to broad. We
already have good documentation on App Engine, Django, and Web2py. We
shouldn't repeat anything already well-explained in those documents, but
instead just have a link to the appropriate section. The "manual" I
would like to see would be just what is needed for the next student
working on this website, someone who might not be an experienced web
developer.

I'm glad Andre is pointing out possible misunderstandings in our
discussions. No doubt some of the judges will have the same
misunderstandings.

-- Dave

Abhishek Mishra

unread,
Mar 30, 2010, 11:11:40 AM3/30/10
to PyWhip
Hi Dave,

Had been busy with some college work. Working on finishing my proposal
from today :)

On Mar 28, 12:10 am, David MacQuigg <macqu...@box67.com> wrote:
<snip>


>
> Don't worry about SVN.  I will continue as admin for the repository.  

> I've added "commit" privileges for ideam...@gmail.com.  Practice a few


> commits on the "test" branch before making any changes to the trunk.  
> There are several SVN clients available.   I use TortoiseSVN, running on
> my Windows XP box.  It is quite easy to install and use.
>

Hey thanks for commit privilege :) I have the usual svn on my linux
box.

> If you would like to start fresh with web2py, I'll set up a separate
> branch of our repository.
>

Will start with it as soon as gsoc procedures get over (excited to)

>
>
> > April 26: Accepted student proposals announced on the Google Summer of
> > Code 2010 site.
>
> > April 26 - May24 Community Bonding Period: Students get to know
> > mentors, read documentation, get up to speed to begin working on their
> > projects.
> >     April 26 - May 13th - low action due to exams :( mostly
> > discussions / clearing doubts on which approach to follow for a
> > feature
> >     May 13th - May 14th - Going through all existing discussions/code
> > and wiki documentation to not to miss anything.
> >     May 15th - May 24th - Starting with finishing Task2 (porting to
> > web2py). Laying out clear plans for implementing features (feature -
> > time period mapping). Starting with some features that can be
> > experimented independently and later integrated.
> >                                      Setting up a development, testing
> > appengine instances (maybe this could be done my mentoring team for
> > ownership issues)
>
> The O'Reilly book just out "Google App Engine" is very helpful in
> getting set up.
>

^^ noted

> Your timeline looks good, perhaps even a little ambitious.  I would like
> to see one or two major milestones, the first being getting the existing
> site (perhaps re-implemented in web2py) getting that site debugged.  
> That will give us something we can actually use if you get run over by a
> bus before finishing the larger plan. :>)
>

Looking back at it, yes, I have given less time at some places trying
to push in all 10 features.
I think I will replan it before I put it out on melange and put major
tasks prior to others.
Dont worry :D if I'm working on PyKata I would hardly come near a bus
or heavy traffic, I love my room for work.

> The second milestone could be a just the features we most want to have
> (teacher feedback), basically giving us a website as good as JavaBat.
>
> I know the temptation will be to rush ahead, and not debug a version
> that is only a milestone, but I have seen too many projects take on too
> much and miss their deadlines.  That's not a disaster with a large team
> having continuity, but in this case, we don't have the option of
> continuing past the deadline.
>
> I would rather sacrifice a few features at the end to have some
> assurance that we will have at least a simple version running smoothly.
>

Agreed, having a usable version by end or even a week before end would
be very important, then we can get some real testing by end users.

> Multiple branches in SVN can make this easy.  When we have what looks
> like a completed milestone branch, continue development on the main
> branch.  Then over the next few weeks, as we discover problems in the
> milestone, we can give those fixes higher priority than continued
> development of the main branch.
>
>

Yeah working on a project (apt-offline's gui) I used such a way on my
git branch, before doing something I would make a clone branch, would
make changes and test it, once it looks good I would merge it back to
master.
So a weekly plan would be more realistic I suppose, and we could even
have weekly reports then :)

>
> Abhishek Mishra wrote:
> > On Mar 26, 6:45 am, Andre Roberge <andre.robe...@gmail.com> wrote:
>
> >> On Thu, Mar 25, 2010 at 10:17 PM, David MacQuigg <macqu...@box67.com> wrote:
>
> >>> After we collect everyone's comments, we can put the first part of this up
> >>> on our PyKata website.  The last part should probably go on your website, as
> >>> there will be other students applying for the position, and we don't want to
> >>> show any bias.
>
> >> I'm not sure this is a good idea.  Applications are confidential to avoid
> >> students plagiarizing from each other (among other things).   Mentors have
> >> access to all students applications and can comment on them in a
> >> confidential manner.
>
> > Andre, we had initially decided to have discussion open to PyKata
> > developers for quick brainstorming as the PSF gsoc page hardly
> > mentions much on it.
>
> I think as long as our discussion forum is open to all students who
> might apply, we should continue to use this forum.  In fact, I would
> say, let's use this forum exclusively, and not have private discussions
> with any of our candidates until the decision is made to select one of
> them for GSoC.  All of this is open-source.  Students should know not to
> copy something another student posts here, without proper attribution.
>

No issues with that unless everyone is equally scholarly :)

> My earlier suggestion of helping our "lead developer" so he doesn't have
> to worry about "production" details was referring to production of the
> project documentation next summer, not the student's private application
> to GSoC in the next few weeks.  We still don't know who that lead
> developer will be.
>
>

I would be attached even after gsoc for sure, bugs never die out.

>
> Abhishek Mishra wrote:
> >> Sorry, that was perhaps an exaggeration of my part ... and a misreading;
> >> however, the mention of "a manual of website design" does not strike me as
> >> having anything to do with a coding project, nor does it strike me as
> >> something relatively minor - hence my original comment.
>
> > Ofcourse I wouldn't like to write a "manual of website design" this
> > summer. That task would call for some more experience and expertise
> > from my side. What we can do, if not desired by GSoC/PSF policies,
> > would be to add any such guidelines after gsoc into the wiki.
>
> > Designing documents is mentioned under PSF expectations

> >http://wiki.python.org/moin/SummerOfCode/Expectationsbut I'm not sure


> > if it points to proposal/idea docs or docs while coding.
>
> My choice of words "manual of website design" was a little to broad.  We
> already have good documentation on App Engine, Django, and Web2py.   We
> shouldn't repeat anything already well-explained in those documents, but
> instead just have a link to the appropriate section.  The "manual" I
> would like to see would be just what is needed for the next student
> working on this website, someone who might not be an experienced web
> developer.
>

Yes some documentation very specific to the project.

> I'm glad Andre is pointing out possible misunderstandings in our
> discussions.  No doubt some of the judges will have the same
> misunderstandings.
>
> -- Dave


Thanks!

Reply all
Reply to author
Forward
0 new messages