Prao

Joined 26 February 2014
973 bytes removed ,  12 March 2014
no edit summary
No edit summary
No edit summary
Line 8: Line 8:


* Why do you want to participate in the Google Summer of Code? What do you hope to gain by doing so?
* Why do you want to participate in the Google Summer of Code? What do you hope to gain by doing so?
I love math and technology, and I think it's amazing how open-source projects provide great resources to people all across the world and make the playing field even. I'm looking for some "real world experience" and to hone my computing skills, learn cool techniques and get started in the open-source community. It seems like a fun way to spend summer, solving problems that will (hopefully!) turn into something useful!
I love math and technology. It seems like a fun way to spend summer, learning cool mathsy-techy stuff (that could turn into something useful) and also, to get your feet wet in open-source world.


* Why are you choosing Octave?
* Why are you choosing Octave?
I have used Octave a little before and found it a useful math tool. The project on IBVP parabolic-elliptic offers me the perfect opportunity to combine my numerical analysis, fluid dynamics(PDE solving) and coding skills. Plus, I could see myself using this tool for my work.
I have used Octave a little before and found it a useful math tool. The project on IBVP parabolic-elliptic offers me the perfect opportunity to combine my numerical analysis, fluid dynamics(PDE solving) and coding skills. Plus, I could see myself using this tool for my own work.


== C: Contact ==
== C: Contact ==
* Please state the (unique and identical where possible) nick you use on IRC and any other communication channel related to Octave.
* Please state the (unique and identical where possible) nick you use on IRC and any other communication channel related to Octave.
My nick on IRC is '''prao''' and it's also my username on Octave forums.
My nick is '''prao'''.


* Which time zone do you live in? Will that change over GSoC duration?
* Which time zone do you live in? Will that change over GSoC duration?
Line 33: Line 33:


* Please describe your experience with other programming languages.
* Please describe your experience with other programming languages.
I have used Python to test the complex code ideas before implementing them in C, C++. For my homework assignments, I've used a few Python modules and libraries, mostly for data analysis. I also worked on a side-project related to GUI development.  
I have used Python to test the complex code ideas before implementing them in C, C++. I've also used a few Python modules and libraries for my assignments.


* Please describe your experience with being in a development team.
* Please describe your experience with being in a development team.
Line 40: Line 40:
* 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.
* 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.
I started using FronTier as an end user, taking data output and writing scripts to answer specific research questions. As my research progressed, I needed to add more features to the code and I transitioned to being a developer.
I started using FronTier as an end user, taking data output and writing scripts to answer specific research questions. As my research progressed, I needed to add more features to the code and I transitioned to being a developer.
My biggest project was to adopt some parts from the old version of FronTier(in C) to a new C++ version. I had to implement the subgrid scale models, a technique used in Large Eddy Simulations to calculate terms below the grid level, and add the corresponding terms in the filtered Navier-Stoke's equation as part of the parabolic step (explicit and implicit implementation). It involved reading a bunch of papers, understanding a big piece of code written by someone and changing it to C++, which I didn't know much of until I started working on this project.
My biggest project was to adopt some parts from the old version of FronTier(in C) to a new C++ version. It involved reading a bunch of papers on subgrid scale modeling, understanding a big piece of code written by someone and changing (also adding new features) it to C++, which I didn't know much of until I started working on this project.
The complexity of the code, poor documentation, not using version control made it quite challenging to add new pieces of code that worked in sync with the rest of the structure. It taught me the value of having a clear plan of action to attack the problem before implementation. I also learnt the importance of testing vigorously. I found it useful at times to discuss certain aspects with more experienced users and refining my thought process.
The complexity of the code and poor documentation, made it quite challenging to add new pieces of code that worked in sync with the rest of it. It taught me the value of having a clear plan of action before implementation and the importance of testing vigorously. I found it useful at times to discuss certain aspects with more experienced users and refining my thought process.




* Please state the commits and patches you already contributed to Octave.
* Please state the commits and patches you already contributed to Octave.
Patches #8371, #8372.
[https://savannah.gnu.org/patch/index.php?8371]
[https://savannah.gnu.org/patch/index.php?8372]


== F: Feeling fine ==
== F: Feeling fine ==
Line 66: Line 67:
== O: Only out of interest ==
== O: Only out of interest ==
* Did you ever hear about Octave before?
* Did you ever hear about Octave before?
Yes, I had heard about Octave before via my fellow students and professors. I am still exploring it.
Yes, I had heard about Octave before via my professor. I am still exploring it.


* What was the first question concerning Octave you could not find an answer to rather quickly?  
* What was the first question concerning Octave you could not find an answer to rather quickly?  
Line 91: Line 92:
== S: Self-assessment ==
== S: Self-assessment ==
* Please describe how useful criticism looks from your point of view as committing student.
* Please describe how useful criticism looks from your point of view as committing student.
Constructive criticism has helped me better my coding style, approach to problem solving. My forte is mainly my math skills and I am not an expert coder(not yet!), so specific feedback could be very helpful. Plus there is always value in getting an objective view of your work, general or specific, and working on your weak points.
There is always value in getting an objective view of your work, general or specific, and working on your weak points. Constructive criticism is extremely important for improvement.


* How autonomous are you when developing?
* How autonomous are you when developing?
Fairly autonoumous. I usually refer to online resources, books to resolve problems. But I am also good at recogonizing issues that might need outside help (when it's available) and where I could benefit from others' experience. It is especially useful when there is time constraint and learning from scratch might be tool slow.
I'd say fairly autonoumous. I usually refer to online resources to resolve problems. But I am also good at recognizing issues that might need external help (when it's available), especially if there is time constraint and learning from scratch might be too slow.
   
   
** Do you like to discuss changes intensively and not start coding until you know what you want to do?
** Do you like to discuss changes intensively and not start coding until you know what you want to do?
I find it more useful to think about the problem and try to have a startegy for it, before I discuss it. The discussions for me are more productive when I've already spent some time thinking about the problem. I start implementation only when I know what I am doing to avoid confusion and messy code.
For me discussions are more productive when I've already spent some time thinking about the problem. I start implementation only when I know what I am doing to avoid confusion and messy code.


** Do you like to code a proof of concept to 'see how it turns out', modifying that and taking the risk of having work thrown away if it doesn't match what the project or original proponent had in mind?
** Do you like to code a proof of concept to 'see how it turns out', modifying that and taking the risk of having work thrown away if it doesn't match what the project or original proponent had in mind?
I usually don't follow this technique for large projects as there is too much at stake in terms of effort and time. I like to have a clear vision before I start coding. But for small problems with enough time, I think it's okay to to get the feel of things via coding.
I usually don't follow this technique for large projects as there is too much at stake in terms of effort and time. I like to have a clear vision before I start coding. But for small problems with enough time, I think it's okay to to get the feel of things via coding.
I use it once in a while to work on the small bits.
== 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?
21

edits