Summer of Code/2015/Abacus JS

About Me:

Name: Neha Maan

Email Address: nehaforgsoc@gmail.com

Sugar Labs Wiki Username: Nehamaan

IRC Nickname: neha

First Language: Hindi (comfortable with English too.)

Location & Time: India, UTC +5:30 Work Time: 11:00AM - 5:00PM

Previous Open Source Participation: None. I want to work on an open source project this summer as I enjoy programming but what I enjoy more is lots of people using and benefiting from my programs and I find this the easy and efficient way reach lots of people. Apart from the joy I will gain experience and will be able to give something back to the Open Source Community that has given me (and everyone else) so much.

About My Project:

Name: Abacus JS

Description: I am porting the current Abacus activity from python to JS, this is part of the larger push by Sugar Labs towards JS (most GSoC projects are JS ports). Although I do plan to add some new features, the biggest benefit for users would be speed as JS is usually 6-6.5 times faster than Python this shall enable us to add some fancy effects and save dome battery. In this project I would be using standard web technologies (HTML, CSS, JS)

Timeline: I have a little more than 8 weeks of coding time and eleven abacai to code. A lot of these abacai are similar to each other so I plan to divide them into groups where a lot of code can be reused and then start from the easiest group. This will help learn as I progress and also save me time.
 * Week 1: In this week I plan to finish the Binary and Decimal Abaci in this time as I -get comfortable with Sugar OS and its workings.
 * Week 2: In this week I would like to complete my work on the suanpan soropan and -nepohualtzintzin abacai as they are almost identical to each other and most of the -code can be shared between them.
 * Week 3: I will work on the schety abacus and try to complete the more difficult -fractions (+ only) abacai.
 * Week 4: I will complete the fraction (+/-) abacai and start working on the last and -most weird 'Cuisenaire-style rods'.
 * `-~- Mid-Term Evaluation-~-`
 * Week 5: Custom Abacai Creator
 * Week 6: Reserved for Bug Testing and Fixing.
 * Week 7&8 : I leave these weeks as buffer in case something gets delayed.

Past Work: I have created many small sites as a hobby and once created an app with PhoneGap for learning purposes. I have created a game with Unity3D(uses JS) too. Infact to see how difficult creating a abacus would be, I tried my hand at the Binary Abacus and will upload the file and update with a link soon. Click Here to download (Proof of Concept Binary Abacus).

Me and the Community:

Effect on Community: I am familiar with web technologies but not with the Sugar OS, the problems I will face will be faced by a lot of future web developers developing for Sugar too, So I plan to create a Blog/Wiki-page where I would post my problems and their solutions. This ,I believe, will help in attracting more developers and expanding the community.

Paragraph 2&3: Pending. I am writing this proposal at the last moment and do not have time to exchange emails, I will get opinions from other people and update this entry as soon as possible.

What if I get Stuck and my mentor isn't around ?

I have learned most of the programing I know from the internet and books and therefore rarely had a mentor to help me. Over this time I have learned how to find solutions to my problems on Google and Stack Overflow but if they fail too then I would try to seek help from community using IRC or mailing lists.

How Do I plan to keep the community informed about my problems and progress ?

I will use the aforementioned wiki-page/blog to share my problems and progress.

Miscellaneous:

Development Environment: I am currently downloading sugar and would update with screen-shots soon.

Pull-Request: Pending, would update asap.

A Great Learning Experience:

When I was in 3rd standard I would tear open my old electric toys and create small circuits with lights nad motors in them. One day I realized that if I connect a wire and LED bulb in parallel the bulb no longer glows. I asked my father about this and he told me that current always flows from the path of least resistance. At that time I wondered how does current know which is the path of least resistance beforehand, how can it predict the future ? Few years later, in 10th standard, we were taught about electricity and our book contained a beautiful analogy comparing flow of current in wires to the flow of water in pipes where more resistance meant thinner pipes. That day I learned the importance of thinking out of the box and looking at problems from different point of views.

Anything Else:When I was in primary school we were given the summer-holiday homework to create an Abacus almost every other year. Sadly, we were never taught how to use an abacus. This summer I get to make many Abacai and have learned to use (most of) them too.