CS373 Spring 2021 Blog #9: Nathaniel Jackson

Nathan Jackson
3 min readMar 29, 2021

What did you do this past week?

This past week we made a great deal of progress with Phase 2 of our IDB project. I did a good amount of work in the frontend — fixing issues from our earlier phases in the Splash and About pages, as well as redesigning the Artist model and instance pages. I also helped out with scraping data for our database, the main issue there being that we could not fully guarantee that every instance would have links to instances of the other models, but with most of the ground work done doing initial scraping, making that change was surprisingly easy.

What’s in your way?

The last thing left for me is GUI testing with with Selenium. I have a good grasp on how to write the tests, but what is bothering me most is integrating Selenium tests with the CI/CD pipeline in GitLab. We are having issues where the browser that is supposed to ‘drive’ the GUI tests is not installing correctly, and I think I’ll have to try manually installing it into the directory and pointing to it there.

What will you do next week?

Tomorrow we will have to finish up testing and the miscellaneous requirements to get Phase 2 done. We are all done with development at this point, and seem so close yet so far from getting everything done.

If you read it, what did you think of the Segregation Principle?

I enjoyed the read. Basically, the Segregation Principle is the idea in Object Oriented Programming that interfaces should not have more than one responsibility, since if it has two distinct behaviors (suppose one object needs one things, but every other object doesn’t use it), then every object will have to implement the required functions, even if they don’t use them. Fat interfaces lead to bloated classes.

What was your experience of yield, closures, and decorators?

Yield is an interesting python feature but I am not sure how relevant it would be to typical Python development, outside of writing custom iterators. Closures could be very useful for eliminating code redundancy. I am still not sure what decorators do, and did not think the 10 minutes we spent on them were enough.

What made you happy this week?

I realized at some point this week I had exercised in the gym 13 out of the past 14 days. I had definitely lost a good amount of weight in the past two weeks, so it validated a lot of the effort I had put in.

What’s your pick-of-the-week or tip-of-the-week?

Definitely use react-bootstrap-table2! It seems crazy that the default react-bootstrap table component does not allow pagination out of the box, and react-bootstrap-table2 made pagination for our model pages with tables super easy to implement.

--

--