Today I did these things:
- I worked on homework for my part time grad school class(Computer Networks). It involved a graphs and I probably spent too much time on it because my understanding wasn’t super clear.
- I went to Chipotle.
- Slept a ton. Probably the most relaxing Sunday I had in weeks. It’s nice that my sleep problems have gone away. Didn’t planning on going to RC until I got this Computer Networks assignment off my back. By the time it was off my back it was too late. However, I found out about the 24 hour convenience store nearby though =D.
(1) For the grad school class, I struggled a hell of a lot on implementing the Bellman-Ford Algorithm in a distributed manner. What threw me off was that it was so different because the question asked you to take the algorithm, but implement only a subcomponent of it which applied to distributed systems. As in instead of calculating everything from scratch, the nodes passed a partially completed computation to you so you had to complete the algorithm from the partial result. Of course, there were a couple of details and edge cases that needed to be ironed out. I thought that was tough, mainly because I went down a rabbit hole of trying to implement the entire thing instead of using the partial computation. This video was super helpful: https://www.youtube.com/watch?v=dmS1t2twFrI
It was a baffling experience. The example they gave for the assignment didn’t match with my understanding of Bellman-Ford at all because it only focused on a specific subprocess.
When I approached this problem, I tried to read up on all the assignment material, to cover my bases. But some parts of it didn’t make sense, because I didn’t really attempt the problem. This leads me to wonder what the most effective way to tackle any kind of challenge. Is it to read up on the material before tackling the assignment? But if you do that too much, you lose touch with the assignment. On the other hand, you might be reading up irrelevant things without attempting the assignment. However, if you attempt the assignment without reading, how do you even know what you don’t know?!! After 10+ years of learning, I don’t know what the optimal strategy is… maybe it’s a mix of both?!
So this week, I want to dig deeper into graph algorithms and really understand how they work. I think I just had a shallow understanding which caused all this confuddling. I need to dig deeper into it - the math jazz, the whole 100 yards, and all. And try to solve as many graph problems as possible. Last week I was studying Dijkstra’s and for the longest time it didn’t click why we took the shortest path to the current vertex as the next node to be evaluated. Then it clicked: We’re effectively eliminating the shortest link at each iteration when we’re picking the smallest path. The best way to describe it is to evaluate all possibilities(expand), update the paths to that possibilities, and pick the smallest distance node so we can effectively rule that node out(shrink). I think there needs to be a blog post about this, but at one point, that procedure clicked.
(2) There was a Chipotle nearby. There’s so many Chipotles in New York city. I saw one on Google Maps, but I walked past it after taking a look at it with my phone - I subconsciously filtered it out. Anyhoo, I go, and get my usual order. The server gave me a TON of food because she was distracted by her colleagues. Besides that, I got to sit facing the window, and people watched as I ate. What was fascinating was that when I first walked in, the right side door was closed so people had to walk in using the left side door. When I first walked in, I tried opening the right door and realized that it didn’t work. So I came in through the left.
I was sitting next to the door facing the street, this kept happening:
- Person tried to open right door.
- Right door doesn’t work.
- Person tries left door.
- Comes in through left door.
It happened at least 30 times while I ate. It was **ing crazy. All that was needed was a sign saying that the left door was closed. But collectively everybody kept making the same mistakes.
It led to think: Christ, I wonder how much time we’ve wasted as a human collective over the ages making the same mistake over and over and over and over and over and over and over…
The only way we can warn people to NOT make the same mistakes is to tell them.
For major mistakes, people usually write about it. Through a book. But to be warned, you have to read the SIGN. Similarly, you have to READ the book. So now I’m sitting here wondering if there’s a better way to really drill it down to the future generation to not make the same mistakes that never worked…