Smol PR victory
I submitted a PR for wander, which got merged! I came across a similar bug recently, so the fix in terms of code was simple.
Understanding the codebase was the tougher part, which the project's maintainer (and fellow Recurser) very kindly walked me through in a chat.
Blog post struggles
I thought publishing these weeknotes would make writing other posts easier. I was wrong.
I don't feel like pushing through it either, I've sort of lost interest. Maybe having the code in a repo + a README is sufficient? Let's see.
CTF adventures
A group of Recursers decided to participate in Google CTF over the weekend! I hadn't played a CTF in a while, so my skills were rusty (they were basic to begin with). And Google CTF in particular is tough, where even the "easy" challenges are not that easy.
I fell into a rabbit hole with one of the challenges, and that path wasn't helpful in solving it AT ALL :/
Regardless, the rabbit hole was really interesting. I started looking into terminal escape sequences, a combination of characters that allow for functionality in the terminal - printing text in different colors being an example.
I was particularly interested in terminal injection - using certain sequences in a way that lets me execute shell commands. Turns out that wasn't possible (the code was escaping the escape sequences), but I left with a better understanding of how it works.
Here are some links I found helpful:
- State of the Terminal
- XTerm Control Sequences
- Weaponizing Plaintext ANSI Escape Sequences as a Forensic Nightmare
- Houdini of the Terminal
Reflections
Did I work in a more structured way than usual? Not really, but I had one big win: I didn't fall down the "maintaining my website" rabbit hole! I decided on this earlier in the week, and I'm happy I'm stuck to it.
I've also realized that there are times I'm learning things that don't feel useful in the moment, but help me in another situation.
For example, the bug fix for wander was something I came across in one of my personal projects. I dropped that project mid-way, so it wasn't particularly useful there. However, having worked on that code helped me figure out the exact fix in this case, which was cool.