You cannont send '###' verbatim through http, you need to html escape
it. Cheers, -Cedric

Escape code:
http://www.breakingpar.com/bkp/home.nsf/0/87256B280015193F87256C47007456E7



Aaron Kagawa wrote:
Hey Guys,

Some of you maybe out of the loop on this. A few of us are working on a
small new reporting feature in Hackystat. Read the Philip's email way
all the bottom if you're interested.

I've started on the Ant Side of things. One of my concerns was how to
create a URL that dynamically changes the intervals. I think I hacked a
solution. Below are the Ant target and output that I have so far (BTW, I
hid my Hackystat key). I think its pretty cool; ANT is really amazing. I
have two problems (1) generating Weekly intervals, since week intervals
start on Saturday and end on Sunday.  Anyone have any ideas for figuring
out the weekly interval strings? (2) invoking the TelemetryChart
analysis. Therefore, for now I'm using the ProjectActiveTime analysis.

Cedric: I'm having a problem generating a working URL for the
TelemetryChart analysis. For some reason, when I set
"Telemetry.Selector.Selected.Chart=Churn-Chart###Global" in the URL,
Hackystat only reads "Telemetry.Selector.Selected.Chart=Churn-Chart".
Therefore, I get "Http request parameter
Telemetry.Selector.Selected.Chart is of the wrong format. "  Do you have
any ideas about why this is happening?

thanks, aaron

  <target name= "report" description= "Extracts Hackystat charts" >
    <property name= "reports.report.dir" location=
"${basedir}/build/reports/reports" />
    <mkdir dir= "${reports.report.dir}" />

    <!-- Generate intervals of the past 7 days and 7 months -->
    <tstamp>
      <format property= "DayInterval.EndDay" pattern= "dd" />
      <format property= "DayInterval.StartDay" pattern= "dd" offset=
"-7" unit= "day" />
      <format property= "DayInterval.EndMonth" pattern= "MM" />
      <format property= "DayInterval.StartMonth" pattern= "MM" offset=
"-7" unit= "day" />
      <format property= "DayInterval.EndYear" pattern= "yyyy" />
      <format property= "DayInterval.StartYear" pattern="yyyy" offset=
"-7" unit= "day" />

      <format property= "MonthInterval.EndMonth" pattern= "MM" />
      <format property= "MonthInterval.StartMonth" pattern= "MM" offset=
"-7" unit= "month" />
      <format property= "MonthInterval.EndYear" pattern="yyyy" />
      <format property= "MonthInterval.StartYear" pattern= "yyyy"
offset= "-7" unit= "month" />
    </tstamp>
    <echo message= "Day Interval " />
    <echo message= "   DayInterval.StartDay=${DayInterval.StartDay} " />
    <echo message= "   DayInterval.StartMonth=${DayInterval.StartMonth}
" />
    <echo message= "   DayInterval.StartYear=${DayInterval.StartYear} " />
    <echo message= "   DayInterval.EndDay=${DayInterval.EndDay} " />
    <echo message= "   DayInterval.EndMonth=${DayInterval.EndMonth} " />
    <echo message= "   DayInterval.EndYear=${DayInterval.EndYear} " />
    <echo message= "Month Interval " />
    <echo message= "
MonthInterval.StartMonth=${MonthInterval.StartMonth} " />
    <echo message= "
MonthInterval.StartYear=${MonthInterval.StartYear} " />
    <echo message= "   MonthInterval.EndMonth=${MonthInterval.EndMonth}
" />
    <echo message= "   MonthInterval.EndYear=${MonthInterval.EndYear} " />

    <!-- Day Interval Just checking that the URL works -->
    <get src=
"http://hackystat.ics.hawaii.edu/hackystat/controller?Key=HackystatKey&amp;Project=hacky2004-all&amp;Command=ProjectActiveTime&amp;IntervalType=Day&amp;DayInterval.EndDay=07&amp;DayInterval.EndMonth=04&amp;DayInterval.EndYear=2005&amp;DayInterval.StartDay=07&amp;DayInterval.StartMonth=04&amp;DayInterval.StartYear=2005&amp;reportType=Chart";

      dest= "${reports.report.dir}/report.html"
      verbose= "true" />
    <!-- Day Interval - using the dynamic interval -->
    <get src=
"http://hackystat.ics.hawaii.edu/hackystat/controller?Key=HackystatKey&amp;Project=hacky2004-all&amp;Command=ProjectActiveTime&amp;IntervalType=Day&amp;DayInterval.EndDay=${DayInterval.EndDay}&amp;DayInterval.EndMonth=${DayInterval.EndMonth}&amp;DayInterval.EndYear=${DayInterval.EndYear}&amp;DayInterval.StartDay=${DayInterval.StartDay}&amp;DayInterval.StartMonth=${DayInterval.StartMonth}&amp;DayInterval.StartYear=${DayInterval.StartYear}&amp;reportType=Chart";

      dest= "${reports.report.dir}/report2.html"
      verbose= "true" />
    <get src=
"http://hackystat.ics.hawaii.edu/hackystat/tmp/HackystatKey/Temp17256.png";
      dest= "${reports.report.dir}/Temp17256.png"
      verbose= "true" />
  </target>


report: [echo] Day Interval [echo] DayInterval.StartDay=30 [echo] DayInterval.StartMonth=04 [echo] DayInterval.StartYear=2005 [echo] DayInterval.EndDay=07 [echo] DayInterval.EndMonth=05 [echo] DayInterval.EndYear=2005 [echo] Month Interval [echo] MonthInterval.StartMonth=10 [echo] MonthInterval.StartYear=2004 [echo] MonthInterval.EndMonth=05 [echo] MonthInterval.EndYear=2005 [get] Getting: http://hackystat.ics.hawaii.edu/hackystat/controller?Key=HackystatKey&Project=hacky2004-all&Command=ProjectActiveTime&IntervalType=Day&DayI <http://hackystat.ics.hawaii.edu/hackystat/controller?Key=HackystatKey&Project=hacky2004-all&Command=ProjectActiveTime&IntervalType=Day&DayI> nterval.EndDay=07&DayInterval.EndMonth=04&DayInterval.EndYear=2005&DayInterval.S tartDay=07&DayInterval.StartMonth=04&DayInterval.StartYear=2005&reportType=Chart

      [get] .......
      [get] Getting:
http://hackystat.ics.hawaii.edu/hackystat/controller?Key=HackystatKey&Project=hacky2004-all&Command=ProjectActiveTime&IntervalType=Day&DayI
<http://hackystat.ics.hawaii.edu/hackystat/controller?Key=HackystatKey&Project=hacky2004-all&Command=ProjectActiveTime&IntervalType=Day&DayI>
nterval.EndDay=07&DayInterval.EndMonth=05&DayInterval.EndYear=2005&DayInterval.S
tartDay=30&DayInterval.StartMonth=04&DayInterval.StartYear=2005&reportType=Chart

      [get] ............
      [get] Getting:
http://hackystat.ics.hawaii.edu/hackystat/tmp/HackystatKey/Temp17256.png
      [get] ...

BUILD SUCCESSFUL



At 10:15 AM 5/6/2005, Philip wrote:

Good comments, Aaron.

Extract charts from each Ikayzo project and putting them in a
directory, which is
available on the web. Currently, the plan is to redirect an URL like
http:// <http:///> <projectname>.ikayzo.org/reports to a directory
containing project reports.


I would prefer not to use Perl, because:

(a) I believe that this kind of behavior (making project reports
available in a directory) is quite generic and something we want as a
core facility in Hackystat, and

(b) I want to reduce "language creep" in Hackystat.  We're committed
to Java and Ant as core languages; I'd like to resist adding to that
list unless absolutely necessary.

I think this behavior can be broken down into two sub-problems:

(a) hackyReport currently generates png files with a randomly
generated file name.  This is good as a default behavior, but
complicates things for this particular task.  I propose that when
sending an URL to Hackystat for chart generation purposes, there can
be an optional argument called something like ChartFileName, which can
allow the caller to explicitly indicate what the name of the png file
is.  For example, if the caller sends an URL with
ChartFileName=ActiveTime.Foo.png then that name gets passed to
HackyReport as the name of the file to generate.  (In the event of a
command that generates multiple charts, then the command can decide to
insert an index into the name string prior to passing it to
hackyReport, resulting in ActiveTime.Foo.1.png, ActiveTime.Foo.2.png,
etc.) [I am cc'ing Hongbing to get his opinion on the hackyReport
implications of this.]

We could start by supporting this argument only for the Telemetry
Chart command. That should be enough to get going with Ikayzo.

(b) Generating the chart and downloading to a project-specific
directory.  Once we have (a), then we can use Ant quite easily to
accomplish this task (as opposed to Perl).  We use the <get> target,
and call it twice: once to invoke the Telemetry Chart command, which
creates the .png file and returns an HTML page to Ant (which we
discard).  The second call to <get> simply retrieves the png file
directly, since we've specified its name explicitly in the first call
to <get>.

We can just invoke Ant with this build file on a timer to get daily
updates of the charts.

Once you have this working at Ikayzo, let's add it to HackyDev!  Or
even better, you can debug it on HackyDev and then move it to Ikayzo?

- What types of charts would be interesting to see? Keep in mind that
we only have an
SVN and Jira sensor. And keep in mind that the Ikayzo users will have
no idea about
Hackystat.


At the very least, you should get LOCC going over there so you can
produce size.

- Does the last 7 days, last 7 weeks, and last 7 months seem
reasonable for whatever
reducer/stream we pick? There was some discussion about Hackystat's
inability to
support finer grained analysis than a day. For example, seeing commit
activity
throughout the day, instead of seeing it after the sensor is ran.


The daily diary works for that.  But I say don't worry about that for
now.  We haven't ever actually found any need for such a facility.  I
think there are a lot of metrics that sound good when you're sitting
around a table talking story, but don't really add much value in practice.

- I suppose to make the reporting nice, we could use the look and
feel of ikayzo's
webpages and embed the charts along with explanations.


Yes, that's super easy, once you can specify the names of the png
files explicitly in the command invocation.  Just build a static HTML
page that references the .png file names, and the page will always
include the latest charts.

Cheers,
Philip


Reply via email to