‹ go back
I’m currently trying to plod my way through designing functions, so I thought I’d write about a new thought-chain1: branching. I’ve not read a lot of posts or threads regarding branching, but maybe I just can’t manage to find the right search terms yet.
I’d define branching as the feeling (though it’s more of a concept) that you get when you find a thread (perhaps on Twitter, perhaps elsewhere) that’s linking to tonnes of different places and new articles that you also find interesting. I’ve mostly seen branching in the form of Twitter threads or link-dense blog posts, but I’m sure there’s also forms of branching in scientific journal papers and many other facets of long-form (and shorter, I suppose) content. The idea is prevalent in this thread by Conor White-Sullivan, which I inadvertently stumbled upon from Geoffrey Litt’s Twitter memex. (Look, a branch within the concept of branching!) White-Sullivan’s thread is full of quotes and new links: a great example of branching in its natural habitat. I will exert a considerable amount of self control not to open it right now and go down an entire rabbit hole. Anyways.
Branching seems to be at least one of the reasons that Wikipedia rabbit holes are a thing. There’s just so much to explore, and especially if the subject of a thread is something you’re passionate about and interested in, it’s quite possible to accidentally go two or three ’levels’ deep. The clickchain is never ending, and it’s probably quite possible to end up in recursive loops of branching as well.
Branching is present not just in casual social media interactions, but is also a significant part of how popular notetaking and productivity apps function now. There’s the classic Roam or Obsidian graph, and the nearly infinitely nesting tasks lists that Todoist users seem to love. I find that, when exploring new fields and getting into new areas of study, there’s an inherent branching model present. Information links to information links to information, and so on. The intrinsic hyperlinking of the web makes branching even more obvious - it’s immediately clear what next steps to research are, after I’ve read a post. This leads to the chains of deep Wikipedia / information surfing that essentially form branching.
This post is intended as a collection of my current thoughts on branching, and the kind of infinite exploration canvas that it presents. There are some slightly unrelated examples of things that are relevant to branching here, but I may as well also categorize those thoughts for later. Perhaps this branching post will be the branching point for any readers to also metacognize about branching. Winter break just started, so what better time to spend ages writing an essay on branching and then going on tonnes of clickchains in the process?
A prominent example of how branching happens in my life is when I try to branch into (pun intended) and explore a new area of knowledge. No matter what the topic is, I tend to first find some piece of information, be extremely confused about all the terms in it, and then try to decipher things one definition at a time. In some ways, this reflects how we used to be taught in elementary school: be force-fed a central topic, with a handy box of definitions on the side. However, most blog posts, papers, or even Wikipedia definitions don’t explain each individual term in detail - they assume some knowledge of the topic, or else the page would be endless. (In order to define term A, it must explain in terms of B, which relies on C, and so on.) When I finally map out all the things I don’t know, I find that there’s a huge tree that’s out there to explore, and would you look at it: it’s all branched out into separate categories. Usually, there is some end to the information graph, but the tree gets several layers deep.
One example of this is when I recently read Gödel, Escher, Bach by Douglas Hofstadter2. It is admittedly extremely academic, and some of the concepts still go over my head. My opinions on the book are currently in their formation phase - that’s a topic for another blog post, not now. One of the things I will discuss is how the entire book is formed around, and basically encourages, branching. Perhaps it’s a bit of my fault that I started with the preface, which discusses concepts better explained in the body of the book, but immediately there were a bunch of terms and areas that were extremely confusing. These terms and concepts all linked to each other, but explained separate facets of the point. (This is the part where I tell you to probably go at least read a summary of the book or something. It’s an experience and a half.)
Reading GEB is when I started really thinking about branching. Hofstadter approaches topics from many different lenses: music (you can spend hours in the YouTube recommendations after watching a couple of the related pieces), art (Escher is extremely talented), computer science (my passion, and cause of the longest clickchains), and life sciences (many flashbacks to organic chemistry and biology were had). Yet they all converge at the central point of the novel - which you should go find out about by reading said novel. With this diverse array of topics, however, I spent ages going off on side tangents reading about what a recursive transition network was, or how Gödel numbering worked. I’m still working on mapping out a way to start looking into each of the topics more, because they’re definitely things I’d like to look into for the future.
Speaking of thinking about the meta-possibilities of branching, I’d also like to track my thoughts about how I can use branching to study a topic, or reflect on the overall experience of each clickchain. With GEB, for example, I’ve been trying to map out a guide of all the areas, linking them all together. In this linking process, I see the appeal of a more connected notetaking technique, but I think just being mindful about how concepts link together provides a lot of insight into how information flows.
Sometimes, branching can feel a bit overwhelming. Having an essentially infinite number of links to follow next makes keeping track of time and the actual convergence point behind all of the branches difficult, but also crucial. There’s no point in reading about a random topic if you’re not going to connect it to something else to use, unless it’s unrelated trivia or a new branching origin point. With most topics, I feel that I need a way to keep track of these branches, and look into how to manipulate context to remember or draw out additional branches for further exploration.
Among all the content and information that flows in, there will inevitably be some threads that have provided key branching value. Perhaps a Twitter thread that’s been extra insightful about something, or a blog post that has linked to several more that you greatly enjoy. I obviously want to keep things like this somewhere for future reference, but I’m not entirely sure how to reflect this in my overall notetaking / knowledge base system. I link content where relevant, but there’s points and levels within the branching that I’d really like to extract. I think that this keeping track of ‘good’ branches is a topic that I want to think about more, and perhaps make a personal tool for. Others have made similar things regarding branching: the paned and tree-style browser history, and the memexing threads I discussed above are both great examples that served as branching origins for my own thoughts about branching.
When I think about one of these HCI topics, I tend to also envision some personal solution to the problem. For the branching problem, I had the idea of a CLI to add and remove branches, and have an overview. I’ve since realized that because it’s so disconnected from the rest of my systems, I’m probably going to update it infrequently, and it’s going to end up just as another archived GitHub repo. For now, I’m just using a text file with interesting branch origins, and keeping folders of notes as I go. This approach has worked pretty well so far. I’ve realized that while some of the branch origins are truly notable, others are just interesting content that don’t really fit in anywhere.
These HCI posts are actually a lot of fun to write, and I think I’ve found a nice area to explore in the future. I have lots of topics on the mind at the moment, and I’ll have many more thought-chains over the holidays, I’m sure. Speaking of the holidays, there are only two weeks left in 2020, and one blog post after this one. I’ve kept a weekly posting schedule for a good half of this past year, but I think I might switch my writing schedule a bit with the new year. I’m not sure yet about that - we’ll find out when we get there.
I hope that I’ll be able to finish another section of CPSC 110 by next week, though it is the holidays now. It might be a tad premature, but happy holidays, and good luck on the remaining five days of Advent of Code if you’re doing it. In the beginning, it was pretty fun, but now it’s getting a bit tedious and difficult. It takes a lot more time than I have, but I only have a couple days left. Hopefully after that’s all done and finished I’ll devote more time to CPSC 110, but for now, I’ll return to puzzling my way through the Jurassic (day 20)3.
I don’t have anything else to call them - I see them kind of like Twitter threads, but with less of the quote retweets and tendency to inspire long chains of clicking through old threads. ↩︎
I did manage to finish the book, and have copious notes for it. I am still a bit confused on some areas, and I think I’d like to explore RTNs and some of the other automata and formal grammar ideas in it. Coincidentally, I stumbled upon another branch while trying to research RTNs - first finding about the context free grammar relation, then finding out about the Chomsky hierarchy, then about regex and how those connect to automata, and then finally down a bunch of rabbit holes involving this cute automata bot. Go check that out - it’s extremely nerdy but it’s also extremely amusing and fun. ↩︎
I will admit, I did reference another person’s code for this. It was a difficult day. ↩︎
‹ go back