emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* Watching the competition
@ 2013-10-19 13:56 Nick Dokos
  2013-10-19 21:03 ` Writing Challenge Bob Newell
  0 siblings, 1 reply; 6+ messages in thread
From: Nick Dokos @ 2013-10-19 13:56 UTC (permalink / raw)
  To: emacs-orgmode

LWN recently published an article on Fargo/Concord which might be of interest:

http://lwn.net/Articles/569269/

And it even mentions org-mode.

-- 
Nick

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Writing Challenge
  2013-10-19 13:56 Watching the competition Nick Dokos
@ 2013-10-19 21:03 ` Bob Newell
  2013-10-20  3:22   ` Ivan Andrus
  0 siblings, 1 reply; 6+ messages in thread
From: Bob Newell @ 2013-10-19 21:03 UTC (permalink / raw)
  To: emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 620 bytes --]

A couple of us who are writers have worked on a "writing challenge"
spreadsheet. This year, for the upcoming National Novel Writing Month,
I've greatly modified (read: made more complex) the challenge
spreadsheet, and implemented it in org-mode.

It's attached, for anyone who's interested. I know there are other
writers and WriMos out there.

It probably has bugs. No, it surely has bugs. Comments welcomed.

I'm kind of attachment-challenged so if it doesn't appear below, get it
at

http://www.bobnewell.net/filez/newchallenge.org

-- 
Bob Newell
Honolulu, Hawai`i
* Sent via Ma Gnus 0.8-Emacs 23.3-Linux Mint 13 *


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: newchallenge.org --]
[-- Type: text/x-org, Size: 9291 bytes --]

#+STARTUP: align

* The new writing challenge - how it works

There are three numbers that enter into the challenge: base words,
quota words, and target words. The base is the minimal number of words
to write every day to count as a writing day. The quota is the number
of words you must write to meet the challenge. It is a dynamic value
which increases as you write more and decreases as you write less. The
target is the number of words you must write to reach your word goal by
the end of the challenge.

So for NaNoWriMo, the target is definitely 1667. The base can be
whatever you wish, but 250 seems good as a general number, for NaNo as
well as other challenges. The base should /not/ be set too high. The
whole point is to make each and every day a writing day, and not make
it so burdensome that it's easier to skip.

In non-NaNoWriMo-like situations, you may well want to set the target
equal to the base. It's up to you. However, if you have a deadline for,
say, a 10,000 word novelette, you can set the target accordingly by
dividing the number of days to deadline by the required word count.

You must write at least the 'base words' every day to keep
your chain going. If you write at least 'base words' you get a score
addition equal to your new chain count, but never less than a one point
addition.

Chain count increases by 1 if you meet quota exactly. It increases by
less than 1 if you're under quota but still at least at the base words
count. Chain count increases by more than 1 if you exceed quota. Chain
count will always increase if you meet base word count.

Quota then changes for the next day. The value is the multiple of the
most recent chain count times the increment value. The increment value
shouldn't be set too high. 4 is a good number; this would mean an
increase of about 120 over the course of the month if you write to
quota each day.

If you don't do the base word count, on the first day you miss, chain
count goes to -1. The chain count decreases by one for each missed day
in a row. The total score is decreased on each missed day by the chain
count. So as you miss more days, score drops faster. Quota gets reset to
the base word count. Score never goes below zero, though (it's like a
total reset when you reach zero).

When you starting meeting the base word count again, chain count is
changed to a positive number with the scoring and quota rules as above.

Sensitivity to being under or over quota is fairly low. The recommended
logbase value is 100 which yields log 100 of words/quota). You do get a
boost for being way over quota and less of a boost for being under, but
the real sensitivity of the method is to writing the base amount every
day for as many days in a row as possible. For this reason a low value
of logbase (which would lead to bigger chain count changes) isn't
recommended.

The target influences score but not chain count. Score is increased or
decreased based on both daily performance vs. target and cumulative
word count vs. cumulative target. The parameter tdlogbase controls
daily sensitivity, and tclogbase controls cumulative sensitivity. Make
these large numbers (like 1000) to largely cancel these score effects
if you don't want them. 100 for tdlogbase and 200 for tclogbase are
recommended for moderate but not excessive influence. 

Note that it is possible for score to decrease even if base and or quota
are met in a given day, due to target influences. Getting way behind on
cumulative target will have lasting effects. 

Point counts can get pretty large with sustained writing. The method
should be reset after each "challenge" period, which might be 30, 60, or
at most 90 days. A month is probably best.

This method is derived and modified from the original Hawai`i challenge
(by Tony Pisculli) which, while truly excellent, was fairly static and
used fewer tracking and scoring factors. The new method is more in line
with what you'd expect from an MIT engineer.

The advantage of the new method is that it is dynamic and adjusts to
performance. The more you write, the more you need to write to get
bigger bonuses. If you slack off, you still need to write minimums but
there is some mercy on the quota.  Bonuses are sustained by being built
in to the chain count. This makes the new method a "stretch"
method. However, using log 100 instead of log 10 ensures that the
"stretch" is reasonable.

Bugs: They are here. Obviously haven't found them yet. Let me know.

Comments and improvements (especially to the formatting, which I
particularly don't care for) are welcome. Please email
writingchallenge@bobnewell.net.

Bob Newell
Honolulu, Hawai`i

Version: 0.01 alpha, 17 October 2013

* The challenge spreadsheet

#+CONSTANTS: base=250 target=1667 increment=4 logbase=100. tdlogbase=100. tclogbase=200.

| <3> | <7>     | <8>      | <7>     | <7>     | <5>   | <6>    | <6>    | <7>     |
| Day | Words   | Quota    | Chain   | Cum Wds | Targ  | Cum T  | Plus/min | Score   |
|-----+---------+----------+---------+---------+-------+--------+--------+---------|
|   1 |         | 250      |         |         | 1667  | 1667   |        |         |
|   2 |         |          |         |         |       |        |        |         |
|   3 |         |          |         |         |       |        |        |         |
|   4 |         |          |         |         |       |        |        |         |
|   5 |         |          |         |         |       |        |        |         |
|   6 |         |          |         |         |       |        |        |         |
|   7 |         |          |         |         |       |        |        |         |
|   8 |         |          |         |         |       |        |        |         |
|   9 |         |          |         |         |       |        |        |         |
|  10 |         |          |         |         |       |        |        |         |
|  11 |         |          |         |         |       |        |        |         |
|  12 |         |          |         |         |       |        |        |         |
|  13 |         |          |         |         |       |        |        |         |
|  14 |         |          |         |         |       |        |        |         |
|  15 |         |          |         |         |       |        |        |         |
|  16 |         |          |         |         |       |        |        |         |
|  17 |         |          |         |         |       |        |        |         |
|  18 |         |          |         |         |       |        |        |         |
|  19 |         |          |         |         |       |        |        |         |
|  20 |         |          |         |         |       |        |        |         |
|  21 |         |          |         |         |       |        |        |         |
|  22 |         |          |         |         |       |        |        |         |
|  23 |         |          |         |         |       |        |        |         |
|  24 |         |          |         |         |       |        |        |         |
|  25 |         |          |         |         |       |        |        |         |
|  26 |         |          |         |         |       |        |        |         |
|  27 |         |          |         |         |       |        |        |         |
|  28 |         |          |         |         |       |        |        |         |
|  29 |         |          |         |         |       |        |        |         |
|  30 |         |          |         |         |       |        |        |         |
|  31 |         |          |         |         |       |        |        |         |
#+TBLFM: $3='(if (eq "@-1$2" "") "" (calcFunc-max $base (+ $base (* $increment @-1$4))));L::$4='(if (eq "$2" "") "" (if (>= $2 $base) (calcFunc-max 0. (+ 1. (+ (calcFunc-max 0. @-1$4) (string-to-number (calc-eval "log(div($2,$3),$logbase)"))) )) (if (> @-1$4 0) -1 (- @-1$4 1))));L::$5='(if (eq "$2" "") "" (+ $2 @-1$5));L::$6='(if (eq "@-1$2" "") "" $target);L::$7='(if (eq "@-1$2" "") "" (+ $target @-1$7));L::$8='(if (eq "$2" "") "" (- $5 $7));L::$9='(if (eq "$2" "") "" (if (> $4 0) (calcFunc-max 0 (+ (string-to-number (calc-eval "log(div($5,$7),$tclogbase)")) (string-to-number (calc-eval "log(div($2,$6),$tdlogbase)")) (calcFunc-max $4 1) @-1$9)) (calcFunc-max 0 (+ @-1$9 $4))));L::@3$3=$base;N::@3$4='(if (eq "@3$2" "") "" (if (>= @3$2 $base) (+ 1.0 (string-to-number (calc-eval "log(div(@3$2, @3$3),$logbase)"))) -1.));L::@3$5='(if (eq "@3$2" "") "" @3$2);L::@3$6=$target;N::@3$7=$target;N::@3$8='(if (eq "@3$2" "") "" (- @3$5 @3$7));L::@3$9='(if (eq "@3$2" "") "" (if (> @3$4 0) (calcFunc-max 0 (+ (string-to-number (calc-eval "log(div(@3$5,@3$7),$tclogbase)")) (string-to-number (calc-eval "log(div(@3$2,@3$6),$tdlogbase)") ) @3$4)) @3$4));L

* End Notes

Usage: 
1. At start of challenge, edit the #+CONSTANTS line to suit. Press C-c C-c.
2. Each day enter word count and then recalculate
   with C-u C-u C-c *.
3. Uh, save the file...

Keep copy for use in making new challenges.

Important: You MUST (require 'calc-ext) in your startup.


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Writing Challenge
  2013-10-19 21:03 ` Writing Challenge Bob Newell
@ 2013-10-20  3:22   ` Ivan Andrus
  2013-10-27  8:07     ` Alan Schmitt
  2013-11-03 14:56     ` Ivan Andrus
  0 siblings, 2 replies; 6+ messages in thread
From: Ivan Andrus @ 2013-10-20  3:22 UTC (permalink / raw)
  To: Bob Newell; +Cc: emacs-orgmode

Very interesting! I have been working on a mode which gives the current word-count, WPM and an estimate of the time it will take to hit today's quota in the modeline.  I would be interested in feedback as well as integrating it with your spreadsheet.  You can find it at

https://bitbucket.org/gvol/nanowrimo.el

-Ivan

On Oct 19, 2013, at 3:03 PM, Bob Newell <bobnewell@bobnewell.net> wrote:

> A couple of us who are writers have worked on a "writing challenge"
> spreadsheet. This year, for the upcoming National Novel Writing Month,
> I've greatly modified (read: made more complex) the challenge
> spreadsheet, and implemented it in org-mode.
> 
> It's attached, for anyone who's interested. I know there are other
> writers and WriMos out there.
> 
> It probably has bugs. No, it surely has bugs. Comments welcomed.
> 
> I'm kind of attachment-challenged so if it doesn't appear below, get it
> at
> 
> http://www.bobnewell.net/filez/newchallenge.org
> 
> -- 
> Bob Newell
> Honolulu, Hawai`i

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Writing Challenge
  2013-10-20  3:22   ` Ivan Andrus
@ 2013-10-27  8:07     ` Alan Schmitt
  2013-11-01  4:56       ` Ivan Andrus
  2013-11-03 14:56     ` Ivan Andrus
  1 sibling, 1 reply; 6+ messages in thread
From: Alan Schmitt @ 2013-10-27  8:07 UTC (permalink / raw)
  To: Ivan Andrus; +Cc: Bob Newell, emacs-orgmode

Hi Ivan,

darthandrus@gmail.com writes:

> Very interesting! I have been working on a mode which gives the
> current word-count, WPM and an estimate of the time it will take to
> hit today's quota in the modeline.  I would be interested in feedback
> as well as integrating it with your spreadsheet.  You can find it at
>
> https://bitbucket.org/gvol/nanowrimo.el

I've been looking at your mode, and I find it very interesting. Here are
a couple typos I've found (for documentation strings):

- documentation of nanowrimo-total-goal should be "How many words you
  would like to write in total."
- documentation of nanowrimo-today-goal should be "How many words you
  would like to write today."
- documentation of nanowrimo-org-table-name should be "Name of the table
  where goals are tracked."

Finally, it would be great if nanowrimo-today-goal could be computed
from the "quota" part of the spreadsheet.

Thanks again,

Alan

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Writing Challenge
  2013-10-27  8:07     ` Alan Schmitt
@ 2013-11-01  4:56       ` Ivan Andrus
  0 siblings, 0 replies; 6+ messages in thread
From: Ivan Andrus @ 2013-11-01  4:56 UTC (permalink / raw)
  To: Alan Schmitt; +Cc: Bob Newell, emacs-orgmode

I'm really sorry I didn't reply sooner.  I was out of town, and then I forgot to follow up.

On Oct 27, 2013, at 2:07 AM, Alan Schmitt <alan.schmitt@polytechnique.org> wrote:

> Hi Ivan,
> 
> darthandrus@gmail.com writes:
> 
>> Very interesting! I have been working on a mode which gives the
>> current word-count, WPM and an estimate of the time it will take to
>> hit today's quota in the modeline.  I would be interested in feedback
>> as well as integrating it with your spreadsheet.  You can find it at
>> 
>> https://bitbucket.org/gvol/nanowrimo.el
> 
> I've been looking at your mode, and I find it very interesting. Here are
> a couple typos I've found (for documentation strings):
> 
> - documentation of nanowrimo-total-goal should be "How many words you
>  would like to write in total."
> - documentation of nanowrimo-today-goal should be "How many words you
>  would like to write today."
> - documentation of nanowrimo-org-table-name should be "Name of the table
>  where goals are tracked."

Thanks.  Those are fixed now.

> Finally, it would be great if nanowrimo-today-goal could be computed
> from the "quota" part of the spreadsheet.

That's is a good idea.  You can now customize `nanowrimo-today-goal-calculation-function' and `nanowrimo-finish-functions' to update today's goal and progress.  Perhaps I should make them default to the "correct" values since they should be no-ops if you are not in org-mode.  But I haven't tested that all.  Nor have I tested the case when you use org-mode, but don't have the table inserted (which you can do with `nanowrimo-insert-org-table').

-Ivan

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Writing Challenge
  2013-10-20  3:22   ` Ivan Andrus
  2013-10-27  8:07     ` Alan Schmitt
@ 2013-11-03 14:56     ` Ivan Andrus
  1 sibling, 0 replies; 6+ messages in thread
From: Ivan Andrus @ 2013-11-03 14:56 UTC (permalink / raw)
  To: emacs-orgmode

FWIW, I have added nanowrimo.el to MELPA.

-Ivan

On Oct 19, 2013, at 9:22 PM, Ivan Andrus <darthandrus@gmail.com> wrote:

> Very interesting! I have been working on a mode which gives the current word-count, WPM and an estimate of the time it will take to hit today's quota in the modeline.  I would be interested in feedback as well as integrating it with your spreadsheet.  You can find it at
> 
> https://bitbucket.org/gvol/nanowrimo.el
> 
> -Ivan
> 
> On Oct 19, 2013, at 3:03 PM, Bob Newell <bobnewell@bobnewell.net> wrote:
> 
>> A couple of us who are writers have worked on a "writing challenge"
>> spreadsheet. This year, for the upcoming National Novel Writing Month,
>> I've greatly modified (read: made more complex) the challenge
>> spreadsheet, and implemented it in org-mode.
>> 
>> It's attached, for anyone who's interested. I know there are other
>> writers and WriMos out there.
>> 
>> It probably has bugs. No, it surely has bugs. Comments welcomed.
>> 
>> I'm kind of attachment-challenged so if it doesn't appear below, get it
>> at
>> 
>> http://www.bobnewell.net/filez/newchallenge.org
>> 
>> -- 
>> Bob Newell
>> Honolulu, Hawai`i

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2013-11-03 14:56 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-10-19 13:56 Watching the competition Nick Dokos
2013-10-19 21:03 ` Writing Challenge Bob Newell
2013-10-20  3:22   ` Ivan Andrus
2013-10-27  8:07     ` Alan Schmitt
2013-11-01  4:56       ` Ivan Andrus
2013-11-03 14:56     ` Ivan Andrus

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).