This commit is contained in:
Barrett Ruth 2025-10-08 19:04:25 -04:00
parent 846bce9480
commit 60aea94006
32 changed files with 328 additions and 278 deletions

View file

@ -0,0 +1,16 @@
---
title: "suck less or suck more"
date: "30/05/2025"
---
I love [suckless software](https://suckless.org/) and the suckless philosophy. I've been using [dwm](https://dwm.suckless.org/), [st](https://st.suckless.org/), [dmenu](https://dwm.suckless.org/), and [slock](https://tools.suckless.org/slock/) for years. You can see my code [here](https://git.barrettruth.com).
Simplicity is always better and I love being able to understand why things are happening. It's fun, it's quirky, it's cool.
Except when it doesn't work.
After years of use, I've found that suckless software is not built to be compatible with other less-sucking software. It is not compatible with running 40 ROS nodes at a time, nor 3 Chrome instances with a plethora of tabs and jobs open. I've had my st terminal go blank and my dwm crash on me consistently.
Maybe this is the point. But I can't avoid [foxglove](https://wiki.ros.org/FoxgloveStudio), I can't avoid bloat to work for school and research-related projects. Most importantly, after spending half of my day patching st and having it crash on me, I don't feel like fixing it any longer. **Sadly, suck-ful software is here to stay and I don't have time to fight it right now.**
I've switched to [spectrwm](https://github.com/conformal/spectrwm) (essentially [this](https://github.com/conformal/spectrwm)) and [ghostty](https://ghostty.org/).

View file

@ -0,0 +1,22 @@
---
title: "the problem with cs curricula"
date: "16/05/2025"
useKatex: true
---
Edsger Wybe Dijkstra's ["On the cruelty of really teaching computing science"](https://www.cs.utexas.edu/~EWD/transcriptions/EWD10xx/EWD1036.html) perfectly sums up my gripes with how Computer Science is taught at a university level (at my school, at least).
Succinctly put, my time learning computer science at my unnamed college exemplified nearly everything he (and I) believe a CS curriculum should _not do_:
- Ignore the existential questions about computer programs (what are they? why do they exist? can they want? what should they be used for?)
- Ignore the notion of program behavior, i.e. provability (this is set aside as an advanced core class, counterintuitively reserved for a third or fourth year).
- Excessively simplify and frame new technologies with analogy, effectively instilling maladaptive thinking patterns that fail to extend to more novel problems
- Give up on doing the inverse of the above because it is too hard for young students.
Walking out of my third year, I left with the sad realization that I got by the majority of my classes by only understanding things as they pertained to assignments and exams. **And by "got by", I mean straight A's**.
I always knew something was wrong with how my school taught computer science (despite it being the biggest major as of 2025). As of late, though, I realized the gargantuan amount of damage it caused to my reasoning abilities. Damage that I have to reverse by, essentially, doing everything all over again.
My [competitive programming journey](https://barrettruth.com/posts/algorithms/competitive-programming-log.html) epitomizes this point: to this day I struggle with reasoning, argumentation, and understanding program behavior. I know how a segment tree works but can't formalize the constraints of a problem. I can do dynamic programming on trees but I can barely manipulate and work with primitive mathematical concepts such as the $gcd$ function. I cannot think of a more useless skillset.
Nearly all of this is my fault. However, _it should not be possible for this to happen in a computer science curriculum_. In other words, Djikstra is right.