Showing posts with label calendars. Show all posts
Showing posts with label calendars. Show all posts

Thursday, July 02, 2026

Reunited and It Feels So Good AKA What To Do When You Lose Your Bullet Journal

(Look what they did to my beautiful boy (they sent him back to me, safe and sound and with a fast, simple process))

And but so but I've done some ~Bullet Journaling~ for the past decade or so*, and for the first time I've recently had to confront a new to me problem: What do you do when your "put everything here" repository ... isn't ... here?

The premise of the Bullet Journal for me is that the one notebook is where I can, should, and do put everything.  As Darren Bauler once said to me, "I just want to put everything in one place, if I have too many projects, I spend too much time worrying about what thing I make goes in what bucket, which distracts me from making things."  Or as the book has it: "The idea is to be consistently unburdening your mind.  It will be able to rest assured, knowing that everything is safely recorded in your notebook." (Carroll 86)

I use most of the canonical collections: daily log; monthly log; future log.  Mostly I use these in the absolutely stock version from the original videos and book. Even that version had a little too much "mindfulness" and process for me,so I have mostly not followed the more recent iterations, which seem to be first evolving into a (n even) more self-helpy place, with "write your life" (?) replacing "your life's operating system" (???) and subsquently offending some folks by pulling a lot of material down and stashing it securely behind a paywall.

I mention these core collections and the way I use them to highlight two things:

  1. I use this 'sucker every single day (the daily log), and
  2. I put basically all of my scheduling thoughts into it (this month's monthly log or the future log); and
It turns out that those two things combine to mean that the absence of the physical journal was nearly paralyzing.  I didn't want to plan, or to think about planning, my days, weeks, months or year for the first couple days.

Eventually I grabbed an old Field Notes and at least got back to daily logging, which had the desired effect of "unburden"ing my mind a bit and helping me hold the day-to-day more or less steadily on course.  But still I noticed a kind of stasis, an unwillingness to cut bait and start a new notebook; I ended up holding in a sort of abeyance any and all plans more than a couple days out.  I felt like I was a little bit in limbo, and it didn't feel great.

As I draft this, it's June 30, and the great folks at Alaska Airlines have, as of yesterday, reunited me with the Traveler's I'd left on an airplane some two weeks before!**  I plan to spend a chunk of my evening patching the holes in it left by my couple weeks without it and un-stuck-ing myself by doing some planning; making my monthly log for July and updating the future log as needed.

But I think it's also going to be worth reflecting a bit on the not-great quality of dependence I feel about this tool.  After all, the point of a tool is to increase capacity when you use it, not to remove capacity when you can't use it.

I will also be thinking a bit about NOT LEAVING MY FUCKING NOTEBOOK AND TWO FAVORITE PENS ON THE GOD DAMNED AIR PLANE.***

* It would take some digging to figure out exactly when. Certainly I had adopted the notions of collections by early 2019, and I read the early round of publicity the method got, even tho at the time I was more a hipster PDA guy, due mainly to my depraved lust enthusiasm for binder clips.

What I can't immediately determine is when I started daily logging. It's at least possible that I actually started daily logging as a work thing (thus, in notebooks that are jobs ago and long gone) and only later brought it home. Hard to say and boy do I not feel like going through that shelf just at the moment to figure it out.

** Perhaps more importantly, Alaska lost and found has reunited me with all the stuff that was crammed into the notebook, especially and most notably two of my very favorite pens, both gifts from Noodles, my beloved Caran d'Ache 849 and Kaweco Liliput. The lost and found crew—or the journey the notebook went on—did break one pen, but I think I managed to glue it back together, so that's a small price to pay. That they used the built-in elastic band to close the notebook up—vertically, not horizontally—I will forgive, even though I never, ever use the band, either properly or, as they did, improperly, because it's a good sign that there's something lightly wrong with the cueing the tool gives you, if you can put it on wrong and are led to do so. It's a lesson, you see.

*** In the spirit of full disclosure: This only occurred to me at 8:30 p.m. on July 2.

Monday, December 21, 2020

Write Down What You Need to Do: On a Calendar, Maybe

About a million years ago, before I listened to The Best Show, even, I read Tom Scharpling's rules for getting creative work done.

1. DO THE WORK. Can you look yourself in the mirror at the end of the day and say that you did the best you could?
2. BE THE BEST POSSIBLE VERSION OF YOURSELF. Don’t shortchange yourself or pull your punches because of some internal negative voice!
3. WRITE DOWN WHAT YOU NEED TO DO. It helps. Do those three things and you’ll be more alright than not.

These have stuck with me for a long time, perhaps none more than No. 3 there. (No. 1 and No. 3 jockey for the lead spot over time.) It occurs to me now that my interest in calendars, notebooks, and complicated to-do lists, automated computationally can all be seen as variations on Scharpling's Third Rule.

So's anyways, here is this year's spin on David Malki's devastatingly simple and useful "progressive calendar", a similarly break-free and formatting-light you can print out, look at, and use it as a place to write down what you need to do, along with when you need to do it.

Saturday, November 14, 2020

Vim (for non-programmers) Section DCLXVI: Automating Making a To-List and Crossing Off Make a To-Do List on Your To-Do List Automatically

Vim (for non-programmers) Section DCLXVI: Automating Making a To-List and Crossing Off Make a To-Do List on Your To-Do List Automatically OR So...I wrote a thing...the thing is a plugin, sort of

Where notebooks and calendars and computers meet is ... well, lots of different places. But one place they meet is at work. Thus it did come to pass that I felt the need to take a daily notebook calendaring exercise and turn it into something that could be replicated on my computer. Which brings us to a thing I wrote, entitled "todotxt.vim", a "plugin" for the Vim text editor, which promises little and delivers less.

As it says in the help file I wrote (lol):

When I start work each day, it makes sense for me to:
  1. Start a new page in my work notebook for that day
  2. List my meetings for the day (at the top of the page, in order)
  3. List my tasks for the day (to use the page efficiently, I populate the tasks starting at the bottom of the page, but I don't generally order them or worry about grouping or managing them)
This plugin creates a digital version of that page of my notebook, with a new file for each day.

The premise of the plugin is that a list of the things you have to do is a good thing to have. The list might as well be in plain text, so you can look at it on pretty much any device, and if it's in plain text, I might as well be able to use the fancy special features of my favorite text editing program, Vim to edit it. I find it helpful to be able to look back and see what I did on a given day, so a big piece of the "functionality" involves knowing what day it is and making a special file for that day. Since I don't always finish everything I want to do on a given day (lol), another big piece of the "functionality" involves looking at a specified previous day and pulling the un-done tasks from that day to the current day. There's also a tiny bit of attention paid to making it look quasi-nice (using Vim's syntax formatting).

Anyway, if you want to try this, there's a link to the files here:

And while the file itself is more or less definitive, and can be read in a text editor by clicking here, the help file may be more illustrative, so I have pasted it in below. Sorry about the formatting below. If you hate it, click the link, I guess. NOTE: where it says something like \tadd you should replace \ with leader in angle brackets.

*todotxt.txt* for Vim version 7.4 and greater Last change: 2020 Nov 4

Adds limited functionality and syntax highlighting for plain-text to-do files
accessed in Vim.

================================================================================
CONTENTS *todotxtcontents*

1. Introduction ................ |todotxt-introduction|
2. Installation ................ |todotxt-installation|
3. Usage ....................... |todotxt-usage|
4. Mappings .................... |todotxt-mappings|
5. Configuration ............... |todotxt-config|
6. License ..................... |todotxt-license|
7. Bugs, Version, and To-Dos ... |todotxt-bugs|
8. Contributing ................ |todotxt-contributing|
9. Changelog ................... |todotxt-changelog|
10. Credits .................... |todotxt-credits|


================================================================================
Section 1: Introduction *todotxt-introduction*

This is a very simple plugin for creating, using, updating, and (very very
lightly) tracking to-do files in plain text. Syntax highlighting and a few
mappings make the to-do list easier to look at and easier to use.

The basic idea is to start your workday with a file that has the following in
it:


By default, when the empty file is loaded at the beginning of the day, the
plugin will ask if there is a previous file to check for tasks that are not
marked as done. This will usually be the previous workday's file. If the
specified file has tasks not marked as done, those tasks will be added to the
current day's file, along the lines of the following.

+--------------------------------------------------------------------+
| # Today's Date |
| # Meetings |
| |
| --- |
| |
| # Tasks |
| |
| - [ ] McDonalds 2020-11-04 |
+--------------------------------------------------------------------+

To add a task, use \tadd to enter a date-stamped task on the line under
the cursor along the following lines.

+--------------------------------------------------------------------+
| # Today's Date |
| # Meetings |
| |
| --- |
| |
| # Tasks |
| |
| - [ ] McDonalds 2020-11-04 |
| - [ ] Eat Hot Chip 2020-11-05 |
+--------------------------------------------------------------------+

More tasks can be added to the line under the cursor.

+--------------------------------------------------------------------+
| # Today's Date |
| # Meetings |
| |
| --- |
| |
| # Tasks |
| |
| - [ ] McDonalds 2020-11-04 |
| - [ ] Eat Hot Chip 2020-11-05 |
| - [ ] Charge Phone 2020-11-05 |
| - [ ] Lie 2020-11-05 |
+--------------------------------------------------------------------+

Meetings work similarly, but instead of a datestamp that is added
automatically, meetings ask you to enter a time. Once added, it looks
something like the following. The command for this is \madd.

+--------------------------------------------------------------------+
| # Today's Date |
| # Meetings |
| - [ ] Twerk Noonish? |
| |
| --- |
| |
| # Tasks |
| |
| - [ ] McDonalds 2020-11-05 |
| - [ ] Eat Hot Chip 2020-11-05 |
| - [ ] Charge Phone 2020-11-05 |
| - [ ] Lie 2020-11-05 |
+--------------------------------------------------------------------+

Adding tasks and meetings manually can be done throughout the day.

To make a file for the day, \logit is used. This will create a file
with a datestamp in the filename for easy sorting, and to make it simple to
pull the undone tasks from earlier files.

To mark a meeting or task as done, put the cursor on the line of the meeting
or task and enter \done. This will have an effect like the following.

+--------------------------------------------------------------------+
| # Today's Date |
| # Meetings |
| - [ ] Twerk Noonish? |
| |
| --- |
| |
| # Tasks |
| |
| - [X] McDonalds 2020-11-05 |
| - [ ] Eat Hot Chip 2020-11-05 |
| - [X] Charge Phone 2020-11-05 |
| - [X] Lie 2020-11-05 |
+--------------------------------------------------------------------+

Sometimes a meeting will be cancelled or you will decide to not do a task in a
way you want to document (and not carry the task forward to future days). To
do this, enter the command \skip, which will have an effect like the
following.

+--------------------------------------------------------------------+
| # Today's Date |
| # Meetings |
| |
| |
| --- |
| |
| # Tasks |
| |
| - [X] McDonalds 2020-11-05 |
| - [ ] Eat Hot Chip 2020-11-05 |
| - [X] Charge Phone 2020-11-05 |
| - [X] Lie 2020-11-05 |
+--------------------------------------------------------------------+

This doesn't look very interesting in a help file, but the plugin uses
Markdown formatting to make list items and HTML comments -- like the skipped
meeting above -- visually distinctive. Since the meetings and tasks are added
on the line under the cursor, the line the cursor is on is also highlighted.

To-do-specific functions are mostly handled with mappings. Everything else
about the file is meant to be handled using Vim's built-in capabilities. For
more details, see the credits section.


================================================================================
Section 2: Installation *todotxt-installation*

I think this will work with Pathogen? I'm not sure: I don't use Pathogen.
What I would do is:
1. Put the todotxt.vim file somewhere in your plugins folder
2. Make a todo directory somewhere that makes sense to you
3. Add the following to your .vimrc file. >
augroup filetype_todo
autocmd!
autocmd BufNewFile */todotxt/*todo*.txt :source path/to/todotxt.vim
autocmd BufNewFile */todotxt/*todo*.txt :Todotxtstartup
augroup END
<

Or you could just dump the whole todotxt.vim file into your .vimrc...


================================================================================
Section 3: Usage *todotxt-usage*

This is an opinionated little plugin. It is based on a small set of (my)
practices and makes certain assumptions. If those practices and assumptions
don't work for you, this plugin is almost certainly not going to work for you
either (whether or not I've actually made it functional).

Practices: When I start work each day, it makes sense for me to:
1. Start a new page in my work notebook for that day
2. List my meetings for the day (at the top of the page, in order)
3. List my tasks for the day (to use the page efficiently, I populate the
tasks starting at the bottom of the page, but I don't generally order them or
worry about grouping or managing them)

This plugin creates a digital version of that page of my notebook, with a new
file for each day.

Assumptions:
1. You want to do something (very) like the practices above
2. You want to use Vim to edit to-do files
3. You're okay managing your own files

The way todotxt.txt expects you to use it is:
1. Each day, use the command line to tell Vim to create a file with "todo"
(without the quotes) in its filename and the extension .txt in a folder with
"todo" (without the quotes) in its path
2. Tell todotxt.txt to import undone tasks from a specified previous day (or,
in a very special situation, a lot of days)
3. Add your meetings and tasks over the course of the day
4. Mark meetings and tasks done over the course of the day
5. Save a copy of the list for reference later
6. Repeat 1-5 the next day
7. Every so often (once a month would make a lot of sense) move all the old
daily files into a sub-folder

To make 2, 3, 4, and 5 easier, there are mappings. To make the file easier to
look at, it uses syntax highlighting. That's it. That's all it does. It
should save you some typing of items from day-to-day if on Day 2, you have
some tasks you didn't complete on Day 1, and it should look better than a raw
text file. Otherwise, you're on your own.


================================================================================
Section 4: Mappings *todotxt-mappings*

This is kind of the meat of the plugin, in a weird way. Of course, if you're
a Vim user looking for plugins, you probably have a ton of your own mappings,
which is a problem, because I cannot for the life of me figure out all the
things I'm supposed to do to make sure this plugin's mappings aren't going to
clobber yours. Sorry. To make things easier, I've listed them all below. To
make things less dangerous, I've made them all pretty long.

Type: To: ~
\tadd Add a new task
\madd Add a new meeting
\done Mark a task or meeting accomplished
\skip Mark a meeting or task skipped
\logit Write a file with the current date in the filename
\grabit Pull in undone things from a specified file
\graball Pull in undone things from all files in the folder

graball is meant for big clean-up jobs and should rarely be used. All others
are meant for use daily (logit) or more often (tadd, madd, done, skip). grabit
fires automatically when you open the file, but can be used to add days one at
a time, if needed.


================================================================================
Section 5: Configuration *todotxt-config*

There aren't configuration options at this time. If you want a different path
or a different filename or a different type of syntax highlighting, you can
edit the todotxt.vim file to suit your preferences (but don't blame me if
something goes wrong).


================================================================================
Section 6: License *todotxt-license*

This file is placed in the public domain. But you shouldn't use it if you
aren't literally me.


================================================================================
Section 7: Bugs *todotxt-bugs*

God, there are probably a million bugs. If you find one, shoot me an email at
cfcollision@gmail.com, please! If you fix it, that's even better.

I am having enormous trouble with the apparently important "avoid loading the
file multiple times per buffer" issue, so frequently you may need to manually
set filetype to markdown, and I have no idea why. It loads other shit, but
not the filetype setting and I cannot figure out why that might be. For now,
I just have the entire "1. Filetype Protections from usr_41.txt" section
commented out because I can't make it work properly.

Tasks and meetings are added under the cursor. This is a little clunky, but
since Vim makes it easy to put the cursor where we want it, we can accept this mild inconvenience.

Not a bug, but a behavior: "logit" will (a) overwrite any previous version of
the file you made that day and (b) silently enter the current day if you start
up todotxt.vim on one day but use "logitlogit" on a different day.

"skip" marks things done, so they do not carry over into following days. This
is deliberate, but may not be what you want. My usage is to use "skipskip" only
for meetings that were cancelled, not for tasks I have chosen to leave undone;
those, I would usually allow to carry forward to the next day (and the next
day's file) and simply delete if need be, or use "skipskip" and add a comment
about why I had left the task undone.

This is tested on my home laptop, running Ubuntu 16.4, and my work MacBook.
It has NOT been tested on any Windows machine and probably won't work on one.

This works on Vim version 7.4 on Ubuntu 16.4 and should work on newer
versions. I think it works on Vim version 8.0 on my work MacBook.

Todo:
1. Sorting tasks by datestamp would be pretty cool
2. Auto-sorting meetings by time would also be pretty cool
3. Getting gVim to work would also be sweet (setting pwd on BufNew or
something?)
4. Add menus?
5. Sweet README.md file?
6. Smart enough to check more than one file?
7. Sweep done tasks (but not meetings) to the bottom of the file and hide them
(comment them out or fold them?)
8. Cleverly fold the todotxt.vim file using blank lines?
9. Shortening everything so I could have a cal in there
10. Making long lines work better and not just let them scroll off
endlessly?

================================================================================
Section 8: Contributing *todotxt-contributing*

It is unlikely that this will be useful enough to any other human to merit any
contributions. If you tweak it to your liking, feel free to shoot me an
email about your tweak. If you are okay with me adopting your tweak, please
say so.


================================================================================
Section 9: Changelog *todotxt-changelog*

This document is for plugin version 0.2.1, first even potentially shareable
version, with broken stuff commented out.


================================================================================
Section 10: Credits *todotxt-credits*

This is inspired by three things:
1. Bullet journal practice
2. Hipster PDA practice (documentation here:
http://www.43folders.com/2004/09/03/introducing-the-hipster-pda_ )
3. Steve Losh's program t: "a command-line todo list manager for people who
want to FINISH tasks, not organize them" ... "it does the simplest thing that
could possibly work" ... "hacked together in a couple nights to fit my needs"
with more documentation available here:
https://stevelosh.com/projects/t/

The idea is to mirror in plain text files my particular implementation of
ideas adopted from bullet journaling and the hipster PDA. In particular:
1. Treating a day as a container for the stuff I have to do that day, not
distinguishing between tasks and meetings, because they are both things I have
to do on a given day
2. Devoting a page in a notebook to that day, so everything is available at a
glance
3. Marking things done when done
4. Carrying over things to the next day if they are not done

Losh's program did a lot of things I found interesting, especially with very
short commands to do useful things, but had certain features that didn't work
well for my needs, including a dependency on Python and a need to make
command-line aliases for things. His repeated comment "need to do something?
open it in a text editor" inspired me to harness Vim's capacities and make Vim
the home for the whole thing. Also I have one need his program does not allow
for, which is an occasional but very important need to document what I did on
a given day or set of days: this implies a daily log of some kind. Finally,
hell, sometimes I do want to organize my tasks, not finish them. (And a lot
of his functionality is built around preventing multiple users or computers
clobbering one file, which is not a need I have.)

So, I hacked something together over the course of a couple days, test-drove
it and amended it.

His way -- t -- is almost certainly better, and I encourage you to try it out
rather than muck around with this.

vim:tw=78:ts=8:ft=help:norl:

Previous entries in Vim (for non-programmers):

  1. Vim (for non-programmers) Chapter O (NOT 0), recipes which are quick and dirty, example six: Let's Make a Time-Stamped Log of Stuff We Read Online and Want to Have a List Of; Hey, Guess What? I Got a Lot of This from Chris Toomey (heart-eyes emoji)
  2. Vim (for non-programmers) Part Three: Refactoring my _vimrc File; Chapter Five: Correct Easy Link Addition (Correcting My Misreading of Steve Losh)
  3. Vim (for non-programmers) Part Three: Refactoring my .vimrc File, Chapter Five; Correct Easy Markup of Markdown Headlines (Building on Chris Toomey's "Your First Vim Plugin")
  4. Vim (for non-programmers) Chapter O (NOT 0), recipes which are quick and dirty, example two: Dumping Out the Recommendations from IDEOTVPod into One File

Monday, November 11, 2019

Just Another Calendarman-ic Monday

(Your author, coming at you with all the powers he gained after being bitten by a radioactive page-a-day Far Side calendar in middle school.)

I've been thinking on and off about calendars since about 2015. That was a busy year. I needed to juggle two big projects: one usually on alternate Sundays, one roughly every 10 days, all year long, these alongside all the other normal activities constituting everyday life (food, work, family, art, uprising, etc.), and it was difficult to do such juggling. What worked for me that year was to: print out Bram Moolenaar's fold-and-stand-up desk calendar and

  1. Circle my alternating-Sunday deadlines in red
  2. Circle the every-10-day deadlines in green
  3. Put it on my desk where I could see it

(Bram's yearly calendar. I recently discovered that this is pretty much the output of the Unix utility ncal with the -w flag! Unix can be pretty cool.)

It worked well for me! Obviously, this is not a tool that accepts a great deal of information, but for helping visualize a cadence of more or less regularly occurring events, it served effectively.

Over the next few years, unfortunately, the events to coordinate got less regular, less predictable, and probably more numerous. Bram Moolenaar's calendar stopped helping me organize things. That's whenDavid Malki stepped up. He has several long, interesting posts on calendars, and the high-end calendar he makes he is a beautiful, funny, and probably useful object. But what really fired my soul was his devastatingly simple "continuous calendar" idea1, just a year's worth of boxes organized by month, fitting on six pages of printer paper.

(Malki's simple calendar.)

One reason for my soul's resonance with this object is context: at my work, a very common activity to to grab a blank piece of butcher paper, sketch out a grid representing a month or so, and calendar out some events in / for / of / constituting a campaign. This simple template of Malki's saved the drawing-and-adding-dates steps, and I used it a few times in different campaigns to help visualize timelines, deadlines, and possible conflicts. It worked well.

What didn't work well was trying to use the template to help organize my life. I had a couple problems with what he had made:

  1. Squares too small to add significant information (70 squares on one 8.5x11 piece of paper is a lot)
  2. Shading to indicate a month makes it hard to to write on with, say, a black ballpoint pen, or a Sharpie®|Pen., or whatever
  3. I really hated having Saturday and Sunday at the end of the week: this was confusing because it meant that this calendar didn't match any other calendar I'd look at ever

So eventually I decided to stop being frustrated with a tool that didn't work for me. I decided to try to brew my own. I wanted bigger squares, I wanted weeks to start with Sundays, and I didn't want any shading. The best way to attain bigger squares seemed to be to move from portrait to landscape. I really liked Malki's insight about making the months flow into each other, so I kept that layout. I made a couple three-month templates and tested them, and they seemed to work the way I want them to work.

(My calendar looks like this. I like to mark it up with bill due-dates in red, and other notable things in black.)

If you would like to see if this tool will serve your purposes, you can download it and print it out and play with it. (Right now it runs from October 2019 through February 2021, so I recommend judicious use of the "print selected pages" function so as to save our mother the Earth from additional abuse.) If you find that you like using this tool, why not send David Malki a couple bucks: it was all his idea anyway! If you find that this tool doesn't work well for you, why not spend a little time figuring out why not, thinking about what you need, and go try to make something that will help you?

1 What's hilarious is that Malki uses a different term, not "continuous calendar":

progressive calendar

By that, I mean a calendar that doesn’t have any breaks between months. I think I invented the term? By that, I mean “nobody else has ever used this term.”
Evidently, he IS the only one to use the term. Since I use a different term, perhaps I ... invented the idea? (No, no clearly I didn't.) Anyway, this is a long digression prompted by my inability to remember what words he actually used.

(Your author's ambitions when it comes to calendars.)

(Bonus Venture Brothers content re: calendars.)