diff --git a/041a1acc.html b/041a1acc.html index 65c4272..2b7a6f1 100644 --- a/041a1acc.html +++ b/041a1acc.html @@ -1,63 +1 @@ -a self-hosted git stack - zettel.thermokar.st
\ No newline at end of file +a self-hosted git stack - zettel.thermokar.st
\ No newline at end of file diff --git a/19172b64.html b/19172b64.html new file mode 100644 index 0000000..9371364 --- /dev/null +++ b/19172b64.html @@ -0,0 +1,19 @@ +specifying a range when running a ! shell command filters - zettel.thermokar.st

specifying a range when running a ! shell command filters

Specifying a range when running a ! shell command filters the range through the specified shell command by piping the range’s content into the shell command via stdin and replacing the range with the shell command’s stdout.

Running

:1,10!sort -r

on

2
+3
+7
+1
+9
+4
+0
+8
+5
+6

results in:

9
+8
+7
+6
+5
+4
+3
+2
+1
+0
\ No newline at end of file diff --git a/56653cb1.html b/56653cb1.html index b8459d1..6b884e9 100644 --- a/56653cb1.html +++ b/56653cb1.html @@ -1,65 +1 @@ -the expression register - zettel.thermokar.st

the expression register

The expression register (=) can be used to evaluate expressions, like 2+3. If this register is used while in Insert mode (<C-r>=), the results of the expression will be inserted after the expression is evaluated.

\ No newline at end of file +the expression register - zettel.thermokar.st

the expression register

The expression register (=) can be used to evaluate expressions, like 2+3. If this register is used while in Insert mode (<C-r>=), the results of the expression will be inserted after the expression is evaluated.

\ No newline at end of file diff --git a/73dcbcc7.html b/73dcbcc7.html new file mode 100644 index 0000000..6f3a7af --- /dev/null +++ b/73dcbcc7.html @@ -0,0 +1 @@ +<C-d> in command mode presents an auto-completion list - zettel.thermokar.st

<C-d> in command mode presents an auto-completion list

\ No newline at end of file diff --git a/82ded935.html b/82ded935.html new file mode 100644 index 0000000..e46ebc5 --- /dev/null +++ b/82ded935.html @@ -0,0 +1,7 @@ +command mode ranges based on patterns - zettel.thermokar.st

command mode ranges based on patterns

In command mode you can specify a range of lines to operate on, based on patterns, rather than absolute (or relative line numbers). This can be a great way to isolate changes without looking up the individual line numbers.

:/start/,/end/cmd<CR>

On a Python file, this might look like:

def main():
+    foo = do_something()
+    bar = do_something_else(foo)
+    return bar
:/def main/,/return/s/foo/baz/g<CR>

results in:

def main():
+    baz = do_something()
+    bar = do_something_else(baz)
+    return bar
\ No newline at end of file diff --git a/9227847e.html b/9227847e.html index 84a84ba..1673e99 100644 --- a/9227847e.html +++ b/9227847e.html @@ -1,62 +1 @@ -sourdough pretzel rolls - zettel.thermokar.st

sourdough pretzel rolls

ingredients and supplies

dough

  • 2/3c + 3T warm water
  • 1T yeast
  • 1c sourdough starter (based on 1:1 water-to-flour ratio)
  • 4T olive oil
  • 2t sugar
  • 2t salt
  • 4c + 3T flour

poaching solution

  • 8c to 10c boiling water
  • 1/4c baking soda

glaze and topping

  • 1 egg white
  • 1T cold water
  • pretzel salt to taste

tools

  • stand mixer
  • baking sheets
  • parchment paper
  • large wide pot for poaching
  • tongs
  • slotted spoon
  • brush
  • razor blade or sharp knife

instructions

dough

  • in stand mixer:
    • combine water and yeast
    • let sit for 5 to 10 minutes
    • to the foam add:
      • sourdough starter
      • olive oil
      • sugar
      • salt
      • flour
    • mix until smooth, dough will likely be slightly dry
  • cover and let rise in a warm place until doubled in volume (1-2 hours typically)

shaping

  • line baking sheets with parchment paper
  • divide dough in 18 equal portions
  • form each portion into a tight ball by roughly shaping, then pulling dough down to the underside of the ball repeatedly
    • the dry surface should form a taught skin
    • make sure the bottom is crimped and sealed with no creases
  • cover and let rest ~30 minutes

poaching

  • while resting, boiling water for poaching solution, add to poaching pot
  • wait to add the baking soda until you’re ready to poach
  • before poaching, preheat the oven to 425F (this can take a while)
  • poach the rolls
    • put a few rolls (~4) into the solution, right-side up
    • poach bottoms for 30 seconds (this helps seal any remaining creases)
    • using tongs, flip each roll right-side down
    • poach tops for 30 seconds
    • using a slotted spoon, remove each roll and place back on baking sheet

baking

  • prepare the glaze
    • mix egg white and cold water
  • brush glaze onto the rolls
    • apply liberally
    • coat the sides, too
  • slice a deep x into the top of each roll
  • sprinkle with pretzel salt to taste
  • place baking sheets in center of preheated oven
  • bake for 15-20 minutes, until golden brown
  • allow to cool

notes

  • the instructions are meant to be followed sequentially
  • c: cup, T: tablespoon, t: teaspoon
  • block out a bit of time for this
  • this recipe is easily doubled, no adjustments necessary, just *2
  • be prepared to make a mess when poaching
  • they will be pretty ugly post-poaching
  • you can’t really slice too deep
  • the order matters - don’t slice and then glaze - the glaze will likely seal the top shut
  • start baking as soon as you slice
\ No newline at end of file +sourdough pretzel rolls - zettel.thermokar.st

sourdough pretzel rolls

ingredients and supplies

dough

  • 2/3c + 3T warm water
  • 1T yeast
  • 1c sourdough starter (based on 1:1 water-to-flour ratio)
  • 4T olive oil
  • 2t sugar
  • 2t salt
  • 4c + 3T flour

poaching solution

  • 8c to 10c boiling water
  • 1/4c baking soda

glaze and topping

  • 1 egg white
  • 1T cold water
  • pretzel salt to taste

tools

  • stand mixer
  • baking sheets
  • parchment paper
  • large wide pot for poaching
  • tongs
  • slotted spoon
  • brush
  • razor blade or sharp knife

instructions

dough

  • in stand mixer:
    • combine water and yeast
    • let sit for 5 to 10 minutes
    • to the foam add:
      • sourdough starter
      • olive oil
      • sugar
      • salt
      • flour
    • mix until smooth, dough will likely be slightly dry
  • cover and let rise in a warm place until doubled in volume (1-2 hours typically)

shaping

  • line baking sheets with parchment paper
  • divide dough in 18 equal portions
  • form each portion into a tight ball by roughly shaping, then pulling dough down to the underside of the ball repeatedly
    • the dry surface should form a taught skin
    • make sure the bottom is crimped and sealed with no creases
  • cover and let rest ~30 minutes

poaching

  • while resting, boiling water for poaching solution, add to poaching pot
  • wait to add the baking soda until you’re ready to poach
  • before poaching, preheat the oven to 425F (this can take a while)
  • poach the rolls
    • put a few rolls (~4) into the solution, right-side up
    • poach bottoms for 30 seconds (this helps seal any remaining creases)
    • using tongs, flip each roll right-side down
    • poach tops for 30 seconds
    • using a slotted spoon, remove each roll and place back on baking sheet

baking

  • prepare the glaze
    • mix egg white and cold water
  • brush glaze onto the rolls
    • apply liberally
    • coat the sides, too
  • slice a deep x into the top of each roll
  • sprinkle with pretzel salt to taste
  • place baking sheets in center of preheated oven
  • bake for 15-20 minutes, until golden brown
  • allow to cool

notes

  • the instructions are meant to be followed sequentially
  • c: cup, T: tablespoon, t: teaspoon
  • block out a bit of time for this
  • this recipe is easily doubled, no adjustments necessary, just *2
  • be prepared to make a mess when poaching
  • they will be pretty ugly post-poaching
  • you can’t really slice too deep
  • the order matters - don’t slice and then glaze - the glaze will likely seal the top shut
  • start baking as soon as you slice
\ No newline at end of file diff --git a/92598822.html b/92598822.html index d2d71b1..890cb7a 100644 --- a/92598822.html +++ b/92598822.html @@ -1,62 +1 @@ -self-hosted - zettel.thermokar.st
\ No newline at end of file +self-hosted - zettel.thermokar.st
\ No newline at end of file diff --git a/96fc3093.html b/96fc3093.html new file mode 100644 index 0000000..e392837 --- /dev/null +++ b/96fc3093.html @@ -0,0 +1,23 @@ +:read allows piping shell stdout into a buffer - zettel.thermokar.st

:read allows piping shell stdout into a buffer

:read !ls<CR>

for example:

041a1acc.md
+56653cb1.md
+73dcbcc7.md
+82ded935.md
+9227847e.md
+92598822.md
+96fc3093.md
+9b74f625.md
+9db45ab6.md
+aab45963.md
+acc60422.md
+b364352b.md
+b926d9bd.md
+c4e96daf.md
+d2e178e0.md
+da69e0f5.md
+dc879f80.md
+ec21e3f5.md
+ec672cb5.md
+fa6a31b4.md
+index.md
+neuron.dhall
+static
\ No newline at end of file diff --git a/9b74f625.html b/9b74f625.html index 3965f7f..8b73eea 100644 --- a/9b74f625.html +++ b/9b74f625.html @@ -1,62 +1 @@ -software - zettel.thermokar.st
\ No newline at end of file +software - zettel.thermokar.st
\ No newline at end of file diff --git a/9db45ab6.html b/9db45ab6.html index d6324b0..d4adc42 100644 --- a/9db45ab6.html +++ b/9db45ab6.html @@ -1,66 +1 @@ -focus requires a rigorous contract - zettel.thermokar.st

focus requires a rigorous contract

Balancing many disparate tasks is good for my morale (“Wow! If I get bored with this one thing, I can just do something else!”), but feeling “behind” is most decidedly not good for my morale. Timeblocking and scheduling are great, but they require discipline. I like to think that I am effectively entering into a short-term contract with myself. If the terms aren’t clear, the chances of failure go up (significantly). Interestingly, I think this scenario represents a conflict of interest: I am basically the party responsible for monitoring that contract, as well as the one actually executing the work.

Besides having a clear plan (a statement of work) I think the next biggest concern involves distractions. In my experience, you can’t get rid of distractions, but you can be judicious about what distractions you choose to entertain. That gets to the same end-goal of choosing when to focus on distractions, but puts a different emphasis on the problem.

The “hard” part (to me) is that developing the intuition of what to do (and when) is much easier said than done. Maybe because it is a constantly moving target?

\ No newline at end of file +focus requires a rigorous contract - zettel.thermokar.st

focus requires a rigorous contract

Balancing many disparate tasks is good for my morale (“Wow! If I get bored with this one thing, I can just do something else!”), but feeling “behind” is most decidedly not good for my morale. Timeblocking and scheduling are great, but they require discipline. I like to think that I am effectively entering into a short-term contract with myself. If the terms aren’t clear, the chances of failure go up (significantly). Interestingly, I think this scenario represents a conflict of interest: I am basically the party responsible for monitoring that contract, as well as the one actually executing the work.

Besides having a clear plan (a statement of work) I think the next biggest concern involves distractions. In my experience, you can’t get rid of distractions, but you can be judicious about what distractions you choose to entertain. That gets to the same end-goal of choosing when to focus on distractions, but puts a different emphasis on the problem.

The “hard” part (to me) is that developing the intuition of what to do (and when) is much easier said than done. Maybe because it is a constantly moving target?

\ No newline at end of file diff --git a/CNAME b/CNAME deleted file mode 100644 index 7c5d646..0000000 --- a/CNAME +++ /dev/null @@ -1 +0,0 @@ -zettel.thermokar.st diff --git a/README.html b/README.html new file mode 100644 index 0000000..6d7126b --- /dev/null +++ b/README.html @@ -0,0 +1 @@ +README - zettel.thermokar.st
\ No newline at end of file diff --git a/aab45963.html b/aab45963.html index 323c4ce..ba6d8e9 100644 --- a/aab45963.html +++ b/aab45963.html @@ -1,62 +1 @@ -the matrix ecosystem - zettel.thermokar.st

the matrix ecosystem

matrix protocol

  • open spec: decentralised conversation store
  • end-to-end encryption
  • federated: a lot like email
  • you sign up for an acct on a homeserver (could be public, private, etc)
  • just like email, that acct can communicate with any other acct, regardless of their homeserver
  • bridges: glues multiple non-matrix services together: facebook chat, sms, etc

setting up a homeserver

https://github.com/spantaleev/matrix-docker-ansible-deploy

  • subdomain config seems to be pretty hard-coded
\ No newline at end of file +the matrix ecosystem - zettel.thermokar.st

the matrix ecosystem

matrix protocol

  • open spec: decentralised conversation store
  • end-to-end encryption
  • federated: a lot like email
  • you sign up for an acct on a homeserver (could be public, private, etc)
  • just like email, that acct can communicate with any other acct, regardless of their homeserver
  • bridges: glues multiple non-matrix services together: facebook chat, sms, etc

setting up a homeserver

https://github.com/spantaleev/matrix-docker-ansible-deploy

  • subdomain config seems to be pretty hard-coded
\ No newline at end of file diff --git a/acc60422.html b/acc60422.html index 33081d1..c1c78a8 100644 --- a/acc60422.html +++ b/acc60422.html @@ -1,63 +1 @@ -practices - zettel.thermokar.st
\ No newline at end of file +practices - zettel.thermokar.st
\ No newline at end of file diff --git a/b364352b.html b/b364352b.html new file mode 100644 index 0000000..90580e8 --- /dev/null +++ b/b364352b.html @@ -0,0 +1 @@ +use c instead of deleting and inserting in visual mode - zettel.thermokar.st

use c instead of deleting and inserting in visual mode

Using the c change action in visual mode is very convenient! For some reason I often neglect that action when operating in visual mode, instead opting for two actions: delete and insert. This seems like a habit worth breaking!

\ No newline at end of file diff --git a/b926d9bd.html b/b926d9bd.html index 2f05ca8..efd73bd 100644 --- a/b926d9bd.html +++ b/b926d9bd.html @@ -1,62 +1 @@ -vim - zettel.thermokar.st
\ No newline at end of file +vim - zettel.thermokar.st
\ No newline at end of file diff --git a/c4e96daf.html b/c4e96daf.html index 772c9c0..4e12d24 100644 --- a/c4e96daf.html +++ b/c4e96daf.html @@ -1,68 +1,6 @@ -adding a new user account on a linux system - zettel.thermokar.st

adding a new user account on a linux system

adduser $USER
-usermod -aG sudo $USER
-# if account requires password-less elevation:
-sudo visudo  # add an entry like: $USER ALL=(ALL) NOPASSWD:ALL
-# confirm that the account works as expected
-su - $USER
-
\ No newline at end of file +adding a new user account on a linux system - zettel.thermokar.st

adding a new user account on a linux system

adduser $USER
+usermod -aG sudo $USER
+# if account requires password-less elevation:
+sudo visudo  # add an entry like: $USER ALL=(ALL) NOPASSWD:ALL
+# confirm that the account works as expected
+su - $USER
\ No newline at end of file diff --git a/cache.json b/cache.json new file mode 100644 index 0000000..888a518 --- /dev/null +++ b/cache.json @@ -0,0 +1 @@ +{"Graph":{"adjacencyMap":{"041a1acc":{"c4e96daf":["cf",[]]},"fa6a31b4":{},"19172b64":{},"92598822":{"041a1acc":["folge",[]],"aab45963":["folge",[]]},"dc879f80":{"9db45ab6":["cf",[]]},"README":{},"b364352b":{},"9227847e":{},"ec21e3f5":{},"d2e178e0":{},"96fc3093":{},"9db45ab6":{},"b926d9bd":{"fa6a31b4":["folge",[]],"19172b64":["folge",[]],"b364352b":["folge",[]],"ec21e3f5":["folge",[]],"d2e178e0":["folge",[]],"96fc3093":["folge",[]],"da69e0f5":["folge",[]],"82ded935":["folge",[]],"56653cb1":["folge",[]],"73dcbcc7":["folge",[]],"ec672cb5":["folge",[]]},"da69e0f5":{},"aab45963":{},"9b74f625":{"92598822":["folge",[]],"b926d9bd":["folge",[]],"c4e96daf":["folge",[]]},"82ded935":{},"56653cb1":{},"acc60422":{"dc879f80":["folge",[]],"9db45ab6":["folge",[]]},"index":{"041a1acc":["cf",[]],"dc879f80":["cf",[]],"9227847e":["cf",[]],"9db45ab6":["cf",[]],"aab45963":["cf",[]]},"c4e96daf":{},"73dcbcc7":{},"ec672cb5":{}},"vertices":{"041a1acc":{"Path":"./041a1acc.md","Slug":"041a1acc","Date":"2020-12-10T13:22","ID":"041a1acc","Meta":{"date":"2020-12-10T13:22","tags":["notes","software","timeline"]},"Title":"a self-hosted git stack"},"fa6a31b4":{"Path":"./fa6a31b4.md","Slug":"fa6a31b4","Date":"2021-03-10T07:40","ID":"fa6a31b4","Meta":{"date":"2021-03-10T07:40","tags":["vim"]},"Title":"replace mode"},"19172b64":{"Path":"./19172b64.md","Slug":"19172b64","Date":"2021-03-14T15:48","ID":"19172b64","Meta":{"date":"2021-03-14T15:48","tags":["vim"]},"Title":"specifying a range when running a ! shell command filters"},"92598822":{"Path":"./92598822.md","Slug":"92598822","ID":"92598822","Meta":{"tags":[]},"Title":"self-hosted"},"dc879f80":{"Path":"./dc879f80.md","Slug":"dc879f80","Date":"2021-01-29T12:00","ID":"dc879f80","Meta":{"date":"2021-01-29T12:00","tags":["practices","productivity","timeline"]},"Title":"how i stay (somewhat) organized"},"README":{"Path":"./static/README.md","Slug":"README","ID":"README","Meta":{"tags":[]},"Title":"README"},"b364352b":{"Path":"./b364352b.md","Slug":"b364352b","Date":"2021-03-10T18:41","ID":"b364352b","Meta":{"date":"2021-03-10T18:41","tags":["vim"]},"Title":"use c instead of deleting and inserting in visual mode"},"9227847e":{"Path":"./9227847e.md","Slug":"9227847e","Date":"2020-11-22T11:18","ID":"9227847e","Meta":{"date":"2020-11-22T11:18","tags":["bread","recipe","timeline"]},"Title":"sourdough pretzel rolls"},"ec21e3f5":{"Path":"./ec21e3f5.md","Slug":"ec21e3f5","Date":"2021-03-14T14:29","ID":"ec21e3f5","Meta":{"date":"2021-03-14T14:29","tags":["vim"]},"Title":"the copy command doesn’t use a register"},"d2e178e0":{"Path":"./d2e178e0.md","Slug":"d2e178e0","Date":"2021-03-14T14:34","ID":"d2e178e0","Meta":{"date":"2021-03-14T14:34","tags":["vim"]},"Title":"the :normal command runs normal commands on multiple lines"},"96fc3093":{"Path":"./96fc3093.md","Slug":"96fc3093","Date":"2021-03-14T15:23","ID":"96fc3093","Meta":{"date":"2021-03-14T15:23","tags":["vim"]},"Title":":read allows piping shell stdout into a buffer"},"9db45ab6":{"Path":"./9db45ab6.md","Slug":"9db45ab6","Date":"2020-11-09T16:48","ID":"9db45ab6","Meta":{"date":"2020-11-09T16:48","tags":["practices","productivity","timeline"]},"Title":"focus requires a rigorous contract"},"b926d9bd":{"Path":"./b926d9bd.md","Slug":"b926d9bd","ID":"b926d9bd","Meta":{"tags":[]},"Title":"vim"},"da69e0f5":{"Path":"./da69e0f5.md","Slug":"da69e0f5","Date":"2021-03-14T15:16","ID":"da69e0f5","Meta":{"date":"2021-03-14T15:16","tags":["vim"]},"Title":" in command mode will insert the word under the cursor in the cmd"},"aab45963":{"Path":"./aab45963.md","Slug":"aab45963","Date":"2020-12-08T10:29","ID":"aab45963","Meta":{"date":"2020-12-08T10:29","tags":["notes","software","timeline"]},"Title":"the matrix ecosystem"},"9b74f625":{"Path":"./9b74f625.md","Slug":"9b74f625","ID":"9b74f625","Meta":{"tags":[]},"Title":"software"},"82ded935":{"Path":"./82ded935.md","Slug":"82ded935","Date":"2021-03-14T14:12","ID":"82ded935","Meta":{"date":"2021-03-14T14:12","tags":["vim"]},"Title":"command mode ranges based on patterns"},"56653cb1":{"Path":"./56653cb1.md","Slug":"56653cb1","Date":"2021-03-10T07:38","ID":"56653cb1","Meta":{"date":"2021-03-10T07:38","tags":["vim"]},"Title":"the expression register"},"acc60422":{"Path":"./acc60422.md","Slug":"acc60422","ID":"acc60422","Meta":{"tags":[]},"Title":"practices"},"index":{"Path":"./index.md","Slug":"index","ID":"index","Meta":{"tags":[]},"Title":"index"},"c4e96daf":{"Path":"./c4e96daf.md","Slug":"c4e96daf","Date":"2020-12-13T16:43","ID":"c4e96daf","Meta":{"date":"2020-12-13T16:43","tags":["admin","server","tech"]},"Title":"adding a new user account on a linux system"},"73dcbcc7":{"Path":"./73dcbcc7.md","Slug":"73dcbcc7","Date":"2021-03-14T15:15","ID":"73dcbcc7","Meta":{"date":"2021-03-14T15:15","tags":["vim"]},"Title":" in command mode presents an auto-completion list"},"ec672cb5":{"Path":"./ec672cb5.md","Slug":"ec672cb5","Date":"2021-03-14T15:19","ID":"ec672cb5","Meta":{"date":"2021-03-14T15:19","tags":["vim"]},"Title":"q: opens the command history window"}}},"NeuronVersion":"1.9.25.0","Config":{"editUrl":"https://github.com/thermokarst/zettel/edit/main/","plugins":["neuronignore","links","tags","uptree","feed"],"siteBaseUrl":"https://zettel.thermokar.st","author":"Matthew Ryan Dillon","siteTitle":"zettel.thermokar.st","theme":"black"},"Errors":{}} \ No newline at end of file diff --git a/d2e178e0.html b/d2e178e0.html new file mode 100644 index 0000000..107ec29 --- /dev/null +++ b/d2e178e0.html @@ -0,0 +1 @@ +the :normal command runs normal commands on multiple lines - zettel.thermokar.st

the :normal command runs normal commands on multiple lines

The :normal command is a useful way to run the same Normal mode command on multiple lines.

:%normal i# <CR>

The command above will comment out an entire Python source file.

\ No newline at end of file diff --git a/da69e0f5.html b/da69e0f5.html new file mode 100644 index 0000000..aeffa58 --- /dev/null +++ b/da69e0f5.html @@ -0,0 +1 @@ +<C-r><C-w> in command mode will insert the word under the cursor in the cmd - zettel.thermokar.st

<C-r><C-w> in command mode will insert the word under the cursor in the cmd

\ No newline at end of file diff --git a/dc879f80.html b/dc879f80.html index 94432c3..6122d66 100644 --- a/dc879f80.html +++ b/dc879f80.html @@ -1,64 +1 @@ -how i stay (somewhat) organized - zettel.thermokar.st

how i stay (somewhat) organized

Right now this is just a draft outline, ideally I will circle back on this some time this year to fill in some more details.

  • Tools
    • Notebook
      • Right now this is actually just half-letter-page (5.5 inches × 8.5 inches) sheets on a similarly sized clipboard + pen.
      • Pre-printed time block pages: four columns (for amending schedule) + twenty-two 30min rows.
      • Blank pages for logging daily notes, observations, and ideas.
        • I use some elements of bullet journaling for this:
          • I love the bullet syntax, so I use that often (and a homegrown shorthand).
          • I migrate tasks from page to page, but don’t follow any of the weekly/monthly/yearly migrations.
          • The second or third time a task is migrated, I move this task over to my digital planner app (more below).
          • Reflection happens ideally once a day, but more like 2 or 3 times a week.
      • Periodically I clear out the clipboard to archive older sheets that I won’t need to update - these get scanned and put into a per-annum PDF document that is synced to my phone and computer.
    • Calendar
      • I check my digital calendar multiple times a day: I use this to communicate shared calendar events with team members, as well as personal events, deadlines, etc.
    • Home-grown todoist clone
      • Repo: git://pingo.thermokar.st/planner
      • Live: https://planner.thermokar.st (access restricted)
      • Structure
        • This planner is modeled after GTD practices and features an inbox, and the ability to categorize tasks into one or more “plans” (plans can be a project, a specific day/week/events todo list, an issue tracker, etc).
  • Routines
    • Daily
      • I triage notifications first thing in the morning (no more than 30 mins).
        • Note, I might move away from this: I would prefer to handle that kind of stuff midday if possible.
      • Timeblock the day’s schedule (see: focus requires a rigorous contract), incorporating prior engagements, any urgent ad hoc tasks, and the week’s goals (more below).
        • If I fall behind or something unexpected comes up, I update the timeblock schedule when I get a chance.
    • Weekly
      • Before each week starts I try to identify a few high-level goals for the week, and figure out (broadly) how they might fit into my schedule, but I don’t worry too much about specific scheduling at this point, just something like “Wednesday would be a good day to carve out time for this…”
    • Long-term
      • My calendar handles big things like major work milestones, deadlines, appointments, meetings, etc.
      • Tasks go into my planner app, I review these 3-5 times a month on average to see how they might fit into what is coming up next, etc. Really long-term tasks get filed into an @someday plan.
\ No newline at end of file +how i stay (somewhat) organized - zettel.thermokar.st

how i stay (somewhat) organized

Right now this is just a draft outline, ideally I will circle back on this some time this year to fill in some more details.

  • Tools
    • Notebook
      • Right now this is actually just half-letter-page (5.5 inches × 8.5 inches) sheets on a similarly sized clipboard + pen.
      • Pre-printed time block pages: four columns (for amending schedule) + twenty-two 30min rows.
      • Blank pages for logging daily notes, observations, and ideas.
        • I use some elements of bullet journaling for this:
          • I love the bullet syntax, so I use that often (and a homegrown shorthand).
          • I migrate tasks from page to page, but don’t follow any of the weekly/monthly/yearly migrations.
          • The second or third time a task is migrated, I move this task over to my digital planner app (more below).
          • Reflection happens ideally once a day, but more like 2 or 3 times a week.
      • Periodically I clear out the clipboard to archive older sheets that I won’t need to update - these get scanned and put into a per-annum PDF document that is synced to my phone and computer.
    • Calendar
      • I check my digital calendar multiple times a day: I use this to communicate shared calendar events with team members, as well as personal events, deadlines, etc.
    • Home-grown todoist clone
      • Repo: git://pingo.thermokar.st/planner
      • Live: https://planner.thermokar.st (access restricted)
      • Structure
        • This planner is modeled after GTD practices and features an inbox, and the ability to categorize tasks into one or more “plans” (plans can be a project, a specific day/week/events todo list, an issue tracker, etc).
  • Routines
    • Daily
      • I triage notifications first thing in the morning (no more than 30 mins).
        • Note, I might move away from this: I would prefer to handle that kind of stuff midday if possible.
      • Timeblock the day’s schedule (see: focus requires a rigorous contract), incorporating prior engagements, any urgent ad hoc tasks, and the week’s goals (more below).
        • If I fall behind or something unexpected comes up, I update the timeblock schedule when I get a chance.
    • Weekly
      • Before each week starts I try to identify a few high-level goals for the week, and figure out (broadly) how they might fit into my schedule, but I don’t worry too much about specific scheduling at this point, just something like “Wednesday would be a good day to carve out time for this…”
    • Long-term
      • My calendar handles big things like major work milestones, deadlines, appointments, meetings, etc.
      • Tasks go into my planner app, I review these 3-5 times a month on average to see how they might fit into what is coming up next, etc. Really long-term tasks get filed into an @someday plan.
\ No newline at end of file diff --git a/ec21e3f5.html b/ec21e3f5.html new file mode 100644 index 0000000..1480c5d --- /dev/null +++ b/ec21e3f5.html @@ -0,0 +1 @@ +the copy command doesn’t use a register - zettel.thermokar.st

the copy command doesn’t use a register

The copy command doesn’t use a register. This is useful for not overwriting the current value in the default register - you might not need to run the copy command, but it might help keep your registers clean.

\ No newline at end of file diff --git a/ec672cb5.html b/ec672cb5.html new file mode 100644 index 0000000..78fe225 --- /dev/null +++ b/ec672cb5.html @@ -0,0 +1 @@ +q: opens the command history window - zettel.thermokar.st

q: opens the command history window

q: opens the command history window. When this window is open, it maintains exclusive focus.

\ No newline at end of file diff --git a/fa6a31b4.html b/fa6a31b4.html index 8e26e34..72c4460 100644 --- a/fa6a31b4.html +++ b/fa6a31b4.html @@ -1,66 +1 @@ -replace mode - zettel.thermokar.st

replace mode

From Normal mode, R activates Replace mode, which behaves a lot like Insert mode, except that it allows you to effectively type over existing content. This is different from r, which is a single character replacement (ending back in Normal mode) - R requires you to deliberately exit back to Normal mode.

\ No newline at end of file +replace mode - zettel.thermokar.st

replace mode

From Normal mode, R activates Replace mode, which behaves a lot like Insert mode, except that it allows you to effectively type over existing content. This is different from r, which is a single character replacement (ending back in Normal mode) - R requires you to deliberately exit back to Normal mode.

\ No newline at end of file diff --git a/impulse.html b/impulse.html new file mode 100644 index 0000000..e426b02 --- /dev/null +++ b/impulse.html @@ -0,0 +1 @@ +Impulse - zettel.thermokar.st \ No newline at end of file diff --git a/index.html b/index.html index dfaa2ff..973d8fa 100644 --- a/index.html +++ b/index.html @@ -1,63 +1 @@ -index - zettel.thermokar.st
\ No newline at end of file +index - zettel.thermokar.st
\ No newline at end of file diff --git a/search.html b/search.html deleted file mode 100644 index 3c13a8b..0000000 --- a/search.html +++ /dev/null @@ -1,98 +0,0 @@ -Search - zettel.thermokar.st

Search

    \ No newline at end of file diff --git a/z-index.html b/z-index.html deleted file mode 100644 index 7b3c8bb..0000000 --- a/z-index.html +++ /dev/null @@ -1,62 +0,0 @@ -Zettel Index - zettel.thermokar.st \ No newline at end of file