User:Lk: Difference between revisions

Jump to navigation Jump to search
2,248 bytes added ,  30 March 2020
→‎Y: Your task: Merge Proposal page here. Do not create top-level pages for GSoC.
(→‎Y: Your task: Merge Proposal page here. Do not create top-level pages for GSoC.)
 
(10 intermediate revisions by one other user not shown)
Line 1: Line 1:
= Public application template =
= Public application template =
This part should be answered in public on your '''[[Special:MyPage|user page]]'''. Please '''copy''' its source ('''edit''' tab) and then fill. '''DO NOT MAKE CHANGES TO THIS PAGE!''' Delete any examples and annotations (''this markup'') afterwards. Same for questions that do not apply to your situation.
== A: An introduction ==
== A: An introduction ==
* Please describe yourself in three sentences, one of them regarding your current studies.<br />I am studying at the University of Illinois at Urbana-Champaign, in the process of obtaining a major in computer engineering and minors in physics and statistics (expected graduation: May 2022). I attended the Illinois Mathematics and Science Academy for high school, taking most computer science and physics courses offered. In my free time, I like to draw, cook, work out, and read.
* Please describe yourself in three sentences, one of them regarding your current studies.<br />I am studying at the University of Illinois at Urbana-Champaign, in the process of obtaining a major in computer engineering and minors in physics and statistics (expected graduation: May 2022). I attended the Illinois Mathematics and Science Academy for high school, taking most computer science and physics courses offered. In my free time, I like to draw, cook, work out, and read.
Line 17: Line 15:
== E: Coding experience ==
== E: Coding experience ==
This part is one of the more important ones in your application. You are allowed to be as verbose as you want, as long as you stay on topic ;-)
This part is one of the more important ones in your application. You are allowed to be as verbose as you want, as long as you stay on topic ;-)
* Please describe your experience with C++, Octave or Matlab m-scripts, OpenGL and Qt.<br />I have experience with Octave from the Coursera Machine Learning Course and experience with Matlab from my electronics courses in university.
* Please describe your experience with C++, Octave or Matlab m-scripts, OpenGL and Qt.<br />I have experience with C/C++ from computer science and engineering courses in university. I have experience with Octave from the Coursera Machine Learning Course and experience with Matlab from my electronics courses in university.
* Please describe your experience with other programming languages.<br />I have experience with C, Java, LC-3, MATLAB, Python, HTML, CSS, Bootstrap, Javascript, JQuery, PHP, and SQL from various courses in high school and university.
* Please describe your experience with other programming languages.<br />I have experience with C, C++, Java, LC-3, MATLAB, Python, HTML, CSS, Bootstrap, Javascript, JQuery, PHP, and SQL from various courses in high school and university.
* Please describe your experience with being in a development team. <br />I am currently interning at Synchrony Financial, on a team of three students and one mentor. My only experience with open-source so far has been at the 2020 Hack Illinois hackathon working on the gRPC project.
* Please describe your experience with being in a development team. <br />I am currently interning at Synchrony Financial, on a team of three students and one mentor. My only experience with open-source so far has been at the 2020 Hack Illinois hackathon working on the gRPC project.
* Please describe the biggest project you have written code for and what you learned by doing so. Also, describe your role in that project over time.<br />During high school, I was on my FRC robotics team's programming team. I learned a lot about Java and controlling physical parts using code. Initially, I had no experience with programming beyond JavaScript, but eventually, I was able to code and debug for any part of the robot.
* Please describe the biggest project you have written code for and what you learned by doing so. Also, describe your role in that project over time.<br />During high school, I was on my FRC robotics team's programming team. I learned a lot about Java and controlling physical parts using code. Initially, I had no experience with programming beyond JavaScript, but eventually, I was able to code and debug for any part of the robot.
Line 27: Line 25:
** IRC and mailing lists <br />I have no experience with IRC. I have set up mailing lists using PHP in a web technologies course.
** IRC and mailing lists <br />I have no experience with IRC. I have set up mailing lists using PHP in a web technologies course.
** Mercurial or other source code management systems<br />I have no experience with Mercurial. I have extensive experience with Git.
** Mercurial or other source code management systems<br />I have no experience with Mercurial. I have extensive experience with Git.
** Mediawiki or other wiki software<br />I have no experience with Mediawiki. I have used other wiki software in a few courses to create and share content with classmates and instructors.
** Mediawiki or other wiki software<br />I have no experience with Mediawiki. I have used other wiki software in a few courses to create and share content with classmates and instructors. I expect to be able to pick up wiki formatting quickly because I have a lot of experience with markup languages in creating websites and using LaTeX.
** make, gcc, gdb or other development tools<br />I have used make, gcc, and gdb somewhat extensively in class. I have experience in creating and modifying makefiles.
** make, gcc, gdb or other development tools<br />I have used make, gcc, and gdb somewhat extensively in class. I have experience in creating and modifying makefiles.
* What will make you actively stay in our community after this GSoC is over? <br />To me, the most offputting part of open-source projects is the seemingly high entry barrier. As long as I understand what needs to be done and where I can find the resources to do it (which I should know following GSoC), I plan on staying active in the Octave community.
* What will make you actively stay in our community after this GSoC is over? <br />To me, the most offputting part of open-source projects is the seemingly high entry barrier. As long as I understand what needs to be done and where I can find the resources to do it (which I should know following GSoC), I plan on staying active in the Octave community.
Line 50: Line 48:
== Y: Your task ==
== Y: Your task ==
* Did you select a task from our list of proposals and ideas?
* Did you select a task from our list of proposals and ideas?
** If yes, what task did you choose? Please describe what part of it you especially want to focus on if you can already provide this information. <br />
** If yes, what task did you choose? Please describe what part of it you especially want to focus on if you can already provide this information. <br />Yes, I selected the [https://wiki.octave.org/Summer_of_Code_-_Getting_Started#JSON_encoding.2Fdecoding JSON encoding/decoding] project. I have used JSON files in data analysis and visualization projects in the past, and I think that Octave needs to have JSON integration to succeed as a widespread computational language. [[#Proposal]] for reference.
Yes, I selected the [https://wiki.octave.org/Summer_of_Code_-_Getting_Started#JSON_encoding.2Fdecoding JSON encoding/decoding] project. I have used JSON files in data analysis and visualization projects in the past, and I think that Octave needs to have JSON integration to succeed as a widespread computational language. [[Proposal]] for reference.
* Please provide a rough estimated timeline for your work on the task. <br />  
* Please provide a rough estimated timeline for your work on the task. <br />
{| class="wikitable" style="margin-left:30px;"
May 4 - June 1: Community Bonding <br />June 1 - August 24: Coding<br />June 29 - July 3: Evaluations 1<br />July 27 - 31: Evaluations 2<br />August 6-8: Unavailable (UIUC finals)<br />August 24 - 31: Final Project and Evaluations 3<br />September 8: Final Results<br />
|-
|May 4 - June 1
|Community Bonding
|-
|June 1
|Start Coding
|-
|Task 1
|Determine which implementation
|-
|June 29 - July 3
|Evaluations 1
|-
|Task 2
|Improve implementation
|-
|July 27 - 31
|Evaluations 2
|-
|Task 3
|Testing
|-
|August 6-8
|Unavailable (UIUC finals)
|-
|August 24
|End Coding
|-
|August 24 - 31
|Final Project and Evaluations 3
|-
|September 8
|Final Results
|}
 
 
== Proposal ==
 
=== [https://savannah.gnu.org/bugs/?53100 Bug #53100] ===
*Introduction<br />Following Matlab's introduction of jsondecode(string) and jsonencode(string) in early February, a feature request was made to create similar functions in Octave. The proposed functions would allow users to easily work with JSON formatted strings in Octave, inputting and outputting JSON files, respectively.
*Imperfections
**Due to an abundance of cpp parser libraries, different ones with different implementations have been selected and implemented separately by various contributors.
**"jsonstuff .. doesn't cover more general or flexible JSON handling, or persisting of arbitrary Matlab data structures to JSON"
*** no intention of further extension so as to match base Matlab
***As of February 2020, "it's about feature-complete, but it's not Fast (because some stuff is still in the M-code layer, that should be down at the C++ oct-file layer)".
**jsonlab is looking to be more robust than jsonstuff, implemented as a specialized package that works with both Octave and Matlab rather than a part of base Octave.
***also works with UBJSON/MessagePack (different filetypes for different use cases)
**rapidjson is not aiming to create an equivalence to Matlab's jsonencode/jsondecode, instead creating new data types and functions to aid in working with JSON files.
**I was not able to find much information about JSONio's deficiencies.
=== Contribution ===
All of these packages were written by individuals who see their work's strengths because they have naturally created a product that works well for their needs. To implement a feature into Octave core, however, it must work well in a considerably more extensive range of applications. A third party should analyze in-depth which implementation makes the most sense to bring into Octave core and work with the contributor to do so. Some contributors expressed in the Bug #53100 forum that they find themselves lacking the time to finalize their implementations, as is the nature of open-source work. Thus, dedicating my summer, I could help finally bring fluid JSON interoperability to Octave.
 
[[Category: Summer of Code]]
[[Category: Summer of Code]]

Navigation menu