In this week blog, I will talk about all the major problems I had encountered and also the new things that I have learnt through solving those problems. Dr Shawn was not around for the past week and he assigned me a task which was to make sure the Competition Marks System works properly as the competition is starting soon. I am not the one handling the competition during the event day, my colleague Nadia will be there instead. However, she was not around the past week as she went back to hometown for Hari Raya celebration. Therefore, I had helped to set up the server and also run a few test runs.
It was not a smooth journey for me, as I had faced a few problems during the set up and also the test runs. In my last week’s blog, I mentioned about the task that I had to make sure the system works even without the internet connection. To make this happens, I checked the source code and downloaded every files that were previously pulling from the internet. I saved all the files into a directory and modified the code to use all those files from the local machine instead of from the internet. This was done properly with git and I proceeded with testing the system without internet connection. To make sure everything is on the same network, I have used Home Plug WiFi Extender to provide the WiFi access to all the tablets (clients) for the judges, emcee and attendance taker. The Ethernet port of the WiFi extender is connected to the laptop (server) and the other Home Plug mini is connected to a portable router through Ethernet cable. The function of the portable router is to assign IP addresses to the tablets. What is so special about the Home Plug is that, there are able to communicate with each other through the power line, therefore with set up I had mentioned above, everything is on the same network now. However, I was not able to pull information from the server that I had started even when they were on the same network. I was stuck for a while and asked for help from Dr Shawn. Dr Shawn told me that, even though they are on the same network, I still have to configure the proxy server of those tablets so that they match the proxy server i started in the server. To solve this issue, I had downloaded Tinyproxy which is a light-weight HTTP/HTTPS proxy daemon for POSIX operating systems in the laptop. Then, I open configuration file and fixed the proxy port number and also the IP addresses which are allowed to access Tinyproxy. After that, I had configured the network of all the tablets to match my proxy setting. That’s it, everything is working as I want now!
After I had successfully set up the server, I did a few test runs with different conditions simulating the real event to make sure that everything work well. Dr Shawn always told me that, as an Engineer we must have deep understanding of our project and always have a plan B so that if things go south, we still have a backup plan. During the test run, another issue appeared which was that I was not able to pull information from the server with iOS devices. Everything worked fine with Android’s devices and I was very sure that the network setting of the iOS devices are exactly the same with Android’s. To solve this problem, I started searching for solution on the internet. However, since I had no clue on the actual issue that caused the problem, it was like searching for a pin in the ocean. Thanks to Gabriel, my another colleague, he gave me suggestion that I could look into the log file of the Tinyproxy to check whether there was any issues reported. Bingo, in the log file the issue was that no information was retrieved from www.localhost.com. So, the main issue was that in iOS’s web browser which is the Safari, they had automatically added in “www.” and “.com” to my localhost. To solve this issue, I had added another host name which was cms.aeste pointing to 127.0.0.1. At that point, I was really happy that the system was finally working real fine!
At the end of the week, after Nadia had came back to work, I briefed her what I have done and taught her to set up everything from scratch. After that, I ran a few test runs with her again, and yeah, we found bugs again. However, those bugs are solvable by changing a few lines of code that she had written. So yeah, we are ready to rock and roll! However, I will not be there during the event, so I want to wish Nadia and Dr Shawn all the best with the event and we will wait for the good news! That’s all for this week 🙂