“If you are not willing to learn,
no one can help you.
If you are determined to learn,
no one can stop you.”
It has been a wonderful journey so far. It’s almost like I got access to a new world which I didn’t know existed before. And today I am writing code, asking questions and more importantly learning. I can confidently tell that I have walked past that stage where I felt like a total stranger in the opensource world. I have the responsibility of doing a task, making efforts to take care of all pitfalls which may occur later and discussing the progress and roadblocks with mentors. I am confident and happy with the way this journey has been progressing.
Last two weeks involved creating an extension to capture data which would be used in later stages. Digging deep inside the code requires a lot of patience and curiosity. The moment you take a first good look at the code, you cannot expect to have love at first sight. This love only develops when you and the code spend more time together. The more you be with the code, you know it better and you become ready to modify or add to it. 🙂
I learnt to observe the behavior of code closely and take care of all edge cases which needs to be handled. Even then, the code when reviewed, revealed more instances where care was needed. One among many things I learnt was how to use $.throttle to capture any event-linked data at regular intervals. I also learnt how to include third-party code, check the license and give credit where due. Even with regular discussions and meetings, we still might miss some things in code. The code reviews have been extremely helpful in this regard to make sure that nothing falls through the cracks. 🙂
Overall, the fortnight went well, coding happily. But now it’s time for me to buckle up and change the gear. 🙂
“It is impossible to live without failing at something, unless you live so cautiously that you might as well not have lived at all – in which case, you fail by default.”
J. K. Rowling
I learned two important lessons last week.
One is that organizing your tasks can help you do things in a systematic manner. I had many small tasks to do and the details of these tasks were mostly in emails. But referring to emails every time to check details of tasks is very tedious and inefficient. However, there is a much better way – put everything in Phabricator tasks and link information as necessary. Using the Phabricator workboard to organize my tasks, everything was visible to me in one place. I could arrange tasks as per their priority and dependencies. Earlier, I used to spend a lot of time thinking about what I had to do and should not forget. This would go on repeatedly in my mind, though not consciously. Now I am freer to focus on doing the actual work.
The second crucial lesson is regarding communicating ideas clearly, especially to people who do not have any prior context. Since I have been thinking about the project most of the time, I (unknowingly) assume that everyone else has some basic idea about it. This can lead to unfortunate misunderstandings. There is no point blaming Murphy when there is something we can do to improve the situation. In communication, the sender should not assume anything about the receiver and make clear the ideas to be communicated. This was a great tip I received from my mentors, who explained to me about the XY problem. Also, it is always good to talk about the problem as clearly and explicitly as possible. The receiver should also not assume anything and should ask questions if something is unclear.
This week, I also learned about the use of virtual machines as a safe sandbox for testing software without affecting the host system and explored some methods for Outlier detection, trying out different features and reading more about how to improve the accuracy.
I feel this is just the tip of the iceberg. There are many more things to do. And a lot more to explore, learn and implement.
It has been two weeks since Outreachy internship period has officialy begun. So far, this is what happened. I looked at the problem, tried to understand the issues, discussed with mentors and made plans about how to get the task done. Now is the coding phase.
The implementation phase is always the most interesting phase. You code the ideas you had listed and then it comes. You find issues which you had never thought of. Earlier I had thought if I have a clear plan, I just need to work on it and write code, and there, you have the solution. Clearly it is not going to be like that all the time. You realize everything about your ideas when you sit and code. Sometimes new ideas kick in. You try hard to stick to the timeline you have. Sometimes you miss it. You struggle to get back in the saddle and ride ahead. You might even feel you are not good enough for this job. At times you might experience stress because things don’t move at that speed which you wanted it to. But I think it’s alright. One thing that can hurt you is trying to make everything perfect. I think we should move ahead when things are good. You can always come back when you have extra time. All these tasks are new to me. And I know I have to spend sometime learning new things. If you knew everything beforehand, you could have saved your time, but there is no fun without learning/ doing anything new!!
Last week I did feel difficulty in getting some things done which I thought I could do very easily. This, I feel should be a common feeling among people who just began to code. There is every chance that our estimates go wrong, some tasks can take more time and some less than expected. The key is not to panic and have enough patience to solve the issues. Some times taking some time off the work and coming back with a relaxed head helps 🙂
Recently I came across a post related to importance of mentors. The Outeachy program is a blessing for those who struggle alone with code. I am blessed to have wonderful mentors, who inspite of their usual works take out time to meet every week, discuss issues, suggest solutions, read my code, suggest edits, provide papers and references to read and also tolerate my bad internet 😉 Getting mentors is a critical component of growth. When they give their precious time, I know I should put in every effort to value it.
It is just the beginning and there’s a lot to learn and unlearn. Perseverence is the key.
The woods are lovely dark and deep
but i have promises to keep
and miles to go before I sleep..
Meeting people has always been an exciting feeling.. This time it is twice as exciting. I got to meet the mentors who took out their time to review the code I had written and suggested edits. I am so much moved by their simplicity and care. Also I am sending mails and talking to people I have no idea who are. But I have the belief that because they are part of an open source community, they must be willing to help if they have time. The world seems more beautiful, connecting with more people. Getting selected is an amazing feeling, but what is more amazing is having some great people to work with..
Another thing I am doing is more research about the task at hand. My mentors have given some ideas and I think unlike other projects, my task requires coming up with effective ideas and reading about what has already been done. This period is so exciting as I am reading to actually know more and implement an effective system. Knowing more about what to do made me think about other possible ways to implement the tasks. I am confident that I will come up with some idea which will make it all work :).
The internship period will begin soon. I will be actually writing code which people can use. The journey has already begun.. Let it bear the best of all fruits 🙂
November 09th, 2017, 9:30 PM IST. Outreachy results are announced. And I am happy to be selected as an intern for Outreachy Dec 2107 to Mar 2018. More than the joy, my belief that hard work will payoff is strengthened. During the application period, there was nothing in my mind, but to give everything for the project I loved to do. It is a Mediawiki project for automatically detecting spambot registration using machine learning like invisible reCAPTCHA. I was always intrigued by the concept of captchas, but never took the time to know more about them. Everytime Google came with a new captcha I would wonder what was wrong with the old one. For the project proposal, I did an extensive research about various captchas. Learning more about captchas made me even more curious.
I have heard and read about people discussing about open source projects, but I never knew what to do or how to begin. Outreachy provides a good platform where you can place your first steps to enter this new world. The mentors and others in the project are patient enough and very supportive to clear the doubts you post in the forums. Earlier, I used to read about contributing to open source projects, but I never had the courage to really do anything. The tasks provided by mediawiki for the interested applicants were systematic and organized. Completing one task and moving to the next gave me immense joy. Instead of worrying about the whole project and my ability to work on it, focussing on one task at a time made things easier.
Now it is the community bonding period. I am very excited to meet the people behind these projects. I am a bit anxious too 🙂 . Again, my belief that taking small steps each day will make it all work in the end… Wishing myself all the best 😀
I am a research student at IIIT-Hyderabad, India. My research work includes post-processing of optical character recognition output in Indic scritps. I am interested in applying machine learning to areas such as Natural Langauge Processing (NLP), Computer Vision, etc. I am intrigued by the way human brain works and I am fascinated by the progress of machine learning towards achieving artificial intelligence systems. I am also interested in developing systems which people can make use of in their daily lives. Recently, I have started contributing to open source projects as I feel by doing this I can do my part to make the world a better place 🙂
Below are my publications so far: