The week started off with me doing the same thing I did last week, which was porting code from Java to Groovy, and running the daily data build. After becoming familiar with the build, Chip revealed to me (and the rest of the data team) why he had me join the team – while the other team members all worked on keeping the build stable and making incremental improvements, he wanted me to implement a more centralized and accessible logging system for the entire build, so that in the future, keeping tabs on the build and knowing the necessary time and order for the execution would be a lot easier to manage.
This was exciting – a chance to put something into the build that would last multiple years, and actually be useful and increase the productivity of those who interacted with the build – I was thrilled to work on this. Chip had already written a program that helped append the log messages to the messaging app that StockCharts uses, HipChat. Since the HipChat appender was already created, all I had to do initially was connect the current java part of the build to the program. This turned out to be a lot simpler than expected, and I soon finished, pushing my code to production. (By the way, pushing code that you know is going to be in production for the fist time is an intense feeling, much akin to the feeling you get when you’re expecting a reply from someone and are just about to open their message.)
I didn’t break the build! Next, it was time to move on to groovy, which should pose more challenges. However, just as I was about to start, I was warned by some other members of the team not to make any changes to the groovy build temporarily – they were working on a certain feature, and they didn’t want any version control nightmares, or any broken code. So, as I sat around, I decided to try and automate the daily build. I was having to run the daily build everyday while finishing my coding assignments as well, and it was a tedious task. I reckoned that with a little touch of crontab and the right commands pushed through, the daily build wouldn’t need people to run it ( except the parts that needed to be reviewed, of course). I sat down and researched cron jobs, and learned a lot about cron and the unix shell in the process – the amount we can do with our computers is amazing!
That’s pretty much all for this week though. Will I finally start writing some groovy logging? Will I be able to automate the build in the manner I want to? Find out in the next episode of Rajesh’s Summer Adventure!