Posts

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