Posts

Submission done finally

 Damn it was an eventful 3-4 months, from crying to why the code is not working to enjoying the small success of getting the plots. I am grateful that I got the opportunity to be in GSOC and get to know the wonderful mentors Matteo and Gullo. Thank you for guiding me. Let's see what the final term evaluation beholds for me..Fingers crossed.  Also regardless of how the evaluation turns out to be, I am gonna continue contributing to the project as much as I can. 

Almost done

 Project is almost going to end currently, but there are so many plans for the future. I am gonna keep contributing in the future and make this a project a worthwhile tool for the astronomers to use. 

Float Panels working but there's a catch

 Finally everything is working on floating panels and the dashboard is so much customisable now! It's awesome. But as every good thing has a catch, all my HoloViews objects are synced now, I don't yet know what the issue is but I have to figure this out!

Changing the plotting methods

 So the recoding and redesign is done. But we were discussing about how we are plotting things in dashboard and wanted to have floatpanels for doing so.

Issue resolved

 The problem with classes was resolved by making factory functions to encase them in, and then they were not conflicting with each other. 

New issue propped up

 When changing the whole architecture, a new issue has propped. An initialised object of the class can not be initialised again. So I am not able to revert back the home UI back dynamically. 

Finally the issue resolves

 Damn, those 2 weeks were stressful, finally the issue is resolved. I am able to render HoloViews and thus Bokeh plots inside my program and in the process my codebase is much better than before. 

Refactoring the codebase

 I am refactoring the whole codebase to make it more maintainable and in that hoping to solve the issue with HoloViews. I am making the codebase fully pragmatic and declarative and using Parameterised classes. I hope so it resolves the issue with HoloViews. 

Watching the tutorials in depth

 I am facing a serious bug now, I can't render bokeh plots at all. HoloViews objects is not able to render anything out at all. I have to find the solution because our whole project depends on HoloViews objects and its capabilities. Otherwise we are just plotting simple matplotlib plots. So currently I am going through the tutorials and documentation of all HoloViz ecosystem, be it Panel, or HoloViews or hvplot in detail. I am hoping to find the solution, maybe raise the issue through github, as I have seen some similar issue with people in the github issues of Panel.

Memory issue resolved

So what was happening is that panel was not properly storing the EventList object stored in memory. I couldn't access it if I changed panes. Now I have made it global to be accessible throughout.  

First Plot from loaded data, hurrah!!

 Well all this pipeline development and UI dev was useful because finally I have my first plot....yooo

Midterm evaluation are coming near

 MidTerm evaluations are near the corner, I guess I am moving well with my project. I am hoping to do certain functionality before Monday and present that to my mentor. I still have one week more after that before the MidTerm evaluations. Let's see how it all goes!!

Final layout decided, and a demo

Image
 So, the final layout was decided and I discussed with my mentors about the same. They liked it and suggested some changes.  All these loading tabs should be made into one. And the structure should be more coherent. 

Making the sidebar intuitive

 So over the weeks of coding we transformed from building just a quicklook dashboard to an interactive analysis dashboard. Currently I was making the sidebar intuitive to do all the stuff that we are planning to do from it.

Finally ported from functional approach to class based approach

 I earlier had developed the basic structure of app in terms of functions in separate files and somehow had managed to serve the dashboard through only one panel serve ( panel serve app.py --autoreload). It was a clever use of view to turn on and off when use clicks the button and importing the UI from different functions(that is different .py files). But this was an unmaintainable and unscalable approach. So now I have shifted to a class based approach and have made important classes to do the stuff. 

Doing a summer analytics course to understand stuff better

 So I thought why not up-skill myself, and started doing a summer analytics and machine learning course by IIT Guwahati. It's going good, there's one hackathon going currently and its fun. 

Starting to now finalise the basic structure

 I was working all this time on demos for some functionality or other but I was not sure that's the final design of the dashboard that I want. But I am not kind convinced in how I want to design the structure of the dashboard. Lets see how it goes. Probably by next week I will make my first commit. 

Beeminder does things man

 So to keep on top of my things and not procrastinate them away, I use beeminder to do the stuff.  Think of beeminder as a tool to keep you on your toes. So we can have any tasks on beeminder and it has all kinds of automations to connect with. So it doesn't do anything if you are completing the work, but if you are not doing your work on your scheduled pace then it stings you. So they charge you money from your bank account if you are not doing the work. I almost failed today but was able to complete the stuff in time to not get money deduct from me. But god it works. It's a really good tool to just stop procrastination. Because it costs you money. 

Not having sleep since a few days

 I have not been sleeping well since a few day and have been working all night. I am trying to sleep early today. 

Correcting my schedule

 So I have been working late night nowadays and my schedule and sleep cycle is messed up because of that...today I will sleep at 10pm to correct that.

Have to serve multiple apps with panel

 So I am not able to find out why panel has to serve multiple apps.  Why can't I just serve single app and work from there and open any other python file from there. How would I get a app based architectures!  And I could make my files for particular functionalities.  Also how could I get stateless behaviour from panel is also a challenge. 

Panel is amazing

 So I have been experimenting with panel for a week and its amazing.

Running 3cm a day.

Programming a big project is like eating a 20 inch pizza by yourself. If you think you can have it all in one day, you are wrong. Even if you are eating just one grain of that pizza per day, it still counts. I am not saying that you should work less, I am saying one should aspire to work everyday no matter how less or more it is. Because some days you just, just can't do what you had planned to. In those days you can't just go on a disheartening streak and go on a bad spiral. You just gotta believe that in the long run you will get it done. It's very easy to say this, but man doing one thing everyday when you are not able to see much progress is hard. fucking hard.  Maybe I will reach the end, I am certainly hoping too and I want everyone else to be hopeful too.

First official day of GSOC

 So 27th May was the first official day of GSOC when coding begins. I know I could have done more preparation but I am not too sad with the results. I was able to show my mentors a basic beginning of the layout. I am using the holoviz ecosystem to make the dashboard. The base is panel itself.  I went through many of the tutorials and came to realise it is quite suitable to what we need from the dashboard.  Doing this project is not say for example an extremely challenging or difficult problem/job. It's mostly a problem of consistency working on smaller issues and try to get hold of the bigger picture and be consistent in doing your work. I am excited to strive for the best and fulfil not only my mentors expectations but my own expectations with myself.   

Finally the env issue is resolved

 It was a frustrating experience, don't know what is wrong with conda and pip, they are like the wife and mistress who can't live together. But after a lot of tinkering I was just able to balance the environment with the perfect blend of dependencies. I can freely test out holoviz now.

The problems in venv

 So earlier during pre-gsoc period I had setup my environment in base itself and then just a few weeks back I shifted to python venv as the Hendrics dependencies were clashing with Stingray's.  After setting up the venv specifically for stingray so that I can test it's functions and API, I went on to explore the different libraries to plot the data we are generating. Holoviz seemed a good option and installation was a breeze but these packages were specifically in conda. As a result I was not able to access the packages from the venv at all, as it had its own conda environment to run from. Now I thought why not make a docker and work in base from there.  But I came to the conclusion that it's an overkill solution and would be too much of a hassle. Later on,  I went on to make a fresh conda environment for stingray too and currently am in this process.

Things are moving good....

 So it's been a week of meeting and discovering the idea of the project. I have done some reading to know what science is going behind stingray. Now comes the part of implementation. How do you connect everything in a dashboard and make it fluid and interactive. Of course there are tool and libraries for this, but the main question is how do you make this sustainable? Holoviz is one of the options I am considering to go with!! Let's see how it goes.

Reallocation and the food from Zomato took a toll

 So I had recently shifted to Bangalore and this new pg and everything was quite new for me. I was eating from my PG mess and eating a lot from Zomato. I guess I ate something bad and had quite severe diarrhoea. I consulted a doctor online from practo and how lucky could I be to get a doctor who prescribed me so strong meds that they had side effects on me. Firstly I was dizzy throughout and quite tired. Then instead of loose stools, I stopped having stools altogether. It was a bruh! moment.  So I had to go to a hospital and get some blood tests done because I went to some online consultation. For anyone reading this. Don't use practo man.. Moving on my weekend was quite unproductive but I am much better today and will do my best to stay healthy from now on.

Well much better now...

 I am able to allocate more time and can do this..yoo

Trouble allocating enough time

 I am having trouble allocating enough time to GSOC. I guess I am too tired after coming back from RRI and then going back. Also little things take too much time and eat up the time allocated for GSOC. I planned today's day quite well and will stick to my timetable to see how it goes.

2 days since first meet

 So I have been travelling and finding a PG since a day. Was only able to give 2 hours to the project yesterday. Today I was much settled and was able to devote more time. I guess this is because Bangalore is a new city and it's taking time to get adjusted. But I have to manage time properly because for me it is the most precious thing. 

First GSOC meet

 Had my first meet with my GSOC mentors: matteobachetti and gullo. It was a cool introduction. They are astrophysicists themselves. How cool is that! I am super excited to learn and work with them.

Finally....can't believe it

 Damn, till yesterday I was contemplating that I won't be selected. But today at 11:30 pm when I got the mail that my proposal was selected, my happiness knew no bounds.  But the job has only started. There is so much to learn and do and what not. Letsssss goooooo!!! https://summerofcode.withgoogle.com/programs/2024/projects/rba4Di99

Submission done: Waiting for results

 phew...it was some effort to make the proposal. Glad I was able to complete in time. I also feel pretty proud of my proposal...haha..nevertheless I asked my mentor that I could still pitch in if I am not selected. Oh, also this is my proposal. I only applied to stingray.  https://sites.google.com/view/www-kartikmandar-com/gsoc-2024

10th Week: The deadline is around the corner.

 Damn, the last couple of days had been hectic. Many a sleepless nights later, I finally am able to make a draft of my proposal. Currently at my second draft. I have sent it to my mentor and other friends and people who have cleared GSOC once. Let's see how it goes. I am constantly reading and trying to make it better.  Taking all feedbacks constructively and changing the things what I rationally feel has the need to change.  I hope all this work over the last 2-3 months turns out to be for the better. I really want to work in this project and learn the intricacies of open source development and the cherry on top is being able to learn a practical skill for astronomy. Who knows after this I am much more interested in X ray astronomy? Who knows I may join Open Astronomy in future?? Okay okay, enough living the piped dreams, there's still more revisions and drafts to make!! I am looking forward to 2nd April, 11:30 P.M., the Dday lol...

7th, 8th, 9th Week

 Quite a roller coaster ride till now, I went to a trip then fell quite ill and went back to my old habits. Habits of just letting life happen to you and procrastinating on important things and when suddenly the thing is just round the corner, trying to escape from it.  But this time I said enough has been enough, I am tired waiting and procrastination, no matter what happens I have to keep on going, I can't be stuck on the past.  It's been 3 days I have been back on track and writing my proposal. I want to contribute to GSOC and I will. I am not sleeping today, will finish 40 percent of my proposal today itself.  There's so many more things in life coming my way, let's take the challenge one thing at a time. I have to just keep steady.

Start of 6th week: This is a fun one.

 Phew, my midsems just got over. It's been a rollercoaster ride to be honest. Can you believe it, I was studying till very late for my last midsem, thinking last midsem should go with a bang! Well to be fair it indeed did! I slept till 10:20 AM and reacher hall at :40.  My exam starts at 10AM. What more I have to say.. not regretting the past.. I moved on to working ahead on GSOC application thinking of ways I could optimize and what should I choose. Something else caught my attention.  Mastadon! It's an open source twitter like microblogging platform for the decentralised web. I immediately thought our college should have something like this! Then, I went on to tinker with it and deploy it on my rasberry pi and then used github developer pack's benefit to get a domain: iiserbconnect.tech and used 200 dollars free credits in Digital Ocean to quickly deploy a ubuntu machine and setup everything. After 3 days of constant battle, I was able to setup it working properly....

Fifth Week: Dilemma in what to do! Midsems going on

Image
 Haah...this is a tough and hectic week. My midsems are going on and they were fine enough. I could have performed better. I gave 2-3 hour daily to GSOC. Well didn't I say I really want to get into GSOC this time around.  Old 2014 Dell Inspiron So yeah, this week I was trying to run DAVE in my laptop. But as it's an old software, nodejs doesn't even exist for my arm machine. So I thought okay let's make a VM and work in that. So I spun up my debian VM that I had setup earlier from my ssd. It was a god's grace I had that ready to go. Otherwise few more days would have just gone in setting up a fresh VM and handling the dependencies.  But what happened? An arm machine would obviously have an arm virtual os vm's only. I was using a debian for arm. So yeah, it doesn't work in the VM too... Now I asked my mentor on what to do...he suggested to try on an old machine. I fortunately had an old 2014 Dell inspiron lying around. I was tinkering around with it earlier s...

Fourth Week: Finalising the one project I want to give my all in

 After tinkering primarily with stingray. I also dabbled my hands in sunpy and tardis but I felt that it was a bit out of my dev experience level. I was having trouble getting to know the issues.  But I was enjoying working in open-source. So I thought whatever happens I want to keep on working on these 3 repos no matter what. I will give whatever little spare time I have.  I primarily gave my focus to Stingray. One, it was a bit easy to understand, and two, the mentor was super helpful and active. I asked a lot of questions. I was getting the hang of what this project is about.  I had to make a simple GUI for some basic functionality for stingray. I had quite a bit of web experience so I thought why not.  Now, stingray already had one GUI made by a previous GSOC contributor called DAVE. It was pretty powerful but being JS based soon became too troublesome to maintain.  So there are two choices in front of me:  1) Resurrect DAVE 2) Make a new dashboard...

Third week: Setting up the dev environment

 So it's the time to start getting my hands dirty. I started setting up the dev environment for all the three projects.  First was stingray and I faced some issues. But my mentor at Slack luckily had the same laptop and he knew the quick fixes. Also kudos to stingray and specially @matteobachetti. He was really active in the channel and super helpful. I am always asking him dumb doubts and he always responds politely.  I was starting to get a hang of things in stingray. As recommended by the people at stingray and a general rule of thumb: It's a good idea to tackle the issues in documentation first and then move on to issues in the main software packages. This way it would not seem as hard as people think.  And most importantly ask questions from the mentor. It's super important. It's not expected for you to know everything.  In the third week I was finding issues in the Jupyter notebooks meant for tutorials and got to know how stingray creates those lightcurves...

Second week: Finalising the projects

 After much searching and tinkering I found out some projects that I really liked but was doable too. Two of the projects were in Open Astronomy:  1) A quicklook dashboard for stingray 2) Solar eclipse data analysis with Sunpy and the third was in Tardis,  3) Velocity Packet Tracker Visualization There were a few more, one of them that I liked was in CERN and CERN for me was such a prestigious chance to work in. That I wanted to work in CERN no matter what the project. But I soon realised that I should do what really fascinated me not what I found prestigious. So I stick with these three for now.

First week: Searching for the apt org

 Well hello there, in the first week I was just searching everywhere. Maybe there is some project that I will be able to understand and do. Maybe there is something where my chances of approval are high.  Oh, I didn't introduce myself! I am 3rd year Physics major from IISER Bhopal. My primary interest is Astronomy and its derivatives. It's been a childhood passion to do something in this field. So where I was, yeah, I was searching everywhere for the pserfect project. Something that was an amalgam of astronomy and programming that I was familiar with and was doable.  And I started looking projects in Open Astronomy, Tardis, CERN, etc. I contacted my professors if GSOC was a good idea to go for. They all agreed that a good programming experience never hurts.

Starting the GSOC journey

 Hi everyone, it's my very first blog and very first GSOC too. I heard about GSOC an year ago but didn't feel confident that I have the necessary skills to go for it so did not apply. The Imposter Syndrome never leaves us, does it? But this time around I am much more confident that I want to contribute to open source no matter what. I am writing this blog a little late so I will push the first few ones to catch up to what I have done in the one month I have started contributing to Open Source.