User:Ysaimanojkumar

From Octave
Jump to navigation Jump to search

A: An introduction[edit]

  • Please describe yourself in three sentences, one of them regarding your current studies.

I am doing my M. Tech. first year in Computer Science and Engineering in IIT Guwahati. I would like to participate in open source programming(I know it is a vague term), to improve my programming skills and Software development techniques.

    • Which languages do you speak?

English and Telugu.

    • What's your overall background? The general field you work in or are studying, e.g. computer science, physics, artificial intelligence, control theory...

Computer Science and Machine Learning.

  • Why do you want to participate in the Google Summer of Code? What do you hope to gain by doing so?

I want to improve my programming skills in high level, I mean from a bigger project point of view. I having writing some small programs(mostly for curriculum) but never dealt with big real-time projects that are available in GSoC.

    • Please also describe your previous experience with the GSoC, if any.

Previously I tried to apply but I couldn't make it through, mostly because I don't have that much exposure of GSoC as needed to get through(I did not interact with the team).

  • Why are you choosing Octave?

Octave is a free alternative for MATLAB which helps students like me to work on wide range of problems(machine learning projects, chemical engineering, electrical circuit design etc.).

C: Contact[edit]

  • Please state the (unique and identical where possible) nick you use on IRC and any other communication channel related to Octave. We really want unique nicks. You might want to bold it.

ysaimanojkumar is the nick I use in IRC on freenode.

  • Which time zone do you live in? Will that change over GSoC duration? Perhaps DST adjustment or a relocation. Note that both UTC and GMT are not aware of daylight saving time! Please state UTC+x or -x.

UTC +5:30, I won't change over GSoC duration. No DST adjustment is observed here. No chance of relocation beyond my time zone.

  • Please state the timeframe (in UTC+0) when you feel most comfortable working during GSoC. Where are your time buffers? Example: I usually code around 9.00 to 18.00 and could also try to start earlier (~7.00) for few days ;-)

I usually work around 8:00 to 17:00. Occasionally, I would work upto 18:00 or 19:00 in the evening.

E: Coding experience[edit]

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

I can just read and write C++ code, but I am not an expert in OOP concepts. I can read and write Octave and Matlab .m scripts well. Don't know anything about OpenGL. Have little prior experience with Qt.

  • Please describe your experience with other programming languages.

I am comfortable in programming in C, Python and Java.

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

I have some experience with working in small development team of 2 to 3 members. That mostly comprises of course projects.

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

It is a project that my friend Sai Kumar and I worked on to create a text editor which does not have any GUI and does spell checking by using a dictionary. The project was to implement it using threads and with out using threads and Compare the performance and justify. My role was to implement it with out using threads. I learnt that it really makes difference to use threads when necessary. I also learned using curses library to implement a text editor(it is cool though not as perfect as vi or nano).

  • Please state the commits and patches you already contributed to Octave. This question (one of the most important parts by the way) is the only part of your application our wiki admins will edit for you even after the application deadline. Code sometimes speaks louder than many words do.

F: Feeling fine[edit]

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

IRC -- very comfortable Mailing Lists - comfortable

    • Mercurial or other source code management systems

Git -- very comfortable. Mercurial -- Never used for my projects but can learn easily as it seems quite similar in workflow to git.

    • Mediawiki or other wiki software

Very comfortable.

    • make, gcc, gdb or other development tools

Very comfortable.

  • What will make you actively stay in our community after this GSoC is over? You can also tell us after applications close and we'll happily try to fulfill :-)

Constructive criticism with out any hesitation and appreciation(if I do well, only if I do well).

O: Only out of interest[edit]

  • Did you ever hear about Octave before? If so, when and where? How far have you been involved already?

Yes, first heard about it in Machine Learning course by Dr. Andrew Ng in 2011(MOOC). Since then I suggested it to many of my friends as a substitute of MATLAB.

  • What was the first question concerning Octave you could not find an answer to rather quickly? Of course more than one question can be stated. We try to improve based on this each year! Includes learning how to use it, code, website, GSoC application, …

Don't have anything right now. Will update it later if I find any.

P: Prerequisites[edit]

I own a Laptop Computer which I usually do all my work. My college has assigned a Desktop Computer in our Lab. So, as a whole I can use 2 Computers.

  • Please state the operating system you work with.

Ubuntu and sometimes Windows 7.

    • If you have access to more than one, please state them and the conditions under which you are granted this access.

My laptop came with Windows 7 Home Basic installed in it. I also installed Ubuntu in it. I mostly work on Ubuntu. My lab computer has only Ubuntu installed in it.

  • Please estimate an average time per day you will be able to (if separated) access
    • an internet connection -- 15 hrs.
    • a computer -- 24 hrs except while sleeping, eating etc. ;)
    • a computer with your progressing work on -- around 20 hrs.
  • Please describe the degree up to which you can install new software on computers you have access to.

On both of my computers I can install any software, can even install another Operating System.

S: Self-assessment[edit]

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

It helps me to grow. As I have already said earlier, I never worked on big projects where people really have to discuss what and how it needs to be done, before it is done. I want to learn that communication part which I am lacking.

  • How autonomous are you when developing? If you answer both sub-questions with "Yes, definitely", we are a tad confused. ;-)
    • Do you like to discuss changes intensively and not start coding until you know what you want to do?

I have to learn this trait, I admire this but never learned it completely.

    • 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 would like to code a proof of concept, but If it does not fit exactly fit the original idea, I think it can be modified to do so instead of throwing it altogether.

Y: Your task[edit]

  • 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. Please also wiki-link the page for your elaborated proposal here.

Yes. I have chosen "Installation of packages" from Octave GSoC Ideas. I want to implement separate local and global databases of installed packages so that different users can share the packages installed locally by them. I will mostly focus on global and local installs as given in [[1]]

  • Please provide a rough estimated timeline for your work on the task. This should include the GSoC midterms and personal commitments like exams or vacation ("non-coding time"). Optionally include two or three milestones you expect.

May 28th - Jun 16th: Read Source Code, Setting Up development environment, Getting to Know Mentor, making small contributions to octave and feeling confident, Discussing on how to implement the project with Mentor. Jun 17th - 24th July: Supporting installation of packages locally by storing it in local database, and Support using external packages(packages installed locally by others). Includes writing help files. July 24th - 31st July: Fix any bugs found by comparing with use cases. 1st Aug: Submit for Mid term Evaluation. 2th Aug - Sep 7th: playing nice with downstream packagers, allowing user to specify package versions, using --version option user should be able to install(or uninstall) and load(or unload) packages. Includes writing help files. 8th Sep - 15th Sep: Make sure the project passes all use cases mentioned in OEP:pkg and any other relevant to the whole project. Ask my friends to use the development version of octave that I am working on and find any trouble they are facing while using pkg options or while using help. 16th Sep - 24th Sep: Using the feedback from usability testing done above and from Mentor feedback brush up some code and add more documentation where needed. 25th Sep: Submit Project for Final Assessment.

I want to mention 2 important things:

  • There is no vacation("non-coding-time") in my schedule because, I come back to my college from Home on May 27th. I go to home on 9th May. I have end semester exams of my 2nd Semester from tomorrow(22nd April). But after I come back I will start working on my project for M. Tech. But it only takes 25 to 30 hrs a week.
  • Second thing is that I have mentioned about fixing bugs only before submitting code for evaluation, but that does not mean that bug fixing will be done only at the end, no. Whenever, a bug is found, it will triaged and dealt with accordingly.