CS373 Summer 2018: Travis Llado, Week 06


It's been a busy week. We didn't underestimate the difficulty of converting our website from static to dynamic, it was about what we expected, but that was a lot of work. Most of the tools were very straightforward. Overall we have a fairly good product.


What did I do this week?

Lots of work on our v2 website. That took about 40-45 hours on my part. The lectures weren't very demanding on their own.

What is in my way?

Nothing much, still a lack of understanding of exactly how React works. I might go back and work through some tutorials on my own and get a better understanding of how to combine modules, build more complex pages. We do need to redesign our testing implementation. Some of our tests are not fully automated and are not run from CI.

What will I do next week?

Project Phase 3. I don't even know what that is yet. I should go read the assignment.

What was my experience for Project Phase 2?

I worked on front-end. One of my teammates built the framework for our React website and I populated most of it.
I rewrote the About page from scratch since nothing we created last time was reusable in React. That took a full day on its own because React is so darn "smart". It optimizes everything behind the scenes, in ways that you can't control, and that means chopping up your functions and running everything in parallel instead of sequentially. That even means breaking up a fetch().then().then() command and running the then()s in parallel, before the data they depend on has been prepared. I finally got our Gitlab stats working by making all steps of the data sorting process explicitly sequentially dependent, as in all steps are explicitly nested and cannot be executed out of order, no matter how badly React wants to. This makes the data sorting process much less efficient than it could be, but it was the only way to ensure React wouldn't optimize us straight to failure.
The rest of the website creation process was fairly smooth. Time consuming, but smooth. We didn't encounter many unexpected obstacles. We do have a problem with javascript testing. We found that Mocha is unable to use the "import" command when it is installed in the same environment as Babel. We had both installed on our website. Personally I don't even know what Babel is, but we have it and couldn't remove it at such a late stage. So we ended up creating a very ugly testing program where all of our js code is manually copied into the Mocha test file and executed there, instead of being imported. Yes, I am aware that there are about 15 things wrong with this, but it's the only way we could get it working without redesigning our entire development environment. Which we will now have to go back and do.
Those were the two big obstacles, one passed and one that will be passed in the next few days, after taking a break. Overall the project went well. Everything is working as desired. We don't have as many features or optimizations as we would like, but the essential functionality is present and operating correctly.

What is recommendation of the week?

I recommend checking out this not entirely serious comparison of the advantages of Scala vs node.js.