{"id":22901281,"url":"https://github.com/mooerslab/writing-progress-2024-25","last_synced_at":"2026-03-16T22:31:59.994Z","repository":{"id":217366299,"uuid":"743697289","full_name":"MooersLab/writing-progress-2024-25","owner":"MooersLab","description":"Track words written and time spent on writing projects in 2024 and 2025.","archived":false,"fork":false,"pushed_at":"2024-09-07T18:13:09.000Z","size":2641,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-05-08T01:46:29.392Z","etag":null,"topics":["accountability","career-management","excel","getting-things-done","google-sheets","libre-office","open-office","project-management","scientific-writing","self-motivation","time-management","time-power","writing-project-management"],"latest_commit_sha":null,"homepage":"https://github.com/MooersLab/writing-progress-2024-25","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MooersLab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-01-15T19:41:55.000Z","updated_at":"2024-12-07T15:00:51.000Z","dependencies_parsed_at":"2024-03-23T02:22:26.916Z","dependency_job_id":"2db20eb2-d0b3-4ff3-b15c-d78355310757","html_url":"https://github.com/MooersLab/writing-progress-2024-25","commit_stats":null,"previous_names":["mooerslab/writing-progress-2024-25"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/MooersLab/writing-progress-2024-25","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MooersLab%2Fwriting-progress-2024-25","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MooersLab%2Fwriting-progress-2024-25/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MooersLab%2Fwriting-progress-2024-25/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MooersLab%2Fwriting-progress-2024-25/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MooersLab","download_url":"https://codeload.github.com/MooersLab/writing-progress-2024-25/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MooersLab%2Fwriting-progress-2024-25/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261073296,"owners_count":23105637,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["accountability","career-management","excel","getting-things-done","google-sheets","libre-office","open-office","project-management","scientific-writing","self-motivation","time-management","time-power","writing-project-management"],"created_at":"2024-12-14T01:32:41.665Z","updated_at":"2026-03-16T22:31:54.974Z","avatar_url":"https://github.com/MooersLab.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Version](https://img.shields.io/static/v1?label=writing-progress-2024-25\u0026message=0.5.1\u0026color=brightcolor)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n\n# Track progress on writing projects with bar plots and heatmaps\n\n## Format\nGoogle Sheets workbook exported to Excel or ODT workbook files.\nEither can be imported back into Google Sheets.\nI recommend using Google Sheets for faster access to enter daily progress.\nStore the link to the workbook in a bookmark, or better yet, in a local index.html file for fast access from your browser.\nYou can also store the link in a voice command; see the [quick start](#note) section below.\n\n## The problem addressed\n\nManaging multiple writing projects is a significant unsolved problem in academic writing and time management.\nMost academics have to make progress on two or more writing projects per day.\nThe overhead for doing so consumes mental bandwidth.\nMost books on academic writing skip over this problem because they do not have a good solution for this problem.\nI designed the above spreadsheets to address this problem.\n\nMost writing guides suggest tracking the total effort expended on writing per day in terms of minutes spent, word count, or both.\nWord count tends to plateau early when writing academic papers and grant applications, so tracking time is more important.\nThe spreadsheets support tracking both.\nThe workbook tracks at the project level so that you can monitor the distribution of your effort.\nYou can use it well or poorly, like any tool. Good luck!\n\n\n## Synopsis\nThe above Open Office Document (writing-progress-2024-25.ods) can be imported into Google Sheets, where it was created. \nYou can also open this document in Libre Office or Open Office for offline use. \nThe Excel version writing-progress-2024-25.xlsx can be run in Microsoft Excel.\nEither document can be imported into your Google Drive account for faster access as a Google Sheets document.\nI store a link to the Google Sheet document in my web browser for instant access. \n\nAfter spending 10-30 minutes customizing the workbook for your current and planned writing projects, you should be set to track your writing progress by project for 2024 and 2025. \nIt 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. \nThe sums in the bar plot are taken across all projects.\nTo check your effort on a particular project, open its project sheet and sum over columns F for minutes and G for words.\n\nVersion 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.\nA negative value means that you are behind.\n\nPython scripts are included for remotely accessing the min_day and word_day sheets and displaying a summary as a horizontal bar plot or a heatmap with matplotlib.\nI mapped this to three-letter aliases for rapid access.\n\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"images/Jan2022progr.png\" style=\"width: 90vw; min-width: 330px;\"\u003e\u003c/p\u003e\n\n\n## Quick start: add today's progress for Project 18\n\n1. Open the file.\n2. Select Project sheet `18`.\n3. Enter minutes spent on project 18 in column F and the current day's row.\n4. Enter the number of words written on Project 18 in column G and the current day's row.\n   \nYou are finished!!  It is that fast and easy!!!\n\n### Note: \n\nIf you use Voice In Plus, you can map the voice command `open sheet 18` to the code`\u003copen: \u003cinsert sheet's url\u003e \u003e` to use your voice to open Project 18's Google Sheet for updating.\nYou can create multiple aliases for the same web page that do not include the project number so that you can still open up the appropriate sheet without remembering the project number.\n\nI use the command `open project 18` to open the project's website on Overleaf.\n\nYou can do something similar with Serenade, Talon Voice, or the built-in Voice Control software on the Mac.\n\n\n\n\n## Checking progress\n\n1. Open sheet min_day. Scroll to the right margin. Inspect the bar graph for the current month. The gray bars are the cumulative goals; the orange bars are the cumulative progress. \n2. Repeat with sheet word_day.\n\n\n## Customization \n\n1. Edit the sheet tabs to change the project names. This will break the formula in the corresponding column of the min_day and word_day sheets. Edit the formulas as needed.\n2. Edit the column names in sheets `min_day` and `word_day` to refer to the changed project name.\n3. [Optional] The goals can be reset to align with your objectives.\n\n\n## Adding an eleventh project\n\n1. Create a new project sheet by duplicating an old one and edit to customize it.\n2. Insert a new project column in the  `min_day` and `word_day` sheets and edit the column name to refer to the new project name.\n3. Add the formula summation formula in row 733 of the new column else the Python scripts below will not work.\n4. [Optional. Read to the end.] Edit the formula in the Daily Total column (column E) `min_day` and `word_day` to include the new column in the range of columns so that the progress on this project gets counted. Note that this formula will be automatically updated if you insert the new column at an interior site among the project columns.\n\n\n## Observations\n\n1. Limit the tracking to the projects you are committed to finishing in the next two years. The purpose of this tool is to 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](https://github.com/MooersLab#writing-log-for-planning-manuscripts)).\n2. To save space, name the sheets using integers. Map the project number to the project name in the project sheet.\n3. The optimal column width for the project columns on the `min_day` and `word_da`y' sheets is 45 points when using four-digit project numbers.\n4. Up to 30 projects can be viewed simultaneously without scrolling horizontally. You could always move some of the rightmost project columns on  `min_day` and `word_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.\n\n\n\n**You are now ready for the next two years!!!!** :)\n\n\n# Upgrades\n## Version 0.5.1\n- Minor edits of the readme. \n- Added funding.\n\n## Version 0.5\n\n- Column inserted in the min_day and word_day sheets to record the difference between the cumulative monthly total and the monthly cumulative goal. A positive value means you are ahead of your goal, and a negative value means you are behind your goal. Glancing at this column might be faster and more informative than scrolling to the right to see the bar plots.\n\n\n## Version 0.4\n\n- Sum formula added to row 733 at the bottom of the columns for the projects in sheets `min_day` and `words_day`. \n  The minutes were converted to hours in these sums.\n\n- Scripts provided to plot cumulative words and time spent by the 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 for access to your Google Drive and your Google Sheets. See the Read-the-docs for [gspread](https://docs.gspread.org/en/latest/oauth2.html). Take care to update the script file if rename the workbook.\n\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"images/gshbarw.png\" style=\"width: 90vw; min-width: 200px;\"\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"images/gs2hmm.png\" style=\"width: 90vw; min-width: 330px;\"\u003e\u003c/p\u003e\n\n- I map these scripts to the following three-letter bash aliases (`hbh`, `hbw`, `hmm`, and `hmw`) so that I can generate these plots on the fly from the prompt in the terminal. `mp312` is a bash alias to Python3.12 from MacPorts: `/opt/local/bin/python3.12`.\n\n\n```bash\n# barplots\nalias hbh='mp312 ~/gs2hbarm.py \u0026\u0026 echo \"Horizontal bar plot of hours spent per project since January 1, 2024.\"'\nalias hbw='mp312 ~/gs2hbarw.py \u0026\u0026 echo \"Horizontal bar plot of words written per project since January 1, 2024.\"' \n\n# heatmaps.\nalias hmm='mp312 ~/gs2hmm.py \u0026\u0026 echo \"Heat map of minutes spent per day since January 1, 2024.\"'\nalias hmw='mp312 ~/gs2hmw.py \u0026\u0026 echo \"Heat map of words spent per day since January 1, 2024.\"' \n```\n\nHere is the heatmap on September 7, 2024. It was made with alias hmj to show effort on journal articles only. It is reading data from a sqlite time tracking database that I started in May 2022. This display shows repeating temporal variation due to teaching and NIH grant reviewer service.\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"images/hmj2024sept7.png\" style=\"width: 140vw; min-width: 330px;\"\u003e\u003c/p\u003e\n\n\n\n# Long form version of the README.md\n\nMore details are found [here](https://github.com/MooersLab/writingProgess2023/edit/main/README.md)\n\n\n\n# Related links\n\n## Related projects of possible interest\n\n- [Writing Log template in LaTeX](https://github.com/MooersLab/writingLogTemplate). This is the favored format. LaTeX beginners can easily use this document on Overleaf without any configuration.\n- [Writing log template in Org-mode](https://github.com/MooersLab/writingLogTemplateInOrg) 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.\n- [Writing log template in reStructuredText](https://github.com/MooersLab/writing-log-rst) reStructuredText is used by programmers for documentation.\n- [Writing log template in Markdown](https://github.com/MooersLab/writing-log-md) Markdown variant. Read and rendered to PDF by most good text editors.\n- [Writing log template in ODT](https://github.com/MooersLab/writing-log-odt) ODT can be read by Open Office, LibreOffice, and MS Word.\n- [Writing log template in DOCX for MS Word](https://github.com/MooersLab/writing-log-docx) MS Word variant. Probably the least suitable format for this task.\n- [Voice computing-related repos](https://github.com/MooersLab#voice-computing)\n- [LaTeX manuscript template](https://github.com/MooersLab/manuscriptInLaTeX/edit/main/README.md)\n- [Org-mode manuscript template](https://github.com/MooersLab/manuscriptInOrg/edit/main/README.md)\n- [Slideshow template in LaTeX](https://github.com/MooersLab/slideshowTemplateLaTeX)\n- [Annotated bibliography Template in LaTeX](https://github.com/MooersLab/annotatedBibliography)\n- [Diary for 2024 in LaTeX](https://github.com/MooersLab/diary2024inLaTeX)\n- [latex-emacs profile](https://github.com/MooersLab/latex-emacs)\n- [default Emacs profile](https://github.com/MooersLab/configorg)\n- [snippets for latex-mode in Emacs](https://github.com/MooersLab/snippet-latex-mode)\n- [Quizzes about Emacs to improve recall of keybindings](https://github.com/MooersLab/qemacs)\n- [Slides from talk about GhostText, Data Science Workshop, July 2022](https://github.com/MooersLab/DSW22ghosttext)\n- [Video link to talk about GhostText, Data Science Workshop, July 2022](https://mediasite.ouhsc.edu/Mediasite/Channel/python/watch/4da0872f028c4255ae12935655e911321d)\n- [Slideshow about using LaTeX in Emacs, Berlin Emacs Meetup, 31 August 2022](https://github.com/MooersLab/BerlinEmacsAugust2022)\n- [The writer's crede](https://github.com/MooersLab/thewriterslaw)\n\n\n## Sources of funding\n\n- NIH: R01 CA242845\n- NIH: R01 AI088011\n- NIH: P30 CA225520 (PI: R. Mannel)\n- NIH: P20 GM103640 and P30 GM145423 (PI: A. West)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmooerslab%2Fwriting-progress-2024-25","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmooerslab%2Fwriting-progress-2024-25","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmooerslab%2Fwriting-progress-2024-25/lists"}