5

私は最近、興味深いルールベースの自動タイムトラッカーと思われるarbttをインストールしました。 http://arbtt.nometa.de/#what

ほとんどの場合は機能していますが、30 分ほど統計を収集した後、次のエラーが発生します。

Processing data [=>......................................................................................................................................................................................]   1%
arbtt-stats: Prelude.(!!): index too large

この問題をトラブルシューティングする方法、またはさらに良い方法で解決する方法について何か提案はありますか? ルールの作成に使用されるコーディング言語の経験はありません (Haskell だと思います)。この時点で私が行ったことは、ドキュメントに可能な限り厳密に従っていることだけです。

このエラーにより、ツールは 30 分以上データを収集しないため、最終的には役に立たなくなります。それを修正するには、ログを削除して最初からやり直す必要があります。私は主に、カスタマイズ可能なルール ベースのタイム トラッカーを使用するという概念に関心がありますが、arbtt の使用に縛られているわけではありません。

以下のコメントに基づいて、以下にいくつかの詳細情報を含めます。

arbtt-recover を実行しようとすると、次のようなエラーの長いリストが表示されます。それらはすべて、サポートされていない TimeLogEntry に関連しているようです。

Trying at position 1726098.
Failed to read value at position 1726098:
   Unsupported TimeLogEntry version tag 0

構成ファイルに関しては、これが私がこれまでに持っているものです。

$idle > 30 ==> tag inactive,

-- A rule that matches on a list of strings
current window $program == ["Chrome", "Firefox"] ==> tag Web,

current window $program == ["skype"]  ==> tag Skype,

current window $program == ["jetbrains-phpstorm"] ==> tag PhpStorm,

( current window $title =~ m!Inbox! ||
  current window $title =~ m!Outlook! ) ==> tag Emails,

( current window $title =~ m!AdWords! ||
  current window $title =~ m!Analytics! ) ==> tag Adwords,

さらに続きますが、他のすべての行についても同じ構文に従っていると確信しています。残りの行は同じ形式に従っていますが、プロジェクト/クライアント固有のものです。必要に応じて、ファイルの残りの部分を含めさせていただきます。

4

1 に答える 1

8

コメントで説明されているように、これは破損し~/.arbtt/capture.logた . 通常、これは次の方法で修正できます

  • ランニングarbtt-recover
  • に移動~/.arbtt/capture.log.recovered~/.arbtt/capture.logます。

誤って大量のデータを削除しないようにするには、2 番目の手動手順が必要です。arbtt-stats復元されたファイルを渡して使用することで、復元されたファイルが優れていることをテストできます--logfile=~/.arbtt/capture.log.recovered

データの破損は、たとえば、クリーンでないシャットダウンやその他の原因が不明な場合に発生します。ただし、ログ ファイルの形式は、破損 (たとえば、1 つのサンプルの部分的な書き込み) の後でも、他のサンプルが正しく書き込まれarbtt-recover、 によって取得されるようになっているため、いくつかのサンプルを失うことはありませんでした。

于 2015-07-29T07:16:27.510 に答える