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.