CS371p Spring 2022: Jonathan Randall

What did you do this past week?

In my Data Mining course, I took an exam. I found it to be fair and the time limit to be reasonable. It’s always a relief when the exam is slightly easier than the hardest homework, which I think is a good guideline for designing courses.

In my Big Data course, we completed an assignment using Spark’s Structured Streaming library. With Structured Streaming, the user operates on Dataframe objects (much like Spark SQL, with different read and write operations). I found the assignment somewhat trivial; however, the wackiest choice we made was running bash commands from Python using the subprocess module. We created a thread to simulate streaming data (by moving files into a monitoring directory, one at a time). I probably would have just wrote a bash script and running it before our PySpark Dataframes operations if I did the project again.

What’s in your way?

I suppose the Allocator project. It’s Spring Break, so I will try not to touch it, even though I’m eager to jump right in! It’s important to take a break from working every once in a while for your mental wellbeing. I’m planning on going hiking to really go off-grid for a couple days!

What will you do next week?

Spring Break! I will go to a few SXSW-related (but free) concerts, and my family is visiting. Something else: I am touring the Governor’s Mansion next Thursday. I think that will be funny as I have no idea what to expect, and it’s kind of a rare tourist activity since you have to pass a background check!

What did you think of Paper #8: Interface Segregation Principle?

The “multiple interface inheritance” solution to separating interfaces seems logical, perhaps due to the fact that it is the design pattern used in many familiar data structures in Java, like ArrayList. ArrayList, for example, implements the following interfaces: ` Serializable, Cloneable, Iterable, Collection, List, RandomAccess`.

What was your experience of std::array, iterators, and equal? (this question will vary, week to week)

I now understand the rationale for std::array as opposed to built-in C arrays.

  • std::array<> DOES know its size
  • std::array<> IS comparable
  • std::array<> IS copyable
  • std::array<> IS assignable
  • std::array<> is to a built-in array as std::string is to a built-in char array

We covered a variety of “flavors” of iterator, and the operations supported.

  • Input iterator
    • e.g. istream_iterator
  • Output iterator
    • e.g. ostream_iterator
  • Forward iterator
    • e.g. forward_list, singly_linked list
  • Bidirectional iterator
    • e.g. list, doubly_linked list, like LinkedList in Java
  • random-access iterator
    • e.g. vector, front-loaded array, like ArrayList

What made you happy this week?

I went to a few fun concerts!

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

My tip-of-the-week is for creative types who want to use low-code tools to create art! My brother introduced me to The Hitchiker’s Guide to the Latent Space, a document of various fun resources related to computer-generated and AI-generated art.

Headshot