Ron0Studios's blog

By Ron0Studios, history, 3 years ago, In English

Hello everyone!


Alright, so I've been using obsidian to document my competitive programming journey for around 2 months and wanted to share the insights and techniques that I have acquired from some trial and error. To summarize, I believe that using obsidian can be very useful for long term memory of difficult questions or algorithmic techniques. Another disclaimer I would like to point out is that (as you may be able to tell :D) I am not a very experienced competitive programmer, and the idea of algorithms and data-structures is very new to me, so for many this may seem quite naive, but perhaps I can speak for a few newer programmers on this site! :)

What is Obsidian?


Well, Obsidian is a note taking software available on all platforms, recently on android as well! It allows for the effective zettelkasten note taking method, alongside a very modular note-taking workflow, vim support and thousands of plugins to choose from. A highlight of Obsidian for many is probably it's graph view, which helps organize your notes, and find links between your different notes (which we will discuss on in depth later).

The image above is an extreme case of graph usage with Obsidian, and more like an eye-candy visualization of what you could do with a large amount of notes. In typical day to day usage, Obsidian graphs are much more useful in the local view, or when changing the force parameters, which we will also discuss later.

Setting up


In terms of setting up the Obsidian vault, the only plugins I would recommend is the Admonition plugin and perhaps Juggl, if you want to dive head-first into graph customization. If you like vim, then you will be glad to hear that Obsidian has its own built in vim extension! If you go to the community plugins section, you can also find a .vimrc customization plugin which can be very useful.

A typical folder structure that I like to go (as of now) with is just a folder for any new algorithms/data-structures I learn, basically any competitive programming technique I stumble across, and another folder for some past problems I found difficult or interesting, especially those that used an algorithm I haven't used before or have recently learnt.

 Here's an image of what the file structure could look like. Ignore the "Excalidraw" folder,its for drawing pictures in obsidian!

Writing notes


Note writing, quite obviously, should be the most important part of taking notes with Obsidian. What I have done, so far, is document any new algorithms I learn and write an obsidian note about it. I try to make as many links as possible that are relevant, and create the file if it doesn't exist. You can add a tag to the file, e.g. #tofinish, to remind yourself to create a write-up of that note in the future.

Alongside this, I can also recommend using the mermaid.js plugin to create your own diagram visualizations, and to create footnotes, since they make your notes more presentable and less cluttered. Crediting resources is also extremely useful when looking back on notes. For example, I like to link back a youtube video in my notes that helped me understand a certain algorithm, so that I can relearn it when the time comes.

Graph view


Lastly, I wanted to spend some time on discussing the graph view, because I see that many people tend to use it for the wrong reasons. Like the graph image from earlier, having such a tremendously massive graph make your ideas seem cluttered and hard to navigate. Here are a few tips on using the graph plugin:

Firstly, once your notes begin to take shape, try and use the local graph view! You can do this by clicking the 3 dots on the top right of a note and selecting "Open local graph", although I heavily recommend that you create a shortcut for it! This is very useful for finding direct links between your notes, and seeing how far away ideas are connected. Try changing the depth setting of your local graph, and you'll see what I mean!

 Here you can see the local graph view for a note about "heaps" in action. Unlike the global graph view, this view has a much more contrasting node size (I mean look at the size of them!), which can help better your understanding of how things link together. This view has a depth filter of 3.


I would also highly recommend using the "group" feature to color code your nodes, it is extremely helpful and can shine light on the types of things your nodes are related to. You can use tags to color code, words in sentences or file names or even the directory of the note!

On top of the color coding, mess around with the forces menu as well! It may seem a bit pointless but I can assure you that the forces can help find new perspectives in relating your notes. For example, crank up the "Link force" option and you will find that your graph will find itself in clusters of its own, helping you see which 'cluster' your notes are part of and find your own little surprises! :D

Here is my current graph as it stands. Certainly not as impressive as other graphs, but you can see the color coding and the clustering effect from changing the link force! It really puts things into its own dimension!


That's it for this post, I might create a new one in the foreseeable future when I actually know what I'm doing XD. If you have any questions please leave them in the comments below, thanks!

  • Vote: I like it
  • +57
  • Vote: I do not like it

| Write comment?
»
3 years ago, # |
  Vote: I like it +93 Vote: I do not like it

after reading the title i thought the blog was going to talk about minecraft obsidian.

  • »
    »
    3 years ago, # ^ |
      Vote: I like it +7 Vote: I do not like it

    Lmao. Now that I'm thinking about it, surely you could make some kind of bitwise calculations with water and lava in minecraft? :D

»
3 years ago, # |
  Vote: I like it +77 Vote: I do not like it

ok but what about netherrite

»
3 years ago, # |
  Vote: I like it +8 Vote: I do not like it

I am using obsidian for about 6 months now, but honestly don't find any use for the graph view. I liked how I can write notes and then search them fast, organize them with tags and intentions, tried some extensions.

Now I just use the file structure of the vault and create and edit files with vim and search with silver searcher, haven't opened obsidian since days. vim-markdown improves the experience.

»
3 years ago, # |
  Vote: I like it 0 Vote: I do not like it

Thanks, I will start using it from today :)

»
3 years ago, # |
  Vote: I like it 0 Vote: I do not like it

I tried using obsidian, but I didn't get the markdown/latex use. I soon switched to typora which supported live markdown embedding. I understand that Obsidian is much better for storage, and if you can use simple terms to explain how markdown and latex work in it, I might be more intrigued to use it.

  • »
    »
    3 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    I don't understand the question because you can use markdown and LaTex similar to what you use in other editors

    but here is the example using markdown and latex

    Image
    • »
      »
      »
      3 years ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      I personally don't like the concept having to use two screens, one for raw text and the other for markdown'ed text. That is why I use typora over Obsidian. If you can show me a way to get around that (such as live embedding), I'd be happy to switch over to Obsidian.

      • »
        »
        »
        »
        3 years ago, # ^ |
          Vote: I like it 0 Vote: I do not like it

        Now I get the question, that's why I use vim-markdown and do all the editing in vim. It shows superscripts, subscripts, symbols and links accurate enough to get by. It is not that powerful because of limitations of terminal, but it works for me.

        Example
»
3 years ago, # |
  Vote: I like it 0 Vote: I do not like it
»
7 months ago, # |
  Vote: I like it 0 Vote: I do not like it

Can you share your vault?