Difference between revisions of "Summer of Code/2015/Kushan Javascript"
Kushan2020 (talk | contribs) |
Kushan2020 (talk | contribs) |
||
Line 69: | Line 69: | ||
<td style="max-width:900px"> | <td style="max-width:900px"> | ||
<p style="font-weight:600">Early stage version of the app</p> | <p style="font-weight:600">Early stage version of the app</p> | ||
− | <p> To actually show the working of my idea, I created this very early prototype of the app. <i>(Please note it currently only supports alert() for outputs, and | + | <p> To actually show the working of my idea, I created this very early prototype of the app. <i>(Please note it currently only supports alert() for outputs, and doesnt support HTML as of now.) I request you to try out, some simple programming problems like finding maximum element in an array, or other fundamental programming problems in it and use alert() as of now to get output.</i></p> |
<div style="border:1px solid #ccc; padding:6px 12px; color:#333; background-color:; margin:1px; font-size:100%; margin-left:30px; margin-right:30px; text-indent:">https://dl.dropboxusercontent.com/u/35525804/JS-Interpreter/index.html] | <div style="border:1px solid #ccc; padding:6px 12px; color:#333; background-color:; margin:1px; font-size:100%; margin-left:30px; margin-right:30px; text-indent:">https://dl.dropboxusercontent.com/u/35525804/JS-Interpreter/index.html] | ||
</div> | </div> | ||
Line 75: | Line 75: | ||
<p style="font-size:larger; font-weight:700">Who are you making it for, and why do they need it?</p> | <p style="font-size:larger; font-weight:700">Who are you making it for, and why do they need it?</p> | ||
<p> This project is entirely focused on the learning part of javascript, by no way it intends to be a substitute to professional suites like JSfiddle. The students who will be using this app, can consider this as a stepping stone to a wide array of web technologies. Getting the gist of the programming language and being profecient in it, is all that is required according to me. Experience will always come with time, no technology or app can skip the need for experience.</p> | <p> This project is entirely focused on the learning part of javascript, by no way it intends to be a substitute to professional suites like JSfiddle. The students who will be using this app, can consider this as a stepping stone to a wide array of web technologies. Getting the gist of the programming language and being profecient in it, is all that is required according to me. Experience will always come with time, no technology or app can skip the need for experience.</p> | ||
− | |||
<p style="font-size:larger; font-weight:700">What technologies (programming languages, etc.) will you be using? </p> | <p style="font-size:larger; font-weight:700">What technologies (programming languages, etc.) will you be using? </p> | ||
− | <p | + | <p> Javascript will be used mostly alongside with HTML, CSS. |
+ | <br> I plan to use acorn.js for parsing the javascript. On acorn, it is actually a very beautfiul API written by Marjin Haverbeke. Most of my inpsiration for this project comes from his own project eloquentjavascript, where he also has something similar to this project. We can consider his project to be the next advanced step our students can take after this, and obviously can always use this app as a scratch pad to test their code. Apart from the that I am curently using JS-iterpreter by NeilFraser for interpreting the xml tree returned by acorn.js. This library is a work in progreess. I plan to fork it and add more functionality for this project. As mentioned in the project description. | ||
+ | </p> | ||
+ | <br><br> | ||
+ | |||
<p style="font-size:larger; font-weight:700">What is the timeline for development of your project? The Summer of Code work period is from May 19 - August 22; tell us what you will be working on each week. (As the summer goes on, you and your mentor will adjust your schedule, but it 's good to have a plan at the beginning so you have an idea of where you're headed.) Note that you should probably plan to have something "working and 90% done" by the midterm evaluation (27 June); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then. </p> | <p style="font-size:larger; font-weight:700">What is the timeline for development of your project? The Summer of Code work period is from May 19 - August 22; tell us what you will be working on each week. (As the summer goes on, you and your mentor will adjust your schedule, but it 's good to have a plan at the beginning so you have an idea of where you're headed.) Note that you should probably plan to have something "working and 90% done" by the midterm evaluation (27 June); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then. </p> | ||
+ | <table> | ||
+ | <tr> | ||
+ | <td> | ||
+ | <b>Before May 19:</b> | ||
+ | </td> | ||
+ | <td > | ||
+ | <p>Discuss everything with the mentor, put in his ideas, my ideas.<br> | ||
+ | Take a look at other projects similar to this.(eg. Eloquent Javascript, JSfiddle).</p> | ||
+ | </td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td> | ||
+ | <b>19th May - 1st June:</b> | ||
+ | </td> | ||
+ | <td> | ||
+ | <p>Start coding. Start the work on the interpretor. Add scope for HTML DOM<br> | ||
+ | in the JS-interpretor. Basic input output functionality eg console.log(), <br> | ||
+ | since javascript doesnt have a native print method. </p> | ||
+ | </td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td> | ||
+ | <b>1st June - 15 June </b> | ||
+ | </td> | ||
+ | <td> | ||
+ | <p> Bug hunting and fixing. Start working on the DOM tree display of the <br> | ||
+ | application. And also finish up HTML preview. By now the core functionality <br> | ||
+ | implementation should be over </p> | ||
+ | </td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td> | ||
+ | <b>15th June - 26th June</b> | ||
+ | </td> | ||
+ | <td> | ||
+ | <p> Implementing the interactivity part. Creating levels and best ways to create<br> | ||
+ | a simulated tutoring environment for our target audience. Loading of templates <br> | ||
+ | and saving of current work. Thouroughly discuss with my mentor the tutorial part <br> | ||
+ | and wrap it by 26th June. (<i>This should be 90% of the work</i>)</p> | ||
+ | </td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td> | ||
+ | <b>28th June - 15th July </b> | ||
+ | </td> | ||
+ | <td> | ||
+ | <p> In this case I would like to cover up the stuff that has been lagging, being <br> | ||
+ | realistic there would be plenty of stuff that would be out of sync. And ofcourse <br> | ||
+ | the bug hunting.</p> | ||
+ | </td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td> | ||
+ | <b>15th July - 31st July</b> | ||
+ | </td> | ||
+ | <td> | ||
+ | <p> Testing of this application, thinking about long term sustainibility of the app. <br> | ||
+ | How to make it more connected with the web suite of the XO for example the Web confusion <br> | ||
+ | activity. Adding features for portability of work from that activity to this. Adding<br> | ||
+ | some unkown advanced feature if time allows.</p> | ||
+ | </td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td> | ||
+ | <b>1st August - 15th August</b> | ||
+ | </td> | ||
+ | <td> | ||
+ | <p>Finishing up the project. Final testing, cleaning up the project. Documenting <br> | ||
+ | the project, and some more bug fixing.</p> | ||
+ | </td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td> | ||
+ | <b>15th August - Final Evaluation</b> | ||
+ | </td> | ||
+ | <td> | ||
+ | <p> Buffer time period, to catch up with any pending stuff.</p> | ||
+ | </td> | ||
+ | </tr> | ||
+ | </table> | ||
+ | <br> | ||
+ | <br> | ||
+ | |||
<p style="font-size:larger; font-weight:700"> | <p style="font-size:larger; font-weight:700"> | ||
Convince us, in 5-15 sentences, that you will be able to successfully complete your project in the timeline you have described. This is usually where people describe their past experiences, credentials, prior projects, schoolwork, and that sort of thing, but be creative. Link to prior work or other resources as relevant. | Convince us, in 5-15 sentences, that you will be able to successfully complete your project in the timeline you have described. This is usually where people describe their past experiences, credentials, prior projects, schoolwork, and that sort of thing, but be creative. Link to prior work or other resources as relevant. | ||
</p> | </p> | ||
+ | |||
+ | <p> | ||
+ | I have already started working on this activity and as I mentioned above it can be found at this link <br> | ||
+ | https://dl.dropboxusercontent.com/u/35525804/JS-Interpreter/index.html | ||
+ | <br> | ||
+ | </p> | ||
+ | <br> | ||
+ | <p>I implemented the touch action features as per the w3 rules in the mozilla source code. It was a lenghty project, and I got to learn a lot from it. One of the important thing I learned from it, the way open source communities work.(<i> I must mention my mentor was so humble, and I now think everyone in the open source community is like that.</i> | ||
+ | <br> | ||
+ | <p>I developed my college's annual cultural website ( http://synapse.daiict.ac.in). It was a new thing in my college, as it marked a move from static front end websites to dynamic website like this. </p> | ||
+ | <br> | ||
+ | <p>I am one of those creative people who put art first. If the design is bad no matter how good the product be, it wont sell. I have designed a lot of graphics for various organizations. I really would like to make a statement here. Even though this application is for a technical project,creativity has no bounds and any form of art. Graphic work must also be equally treated to convinve you of my candidature. Here are a few I would like to show | ||
+ | <ul> | ||
+ | <li> | ||
+ | https://www.dropbox.com/s/i3pu7v64t71pgci/synapse%201.m4v?dl=0 <br> | ||
+ | This is a teaser video, created by using the stop motion technique. It involved thousands of pictures. And since it was a budget project, I didnt have enough money for professional studio like setup for proper lightning. | ||
+ | </li> | ||
+ | <li> | ||
+ | https://www.dropbox.com/s/ppqh9dit314hy04/colstr.mp4?dl=0 <br> | ||
+ | This was my first attempt at animation, created for a homegrown startup collegestore. | ||
+ | </li> | ||
+ | <li> | ||
+ | </li> | ||
+ | </ul> | ||
<p style="font-size:larger; font-weight:700"> If your project is successfully completed, what will its impact be on the Sugar Labs community? Give 3 answers, each 1-3 paragraphs in length. The first one should be yours. The other two should be answers from members of the Sugar Labs community, at least one of whom should be a Sugar Labs GSoC mentor. Provide email contact information for non-GSoC mentors.</p> | <p style="font-size:larger; font-weight:700"> If your project is successfully completed, what will its impact be on the Sugar Labs community? Give 3 answers, each 1-3 paragraphs in length. The first one should be yours. The other two should be answers from members of the Sugar Labs community, at least one of whom should be a Sugar Labs GSoC mentor. Provide email contact information for non-GSoC mentors.</p> | ||
<p style="font-size:larger; font-weight:700"> | <p style="font-size:larger; font-weight:700"> |
Revision as of 14:34, 19 March 2015
About me
What is your name?
Kushan Joshi
What is your email address?
0o3ko0@gmail.com, ikushan@me.com
What is your Sugar Labs wiki username?
Kushan2020
What is your IRC nickname on irc.freenode.net?
kepta
What is your first language? (We have mentors who speak multiple languages and can match you with one of them if you'd prefer.)
English
Where are you located, and what hours (UTC) do you tend to work? (We also try to match mentors by general time zone if possible.)
India, 8:30am - 12:30pm (UTC) & 3:30pm- 7:30pm (UTC)
Have you participated in an open-source project before? If so, please send us URLs to your profile pages for those projects, or some other demonstration of the work that you have done in open-source. If not, why do you want to work on an open-source project this summer?
I have been contributing to open source frequently. Below is my profile of bugzilla at Mozilla Foundation.
Bugzilla profile https://bugzilla.mozilla.org/user_profile?user_id=500998
- Adding touch action regions [1]: This bug involved declaring candidate regions for default touch behaviours as set by w3 consortium.[http://www.w3.org/TR/pointerevents/#declaring-candidate-regions-for-default-touch-behaviors [2 ]].Firefox as of yet hasn't implemented pointer events for default touch action regions, this bug required me to create touch action regions, and forward them to composter. The regions were further divided into no_Action_Region, horizontal_Pan_Region and vertical_Pan_region , which had to be processed separately. This bug was quite interesting as it had me working on the components of CSS implementation of the browser.
- Use of new xpcshell test cases [3]: The use of new globally available xpcshell tests, required change in the code of calendar and lighting app of mozilla suite. In this bug I am upgrading the unit testing code of the suite to follow the change in Assert.jsm.
- Using getters/setters[4] : This was fairly simply bug which required upgradation of existing firefox code to use getters/setters method.
About your project
What is the name of your project?
Interactive Javascript Shell
Describe your project in 10-20 sentences.
Brief This project is geared towards learning javascript, unlike other similar projects on the internet. The developer must have this in mind while developing the shell. The interactivity of this whole project can be brought upon on various levels. I aim to add different levels of learning, just like a video game. You are given a task and if you complete it successfully you are rewarded virtually and you proceed on to the next level. No learning of javascript is complete without involvement of HTML. The application I intend to develop will have HTML functionality embeded in the whole app experience. That is one thing that differentiates scripting language from others, you dont need to compile and worry stuff related to that. |
|
Application The UI of the app has to be consistent with the XO, below is a mockup of the design of the application I intend to develop this summer. As you can see, I intend to divide the screen into halves.
HTML: The student must be able to type in the desired HTML code, for which he plans to add Javasript. In the design above, student is actually solving a problem statement which requires her to append some elements to an already existing ul element. The student would be guided through a help section right at the top in the nav bar. Whenever he she is stuck can see the objectives of the current problem and also get a hint. The simulated problem part is a feature of this application. A student can also work on a blank project. Preview: Preview of the HTML code is a basic necessity for learning javascript. The student upon clicking the Preview button will see the live preview of code uptil that moment. In case she makes changes, she will have to click the run button at the top again. Console: The console part is very important, as the interactivty we wish to achieve wouldnt be possible without it. The console shown in the mockup, will provide basic outputs like console.log, errors, etc. The user can anytime query any variable just like the console which comes with modern day browsers. Help: As I mentioned earlier to aid the learning of javascript, the user can opt to go through basic tasks. As shown in the design, the user is shown what she has to do in this task and upon completion can move to the next advanced task. The help button will also fascilitate as guide to interface, just like its done in the web version of turtle . https://turtle.sugarlabs.org. |
|
Early stage version of the app To actually show the working of my idea, I created this very early prototype of the app. (Please note it currently only supports alert() for outputs, and doesnt support HTML as of now.) I request you to try out, some simple programming problems like finding maximum element in an array, or other fundamental programming problems in it and use alert() as of now to get output. |
Who are you making it for, and why do they need it?
This project is entirely focused on the learning part of javascript, by no way it intends to be a substitute to professional suites like JSfiddle. The students who will be using this app, can consider this as a stepping stone to a wide array of web technologies. Getting the gist of the programming language and being profecient in it, is all that is required according to me. Experience will always come with time, no technology or app can skip the need for experience.
What technologies (programming languages, etc.) will you be using?
Javascript will be used mostly alongside with HTML, CSS.
I plan to use acorn.js for parsing the javascript. On acorn, it is actually a very beautfiul API written by Marjin Haverbeke. Most of my inpsiration for this project comes from his own project eloquentjavascript, where he also has something similar to this project. We can consider his project to be the next advanced step our students can take after this, and obviously can always use this app as a scratch pad to test their code. Apart from the that I am curently using JS-iterpreter by NeilFraser for interpreting the xml tree returned by acorn.js. This library is a work in progreess. I plan to fork it and add more functionality for this project. As mentioned in the project description.
What is the timeline for development of your project? The Summer of Code work period is from May 19 - August 22; tell us what you will be working on each week. (As the summer goes on, you and your mentor will adjust your schedule, but it 's good to have a plan at the beginning so you have an idea of where you're headed.) Note that you should probably plan to have something "working and 90% done" by the midterm evaluation (27 June); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then.
Before May 19: |
Discuss everything with the mentor, put in his ideas, my ideas. |
19th May - 1st June: |
Start coding. Start the work on the interpretor. Add scope for HTML DOM |
1st June - 15 June |
Bug hunting and fixing. Start working on the DOM tree display of the |
15th June - 26th June |
Implementing the interactivity part. Creating levels and best ways to create |
28th June - 15th July |
In this case I would like to cover up the stuff that has been lagging, being |
15th July - 31st July |
Testing of this application, thinking about long term sustainibility of the app. |
1st August - 15th August |
Finishing up the project. Final testing, cleaning up the project. Documenting |
15th August - Final Evaluation |
Buffer time period, to catch up with any pending stuff. |
Convince us, in 5-15 sentences, that you will be able to successfully complete your project in the timeline you have described. This is usually where people describe their past experiences, credentials, prior projects, schoolwork, and that sort of thing, but be creative. Link to prior work or other resources as relevant.
I have already started working on this activity and as I mentioned above it can be found at this link
https://dl.dropboxusercontent.com/u/35525804/JS-Interpreter/index.html
I implemented the touch action features as per the w3 rules in the mozilla source code. It was a lenghty project, and I got to learn a lot from it. One of the important thing I learned from it, the way open source communities work.( I must mention my mentor was so humble, and I now think everyone in the open source community is like that.
I developed my college's annual cultural website ( http://synapse.daiict.ac.in). It was a new thing in my college, as it marked a move from static front end websites to dynamic website like this.
I am one of those creative people who put art first. If the design is bad no matter how good the product be, it wont sell. I have designed a lot of graphics for various organizations. I really would like to make a statement here. Even though this application is for a technical project,creativity has no bounds and any form of art. Graphic work must also be equally treated to convinve you of my candidature. Here are a few I would like to show
-
https://www.dropbox.com/s/i3pu7v64t71pgci/synapse%201.m4v?dl=0
This is a teaser video, created by using the stop motion technique. It involved thousands of pictures. And since it was a budget project, I didnt have enough money for professional studio like setup for proper lightning. -
https://www.dropbox.com/s/ppqh9dit314hy04/colstr.mp4?dl=0
This was my first attempt at animation, created for a homegrown startup collegestore.
If your project is successfully completed, what will its impact be on the Sugar Labs community? Give 3 answers, each 1-3 paragraphs in length. The first one should be yours. The other two should be answers from members of the Sugar Labs community, at least one of whom should be a Sugar Labs GSoC mentor. Provide email contact information for non-GSoC mentors.
What will you do if you get stuck on your project and your mentor isn 't around? How do you propose you will be keeping the community informed of your progress and any problems or questions you might have over the course of the project?
We want to make sure that you can set up a development environment before the summer starts. Please do one of the following: Send us a link to a screenshot of your Sugar development environment with the following modification: when you hover over the XO-person icon in the middle of Home view, the drop-down text should have your email in place of "logout". Send us a link to a pull request or merge request you have made on a Sugar or Sugar activity bug. It's normal to need assistance with this, so please visit our IRC channel, #sugar on irc.freenode.net, and ask for help.
Describe a great learning experience you had as a child. Is there anything else we should have asked you or anything else that we should know that might make us like you or your project more?