wj

command module
v0.0.0-...-b25d7c3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 8, 2023 License: MIT Imports: 1 Imported by: 0

README

wj

wj is a file format and command line tool for keeping a personal work journal. The .wj file format is text-based and easy to read and write using any text editor. The wj tool condenses useful metadata from .wj files.

wj follows a similar philosophy as clsr. Like clsr, wj was inspired by ledger, and more generally by the plain text accounting ecosystem.

Should I use wj?

wj will work well for you if:

  • You do all of your work on a computer that you always have access to
  • You want to store your journal in version control
  • You want easy access to metadata about your journal for e.g. scripting
  • You want your journal to be easily searchable using tools such as grep
  • You work over SSH, or want the option to do so

You should not use wj if:

  • You are not comfortable with the command line
  • You need to include anything other than text (i.e. pictures, sounds) in your journal

How does wj work?

You create a directory that holds .wj files (you can create a file using wj new). Each file corresponds to a journal entry for a work day, and is referred to as an entry. More than anything, wj is about the format of these files. Here is an example of such a file:

November 24, 2023

To Do
- Write docs for Linux release
- Fill out annual review
- Get back to Justin regarding database migration

Done
- Look at Mark's feedback on graceful cancellation PR 6030
- Refactor WSL distro unregistering code
- Upgrade development environment on Windows machine
- Answer Isabela's questions
- Write script to check database for integrity

10:26 meta Gather info

10:49 work Look at Mark's feedback on graceful cancellation PR 6030

Is TaskRunner actually needed?
- We are going to need something like it in the future as part
  of #5555. Of course, that doesn't mean that we have to
  put it in now, but it's easier to build off of it if it's there.
- Running contextIsDone(ctx) in between each operation would
  work, but would also be more verbose.

12:00 meeting Standup

- Finished dealing with vacation update
- Compliance trainings
- Working on PR feedback
- Dentist this afternoon

12:20 break Lunch

12:40 personal Dentist appointment

14:05 work Look at Mark's feedback on graceful cancellation 6030

14:32 work Refactor WSL distro unregistering code

Is there an issue for this?
- No. Created issue #4321.

15:50 work Upgrade development environment on Windows machine

16:33 meeting Answer Isabela's questions

16:59 work Write script to check database for integrity

17:33 meta Recap

Have to remember to do X thing when Y happens. It is helpful when
I do Z thing.

You can think of an entry as having three parts:

  • A To Do list. This is where you track tasks that need to be done.
  • A Done list. This is where you move tasks that you did during the day. It isn't really necessary, but it can feel good to move tasks here, and feeling good is an important part of productivity!
  • One or more tasks.

A task consists of a heading and a body. A task heading has three parts:

  • The time at which the task was started. This, along with the start time of the subsequent task, is used for time tracking.
  • One or more comma-separated tags, which can be used to filter tasks.
  • A title that describes the task.

The body contains anything you want - or stream-of-consciousness writing when brainstorming/solving a problem, preparation for a meeting, meeting notes, the reasoning behind a decision, et cetera.

As you can see, wj is three things:

  • a to do list
  • time tracking software
  • a place to record thoughts and information

Once you have one or more entries, you can use the wj command to parse those entries and do useful things. For example, you might use wj list tasks --tag work --last 7d to quickly get a list of work-related things you have done in the last 7 days.

Installation

go install github.com/adamkpickering/wj@latest

Credits

Thanks to SUSE for holding Hack Week 23, which helped to polish wj!

Documentation

Overview

Copyright © 2021 ADAM PICKERING

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Directories

Path Synopsis
internal

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL