Tag: apps

Automating daily standup notes through Alfred, a Bash script and Obsidian

One of my absolute must-download apps whenever I setup a new MacOS machine is Alfred. It’s a customizable app launcher that helps me more efficiently use my computer. I frequently use its many features, from clipboard history and snippets management, to downloading workflows to quickly find my IP address, or even writing my own plugins.

Each morning at work, we kick off the day with our daily stand-up meeting — a quick way for us to let our teammates know what we did yesterday, what we’re doing today and any blockers we’re encountering.

I use Obsidian (see previously) to write these notes. Traditionally, creating a daily note is kind of an annoying process for me:

  1. Open Obsidian
  2. Right click on my “DSUs” folder
  3. Create a new note based on my “daily stand-up” template
  4. Replace the place holder text with today
  5. Start typing my notes

There has to be a better way.

*Cue suspenseful music*

There is!

We can utilize Alfred’s nifty keyword action. I will trigger the action using the keyword “dsu“. From there, we will run a bash script (thank you, ChatGPT) which will do a few things:

  1. Check if a file with today’s date already exists. If so, open it! (Because we probably want to reference it or update it.
  2. If it doesn’t exist, create a new markdown file with the following format: YYYY-MM-DD.md
  3. Update the file contents to match (my) specific / preferred layout for the DSU notes
  4. Open it.
Bash
# Get the current year dynamically
CURRENT_YEAR=$(date +"%Y")

# Define the base directory
BASE_DIR="/Users/daves/Documents/Obsidian/Standup Meeting Notes"

# Target directory for the current year
TARGET_DIR="${BASE_DIR}/${CURRENT_YEAR}/"

# Create the directory for the current year if it doesn't exist
mkdir -p "$TARGET_DIR"

# Get the current date in the required format
CURRENT_DATE=$(date +"%Y-%m-%d %A")
FILENAME="${CURRENT_DATE} Standup.md"

# Full path for the new Markdown file
FILE_PATH="${TARGET_DIR}${FILENAME}"

# Check if the file already exists
if [ -f "$FILE_PATH" ]; then
    echo "File already exists: $FILE_PATH"
else
    # Create the new Markdown file and populate it with the template
    cat <<EOF > "$FILE_PATH"
Y:
Y:
T:
T:
B: None

---
## Action Items

-

---
## Summary

-

---
## Tags

#standup

<!-- ${CURRENT_DATE} -->
EOF

    echo "Created: $FILE_PATH"
fi

# Open the file in Sublime Text
/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl "$FILE_PATH"

When we run that script via the Alfred action, it looks like this:

Sweet!

(One thing to note: I open the file with Sublime here, but since it still creates the file in my Obsidian directory, all my notes are still synced.)

Using Obsidian Notes as a ‘Second Brain’

Recently, I’ve been digging into ways to better organize my notes, links, and other digital detritus. There’s a lot of it and it’s all over the place!

I stumbled upon a concept called the “second brain” after reading a discussion on Hacker News. Essentially, it’s a way to better organize your digital life, so that you can easily store (and look up) information.

Essentially, a second brain is a personal knowledge management system that serves as an extension of your mind so you don’t have to think as hard or remember as much. You offload thinking and remembering to your private second brain.

Like Sherlock Holmes’ “mind palace”, it’s a place to store all of your lingering thoughts and curate the information you consume on a daily basis from books, the Internet and other sources so that you don’t get overwhelmed with unnecessary info and take action with the knowledge that matters.

Sign me up!

One of the interesting tools that someone in the Hacker News thread mentioned was an app called Obsidian.

Obsidian

I’ve been playing around with it recently and am cautiously optimistic. It has apps for MacOS, iOS (…and other systems, if you’re of that persuasion).

Plus, no vendor lock in! It’s all Markdown files stored on your local devices (and using your preferred cloud storage service).