Add web page as discussed in mailing list
authorWaldir Pimenta <waldir@email.com>
Tue, 25 Jun 2013 10:55:22 +0000 (10:55 +0000)
committerWaldir Pimenta <waldir@email.com>
Tue, 25 Jun 2013 10:55:22 +0000 (10:55 +0000)
arbtt.css [new file with mode: 0644]
arbtt.js [new file with mode: 0644]
index.html [new file with mode: 0644]
page-bg.jpg [new file with mode: 0644]

diff --git a/arbtt.css b/arbtt.css
new file mode 100644 (file)
index 0000000..f19d0c9
--- /dev/null
+++ b/arbtt.css
@@ -0,0 +1,123 @@
+
+/**************************** FULL-HEIGHT SIDEBAR *****************************/
+html, body {
+       margin: 0;
+       height: 100%;
+}
+
+#wrapper {
+       min-height: 100%;
+       height: auto !important;
+       height: 100%;
+       margin: 0 auto;
+       position: relative;
+}
+
+section {
+       padding: 1rem;
+}
+
+nav {
+       width: 20rem;
+       position: fixed;
+       left: 0;
+       top: 0;
+       bottom: 0;
+       /* only for visual indication of layout.
+        * should be overriden in visual styles. */
+       background: silver;
+}
+
+#content {
+       margin-left: 20rem;max-width:60em;
+}
+
+section[id]:not(:target) { display: none; }
+
+/****************************** VISUAL STYLES ******************************/
+
+body {
+       font-family: sans-serif;
+}
+#wrapper:before { /* alternative image: http://upload.wikimedia.org/wikipedia/commons/9/96/Simon_Lachez_zakhorloge.jpg */
+       /* Freely licensed image from http://commons.wikimedia.org/wiki/File:Revolutionstaschenuhr.jpg */
+       background: right top url("page-bg.jpg") no-repeat;
+       height:100%;
+       width:100%;
+       opacity: 0.1;
+       position: fixed;
+       top:0;
+       right:0;
+       content: "";
+       z-index:-1;
+}
+
+#content {
+       color: #456;
+       font-size: 85%;
+}
+
+nav {
+       background-color: #445F66;
+       color: white;
+       border-right: 4px solid #DACFB5;
+}
+
+nav > ul {
+       list-style: none;
+       text-align: right;
+}
+nav > ul > li > a.active {
+       font-weight: bold;
+       color: Gold;
+}
+
+nav > ul > li > a {
+       color: white;
+       display: block;
+       padding: 0.5em;
+}
+
+a {
+       color: OrangeRed;
+       text-decoration: none;
+}
+
+a:hover {
+       text-decoration: underline;
+}
+
+a:focus {
+       outline: none;
+}
+
+h1 {
+       font-size: 4em;
+       text-shadow: 2px 2px 3px rgba(255,255,255,0.2), -2px -2px 3px rgba(0,0,0,0.2);
+}
+
+.title {
+       text-align: center;
+       margin: 0;
+}
+
+code, pre {
+       background: #eee;
+       font-size: 115%;
+}
+
+pre {
+       padding: 1em;
+}
+
+.command:before {
+       content: "$ ";
+}
+
+li p {
+       margin: 0;
+}
+
+.installation li {
+       margin-top: 1em;
+}
diff --git a/arbtt.js b/arbtt.js
new file mode 100644 (file)
index 0000000..b5ffe04
--- /dev/null
+++ b/arbtt.js
@@ -0,0 +1,23 @@
+"use strict";
+
+function get(selector) { return document.querySelectorAll(selector); };
+var menuLinks = get('nav > ul > li > a');
+
+for (var i = 0; i < menuLinks.length; i++) {
+       menuLinks[i].onclick = function(){
+               for (var j = 0; j < menuLinks.length; j++) {
+                       menuLinks[j ].classList.remove('active');
+               }
+               this.classList.add('active');
+       };
+}
+
+var x = window.location;
+if ( x.href.indexOf("#") < 0 ) {
+       var anchor = document.getElementsByTagName("section")[0].id
+       window.location = window.location + "#" + anchor;
+       menuLinks[0].classList.add('active');
+}
+else {
+       get('a[href="' + window.location.hash + '"]')[0].classList.add('active');
+}
diff --git a/index.html b/index.html
new file mode 100644 (file)
index 0000000..eb36e48
--- /dev/null
@@ -0,0 +1,221 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+       <meta charset="utf-8">
+       <title>arbtt: the automatic, rule-based time tracker</title>
+       <link rel="stylesheet" href="arbtt.css">
+</head>
+
+<body>
+       <div id="wrapper">
+               <nav>
+                       <h1 class="title">arbtt</h1>
+                       <p class="title"><b>a</b>utomatic, <b>r</b>ule-<b>b</b>ased <b>t</b>ime <b>t</b>racker</p>
+                       <ul>
+                               <li><a href="#what">What is it?</a></li>
+                               <li><a href="#how">How does it work?</a></li>
+                               <li><a href="#install">Installation</a></li>
+                               <li><a href="#usage">Usage</a></li>
+                               <li><a href="#get-involved">Get involved</a></li>
+                       </ul>
+               </nav>
+               <div id="content">
+                       <section id="what">
+                               <h2>What is arbtt?</h2>
+                               <p><b>arbtt</b> is a cross-platform, completely automatic time tracker.</p>
+                               <p>There are lots of time-tracking programs out there that allow you to
+                               collect statistics about how you spend your time,
+                               which activities are your biggest time-wasters, and so on.
+                               However, most of them require explicit action on your part:
+                               you have to manually enter what activity or project you're working on,
+                               and that has several disadvantages:
+
+                               </p><ul>
+                                       <li>You need to stop what you're doing to insert the meta-information, and that breaks your concentration;</li>
+                                       <li>If you are lazy or get annoyed and don't keep updating it, the statistics will be useless</li>
+                                       <li>You won't be able to catch a little thing like quickly answering an e-mail or looking for the weather report.</li>
+                               </ul>
+
+                               <p><b>arbtt</b>, on the other hand, is a time tracker that <i>gets out of the way</i>.
+                               Its core component (<code>arbtt-capture</code>) silently captures data
+                               about what you are doing, completely autonomously.
+                               No interaction required, no distraction possible.
+                               This information is continuously stored in a log file.
+                               A separate tool (<code>arbtt-stats</code>) the allows you to investigate this data,
+                               at whatever time is convenient to you, by using simple text-based rules.</p>
+
+                               <p>One big advantage of this approach is that you do not need to know in advance
+                               what queries you are interested in.
+                               Since the rules are applied in real-time when you are evaluating your data,
+                               and not when recording it, your raw data is always intact, and
+                               you can add more rules and forgotten special cases later.</p>
+
+                               <blockquote><i> Keep in mind that the log file might contain
+                               very sensitive private data. Make sure you protect it well.<br>
+                               You can get rid of all logs by deleting
+                               <code>~/.arbtt/capture.log</code></i>.</blockquote>
+                       </section>
+
+                       <section id="how">
+                               <h2>How does it work?</h2>
+
+                               <p><code>arbtt-capture</code> is a desktop daemon that runs in the background
+                               and keeps a continuous log of your activity,
+                               by storing at regular intervals which windows are open,
+                               which one has the focus and how long it has been since your last action.</p>
+
+                               <p>From this log, a wealth of statistics can be derived.
+                               Here's where the "rule-based" part of the name comes along:
+                               arbtt comes with a built-in command-line statistics generator (<code>arbtt-stats</code>)
+                               that will, based on very simple but powerful rules you can customize,
+                               sift through the raw data and reveal patterns and relevant information.
+                               </p>
+                               <p>The rules are specified in a simple text-based format, on a file called
+                               "categorize.cfg". Here's an example of a simple categorize.cfg file:
+                               </p><pre>
+--Convert program executable names to recognizable names
+aliases (
+  "Navigator"         -&gt; "Firefox",
+  "evince"            -&gt; "PDF reader",
+  "gedit"             -&gt; "Text editor",
+  "totem"             -&gt; "Video player",
+)
+
+{
+--Mark any samples captured after 5 minutes of inactivity with the "inactive" tag
+$idle &gt; 300                     ==&gt; tag inactive,
+
+--Tag each program with its executable name (filtered by the aliases above)
+                                    tag Program:$current.program,
+
+--Tag each program with its window title (filtered by the aliases above)
+                                           tag Title:$current.title,
+
+$time &gt;=  8:00 &amp;&amp; $time &lt; 12:00 ==&gt; tag time-of-day:morning,
+$time &gt;= 14:00 &amp;&amp; $time &lt; 18:00 ==&gt; tag time-of-day:afternoon,
+}</pre>
+
+                               <p>And here's the corresponding output of <code>arbtt-stats -c "Program"</code>:</p>
+                               <pre>
+Statistics for category "Program"
+=================================
+__________________Tag_|_________Time_|_Percentage_
+      Program:Firefox |  8d06h20m00s |      49.01
+Program:Google Chrome |  3d15h24m00s |      21.60
+  Program:Text editor |  1d04h04m00s |       6.94
+        Program:Skype |    13h55m00s |       3.44
+     Program:Terminal |     9h22m00s |       2.31
+   Program:PDF reader |     6h10m00s |       1.52
+      Program:Desktop |     5h13m00s |       1.29
+ Program:File browser |     4h11m00s |       1.03
+ (53 entries omitted) |    22h59m00s |       5.68</pre>
+                       </section>
+
+                       <section id="install">
+                               <h2>Install arbtt</h2>
+
+                               <ul class="installation">
+                                       <li>
+                                               <b>From Hackage:</b>
+                                               <p>arbtt has been <a href="http://hackage.haskell.org/package/arbtt">published on hackage</a>,
+                                               the Haskell package database. If you have
+                                               <a href="http://www.haskell.org/haskellwiki/Cabal-Install">cabal-install</a>
+                                               available, you can install arbtt by simply running:</p>
+                                               <code class="command">cabal install arbtt</code>
+                                       </li>
+                                       <li>
+                                               <b>Debian/Ubuntu:</b>
+                                               <p>arbtt is available both in
+                                               <a href="http://packages.debian.org/sid/arbtt">Debian's</a> and
+                                               <a href="http://packages.ubuntu.com/raring/arbtt">Ubuntu's</a> repositories.</p>
+                                               <p>Install arbtt:</p>
+                                               <code class="command">sudo apt-get install arbtt</code>
+                                               <p>Set it up to start automatically on system startup:</p>
+                                               <code class="command">cp /usr/share/doc/arbtt/examples/arbtt-capture.desktop ~/.config/autostart/</code>
+                                               <p>Start the daemon manually, if you want it to start capturing immediately,
+                                               rather than at the next system restart:</p>
+                                               <code class="command">(arbtt-capture &amp;)</code>
+                                               <p>Create a minimal categorize.cfg file to allow arbtt-stats to be invoked without errors:</p>
+                                               <code class="command">echo "{\$idle &gt; 60 ==&gt; tag inactive}" &gt; ~/.arbtt/categorize.cfg</code>
+                                       </li>
+                                       <li>
+                                               <b>Windows:</b><br>Download the
+                                               <a href="http://www.joachim-breitner.de/archive/arbtt/arbtt-setup-0.4.5.1.exe">installer</a>
+                                               and follow the setup process as usual. This will set up the capturing daemon,
+                                               but note that there is no graphical interface. Extracting stats from the data
+                                               requires running arbtt-stats on the command line. Run
+                                               <code>arbtt-stats --help</code> for a quick reference;
+                                               for more detailed information, consult the
+                                               <a href="http://darcs.nomeata.de/arbtt/doc/users_guide/arbtt-stats.html">manual</a>.
+                                       </li>
+                                       <li>
+                                               <b>Build from source:</b>
+                                               <p>Download the latest release from <a href="http://www.joachim-breitner.de/archive/arbtt/">the archive</a>.
+                                               Extract the tarball and run the following commands to build and install the arbtt binaries:</p>
+                                               <code class="command">runhaskell Setup.hs configure</code><br>
+                                               <code class="command">runhaskell Setup.hs build</code><br>
+                                               <code class="command">runhaskell Setup.hs install</code><br>
+                                               <p>If you use GNOME or KDE, you can copy the file "arbtt-capture.desktop"
+                                               to ~/.config/autostart/. If you didn't do a system-wide installation,
+                                               you'll probably need to put the full path to arbtt-capture
+                                               in the Exec line of the .desktop file.</p>
+                                       </li>
+                               </ul>
+                       </section>
+
+                       <section id="usage">
+                               <h2>Usage</h2>
+
+                               <h3>Quickstart</h3>
+                               <p>Here are some useful rules and command options to perform several common tasks:</p>
+                               <ul>
+                                       <li><b>List all entries from the past hour:</b></li>
+                                       <blockquote>
+                                       In categorize.cfg: <code>tag Title:$current.title,</code><br>
+                                       On the command line:
+                                       <code class="command">arbtt-stats --intervals=Title: --filter '$sampleage &lt;= 1:00'</code>
+                                       </blockquote></li>
+                                       <li>...</li>
+                               </ul>
+
+                               <h3>Documentation</h3>
+                               <p>For more detailed information and examples of how to setup
+                               the categorization used by arbtt-stats, check the
+                               <a href="http://darcs.nomeata.de/arbtt/doc/users_guide/configuration.html">Configuration</a>
+                               section of the documentation.</p>
+
+                               <p>For a comprehensive overview of commands and options, visit the
+                               <a href="http://darcs.nomeata.de/arbtt/doc/users_guide/references.html">Reference</a>
+                               section of the documentation (i.e. the man pages).</p>
+
+                               <h3>Troubleshooting</h3>
+                               <p>If you're having issues, check the
+                               <a href="http://darcs.nomeata.de/arbtt/doc/users_guide/troubleshooting.html">Troubleshooting</a>
+                               page, or ask in the mailing list (<code>arbtt@lists.nomeata.de</code>).</p>
+                       </section>
+
+                       <section id="get-involved">
+                               <h2>Get involved</h2>
+                               <p>You are very welcome to help the developement of arbtt,
+                               by contributing feedback, ideas, bug reports, patches or documentation.
+                               Any contribution, big or small, is highly appreciated!
+                               The main communication channel is the arbtt mailing list:
+                               <code>arbtt@lists.nomeata.de</code>. To subscribe to it, visit
+                               <a href="https://lists.nomeata.de/mailman/listinfo/arbtt">its info page</a>.</p>
+
+                               <p>The source code is in <a href="http://haskell.org">Haskell</a>,
+                               and is managed in a darcs* repository
+                               (<a href="http://darcs.nomeata.de/cgi-bin/darcsweb.cgi?r=arbtt;a=summary">browse it online</a>).
+                               You can fetch the code with:<br>
+                               <code class="command">darcs get http://darcs.nomeata.de/arbtt</code><br>
+                               <blockquote><i>* <a href="http://darcs.net/">darcs</a>
+                               is a distributed version control system, very similar to git
+                               and easy to get started with. Here's an excellent
+                               <a href="http://darcs.net/QuickStart?export&amp;format=Slidy">quickstart slideshow</a>
+                               for getting acquainted with the basics.</i></blockquote>
+                       </section>
+               </div>
+       </div>
+       <script src="arbtt.js"></script>
+</body>
+</html>
diff --git a/page-bg.jpg b/page-bg.jpg
new file mode 100644 (file)
index 0000000..e3f6a67
Binary files /dev/null and b/page-bg.jpg differ