User:Prao

From Octave
Revision as of 01:46, 3 March 2014 by Prao (talk | contribs) (Created page with " == A: An introduction == * Please describe yourself in three sentences, one of them regarding your current studies. ** Which languages do you speak? ** What's your overall ba...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

A: An introduction

  • Please describe yourself in three sentences, one of them regarding your current studies.
    • Which languages do you speak?
    • What's your overall background?

My name is Pooja Rao and I'm originally from Gurgaon, India but currently, living in NY, USA. I am a PhD student in computational fluid dynamics at Stony Brook University, NY, specializing in fluid mixing in high Reynolds number regime. I speak Hindi and English fluently.

  • 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 so 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!

  • 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, this project(on completion) is going to be helpful personally in my own research too, as I make use of PDE solvers.

C: Contact

  • 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.

  • Which time zone do you live in? Will that change over GSoC duration?

I live in UTC-5 and it's going to be UTC-4 for GSoC duration (daylight saving)

  • Please state the timeframe (in UTC+0) when you feel most comfortable working during GSoC.

I am on a flexible schedule but on most days, I code between 14:00 hrs to 06:00 hrs(UTC).

E: Coding experience

  • Please describe your experience with C++, Octave or Matlab m-scripts, OpenGL and Qt.

For my research we use C++, C to solve the Navier-Stokes numerically using a huge code that's been in development for a long time. The code development that I do is mostly in these languages.

I have used a lot of Matlab for writing scripts for post-processing data and to generate plots for research papers. In addition, I have also used Matlab for numerical analysis classes to generate movies and to do homework assignments on PDEs.

I don't have any experience with OpenGL and Qt.

  • Please describe your experience with other programming languages.

I have used Python it to test the complex code ideas before implementing them in a lower level language like C, C++. For my homework assignments, I've used a few Python modules and libraries (SymPy, NumPy, Paramiko, MayaVi, Ipython), mostly for data analysis. I also worked on a side-project related to GUI development.

  • Please describe your experience with being in a development team.

For my Ph.D. research, I use and help develop a multi-physics, publically available code, FronTier, that's been in development for a couple of decades. ....... So, in a way I'm familiar with the development environment, although I am totally new to open source development.

  • 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. My biggest project was to adopt 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 adopting it to C++, that I didn't know much of until I started working on this project. The complexity of the code and poor documentation along with not using version control, made it quite challenging to add new pieces of code that worked in harmony with the rest of the structure. It taught me the value of having a clear plan of action to attack the problem before implementation, especially for large scale projects. I also learnt the importance of testing vigorously and debugging, for making sure everything was in sync. 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.

I plan to be contributing soon.

F: Feeling fine

  • Please describe (in short) your experience with the following tools:
    • IRC and mailing lists

I am comfortable using IRC and mailing lists. I found them useful during the installation process.

    • Mercurial or other source code management systems

I have a basic knowledge of Mercurial at this point.

    • Mediawiki or other wiki software

Yes, for the journal club at my University.

    • make, gcc, gdb or other development tools

Yes, I use them on a regular basis.

  • What will make you actively stay in our community after this GSoC is over?

O: Only out of interest

  • Did you ever hear about Octave before?

Yes, I had heard about Octave before via my fellow students and professors. I have used it to do some of my numerical analysis assignments. I am still exploring it.

  • What was the first question concerning Octave you could not find an answer to rather quickly?

So far, all the information I've needed has been available in the resources provided by Octave or user forums, blogs, etc.

P: Prerequisites

  • Please state the operating system you work with.

I have acces to Ubuntu 12.04 and Debian 7.4 as personal computers available always and CentOS 6.3 as a school server available remotely.

  • Please estimate an average time per day you will be able to (if separated) access
    • an internet connection

Always

    • a computer

Always

    • a computer with your progressing work on

Always

  • Please describe the degree up to which you can install new software on computers you have access to.

I have the root permissions and enough RAM to install the needed software.

S: Self-assessment

  • Please describe how useful criticism looks from your point of view as committing student.

In my experience constructive criticism has helped me better my coding style and 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.

  • 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, especially when there is time constarint and self-learning might be too slow.

    • 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, especially for big scale problems.

    • 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 and I like to have a clear vision before I start coding. But for small problems with enough time, it's okay to to get the feel of things via coding. I use it oce in a while to work on the smaller parts of a project.

Y: Your task

  • 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.

Yes, I would like to implement the IVBP for parabolic-elliptic PDEs in 1D. I especially want to focus on what kind of ODE solvers we use.


  • Please provide a rough estimated timeline for your work on the task.

I am still working on a concrete timeline and should have one up soon. I don't have any exams or other commitments during GSoC period and the problem seems a good match for my skill set, so I expect to have no issues completing it in the time frame allotted.