I'm starting another novel translation, and want to keep track of progress in org (I've blown too many deadlines in the past). I've been looking at the habits functionality, but it doesn't quite match what I want, and I'm looking for a little advice here. I'd like to: 1. Set myself a minimum of pages translated per day, on weekdays. 2. Record how many pages I do each day. 3. View some habit-style report of how I'm doing relative to my goal. 4. Project when I will be done with the novel at the current rate of progress. Obviously I'll be writing some custom elisp to get all of this functionality, but I'm looking for some advice on the best way to build the basics. Habits are currently based on either/or values: "done" or "not done", which doesn't incorporate enough detail. Properties seem like the best way to keep track of number of pages translated per day, but that means having a separate TODO heading for each day of work. State logging could do it, but there are no pre-fab ways of extracting data out of the log itself. It seems like there are so many good tools here: the history reporting of habits, or the progress cookies you can put in headlines, etc. But they're all tied to headlines or list items being in an on or off state: TODO/DONE, checked/unchecked. Anyway, if anyone has any bright ideas, please let me know! Thanks, Eric
Eric Abrahamsen <eric@ericabrahamsen.net> writes:
> I'm starting another novel translation, and want to keep track of
> progress in org (I've blown too many deadlines in the past). I've been
> looking at the habits functionality, but it doesn't quite match what I
> want, and I'm looking for a little advice here. I'd like to:
>
> 1. Set myself a minimum of pages translated per day, on weekdays.
> 2. Record how many pages I do each day.
> 3. View some habit-style report of how I'm doing relative to my goal.
> 4. Project when I will be done with the novel at the current rate of
> progress.
>
> Obviously I'll be writing some custom elisp to get all of this
> functionality, but I'm looking for some advice on the best way to build
> the basics. Habits are currently based on either/or values: "done" or
> "not done", which doesn't incorporate enough detail. Properties seem
> like the best way to keep track of number of pages translated per day,
> but that means having a separate TODO heading for each day of work.
> State logging could do it, but there are no pre-fab ways of extracting
> data out of the log itself.
>
> It seems like there are so many good tools here: the history reporting
> of habits, or the progress cookies you can put in headlines, etc. But
> they're all tied to headlines or list items being in an on or off state:
> TODO/DONE, checked/unchecked.
I think the key for making this work with Org is choosing a unit of work
(ten pages, a hundred pages, one page, one chapter, whatever) as your
standard, thus allowing you to use the on/off nature of the list items
to your advantage. Org also gives flexibility about the time-frames
you're working within, so use that too if necessary.
In my life, at least, habits really are "did I do it or not", not "how
much did I do" - so Org's interpretation of the concept seems reasonable
to me.
Basically, for a rough example, every ten pages might become one TODO
sub-task, waiting to get checked off, under the heading of this
novel. If you set yourself a standard that was too pessimistic or too
optimistic, you'd have to change the TODOs later, either by changing
your chunk sizes or by changing your time frames. (e.g. if a hundred
pages a day turns out to be far too much, you have the option of
adjusting the number of pages, the number of days, or both.)
Maybe your original method, tallying pages per day after the fact, could
be used for the first few days, to arrive at some reasonable numbers to
plug into the habits.
--
David
David Rogers <davidandrewrogers@gmail.com> writes: > Eric Abrahamsen <eric@ericabrahamsen.net> writes: > >> I'm starting another novel translation, and want to keep track of >> progress in org (I've blown too many deadlines in the past). I've been >> looking at the habits functionality, but it doesn't quite match what I >> want, and I'm looking for a little advice here. I'd like to: >> >> 1. Set myself a minimum of pages translated per day, on weekdays. >> 2. Record how many pages I do each day. >> 3. View some habit-style report of how I'm doing relative to my goal. >> 4. Project when I will be done with the novel at the current rate of >> progress. >> >> Obviously I'll be writing some custom elisp to get all of this >> functionality, but I'm looking for some advice on the best way to build >> the basics. Habits are currently based on either/or values: "done" or >> "not done", which doesn't incorporate enough detail. Properties seem >> like the best way to keep track of number of pages translated per day, >> but that means having a separate TODO heading for each day of work. >> State logging could do it, but there are no pre-fab ways of extracting >> data out of the log itself. >> >> It seems like there are so many good tools here: the history reporting >> of habits, or the progress cookies you can put in headlines, etc. But >> they're all tied to headlines or list items being in an on or off state: >> TODO/DONE, checked/unchecked. > > I think the key for making this work with Org is choosing a unit of work > (ten pages, a hundred pages, one page, one chapter, whatever) as your > standard, thus allowing you to use the on/off nature of the list items > to your advantage. Org also gives flexibility about the time-frames > you're working within, so use that too if necessary. [...] > Maybe your original method, tallying pages per day after the fact, could > be used for the first few days, to arrive at some reasonable numbers to > plug into the habits. I guess you're right I'll eventually need to set a daily target. But it's going to make a very big difference to me to know by _how much_ I was under or over. At any rate, I've started logging, with a capture template that gives me something like this: --8<---------------cut here---------------start------------->8--- * Santi Schedule DEADLINE: <2013-06-01 Sat> :PROPERTIES: :PAGES: 502 :ID: 908fc17c-c620-4212-98eb-2e028f08dce3 :END: ** <2012-11-07 Wed> :log: :PROPERTIES: :PAGES: 9 :END: ** <2012-11-08 Thu> :log: :PROPERTIES: :PAGES: 3 :END: --8<---------------cut here---------------end--------------->8--- Something tells me I'll eventually make these into TODOs, but maybe I'll also try to jury-rig an Agenda timeline view that will give me a sense of my varying progress over time. Below is my first stab at a function to read and use this data. Anyhow, thanks for the food for thought! Eric --8<---------------cut here---------------start------------->8--- (defun my-translation-schedule () (interactive) (require 'org) (save-excursion (org-id-goto "908fc17c-c620-4212-98eb-2e028f08dce3") (let ((deadline (org-entry-get nil "DEADLINE")) (page-total (string-to-number (org-entry-get nil "PAGES"))) (completed 0)) (org-map-entries (lambda () (setq completed (+ (string-to-number (org-entry-get nil "PAGES")) completed))) "+log" 'file) (let* ((remaining-days (- (org-time-string-to-absolute deadline) (org-today))) (remaining-pages (float (- page-total completed))) (pages-per-day (fceiling (/ remaining-pages remaining-days)))) (message "%d pages left to go, you'll need to do %d pages per day to finish by %s" remaining-pages pages-per-day deadline))))) --8<---------------cut here---------------end--------------->8---
On 11/11/12 03:48, Eric Abrahamsen wrote:
> David Rogers <davidandrewrogers@gmail.com> writes:
>
>> Eric Abrahamsen <eric@ericabrahamsen.net> writes:
>>
>>> I'm starting another novel translation, and want to keep track of
>>> progress in org (I've blown too many deadlines in the past). I've been
>>> looking at the habits functionality, but it doesn't quite match what I
>>> want, and I'm looking for a little advice here. I'd like to:
>>>
>>> 1. Set myself a minimum of pages translated per day, on weekdays.
>>> 2. Record how many pages I do each day.
>>> 3. View some habit-style report of how I'm doing relative to my goal.
>>> 4. Project when I will be done with the novel at the current rate of
>>> progress.
>>>
I am assuming that the novel is available in plain text. Why not turn it
into an org file. Divide it up into units, with each unit being a day's
worth of translation. Make each unit a separate TODO with either a
SCHEDULED or DEADLINE. The you can use the Agenda to see how far in
front, or behind, you are.
Ian.
Hi! * Eric Abrahamsen <eric@ericabrahamsen.net> wrote: > I'm starting another novel translation, and want to keep track of > progress in org (I've blown too many deadlines in the past). This is a bit OT here, but I wanted to share how I kept track of the progress of my LaTeX PhD in number of pages. https://github.com/novoid/vklatex-page-stats-from-git.sh Basically it checks out every git commit, compiles the PDF document, and logs the number of pages of the resulting PDF. This log-file can be parsed using «grep» and then you can derive histograms and such. It has nothing to do with Org-mode but probably someone finds it useful as well. -- Karl Voit