<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Productivity Home on Productivity</title>
    <link>https://csh.rit.edu/~rg/productivity/</link>
    <description>Recent content in Productivity Home on Productivity</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language><atom:link href="https://csh.rit.edu/~rg/productivity/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Firefox Setup</title>
      <link>https://csh.rit.edu/~rg/productivity/20221123115559/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://csh.rit.edu/~rg/productivity/20221123115559/</guid>
      
      <description>&lt;p&gt;I&amp;rsquo;m working on using Tridactyl to work with Firefox. I&amp;rsquo;m using this config:&lt;/p&gt;
&lt;p&gt;First set hintfiltermode vimperator-reflow and then set hintchars 1234567890.&lt;/p&gt;
&lt;p&gt;After trying out the above, I ended up changing the hintchars to hjklasdfgyuiopqwertnmzxcvb, because it&amp;rsquo;s easier to simply open what you need without having to filter first.&lt;/p&gt;
&lt;p&gt;I might add this to my keyboard: &lt;a href=&#34;https://getreuer.info/posts/keyboards/caps-word/index.html&#34;&gt;https://getreuer.info/posts/keyboards/caps-word/index.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve now added both caps word and auto shift on the miryoku layout. I needed to therefore make the following rebinds (hjkl must become neio):&lt;/p&gt;
&lt;p&gt;bind N back
bind n scrollpx -50&lt;/p&gt;
&lt;p&gt;bind E tabnext
bind e scrollline 10&lt;/p&gt;
&lt;p&gt;bind I tabprev
bind i scrollline -10&lt;/p&gt;
&lt;p&gt;bind O forward
bind o scrollpx 50&lt;/p&gt;
&lt;p&gt;// Because o was rebound:
bind m fillcmdline open&lt;/p&gt;
&lt;p&gt;I also use &lt;code&gt;:set allowautofocus false&lt;/code&gt; with, for e.g., &lt;code&gt;:seturl discord.com allowautofocus true&lt;/code&gt;&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>Setting up Foam &#43; VSCode</title>
      <link>https://csh.rit.edu/~rg/productivity/20221109203834/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://csh.rit.edu/~rg/productivity/20221109203834/</guid>
      
      <description>&lt;h3 id=&#34;background&#34;&gt;Background&lt;/h3&gt;
&lt;p&gt;When I first joined Google, I had just spent a considerable amount of time playing around with &lt;a href=&#34;https://notion.so&#34;&gt;Notion&lt;/a&gt;, and I was a fan. The rich representations of not only textual elements such as headers and emphasis, but also of elements such as lists, web bookmarks (which rendered as a quasi-preview), and the ability to embed media right within my notes had sold me on the product. I still used &lt;a href=&#34;https://brettterpstra.com/projects/nvalt/&#34;&gt;nvAlt&lt;/a&gt; as a daily driver, but when it came to building a notebook on a topic (such as tech interview prep), Notion became my go-to.&lt;/p&gt;
&lt;p&gt;However, &lt;em&gt;after&lt;/em&gt; I joined Google, I was forced to scramble for an alternative. 😰 This is because Google has fairly strict policies around where one can and cannot put corporate data. Notion, being a third party tool that hosted data exclusively in the cloud, was a big no-no. Thus, I switched to &lt;a href=&#34;https://foambubble.github.io/foam/&#34;&gt;Foam on VSCode&lt;/a&gt;, and haven&amp;rsquo;t looked back since (for the most part&amp;hellip;Notion still has nicer bookmark previews)!&lt;/p&gt;
&lt;h3 id=&#34;overview&#34;&gt;Overview&lt;/h3&gt;
&lt;p&gt;Foam provides everything one might need to set up a &lt;a href=&#34;https://www.youtube.com/watch?v=Q2zY7l2tzoQ&#34;&gt;digital Zettelkasten&lt;/a&gt;, including the wonderful (if rarely used) graph view. As soon as I started using it, however, I began to miss the rich representation Notion had allowed for — so I went and found myself a &lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=zaaack.markdown-editor&#34;&gt;WYSIWYG markdown editor for VSCode&lt;/a&gt;, and set things up to make that the default. Unfortunately, that didn&amp;rsquo;t support rendering wikilinks, and due to the heavy amount of interlinking of notes I was planning for, that was unacceptable. So, I made my &lt;a href=&#34;https://csh.rit.edu/~rg/productivity/~rg/productivity/attachments/zaaack.markdown-editor-0.1.10.zip&#34;&gt;own version&lt;/a&gt; of the extension, that supports wikilinks, has better colors (in my opinion), and has an updated version of &lt;a href=&#34;https://echarts.apache.org/en/index.html&#34;&gt;echarts&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;These are the reasons I now prefer Foam on VSCode over Notion, as well as over nvAlt:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I can take my notes in markdown, which is a very portable format&lt;/li&gt;
&lt;li&gt;The daily note shortcut has helped my journal each day, which has been valuable
&lt;ul&gt;
&lt;li&gt;Markdown supports checkboxes and TODOs, so I might replace Omnifocus with this one day as well&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;My notes are WYSIWYG if I need them to be, and support rich media including embedded content and charts (which, thanks to tools such as &lt;code&gt;echarts&lt;/code&gt;, &lt;code&gt;mermaid&lt;/code&gt;, &lt;code&gt;graphviz&lt;/code&gt;, and others, means that I can create visualizations on the fly as I would in a regular notebook)&lt;/li&gt;
&lt;li&gt;I can link between my notes, as well as examine and navigate these links by simply following them, or using backlink exploration and graphs&lt;/li&gt;
&lt;li&gt;Searching through my notes is very easy, and they&amp;rsquo;re all in one place&lt;/li&gt;
&lt;li&gt;I can tag my notes, and do some pretty cool things with these tags (such as generating this very website!)&lt;/li&gt;
&lt;li&gt;My notes are synced with the cloud and across different computers using &lt;a href=&#34;https://www.google.com/drive/download/&#34;&gt;Google Drive for Desktop&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;My attachments, such as screenshots and files, are adjacent to my notes and synced alongside them&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;setup&#34;&gt;Setup&lt;/h3&gt;
&lt;h4 id=&#34;extensions&#34;&gt;Extensions&lt;/h4&gt;
&lt;p&gt;The extensions that I use are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=foam.foam-vscode&#34;&gt;Foam&lt;/a&gt; (link to &lt;a href=&#34;https://csh.rit.edu/~rg/productivity/~rg/productivity/attachments/foam-vscode-0.20.2.vsix&#34;&gt;my version&lt;/a&gt;, supports backlinks in WYSIWYG mode) (essential for the Zettelkasten basics)
&lt;ul&gt;
&lt;li&gt;If you use my version, install with &lt;code&gt;code --install-extension foam-vscode-0.20.2.vsix&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=yzhang.markdown-all-in-one&#34;&gt;Markdown All in One&lt;/a&gt; (keyboard shortcuts and other niceties when not in WYSIWYG view)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=zaaack.markdown-editor&#34;&gt;Markdown Editor&lt;/a&gt; (link to &lt;a href=&#34;https://csh.rit.edu/~rg/productivity/~rg/productivity/attachments/zaaack.markdown-editor-0.1.10.zip&#34;&gt;my version&lt;/a&gt;) (I find this essential, but you might be alright without it)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=mushan.vscode-paste-image&#34;&gt;Paste Image&lt;/a&gt; (allows pasting images to notes using a shortcut, automatically saving to attachments)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=bradzacher.vscode-copy-filename&#34;&gt;Copy Filename&lt;/a&gt; (&lt;em&gt;very&lt;/em&gt; useful for quickly grabbing filenames for a wikilink style link)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=leighlondon.emlhttps://marketplace.visualstudio.com/items?itemName=TomasHubelbauer.email-viewe&#34;&gt;Email&lt;/a&gt; (.eml syntax highlighter, useful for saving and then refferring to emails)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=sumneko.file-alias&#34;&gt;file-alias&lt;/a&gt; (allows RegEx matched content to substitute for filenames, which helps a lot when your filenames are just timestamps)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=ms-vscode.wordcount&#34;&gt;Word Count&lt;/a&gt; (optional)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=tomoki1207.pdf&#34;&gt;vscode-pdf&lt;/a&gt; (optional)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;configuration&#34;&gt;Configuration&lt;/h4&gt;
&lt;p&gt;This is the configuration I use for VSCode:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#586e75;background-color:#eee8d5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#268bd2;font-weight:bold&#34;&gt;&amp;#34;markdown-linkify.rules&amp;#34;&lt;/span&gt;: [
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        { &lt;span style=&#34;color:#268bd2;font-weight:bold&#34;&gt;&amp;#34;prefix&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#2aa198&#34;&gt;&amp;#34;go/&amp;#34;&lt;/span&gt; },
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        { &lt;span style=&#34;color:#268bd2;font-weight:bold&#34;&gt;&amp;#34;prefix&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#2aa198&#34;&gt;&amp;#34;cl/&amp;#34;&lt;/span&gt; },
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        { &lt;span style=&#34;color:#268bd2;font-weight:bold&#34;&gt;&amp;#34;prefix&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#2aa198&#34;&gt;&amp;#34;cr/&amp;#34;&lt;/span&gt; },
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        { &lt;span style=&#34;color:#268bd2;font-weight:bold&#34;&gt;&amp;#34;prefix&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#2aa198&#34;&gt;&amp;#34;cs/&amp;#34;&lt;/span&gt; },
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        { &lt;span style=&#34;color:#268bd2;font-weight:bold&#34;&gt;&amp;#34;prefix&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#2aa198&#34;&gt;&amp;#34;b/&amp;#34;&lt;/span&gt; },
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        { &lt;span style=&#34;color:#268bd2;font-weight:bold&#34;&gt;&amp;#34;prefix&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#2aa198&#34;&gt;&amp;#34;t/&amp;#34;&lt;/span&gt; },
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        { &lt;span style=&#34;color:#268bd2;font-weight:bold&#34;&gt;&amp;#34;prefix&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#2aa198&#34;&gt;&amp;#34;google3/&amp;#34;&lt;/span&gt; },
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        { &lt;span style=&#34;color:#268bd2;font-weight:bold&#34;&gt;&amp;#34;prefix&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#2aa198&#34;&gt;&amp;#34;who/&amp;#34;&lt;/span&gt; }  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    ],
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#268bd2;font-weight:bold&#34;&gt;&amp;#34;file-alias.contentMatch&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#2aa198&#34;&gt;&amp;#34;(title: |# )(.*)&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#268bd2;font-weight:bold&#34;&gt;&amp;#34;file-alias.contentMatchFormat&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#2aa198&#34;&gt;&amp;#34;{2}&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#268bd2;font-weight:bold&#34;&gt;&amp;#34;workbench.editor.wrapTabs&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#859900;font-weight:bold&#34;&gt;true&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#268bd2;font-weight:bold&#34;&gt;&amp;#34;window.title&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#2aa198&#34;&gt;&amp;#34;Novel Home&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#268bd2;font-weight:bold&#34;&gt;&amp;#34;workbench.colorTheme&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#2aa198&#34;&gt;&amp;#34;Default Light+&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#268bd2;font-weight:bold&#34;&gt;&amp;#34;files.autoSave&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#2aa198&#34;&gt;&amp;#34;afterDelay&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#268bd2;font-weight:bold&#34;&gt;&amp;#34;pasteImage.path&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#2aa198&#34;&gt;&amp;#34;${currentFileDir}/attachments&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#268bd2;font-weight:bold&#34;&gt;&amp;#34;foam.completion.label&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#2aa198&#34;&gt;&amp;#34;title&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#268bd2;font-weight:bold&#34;&gt;&amp;#34;foam.completion.useAlias&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#2aa198&#34;&gt;&amp;#34;whenPathDiffersFromTitle&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#268bd2;font-weight:bold&#34;&gt;&amp;#34;search.sortOrder&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#2aa198&#34;&gt;&amp;#34;modified&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id=&#34;philosophy--shortcuts&#34;&gt;Philosophy &amp;amp; Shortcuts&lt;/h4&gt;
&lt;h5 id=&#34;alfred-workflows&#34;&gt;Alfred Workflows&lt;/h5&gt;
&lt;p&gt;There are &lt;a href=&#34;https://zettelkasten.de/introduction/#the-unique-identifier&#34;&gt;several different philosophies&lt;/a&gt; one could choose from when deciding on Zettelkasten identifiers. Personally, I prefer using a timestamp as a filename, which I use a shortcut to generate when I&amp;rsquo;m creating a note. This frees me from thinking too hard about filenames, and also gives me valuable info about when a note was created, without much extra effort.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#586e75;background-color:#eee8d5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#93a1a1;font-style:italic&#34;&gt;# Generate a title and print it -- this is tied to a shortcut&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#cb4b16&#34;&gt;echo&lt;/span&gt; -n &lt;span style=&#34;color:#859900&#34;&gt;$(&lt;/span&gt;date &lt;span style=&#34;color:#2aa198&#34;&gt;&amp;#39;+%Y%m%d%H%M%S.md&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#859900&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The drawback, of course, is that I can&amp;rsquo;t search my notes by title as easily (a full text search won&amp;rsquo;t be limited to my markdown titles) — but I&amp;rsquo;ve made an Alfred workflow to help me find my notes by title, regardless of the actual filename.&lt;/p&gt;
&lt;center&gt;&lt;img src=&#34;https://csh.rit.edu/~rg/productivity/~rg/productivity/attachments/alfred_wkflw_search.jpeg&#34; width=&#34;540&#34; border=&#34;1&#34; /&gt;&lt;br /&gt;&lt;code&gt;My title search Alfred Workflow in action&lt;/code&gt;&lt;/center&gt;
&lt;br/&gt;
&lt;p&gt;The code used in this workflow looks like this:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#586e75;background-color:#eee8d5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#93a1a1;font-style:italic&#34;&gt;#!/bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#93a1a1;font-style:italic&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#93a1a1;font-style:italic&#34;&gt;# Tool to search notes by Markdown title&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#268bd2&#34;&gt;query&lt;/span&gt;=&lt;span style=&#34;color:#268bd2&#34;&gt;$1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;log() {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#cb4b16&#34;&gt;echo&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#268bd2&#34;&gt;$@&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;&amp;#34;&lt;/span&gt; &amp;gt;/dev/stderr
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#93a1a1;font-style:italic&#34;&gt;# Prepare some json stuff&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#268bd2&#34;&gt;start&lt;/span&gt;=&lt;span style=&#34;color:#2aa198&#34;&gt;&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;{&amp;#34;items&amp;#34;: [
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#268bd2&#34;&gt;end&lt;/span&gt;=&lt;span style=&#34;color:#2aa198&#34;&gt;&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;]}
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#268bd2&#34;&gt;json&lt;/span&gt;=&lt;span style=&#34;color:#2aa198&#34;&gt;&amp;#39;&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#cb4b16&#34;&gt;cd&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#268bd2&#34;&gt;$FOAM_DIR&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#268bd2&#34;&gt;IFS&lt;/span&gt;=&lt;span style=&#34;color:#2aa198&#34;&gt;$&amp;#39;\n&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#cb4b16&#34;&gt;read&lt;/span&gt; -r -d &lt;span style=&#34;color:#2aa198&#34;&gt;&amp;#39;&amp;#39;&lt;/span&gt; -a results &amp;lt; &amp;lt;( ack --nofilter -im1o &lt;span style=&#34;color:#2aa198&#34;&gt;&amp;#34;((?&amp;lt;=^title: ).*&lt;/span&gt;&lt;span style=&#34;color:#268bd2&#34;&gt;$query&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;.*&lt;/span&gt;$&lt;span style=&#34;color:#2aa198&#34;&gt;)|((?&amp;lt;=^# ).*&lt;/span&gt;&lt;span style=&#34;color:#268bd2&#34;&gt;$query&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;.*&lt;/span&gt;$&lt;span style=&#34;color:#2aa198&#34;&gt;)&amp;#34;&lt;/span&gt; *.md &amp;amp;&amp;amp; &lt;span style=&#34;color:#cb4b16&#34;&gt;printf&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;&amp;#39;\0&amp;#39;&lt;/span&gt; )
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#859900&#34;&gt;for&lt;/span&gt; ((&lt;span style=&#34;color:#268bd2&#34;&gt;i&lt;/span&gt; = 0; i &amp;lt; &lt;span style=&#34;color:#2aa198&#34;&gt;${#&lt;/span&gt;&lt;span style=&#34;color:#268bd2&#34;&gt;results&lt;/span&gt;[@]&lt;span style=&#34;color:#2aa198&#34;&gt;}&lt;/span&gt;; i++))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#859900&#34;&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#268bd2&#34;&gt;resultArr&lt;/span&gt;=(&lt;span style=&#34;color:#859900&#34;&gt;$(&lt;/span&gt;&lt;span style=&#34;color:#cb4b16&#34;&gt;echo&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;${&lt;/span&gt;&lt;span style=&#34;color:#268bd2&#34;&gt;results&lt;/span&gt;[&lt;span style=&#34;color:#268bd2&#34;&gt;$i&lt;/span&gt;]&lt;span style=&#34;color:#2aa198&#34;&gt;}&lt;/span&gt; | tr &lt;span style=&#34;color:#2aa198&#34;&gt;&amp;#34;:&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;&amp;#34;\n&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#859900&#34;&gt;)&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#268bd2&#34;&gt;currJson&lt;/span&gt;=&lt;span style=&#34;color:#2aa198&#34;&gt;&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;    {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;        \&amp;#34;uid\&amp;#34;: \&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;${&lt;/span&gt;&lt;span style=&#34;color:#268bd2&#34;&gt;resultArr&lt;/span&gt;[0]&lt;span style=&#34;color:#2aa198&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;\&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;        \&amp;#34;type\&amp;#34;: \&amp;#34;file\&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;        \&amp;#34;title\&amp;#34;: \&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;${&lt;/span&gt;&lt;span style=&#34;color:#268bd2&#34;&gt;resultArr&lt;/span&gt;[@]:&lt;span style=&#34;color:#268bd2&#34;&gt;2&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;\&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;        \&amp;#34;subtitle\&amp;#34;: \&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;${&lt;/span&gt;&lt;span style=&#34;color:#268bd2&#34;&gt;resultArr&lt;/span&gt;[0]&lt;span style=&#34;color:#2aa198&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;\&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;        \&amp;#34;arg\&amp;#34;: \&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#268bd2&#34;&gt;$FOAM_DIR&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;${&lt;/span&gt;&lt;span style=&#34;color:#268bd2&#34;&gt;resultArr&lt;/span&gt;[0]&lt;span style=&#34;color:#2aa198&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;\&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;        \&amp;#34;icon\&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;            \&amp;#34;type\&amp;#34;: \&amp;#34;fileicon\&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;            \&amp;#34;path\&amp;#34;: \&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#268bd2&#34;&gt;$FOAM_DIR&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;${&lt;/span&gt;&lt;span style=&#34;color:#268bd2&#34;&gt;resultArr&lt;/span&gt;[0]&lt;span style=&#34;color:#2aa198&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;\&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;        }
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;    },
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;    &amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#268bd2&#34;&gt;json&lt;/span&gt;=&lt;span style=&#34;color:#2aa198&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#268bd2&#34;&gt;$json$currJson&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#859900&#34;&gt;done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#cb4b16&#34;&gt;echo&lt;/span&gt; &lt;span style=&#34;color:#2aa198&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#268bd2&#34;&gt;$start$json$end&lt;/span&gt;&lt;span style=&#34;color:#2aa198&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;My Alfred Workflow can be &lt;a href=&#34;https://csh.rit.edu/~rg/productivity/~rg/productivity/attachments/info.plist&#34;&gt;downloaded here&lt;/a&gt;.&lt;/p&gt;
&lt;h5 id=&#34;vscode-shortcuts&#34;&gt;VSCode Shortcuts&lt;/h5&gt;
&lt;p&gt;In addition to the workflows above, I also have shortcuts tied to switching my editor from WYSIWYG mode to text editing mode and vice-versa. Many Foam features don&amp;rsquo;t work with the WYSIWYG — for example, backlinks only show up in the backlink explorer when in text editing mode. The text mode is also useful when graphs and media are getting in the way of editing a note. Most of my VSCode shortcuts use the super-modifier key.&lt;/p&gt;
&lt;p&gt;I use the standard Foam shortcut for daily notes (⌥ + D on a Mac) multiple times a day in order to journal and record my thoughts.&lt;/p&gt;
&lt;h5 id=&#34;templates&#34;&gt;Templates&lt;/h5&gt;
&lt;p&gt;I don&amp;rsquo;t really use templates, except when creating a new note from a link that doesn&amp;rsquo;t yet have a target note that exists. For this, I use the following template, so that I will be able to enter the note&amp;rsquo;s title in a prompt:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#586e75;background-color:#eee8d5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-md&#34; data-lang=&#34;md&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;title: $FOAM_TITLE
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;menu: main
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id=&#34;generating-websites&#34;&gt;Generating Websites&lt;/h4&gt;
&lt;p&gt;I&amp;rsquo;ve created a setup to be able to generate websites from my notes — such as this one (if you&amp;rsquo;re reading this on a website). I leverage &lt;a href=&#34;https://gohugo.io/&#34;&gt;Hugo&lt;/a&gt; to do most of this (though I have scripts to make some substitutions such that everything actually works), and then upload the artifacts via &lt;a href=&#34;https://phoenixnap.com/kb/rsync-command-linux-examples&#34;&gt;rsync&lt;/a&gt;. I can easily generate multiple websites from my single Zettelkasten repo, using tags to keep them organized.&lt;/p&gt;
&lt;h4 id=&#34;misc-tips&#34;&gt;Misc. Tips&lt;/h4&gt;
&lt;p&gt;At the time of this writing, VSCode will only support audio playback in certain codecs, including MP3. This means that if you embed a video in your notes, for example, the audio won&amp;rsquo;t play unless it uses one of a tiny subset of codecs. How I get around this is by re-encoding the video using this &lt;a href=&#34;https://ffmpeg.org/&#34;&gt;ffmpeg&lt;/a&gt; command:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;ffmpeg -i {$VID}.mp4 -c:v copy -c:a libmp3lame {$VID}_audio.mp4&lt;/code&gt;&lt;/p&gt;
</description>
      
    </item>
    
  </channel>
</rss>
