Re: [O] Generating burndown charts using org mode

2011-12-31 Thread OSiUX
El sáb, 31 dic 2011, Marco Craveiro decía:

 Hi Org-Moders,

 I've been using Org-Mode quite a bit, but I'm afraid I'm not an advanced
 user. I'm trying to generate burndown charts [1] which basically follow
 coding progress over a bounded period of time (an iteration).

 I started by generating a file for each iteration:

 snippet_of_org_file
 * Tasks in iteration
 - [[file:list_1.org]]
 - [[file:list_2.org]]

 #+tblname: test_chart
 | Day | Expected | Actual |
 |-+--+|
 |   0 |4 |  4 |
 |   1 |3 |  4 |
 |   2 |2 |  1 |
 |   3 |1 |  0 |
 |   4 |0 |  0 |
 /snippet_of_org_file

Marco, try this:

snippet_of_org_file
*** burndown

#+srcname: burndown
#+begin_src sh :session
cd ~/org
MONTH=$(date +%m)
DAYS_DONE=$(egrep -A1 \* DONE gca.org | egrep -o CLOSED: 
\[[0-9]{4}-$MONTH-[0-9]{2} | cut -c 10- | sort -u)
echo day expected actual
for DAY in $DAYS_DONE
do
  NEXT_BY_DAY=$(egrep -A1 \* NEXT gca.org | egrep -o SCHEDULED: $DAY | 
wc -l)
  DONE_BY_DAY=$(egrep -A1 \* DONE gca.org | egrep -o CLOSED: \[$DAY | 
wc -l)
  echo $DAY $NEXT_BY_DAY $DONE_BY_DAY
done
#+end_src

#+results: burndown
|day | expected | actual |
| 2011-12-01 |5 |  1 |
| 2011-12-05 |3 |  1 |
| 2011-12-12 |4 |  2 |
| 2011-12-13 |2 |  1 |
| 2011-12-14 |2 |  2 |
| 2011-12-15 |2 |  2 |
| 2011-12-16 |2 |  1 |
| 2011-12-19 |1 |  2 |
| 2011-12-20 |0 |  4 |
| 2011-12-21 |0 |  6 |
| 2011-12-22 |0 |  1 |
| 2011-12-26 |0 |  2 |
| 2011-12-27 |0 |  3 |

#+begin_src gnuplot :var data=burndown :file burdown.png
reset
set xdata time
set timefmt %Y-%m-%d
set format x %d
set title burndown
set xlabel days
set ylabel taks
set xtics nomirror
set ytics nomirror
plot data using 1:2 with lines lw 2 lt 3 title col(2), \
 data using 1:3 with lines lw 2 lt 1 title col(3)
#+end_src

#+results:
file:burdown.png
/snippet_of_org_file

--

::

  Osiris Alejandro Gomez (OSiUX) os...@osiux.com.ar
  AA70 93FD B6EF EB42 6920 7530 A799 B226 74C8 A3FE
  http://osiux.com http://wiki.buenosaireslibre.org


signature.asc
Description: Digital signature


[O] Generating burndown charts using org mode

2011-12-30 Thread Marco Craveiro
Hi Org-Moders,

I've been using Org-Mode quite a bit, but I'm afraid I'm not an advanced
user. I'm trying to generate burndown charts [1] which basically follow
coding progress over a bounded period of time (an iteration).

I started by generating a file for each iteration:

snippet_of_org_file
* Tasks in iteration
- [[file:list_1.org]]
- [[file:list_2.org]]

#+tblname: test_chart
| Day | Expected | Actual |
|-+--+|
|   0 |4 |  4 |
|   1 |3 |  4 |
|   2 |2 |  1 |
|   3 |1 |  0 |
|   4 |0 |  0 |
/snippet_of_org_file

list_1.org and list_2.org contain a total of 4 tasks for this time
period (tagged with :iteration1:). The table is updated manually at
present. Day is an index to the days in the time period, with work
always starting on day 1; Expected is the number of tasks expected to
be remaining on that day; Actual is the number of tasks actually
remaining. I then use org-babel/gnuplot to plot the chart as explained
on a previous post [2].

It seemed logical to try to generate the table automatically. I can use
org-mode's spreadsheet's facilities for generating all the days in the
table and I can even use date arithmetic to get dates for a day index.
As you can imagine, the bit I'm really stuck with is how to populate the
Actual and Expected columns. 

I've read a little bit about agenda views, and they seem to do a lot of
what I want, but unfortunately the lisp is not entirely obvious for a
newbie such as me. My questions are:

- is there an org-mode function that computes the total number of tasks
marked with a given tag in this file and any other files it includes?
- is there an org-mode function that computes the total number of tasks
marked with a given tag and marked as CLOSED on a given day in this file
and any other files it includes?

I was wondering if you could give me some pointers on how to go about
finding or even creating these functions as I failed to find anything
obvious. Even a give up, its not trivial would do, so I can at least
stop searching.

Many thanks for your time.

Marco

[1] http://en.wikipedia.org/wiki/Burn_down_chart
[2]
http://lists.gnu.org/archive/html/emacs-orgmode/2011-12/msg00813.html