writing-progress-2024-25: Track progress on writing projects with bar plots and heatmaps (see bottom)
Google Sheets workbook exported to Excel and ODT. Either can be imported back into Google Sheets. I recommend using Google Sheets for faster access for entering daily progress. Store the link to the workbook in a bookmark, or better yet, in a local index.html file for fast access from your browser.
Managing multiple writing projects is a significant unsolved problem in academic writing and time management. Most academics have to make progress on two or more writing projects per day. The overhead for doing so consumes mental bandwidth. Most books on academic writing skip over this problem because they do not have a good solution for this problem. I designed the above spreadsheets to address this problem.
Most writing guides suggest tracking the total effort expended on writing per day in terms of minutes spent, word count, or both. Word count tends to plateau early when writing academic papers and grant applications, so tracking time is more important. The spreadsheets support tracking both. The workbook tracks at the project level so that you can monitor the distribution of your effort. You can use it well or poorly like any tool: Good luck!
The above Open Office Document (writing-progress-2024-25.ods) can be imported into Google Sheets, where it was created. You can also open this document in Libre Office or Open Office for offline use. The Excel version writing-progress-2024-25.xlsx can be run in Microsoft Excel. Either document can be imported into your Google Drive account for faster access as a Google Sheets document. I store a link to the Google Sheet document in my web browser for instant access.
After spending 10-30 minutes customizing the workbook for your current and planned writing projects, you should be set for tracking your writing progress by project for 2024 and 2025. It should take no more than a minute a day to make the entries and to check on your monthly progress displayed as bar plots in the right margin, as shown below. The sums in the bar plot are taken across all projects. To check your effort on a particular project, open its project sheet and sum over column F for minutes and column G for words.
Version 0.5 contains a column on the left side of the min_day and word_day sheets with the difference between the cumulative monthly total and the cumulative monthly goal. A negative value means that you are behind.
Python scripts are included for accessing the min_day and word_day sheets remotely and displaying a summary as a horizontal bar plot or a heatmap with matplotlib. I mapped this to three-letter aliases for rapid access.
- Open the file.
- Select Project sheet
18
. - Enter minutes spent on project 18 in column F and the current day's row.
- Enter the number of words written on Project 18 in column G and the current day's row.
You are finished!! Yes, it is that easy!!!
Note: If you use Voice In Plus, you can map the voice command open sheet 18
to the code<open: <insert sheet's url> >
to use your voice to open Project 18's Google Sheet for updating.
I use the command open project 18
to open the project's website on Overleaf.
You can do something similar with Talon Voice or the built-in Voice Control software on the Mac.
- Open sheet min_day. Scroll to right margin. Inspect bar graph for current month. The gray bars are the cumulative goals; the orange bars are the cumulative progress.
- Repeat with sheet word_day.
- Edit the sheet tabs to change the project names. This will break the formula in the correspoinding column of the min_day and word_day sheets. Edit the formulas as needed.
- Edit the column names in sheets
min_day
andword_day
to refer to the changed project name. - [Optional] The goals can be reset to align with your objectives.
- Create the new project sheet by duplicating an old one and edit to customize.
- Insert a new project column in the
min_day
andword_day
sheets and edit column name to refer to the new project name. - Add the formula summation formula in row 733 of the new column else the Python scripts below will not work.
- [Optional. Read to the end.] Edit formula in Daily Total column (column E)
min_day
andword_day
to include the new column in the range of columns so that the progress on this projects gets counted. Note that this formula will be automated updated if you insert the new column at an interior site amoungst the project columns.
- Limit the tracking to those projects that you are committed to finishing in the next two years. The purpose of this tool is sustain your commitment to finishing these projects, not necessarily to document your effort. You can use a writing log for that purpose (see Writing Log templates).
- Use integers to name the sheets to save space. Map the project number to the project name in the project sheet.
- The optimal column width for the projects columns on the
min_day
andword_da
y sheets is 45 points when using four digit project numbers. - Up to 30 projects can be viewed at once without scrolling horizontally. You could always move some of the rightmost project columns on
min_day
andword_day
sheet to the right of the bar plots to keep the bar plots in view without needing to scroll to the right or you can zoom out further.
You are now ready for the next two years!!!! :)
##Version 0.5
- Column inserted in the min_day and word_day sheets to record the difference from the cummulative monthly total and the monthly cummulative goal. A postive value means that you are ahead of your goal, and a negative value means that you are behind your goal. A glance at this column might be faster and more informative than scrolling to the right to see the bar plots.
-
Sum formula added to row 733 at the bottom of the columns for the projects in sheets
min_day
andwords_day
. The minutes were converted to hours in these sums. -
Scripts provided to plot cumulative words and time spent by project as bar plots (gs2hbarm.py and gs2hbarw.py) or by day as heatmaps (gs2hmw.py and gs2hmm.py) by extracting the data from the workbook on Google Sheets. You must provide authorization of access to your Google Drive and your Google Sheets. See the Read-the-docs for gspread. Take care to update the script file if rename the workbook.
- I map these scripts to the following three-letter bash aliases (
hbh
,hbw
,hmm
, andhmw
) so that I can generate these plots on the fly from the prompt in the terminal.mp312
is a my bash alias to Python3.12 from macports:/opt/local/bin/python3.12
.
# barplots
alias hbh='mp312 ~/gs2hbarm.py && echo "Horizontal bar plot of hours spent per project since January 1, 2024."'
alias hbw='mp312 ~/gs2hbarw.py && echo "Horizontal bar plot of words written per project since January 1, 2024."'
# heatmaps.
alias hmm='mp312 ~/gs2hmm.py && echo "Heat map of minutes spent per day since January 1, 2024."'
alias hmw='mp312 ~/gs2hmw.py && echo "Heat map of words spent per day since January 1, 2024."'
More details are found here
- Writing Log template in LaTeX. The favored format. LaTeX beginers can use this document easily on Overleaf without any configuration.
- Writing log template in Org-mode Has all of the features of the LaTeX variant. Favored by many Emacs users. Org-mode is a powerful analog of markdown that can interpret LaTeX code blocks. It is vastly more capable than markdown. It even supports literate programming.
- Writing log template in reStructuredText reStructuredText is used by programmers for documentation.
- Writing log template in Markdown Markdown variant. Read and rendered to PDF by most good text editors.
- Writing log template in ODT ODT can be read by Open Office, LibreOffice and MS Word.
- Writing log template in DOCX for MS Word MS Word variant. Probably the least suitable format for this task.
- Voice computing related repos
- LaTeX manuscript template
- Org-mode manuscript template
- Slideshow template in LaTeX
- Annotated bibliography Template in LaTeX
- Diary for 2024 in LaTeX
- latex-emacs profile
- default Emacs profile
- snippets for latex-mode in Emacs
- Quizzes about Emacs to improve recall of keybindings
- Slides from talk about GhostText, Data Science Workshop, July 2022
- Video link to talk about GhostText, Data Science Workshop, July 2022
- Slideshow about using LaTeX in Emacs, Berlin Emacs Meetup, 31 August 2022
- The writer's crede