Friday, December 6, 2019

The Learning Curve

Internal

     Man Programming is not an easy thing. Here I thought I have learned the basics to start creating bigger projects now but nope. Programmers need to keep learning and improving. So for an internal project, I was originally going to work on Update the `.travis.yml` to use Docker's Redis image for all OS platforms - issue #267 but that didn't go well.

    Don't get me wrong if this was possible I would have loved to implement this but the compatibility was just not there!!!! Mac did not support Docker CLI, which is the command-line interface for docker. Docker does have a GUI, graphic user interface, docker but not CLI. To capture the image of Redis from docker in Travis, you would need to go through the CLI in our config files. GUI is not useful because not everyone wants to set up the Docker GUI on their macs and even if they are willing to set it up, the installation process and setting it up for Redis is not the best for our users and is very time-consuming. Plus even if we do install it and set it, we will still need to let all the students know of changing the Travis config file with the new docker part for Redis. With the docker CLI, we wouldn't need to do anything because then we can code all these steps in from the start and make it more efficient and easier to use the planet.

     So those were the problems with mac, it destroyed my will to continue to implement this further because I am a mac owner like many of you but the show must go on. So after a day, I continued research on the windows system and see if we could do dockers Redis image in Travis for devices running windows operating system. At first, when I saw it was possible I was happy because then it's worth implementing for two operating systems, Windows and Linux, in Travis and not just the one, Linux only. After digging a bit more I found out that it is possible but not the way we needed it to run. So for Windows OS, there are docker CLI but they are of older versions and they don't support the newer versions of Redis functionality very well and the docker CLI doesn't support Travis AMD64. But we can get around Travis with running a Linux VM which is running the docker, Tavis and Redis. I came to find this out from a fellow classmate because that's how he had his laptop set up for the telescope project.

     After running into all these problems I didn't think it would be worth it to update the Travis to use docker Redis image. So we closed this issue. After I found a small error nothing big but it was causing an error and run time, issue #419. This issue is about a method that was changed into a function in text-parser.js but the call was not updated in spam-checker.js. Before the fix, the spam-checker.js was called the text-parser run method but after the fix, it's calling the text-parser function. The details are in the pull request which was merged quickly at pull request #425.

     That's my experience with Travis again in release 4. Gotta love Travis and all the other config files and services and operating systems, right? I had fun learning new things and but didn't like hitting the walls at all.

External

   
     For the external, I added some styling, mainly dark more with darkmore.js to the RecogitoJS project, issue #21. Which is an experiment to extract the annotation functionality of Recogito to an independent, client-only JavaScript library. With RecogitoJS, the goal is to bring Recogito-like annotation to any website and enable everyone to build customized annotation applications more easily. So for this, I used a darkmode.js library. It's super easy to implement and customize but the main reason I suggested this is because I loved the half moon half sun label they have as default to toggle the dark mode on and off, pull request #25. I think once we get the planet up and want to add a dark mode, I would suggest darkmode.js library because it takes care of everything for us.