This week’s talk was interesting for me as I am more keen on things related to Linux, server administration, deployment etc. This aspect of app development/production tends to be neglected by most app developers. Another neglected aspect, which I myself also commit, is not paying attention to security as I do not know what is the minimum must-have security features. Also, I feel that setting up even HTTPS is kind of a tedious process.
This week has been hectic, with many UI and decision changes being made. The worst was when we finally had to migrate our deployment from my AWS server(I dreaded the day when AWS begins charging me $$ when the 750 free hours depletes). The process of setting up SSH access keys already took away a few hours, only to realise that there were probably some invalid unprintable characters in the authorized keys file causing public key denied. Through these experiences, I learnt more about administering deployment of web application(at least the front end as I did not deploy the database). Well, at least the thing I enjoy more from all these is being the sysadmin of the team, tinkering with server configurations, automating deployment when Git server receives pushes etc.
On the topic of optimizing for performance, I faced the problem where concatenating minified versions of the many Bower components into a single file leads to a !MB big file. While it drastically decreases the number of HTTP requests, on a slow network, this JS file may fail to be received and will cause the whole app to malfunction. This seems to become an optimization problem involving tradeoff between download speed(due to smaller files) and latency due to number of HTTP requests sent and being waited on. Hopefully I can come up with a solution closer to STePS and production launch.
UI-wise, it was annoying to have to constantly change/improve the workflow of the same feature several times that there were not many new features added. On the other hand, I realised how convenient front end development became when there is a set of well-established CSS classes, each adding distinct CSS features to the UI component. Defining colors as variables in LESS saves so much pain of having to memorise those color codes, and also helps keep a consistent color scheme. With the aim of unified UI design, styling UI components can be as easy as looking up CSS files and choosing the right class to throw at the HTML element.