1. What did you do this past week?
Since I had already finished the first project (Collatz), I really didn’t do anything much this past week besides attend the regularly scheduled lectures. However, after learning about the possibility of other solutions to the problem such as employing an eager or a meta cache, I might experiment with those over the weekend.
2. What’s in your way?
So far I am smooth sailing in juggling classwork and research. Most of the classes I am taking I already have a degree of experience in (including Dr. Downing’s class), so during the beginning of the semester now I am mostly reviewing contents. However, the first wave of midterms is approaching fast, so I will probably start to feel the pressure around next week.
3. What will you do next week?
Hopefully next week project two will be introduced so that I can get a head-start on it. If not, I am planning to apply some of the tools learned in Dr. Downing’s class towards other projects I am working on, specifically continuous integration and unit testing. However, I cannot use the existing set up as it is since the other projects I am working on requires data science packages such as Pandas
, NumPy
, Matplotlib
, and scikit-learn
that are not installed in Dr. Downing’s docker image. Hence, next week I would likely spent time on writing and building my own docker hub image containing all these auxiliary libraries in addition to the tool chains we are learning right now (ie. unittest
, coverage
, pylint
, etc).
4. If you read it, what did you think of the Continuous Integration?
The Continuous Integration article by Martin Fowler was lengthy yet well embellished, providing an excellent in-depth analysis at the benefits and struggles with Continuous Integration. I completely agree that the integration phase of any software development is likely the most indeterminate in terms of duration and process. Therefore, the ability to quickly identify build problems and ensure cohesion, as provided by applying daily, Continuous Integration, is essential to success. Not only so, but all of these benefits are easily streamlined and distributed, which establishes another significant advantage: easy of usage. In conclusion, when applied in conjecture with a good unit testing suite, Continuous Integration leads to a conspicuous reduction in bugs and serves as an invaluable tool for any serious software development.
5. What was your experience of Collatz?
Since I had previously taken Dr. Downing’s class in Object Oriented Programming, I am very familiar with the Collatz Conjecture and have previously coded the solution to the first project in C++.
6. What was your experience of exceptions?
I have learned many times about exceptions in various languages, specifically Java, C++, and now Python. However, in practice I have never really written code containing exceptions, as most of academia code is not meant for public deployment and with professor guarding against possible exceptions that could throw off autograding scripts. Hence, my knowledge of exceptions are mainly theoretical and less practical.
7. What made you happy this week?
I thought I had missed an assignment to turn in, but it turns out that I heard finish the assignment way ahead of schedule and just forgot about it, so that made me happy that I am really staying on top of my work.
8. What’s your pick-of-the-week or tip-of-the-week
If you find yourself frequently working on some remote server (perhaps one of the public UTCS machines), then you might use Visual Studio Code’s built-in ssh (easiest using a public key) configuration that allows direct edits from your own machine to reflect in the remote server.