Zettelkasten

📅️ My Fully Automated Daily Note Review System In Obsidian 🤖️

Overview

I have had a fairly robust daily notes system since the early days of my usage of Obsidian. Over time of course this process gets refined and improved. The system i have now is probably the most intentional i've ever been about journaling and reviewing the words of my past self.

I hope there will be some useful nuggets of insight in this video that will help you shape and improve your own system :)

Timestamps

  • 0:00:00 Welcome
  • 0:00:21 Why The Change
  • 0:01:24 INTO THE AM
  • 0:02:18 My Actual Daily Notes
  • 0:03:22 Dataview Queries
  • 0:05:31 My Highlights Tag
  • 0:06:39 Weekly Note Example
  • 0:07:29 Monthly Note Example
  • 0:07:52 Aliases Query
  • 0:09:43 The Yearly Note Example
  • 0:11:14 Why Are You Doing All Of This
  • 0:11:59 Closing
  • 0:12:17 Outro

Making A Personal Knowledge Management Dashboard In Obsidian Canvas 🎨️

Overview

I'm still really enjoying canvas a lot even with how simple it is compared to other diagramming tools it really does add an additional edge to the workflow for organizing thoughts and ideas visually as if they were actual note cards spread out on a physical desktop.

That "spread out" and visible all at once nature of canvas is the thing that really makes it appeal to me and is the real value add. So with that element in mind, lets see how a dashboard would look like/function when based in Obsidian Canvas

Timestamps

  • 0:00:00 Welcome
  • 0:00:40 CARD obsidian canvas video
  • 0:00:53 What This Video Is About
  • 0:01:16 Into The AM
  • 0:02:07 Diving Into The Dashboard
  • 0:02:32 Top of Mind and Tasks
  • 0:04:17 The Working Section Of The Dashboard
  • 0:09:37 Summaries and Overviews
  • 0:12:53 The Only Problem I Have With A Dashboard In Osidian Canvas
  • 0:15:49 Closing
  • 0:16:01 Outro

How I'm Organizing My Autism Research With Obsidian Canvas

This Video

This video was a fun one to make as i've been falling into more effective ways to doing more research type work and as you well know in the doing of the thing, the truth of the act presents itself. It's one thing to say "this is an effective way of using this tool" and another to actually be doing real work with the tool and actually experience pain points and find better optimizations and strategies.

In this video I aim to show you some of the ways i'm actually performing some of my research information consolidation and analysis using Obsidian Canvas and a variety of other tools that i already talk about ad naseum on my channel. Looking forward to hearing your thoughts in the YouTube comments!

Timestamps

  • 0:00:00 Welcome
  • 0:00:27 Visually Oriented
  • 0:00:56 https://amzn.to/3s8jGbP
  • 0:01:42 I Think I May Have Highlighted A Little Much
  • 0:03:39 The Start Of This Workflow
  • 0:04:42 Centralizing And Standardizing The Data Input
  • 0:04:56 Unmasking Autism Book Input
  • 0:06:19 CARD Latest Zotero Workflow Video
  • 0:06:43 Other Autism Related Books With Fewer Highlights
  • 0:08:05 Research Paper Inputs
  • 0:08:54 Why I Like The Canvas Approach
  • 0:09:55 The Autism Research Canvas
  • 0:10:52 Color Key
  • 0:13:11 Highlight Transclusion
  • 0:16:25 Topic Bookmarks
  • 0:17:08 Closing
  • 0:18:08 Outro

Obsidian Zotero Integration Plugin | Streamline Your Research Paper Workflow 📝️

Using the Obsidian Zotero integration plugin, i've updated my workflow to use this new plugin and drastically improve the quality of my zotero workflow.

Obsidian Media Extended: The Best Way To Take Notes On Videos 🎥️

Media Extended is the best approach to note taking on video files that ive seen yet. It makes it super easy to get what ive always wanted from video notes:

  • Timestamps that jump to that point in the video
  • Timestamps without effort
  • Easy markdown notes generated live while watching a video

I started with YiNote early in 2020 and moved to the browser extension memex when that offered a better experience and now finally this extension already in the Obsidian eco system adds so much value with such simple functionality.

There are 3~ main points of criticism i have about the plugin that could be worked on, but by and large its an essential at this point.

Main critique:

  • The cursor end point after timestamp insertion being on the left v.s. the right
  • The cursor focus after opening the plugin's modal
  • The cursor focus after using the plugin's modal
  • The ability to just hit enter and have the modal open the media after pasting is missing

Check out the plugin and let me know what you think!

🌱️ Dendron: A Unique Approach To Knowledge Management 🌱️

Dendron is one of my favorite ways to taking notes on technical content now.

It takes advantage of a lot of the great work that has already gone into the VSCode IDE but also the existing extension eco-system.

Where dendron can't do something, there is likely an awesome extension that can.

This is now my go-to way of taking notes of structured and factual content unlike my Zettelkasten that is more of my personal take, ideas, and conjecture on topics.

Dendron makes the organization of notes via the schemas and dot hierarchies an absolute dream and the ease of refactoring a hierarchy makes the management of a lot of this information infinitely easier. I have hundreds of notes now and its just an absolute pleasure to work with Dendron with that content.

0:00:00 Welcome
0:00:36 What we are talking about today www.dendron.so
0:01:16 Into
0:01:26 My experience with Dendron
0:03:49 How and why dendron might fit into your workflow
0:12:37 Getting Started With Dendron and VSCode
0:16:41 Panes and Interfaces in Dendron
0:30:49 The dendron command palette
0:38:17 Languages Used in Dendron
0:39:23 Ways to use Markdown and extended features in dendron
0:41:15 Schemas and heirarchies
0:43:02 The Dendron Graph
0:46:09 Robust Linking
0:48:08 How to organize all your notes when there are too many
0:51:34 Refactoring hierarchies
0:52:20 Create schema from note
1:03:38 My personal schemas
1:03:48 daily note schema
1:06:00 Task schema
1:06:26 My software notes schema
1:08:53 YAML in Dendron
1:11:00 Templates and Code Snippets
1:17:46 Dynamic Variables Inside of Templates
1:19:43 Tags and Links in Dendron
1:23:19 Tasks and Task Management in Dendron
1:28:21 Dendrons global configuration file
1:30:29 Task schema
1:35:03 Dendron Pods
1:40:49 Configuring the pod
1:45:00 Leveraging VSCode as a platform
1:47:51 Dendron Publishing
1:48:33 https://wiki.dendron.so/notes/FnK2ws6w1uaS1YzBUY3BR/
1:50:23 My Dendron Workflow
2:06:02 Closing
2:07:06 Outro

How I Put My Mind Under Version Control

Using Github and command-line utilities to sync and version control my Zettelkasten

15.png

So I use Obsidian as my app of choice to curate my ZettelKasten.

I keep my vault on iCloud for storage and redundancy but on other machines like my firewalled work machine, I can't access iCloud but I can access GitHub. So I have my vault set up as a repository on GitHub. To keep all my notes, configs, and workspace settings in sync with my home machine when I leave the house I set up auto-syncing to GitHub that I can take advantage of anywhere. Here's how I did it:

Prepare Your Repository



0.

You need git installed, and this works seamlessly if you have your credentials cached so you do not need to enter your password on git push commands for more on caching FCC has a great article on this.

to store your credentials for your system you can use this command to be prompted for your credentials, enter them once, and have them stored for future git interaction:

16.png

1.

Next we need to make an empty repo on GitHub to host our ZettelKasten where we can push and pull changes, to across multiple machines, and have version control on our notes.

2.

We need to Ignore files that are unnecessary and could cause errors on other machines when we pull our files and configs from GitHub. If you work on a ZettelKasten with a team excluding the .obsidia/workspace file could also be a good idea as well as the custom CSS in the root directory if you have one. This would mean people are not overriding each other's personal settings unless you want to keep this consistent in the shared vault. Which files to exclude are up to you and your use case but for mine, the repo is private and only for myself so I need only a few files ignored to avoid issues.

3.

So now to make the .gitignore file to make git… well… ignore the files we don't care about:

17.png

4.

Now that we have the remote repo ready and we are ignoring local files that could cause issues if sent to GitHub, let's make our existing ZettelKasten a git repository so we have something to send to GitHub:

18.png

5.

Now push everything to the remote repository so we can pull it down from GitHub onto any machine. Make sure in the example below to just replace the URL with your GitHub Repository URL or you can just replace the parts of the URL in all caps with the values of your Username on GitHub and the name of the repository:

19.png

This will put your files on GitHub ONCE now any new changes to files or configurations need to be manually pushed to the remote repo with git commands manually. So now let's automate all the work.

Automating The Workflow


6.

First we need to write a script that will perform all of our actions for us. I make a shell script in my .local/bin/ directory (this works for Mac and Linux, Windows I'm not sure if this works the same with WSL/Gitbash):

touch creates the file named zk_sync and chmod +x makes the file an executable file, but we still need to say what shell will execute this file, and what exactly are the commands to be executed.

7.

The scripts contents to be executed when ran:

In case it needs to be said, you’ll need to update the string that is the absolute path to your local ZettelKasten repo. You can easily do this by using the terminal to go to that directory and just run the `pwd` command.

In case it needs to be said, you’ll need to update the string that is the absolute path to your local ZettelKasten repo. You can easily do this by using the terminal to go to that directory and just run the `pwd` command.

8.

WHAT THE SCRIPT DOES. You should never run a script without knowing what it does as it could easily be malicious and nuke your machine. So lets review its functionality line by line:

22.png

9.

So now that we have the script ready, enter CRON! We're going to set up a cron job to run this script automatically on a timer.

On Linux I used the tool cronie, but MacOS comes with cron installed already, to get into your list of current cron jobs:

23.png

my cronjob looks like this:

24.png

*/30 * * * * The first section is the timers, mine is set to run on every minute interval that is divisible by 30 i.e. 30 and 60 or 1:30PM, 2PM, 2:30PM, etc.

/Users/bryanjenks/.local/bin/zk_sync The second is what file is it executing (absolute path) which in this case is the script we made.

Finally, to make sure the job is quiet it is sending any script output (there shouldn't be any we used -q a lot) to >/dev/null 2>&1


Now any changes I make to anything in my vault are pushed to GitHub every 30 minutes with an ISO timestamp for the files with changes. If no changes are made, nothing happens.

I keep the repo private, and this way I always have my ZettelKasten available where ever I go and under version control with Git.

I hope someone else enjoys the workflow 🙂️


Quick Summary of What We Covered

A Quick Recap of the main points of this article:

  • Create a GitHub Repo
  • Make your current ZettelKasten a local Git Repo
  • Push that repo to your new fresh remote repo
  • Create a script to sync your local and remote repo's
  • Automate that scripts execution with Cron


Code?

If you would like all the example code used in the video / this article you can grab it:


Get the Code Here