Week Ten: Semaphore Down

Grant He
CS373 Fall 2020: Grant He
4 min readNov 1, 2020

… and I’m back! First post in five weeks. So what did I miss?

Just kidding. I’ve got to get this blog post done as early as possible because of other things I have to do before this day’s over. However, before we go any further, I ought to mention that election day is November 3. That’s this Tuesday. If you are eligible to vote and haven’t done so yet, I would recommend going out and making your voice heard through the ballot box!

What did you do this past week?

There was a lot of discussion among my team members with how the frontend codebase from Phase II was structured, and we determined that we wanted to spend the necessary effort to get the code refactored and move overly specific parts into generalized components. I created a game plan for the frontend to tackle the tight Phase III deadline, i.e. refactoring by Wednesday; searching, sorting, and filtering by Sunday; tests done by Tuesday; and miscellaneous items by the deadline. In regards to Software Engineering work this week, I’ve made sure that my group was on the right track and on pace for the deadline.

What’s in your way?

As always, the answer for this one is time, or absence of it, to complete everything that I must do. I have an assignment for neural networks (implementing an object detector) due tonight at midnight, but I’m planning on using my slip days for this one. Also, I have to watch the online lectures for neural networks (sequence modeling) for the quiz tomorrow morning. I’ve got a lab for virtualization (handling host-level IPC hypercalls) due God knows when. Have a few interviews in the upcoming week too. Oh yeah, my course registration is coming up as well — I’m going to figure out what courses to enroll in as soon as possible. Bruh. Let’s try knocking two of these out today. It’s do or die time, folks.

What will you do next week?

Didn’t I just answer this? Yes or yes?

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

I’ve read all of the Robert C. Martin papers about object oriented design that have been assigned so far. I think that they delineate principles that are very fundamental to anyone who wishes to be familiar to OOP. But as someone who’s worked with object oriented design relatively frequently from my class projects and prior internships, a lot of the ideas I’ve been reading from Martin, as important as they are, mostly serve to reiterate concepts that have become intuitive to me. His paper on the Interface Segregation Principle, i.e. “the dependency of one class to another one should depend on the smallest possible interface,” falls under the same umbrella. New name, same old idea. We want to avoid unnecessary re-compilation.

What was your experience of instance methods, class methods, static methods, regular expressions, and relational algebra?

My experience with these different method types have been from my work with OOP. The difference between static methods and instance methods are clear cut: static methods can be called without creating an object of a class while instance methods requires the creation of an object of a class. The differences between static methods and class methods are a lot more subtle. A class method, by taking in cls as the first parameter, can access or modify class state while a static method can’t access or modify it. Class methods are generally used to create factory methods, which return class object (similar to a constructor) for different use cases. Static methods are generally used to create utility functions.

I’ve utilized regular expressions before, to remove whitespace efficiently, but this was the first time that I dove into the actual syntax and deconstructed its meaning. Interesting stuff.

Relational algebra is something I’ve been acquainted with in the past. I’m pretty good at algebra, so what’s the worst that can happen when the algebra’s about relational tables? Heh.

What made you happy this week?

I listened to folk musician Adrianne Lenker’s beautiful album songs, where Lenker bares her pain with complete abandon. Her lyrics and voice are soothing and cathartic. The third track Anything is quite possibly my favorite song of the year. There’s a lot of highlights here, but the lines “mango in your mouth, juice dripping” and “I don’t wanna be the owner of your fantasy” are genius. I want to cry now.

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

Tired of wasting your precious CI/CD quota? Done with triggering a CI pipeline after every minor commit on GitLab? My group was too, and I found two workable solutions:

  • add [skip ci] or [ci skip] to your commit message
  • push with -o ci.skip

Nota Bene: I don’t recommend skipping the CI build for any commits that actually affect the build pipeline, no matter how small the change is. More information can be found here: https://reflectoring.io/skip-ci-build/.

My face when I see all the work I have to do.

And that’s all I have to say for now. See you all next week. Excelsior!

--

--

Grant He
CS373 Fall 2020: Grant He
0 Followers

An introverted outdoorsman, conscientious trivia nerd, and staunch proponent of the Oxford comma. Also studying Computer Science at UT Austin. 🤘