Comments (19)
Original comment by nomeata (Bitbucket: nomeata, GitHub: nomeata).
Nice idea. I wonder why the lock screen does not appear in the dump – probably because it is more like a dialogue and less like a proper window that appears in the window list (which is what arbtt uses). I don’t immediately see a solution here.
Also, “no data” should be distinguishable from “arbtt-capture was not running (most likely because the machine was off)”: In the former case, there should be a sample with no running programs.
from arbtt.
Original comment by amenthes (Bitbucket: amenthes, GitHub: amenthes).
Ok, then lets not worry about the lock screen for now.
I think I see what you mean regarding no samples / empty samples. The "Activity" timeline in the following screenshot is based on this rule:
#!haskell
-- System Activity
$idle > 300 ==> tag Activity:inactive,
tag Activity:active,
I see the Activity:active
times (dark blue), Activity:inactive
times (light blue) and the gray background is probably when my machine was turned off.
I think I was a little confused earlier, because I usually don't turn off my computer, but put it in standby. I often have entries in the --intervals list that span many hours, when my machine was actually on standby.
from arbtt.
Original comment by amenthes (Bitbucket: amenthes, GitHub: amenthes).
That last thing is even visible in the "activity" screenshot. The last active segment goes past 23:30 and into the next day, it's 12h33m long.
#!
active | 09/19/15 18:07:17 | 09/20/15 06:40:19 | 12h33m13s
from arbtt.
Original comment by nomeata (Bitbucket: nomeata, GitHub: nomeata).
Ah, I think the problem is not so much data capture, but rather a limitation in the implementation of the intervals
report then! It should be smart about when there are samples missing (e.g. if in between two samples, more time than twice the sample rate has passed). Is that it?
from arbtt.
Original comment by amenthes (Bitbucket: amenthes, GitHub: amenthes).
I'd go as far as 10 times the sample rate or a configuration to be safe. But in general, i think it might help.
maybe a handling similar to "inactive" would be good:
$idle > 300 ==> tag inactive,
$nosample > 600 ==> tag off,
I can also report that i'm able to compile arbtt, now (on linux, that is). But it seems i underestimated the conceptual uniqueness of haskell. But with a pointer where to start, i'd even take a stab at it myself!
from arbtt.
Original comment by nomeata (Bitbucket: nomeata, GitHub: nomeata).
maybe a handling similar to "inactive" would be good:
I don’t think this would work well; the concept that tags are assigned to existing samples (and not the time in between samples) is quite baked in.
But it should be sufficient to make sure that the interval report simply reports intervals when there are actually samples, and not in the wholes in between.
But with a pointer where to start, i'd even take a stab at it myself!
Unfortunately, I don’t think this part of the code is particularly beginner-friendly, with this strange LeftFold
processing etc. The relevant bit is
https://bitbucket.org/nomeata/arbtt/src/7c710d22c967963b3052c96e972ca753bf72a8fd/src/Stats.hs?at=master&fileviewer=file-view-default#Stats.hs-326
together with the functions being called (runOnIntervals
and runOnGroups
).
But if you feel like contributing: Maybe you can provide a small self-contained test case that shows this problem, add it to the testsuite tests/test.hs
, so that I can try to implement this feature and easily see if I nailed it or not.
from arbtt.
Original comment by amenthes (Bitbucket: amenthes, GitHub: amenthes).
Is there a trick to running the tests? I tried
#!shell
runhaskell tests/test.hs
tests/test.hs:7:8:
Could not find module ‘System.Process.ByteString.Lazy’
Use -v to see a list of the files searched for.
tests/test.hs:15:8:
Could not find module ‘Categorize’
Use -v to see a list of the files searched for.
tests/test.hs:16:8:
Could not find module ‘TimeLog’
Use -v to see a list of the files searched for.
tests/test.hs:17:8:
Could not find module ‘Data’
Use -v to see a list of the files searched for.
And i managed to get it down to these four dependencies by randomly installing debian's libghc-
packages, but i can't seem to locate these four.
from arbtt.
Original comment by amenthes (Bitbucket: amenthes, GitHub: amenthes).
I added a test, but so far I couldn't test it myself. Still, here it goes:
https://bitbucket.org/amenthes/arbtt/branch/test-issue-29
from arbtt.
Original comment by nomeata (Bitbucket: nomeata, GitHub: nomeata).
Ah, sorry for not telling: The trick is to run cabal test
to run the tests.
from arbtt.
Original comment by amenthes (Bitbucket: amenthes, GitHub: amenthes).
cabal update
cabal install process-extras
cabal install tasty
cabal install tasty-golden
cabal install tasty-hunit
did the trick. Test suite is running and the new test is failing as expected!
from arbtt.
Original comment by nomeata (Bitbucket: nomeata, GitHub: nomeata).
Interval report: Correctly split intervals when no data came in
this fixes #29, and it seems it also fixes #30.
from arbtt.
Original comment by nomeata (Bitbucket: nomeata, GitHub: nomeata).
Thanks a lot for the test case; it is much more pleasurable programming against such a clear spec!
from arbtt.
Original comment by amenthes (Bitbucket: amenthes, GitHub: amenthes).
There's one minor thing, i'd like to point out: https://bitbucket.org/nomeata/arbtt/commits/5c08b1134eca#Ltests/gap-handling.outF9 <-- this line (the last instance of the browser) was not an oversight, it's a fairly short gap, that might be ignored.
I'm not at all passionate about this, and if it would make the code too convoluted it's better to leave it out.
Other than that: Spectacularly quick response! Thank you very much!
from arbtt.
Original comment by nomeata (Bitbucket: nomeata, GitHub: nomeata).
Oh, the code is already there. I chose the cut-off limit at twice the sample rate, so allowing for some skew, but still putting in gaps when it is likely that data is missing for some reason.
I don’t feel strong about this limit; if you have any reason to prefer another factor, tell me about it. (But do not tell me to make it configurable, I’m a fan of avoiding options where there are sane choices that the program can make for you :-))
from arbtt.
Original comment by amenthes (Bitbucket: amenthes, GitHub: amenthes).
The new changes look amazing. Here's a comparison before/after. Sadly, the colors are assigned somewhat randomly right now, but you can clearly see the tiny gray gaps between every interval. Also, the dark blue "active" bar went all the way through to the right, when there was clearly no data anymore.
The lower graphic shows the news interval export. Less gaps, actually tiny slices started appearing. (The tiny blue sliver in the huge orange block at the end of the data was not there before!)
from arbtt.
Original comment by amenthes (Bitbucket: amenthes, GitHub: amenthes).
It appears, bitbucket has no facility to view an image at full size. But you can save it to disk to view the tiny details i'm talking about.
from arbtt.
Original comment by nomeata (Bitbucket: nomeata, GitHub: nomeata).
Hi @Amenthes,
I’m adding pictures to http://www.joachim-breitner.de/projects. Arbtt itself is not very graphical, so I’m wondering if I may use one of the pictures you posted here as an illustration. Would that be ok?
Thanks,
Joachim
from arbtt.
Original comment by amenthes (Bitbucket: amenthes, GitHub: amenthes).
Please, take whatever you need! If you're looking for something different (more detail, larger timeframe etc...) let me know!
Currently i'm quite swamped, but i'm hoping to release my project by the end of the year.
from arbtt.
Original comment by nomeata (Bitbucket: nomeata, GitHub: nomeata).
If you're looking for something different (more detail, larger timeframe etc...) let me know!
Thanks for the offer, but this is just fine; it’s just to make http://www.joachim-breitner.de/projects a bit more colorful and nicer to look at, so this is just fine.
from arbtt.
Related Issues (20)
- Looking for 3rd party tool HOT 4
- Parser error: unexpected end of input on empty categorize.cfg HOT 13
- arbtt-stats: Non-exhaustive patterns in function renderReportText HOT 2
- arbtt-capture.desktop[PID]: Xlib: extension "MIT-SCREEN-SAVER" missing on display ":0". HOT 19
- Error loading shared lib on system update HOT 2
- arbtt-stats --dump-samples uses wrong timezone HOT 5
- Cant install on Fedora 36 HOT 3
- Consider adding to stackage HOT 3
- arbtt-stats gives invalid Unicode error HOT 1
- Cannot import Arbtt as a library HOT 3
- arbtt-stats fails if window title very long with unmatched parenthesis HOT 7
- Better error reporting for bad regular expressions
- log every window except the pure/empty desktop HOT 3
- [BUG] Error calling arbtt-stats on Debian 11 (Timelog starts with unknown marker) HOT 3
- Outdated Windows binaries HOT 1
- Is there any tutorial? HOT 6
- Link missing HOT 1
- how to use arbtt-dump and arbtt-import HOT 1
- MacOS error building pcre-light dependency
- debian install instructions incorrect HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from arbtt.