Did you know that you can navigate the posts by swiping left and right?
It’s been more than two weeks since my last update blog on GSoC, and hence I’ve not been able to keep up with writing articles amidst college’s activities, academics and CCExtractor work itself. To be honest there hasn’t been much work on the coding front in the last two weeks; and I’ve got the reason why things work so slow in companies and corporates.
After the last GSoC article, I started to clear off all the bugs of the project and make it reliable and efficient to be kept running all the time; if you aren’t aware, Nephos is an automation client which is supposed to work twenty hours, each day of the year and every year till Redhen wants. This single requirements demands that it should be devoid of all errors and, even in cases of error, it should not completely go off but rather report to the admin of the same.
After days of monitoring the client and pushing numerous stability fixes, I started working on a major update: the processed files need to be uploaded to a FTP server as well, besides being uploaded to drive. This didn’t take much time and with the help of my partner on the project I was able to finish up with this very quickly.
With this, the work on the main project finished (I believed so at that moment) and then I automated the task of installing Nephos and running it. This isn’t tough but a bit tricky and time-consuming since my system and the server on which this is supposed to run are very different; I bought a server on Digital Ocean just for the purpose of testing and finalising the install script.
I wanted all code work to finish before I write tests and documentation since changes here have to be reflected there; but features were being increased. Since automation means no interaction directly with the system, I had to create the client such that it takes all the configuration remotely from a file and applies it without being shutdown. This isn’t a big task to complete but with automation every feature that gets added should not break any other feature and bring down the entire system.
My GSoC project is near to it’s end; the most crucial lesson I’ve learnt is that keeping each part of your code is very important. Breaking down of complex functions into combination of simple ones (mostly one task per function) is very beneficial and makes writing (and more importantly reading) the code hassle-free.
Since this is the first large project of my career, it goes without saying I’ll be up for actively maintaining it for the next couple of years and bringing new features to the table.