Welcome Guest! To enable all features please Login or Register.

Notification

Icon
Error

2 Pages12>
Options
Go to last post Go to first unread
metal450  
#1 Posted : Wednesday, December 5, 2012 9:56:14 PM(UTC)
metal450

Rank: Advanced Member

Joined: 12/5/2012(UTC)
Posts: 32

I just stumbled on ManicTime last night, while looking for a better way to track my hourly jobs than manually entering times into Excel. The obvious power and potential of what I found became instantly apparent - and even moreso as I read further into the documentation. Even aside from my intended purpose, I'm now constantly thinking of how this will help keep tabs on all kinds of tasks I've learned to monitor in otherwise roundabout ways; everything from sleep regularity to workout/fitness scheduling. As a fellow software designer/programmer, I just wanted to take a moment to say how impressed I am with how complete and well thought-out this program obviously is. It's got virtually everything I could think of, from a simple way to specify an arbitrary database location via XML (something even Google can't seem to figure out!) to regexp-based autotagging (!!). The documentation is also fantastic. I only wish I'd found it sooner - so much time could've been saved digging through file modification dates trying to figure out when I started a project after realizing that I'd accidentally forgotten to start my timer :)

I have just a few specific questions after reading through all the docs playing with the demo for a few hours:

1) First, I've read a number of forum posts discussing how to autotag based on file location. While I understand why it's not feasible to implement a "general" solution for every application, one particular application I'd like to request would be Windows Media Player. It doesn't display the full path/filename in the titlebar, but perhaps its file/media source can be tracked via a plugin. As an integral part of Windows it seems like a fairly common thing to track; in my particular case, the reason is because sometimes it's used for tutorials/instructional videos/work (from one folder), sometimes it's just goofing off/TV (from another). The ability to figure out which file/source is being played could autotag it to either "Leisure," or the particular job to which it applies.

2) Similarly, is there some way to tell ManicTime not to go idle/away only if a particular program is in the foreground? The most obvious situation is when playing media; I might bring up WMP, hit play, then not touch the keyboard for an hour even though I'm still here. In all other cases though, I have "Away" kicking in after 2 minutes. Another example might be i.e. streaming video from a particular website; if "HBOGo.com" is in the foreground I'm likely watching a movie, but if any other website is opened and has been idle for an hour, I almost certainly have left the keyboard.

3) One important thing I wasn't able to figure out is how to do autotag "exceptions" (or "not rules"). For instance, let's say I autotag Facebook.com as browsing - except that when I'm on subdomains developers.facebook.com or graph.facebook.com in particular, it shouldn't be browsing (as it'll be work/coding). What I'm looking for something like "if(contains(facebook.com) && !contains(developers.facebook.com) && !contains(graph.facebook.com)) then tag"...but wasn't able to figure out exactly how :)

4) Last but not least, a comment on the autotag editor. While it does enable you to show and delete rules, it doesn't seem to allow them to be edited. Even in the first day this this already could've come in handy a few times - i.e. after adding something as a domain but later realizing it should've been a site, I could only fix it by editing the autotag, deleting that rule, then recreating it as a new rule. It would be great if there were a way to edit an existing rule's group/title/custom field. (Of my 4 issues though, this is by far the least important - just something I thought I'd mention).

So once again...thanks for the incredible app, and well done. While I'm sure it's been a long and iterative process, so many of the features are just unbelievably well thought-out. You can count on me being a pro user - still just playing around a bit and getting everything all up and running :)

J~
metal450  
#2 Posted : Wednesday, December 5, 2012 10:03:42 PM(UTC)
metal450

Rank: Advanced Member

Joined: 12/5/2012(UTC)
Posts: 32

Oh, and just one last thing (again, lower priority than the first 3, but something you might want to consider):

5) An undo history (even if it's just length 1). Playing with MT during my initial setup I find myself trying some things that don't work out as I intend - i.e. deleting a block from one of the timelines - but once it's done it's done, and there seems to be no way to get it back. I've kind of committed these first few days to be "testing" and am going to reset tracking once I have it all setup how I want, but if certain 'irreversible' actions could be undone, it would certainly ease the initial experimentation phase.

Thanks again!
admin  
#3 Posted : Wednesday, December 5, 2012 10:43:28 PM(UTC)
admin

Rank: Administration

Joined: 4/13/2010(UTC)
Posts: 872

Wow, great set of questions.

1. My suggestion - use a different player :). We tried to make this work when we were starting out. I'm pretty sure I still have some code if you want to take a crack at it. We got a solution working where another window was opened and you could get the file info from there (if my memory serves its called remoting WMP). The problem was that another window was opened and I believe we also couldn't connect to the running instance, we could only start it and then get the info from WMP. I guess you could do it via a plugin, but we didn't want to install plugins so that was the end of it. It was a while ago when we tried to make this work, maybe it got easier, but in my experience WMP actually loses features with every new version. We could take another look at it when we find some time.

2. This was a common request when we released MT, I think this is what we found out. I'm writing this from memory so I will probably get a few things wrong. Players block screen saver from showing up. Some players just disable the screen saver, I know WMP uses some other method. So since there was not a common method we could not rely on that. What we ended up doing is adding another method to figure out when you are Away. In settings under tracking you can set it to track Away via screen saver. It will work with video players, but the method is not very reliable. I don't know why but screen saver is just not reliable. It might work for you though, I suggest you try it. And any ideas about how to make this better would be great. I know we also tried to figure out if there was a way to get notifications when monitor got idle, but we also couldn't make it work. This might actually be worth taking another look. At the time we were working on XP, this could be possible on win7/8.

3. I think you could write 'facebook.com -developers.facebook.com -xx.facebook.com". But what I would do is just add facebook.com to Browsing, then add developers.facebook.com to Coding, then make sure Coding is higher than Browsing and check Match first. This way Coding will be applied first, then Browsing will be applied to the remaining time.

4. This one really is missing, bugs me to. We will have to make this work at some point. If it helps, on the left arrow down (Autotags menu), you have Recent rules, it will be ordered by the time rules were created. So you can delete it there. Also CTRL-D (Diagnostics mode for Autotags) will help. It will show rules, then you can right click right there on the day view and delete a rule.

5. High up on our todo list. It probably wont make it into the next version, but it should be added soon. And it will most likely have only one level of undo, like you mentioned.
metal450  
#4 Posted : Wednesday, December 5, 2012 11:19:17 PM(UTC)
metal450

Rank: Advanced Member

Joined: 12/5/2012(UTC)
Posts: 32

1) Haha I had a feeling you'd say that :) Yeah, I realize there are better players out there, but I also have a feeling that there are quite a few users who are familiar and comfortable with WMP, myself included (I did see a post or two where WMP file tracking was specifically requested). I personally tend to be a minimalist with installed software, so one less thing is always better. Anyway, if you see this as possible in the foreseeable future I'll hang tight, otherwise I guess I'll need to experiment a bit with VLC :P

2) I did see the screensaver option, but that's definitely not what I'm after - it might work with media players in particular, but there are other situations where it wouldn't be relevant (i.e. playing a long video embedded in a browser, reading a long page in an ebook). I was more looking for something explicit, like an "away rule." Something where I could say not only "if the computer is idle for >2mins, away" but "if the computer is idle for >2mins (and other rule-like criteria is satisfied), away." That way I could set various idle times for various situations:
*go idle after 60mins if WMP is in the foreground
*go idle after 60mins if HBOGo.com is in the foreground
*go idle after 5mins if eReader is in the foreground
*else go idle after 2minutes

Something like that. Then the unreliability of screensavers (and indeed the need to use them at all) would be eliminated and it would work for anyone's given situation.

2.5) As I think about the media-playing situation in particular, one possible thing you could harness might be sound. A rule could be setup saying "go idle if (something) is in the foreground, but only if sound isn't playing." Regarding WMP in particular, I believe you can interop with it via P/Invoke and check its playstate specifically (WMPLib.WMPPlayState.wmppsStopped)? Or maybe that's only for an embedded player and you can figure it out by checking its windows message queue?

3) Perfect! "facebook.com -developers.facebook.com -xx.facebook.com" is EXACTLY what I was looking for :)

4) Got it. Still, those are only ways to delete - not to edit - but it sounds like you're already on top of this :)

5) Sweet.
metal450  
#5 Posted : Wednesday, December 5, 2012 11:22:14 PM(UTC)
metal450

Rank: Advanced Member

Joined: 12/5/2012(UTC)
Posts: 32

2.5.5) Or if rules are overkill for now, a simpler solution could be another checkbox in the options: "Treat sound as user activity." That should handle videos/media pretty well - 99% of the time MT thinks I'm away while I'm actually here is because I'm watching a video, which virtually *always* include sound. So preventing idle while sound is playing would seem to solve this problem completely :)

Edited by user Thursday, December 6, 2012 7:50:13 AM(UTC)  | Reason: Clearer phrasing + addendum

metal450  
#6 Posted : Wednesday, December 5, 2012 11:26:23 PM(UTC)
metal450

Rank: Advanced Member

Joined: 12/5/2012(UTC)
Posts: 32

4) In addition to editing existing rules, it would be cool to be able to add rules directly from this dialog. This became immediately obvious when I wanted to try out "facebook.com -developers.facebook.com -xx.facebook.com" - which I see I can add from the filter box, but then I still had to go in and delete a previous attempt at this rule separately ;)
metal450  
#7 Posted : Thursday, December 6, 2012 12:12:52 AM(UTC)
metal450

Rank: Advanced Member

Joined: 12/5/2012(UTC)
Posts: 32

3) Actually, a follow-up: the list of autotag rules seems to always be implicitly "OR." For example, these 3 rules:

Timeline = Application, Group = Chrome
Timeline = Documents, Title = www.justin-klein.com
Timeline = Documents, Custom = -/projects/wp-fb-autoconnect

...return everything whenever Chrome is being used (OR), rather than returning times in which Chrome is displaying a page on www.justin-klein.com other than wp-fb-autoconnect (AND). Because custom filters can't be applied on multiple timelines (right?), unless I'm missing something, it seems like there's no straightforward way to create autotag rules that consider the situation on multiple timelines?
admin  
#8 Posted : Thursday, December 6, 2012 10:38:43 AM(UTC)
admin

Rank: Administration

Joined: 4/13/2010(UTC)
Posts: 872

I like the sound idea, we'll see if we can make it work. We'll not to tie it to WMP, I guess we should figure out if the app in the foreground is playing sound. The alternative would be any app, foreground or not. We will add it if there is a simple way (some win32 api calls) to figure this out. If there is no simple way we will not add it. These things usually affect the stability of the tracker and we'd rather have a stable tracker than a one with more features.



You are correct about the rules. All rules have OR relationship. The only thing you could do is "www.justin-klein.com -/projects/wp-fb-autoconnect".

We're just working on things discussed here
http://forum.manictime.c...View-and-Auto-Notes.aspx

Long story short, you will be able to mark some tags as append. In your case you will be able to say
Tag 1 - "www.justin-klein.com -/projects/wp-fb-autoconnect"
Tag 2 (append) - Chrome

So you would get Tag 1, if there was another browser, "Tag 1, Chrome" if it was chrome. And in this case Chrome would never stand alone, so it would either be appended or not. Don't know if it helps.

You mentioned regex before, for now there is no regex support in MT. We are trying to add it for the next version, mainly for autotags. We got it working in the filter, search, but we also wanted to add support for capturing groups to be used as part of autotag.
Something like
c:\project 1\Task 1\some.doc
c:\project 2\Task 1\some.doc

c:\(.*?)\(.*?)\(.*?)

Autotag
"Work, {{1}}, {{2}}"

Which would result in
Work, project 1, Task 1
...

I'm not sure if the regex part will be included, we'll see how it goes. I see some uses for it, but I'm not sure if it is worth the extra complexity.
metal450  
#9 Posted : Thursday, December 6, 2012 10:56:41 AM(UTC)
metal450

Rank: Advanced Member

Joined: 12/5/2012(UTC)
Posts: 32

>>These things usually affect the stability of the tracker and we'd rather have a stable tracker than a one with more features.

Understood. Perhaps if there are potential issues, it could be handled via an optional plugin? Or as long as it's a checkbox (labeled 'beta'?) it could be supplied for those who might want to use it, with the caveat that it's use-at-your-own-risk. Even in my oh-so-extensive two days with MT, this has come up quite a few times; watching a work-related lecture on YouTube and it keeps thinking I'm away :)

Out of personal curiosity I did Google around about this a bit. Some potentially helpful leads in here: http://stackoverflow.com...-the-current-audio-level


>>You mentioned regex before, for now there is no regex support in MT

Oh, I was just referring to regex's CustomTitle.txt - but if it's in the works for autotags too, even better!!

As for my particular "AND" problem, I more or less worked around it as you suggested with NOT's...so no worries here :)


Unrelated to 1-4: I've got a pile of 'wishlist' notes after really digging into MT over the last few days. Interested to hear it all, or you've got your hands full already? :)
admin  
#10 Posted : Thursday, December 6, 2012 11:45:44 AM(UTC)
admin

Rank: Administration

Joined: 4/13/2010(UTC)
Posts: 872

Very interested, please, lay it on me :)
metal450  
#11 Posted : Thursday, December 6, 2012 12:11:19 PM(UTC)
metal450

Rank: Advanced Member

Joined: 12/5/2012(UTC)
Posts: 32

I'll start numbering at 5, where we left off. I've got even more, but this ought to get things started :)

5) Stopwatch Improvements. My original and primary use for MT was its stopwatch; all the great other features were discovered later :) Because the stopwatch is so core to my use, I think that a few small convenience features could really go a long way:
5.a) A way to pause/resume it without having to select the tags in a popup tag dialog every time. Often I’ll work on one given job throughout the day, pausing when I want to i.e. check an unrelated email, grab a meal, mess around on Facebook, etc. For these activities I need to stop the timer – but then when I restart it, I need to reselect the same tags again, which gets a bit cumbersome. If there were just a “pause” button it would be great; under the hood this would be essentially the same as stop, except that when you resume, it automatically starts up the same tags as last time (without showing the dialog).
5.b) Animate the tray icon to show it as ticking (cleaner indication than ‘remind me every 30 minutes’ :))
5.c) Keyboard shortcuts to start it with a given tag (again, eliminating the need to popup the tag dialog to start). Assignable system-wide hotkeys would be even better: say, ctrl+shift+1 starts it with preset tag 1, ctrl-shift-2 starts it with another, etc. A systray tooltip could confirm the start/stop.

6) Timesheets & Statistics have several date range presets, but they’re all based on fixed boundaries: week, month, year boundaries. It would be nice to have date ranges based on "now" - i.e. the previous 7 days, the previous 30 days, etc (from today). That way the reporting will always show how much you did for the preceding timeperiod, regardless of what day of the week it happens to be. This is handy for those whose jobs aren’t guided by a fixed workweek.

7) Although I can’t really think of a way around this, I figured I'd ask if it's come up before: have you ever thought of a way to track e-mail addresses in GMail? In Outlook, I love being able to attribute i.e. time spent on mails to certain domains (@company1) to work done for that company. Unfortunately, Gmail’s title only shows the subject, not who you're mailing, so I can't identify when I'm doing work mails vs when I'm not.

8) Is this a bug in absorption? http://screencast.com/t/pm9FOkYJNMCR
I'd expect the two on the right to be absorbed by dark green, and the one on the left to not be absorbed at all).

9) I like the option to "Highlight auto filled and absorbed parts," but for a bit more clarity, it would be nice if this could be two separate options with different highlight colors; that'd make it easier to tell what's being explicitly absorbed by a rule vs what's being autofilled (even when not running in debug-mode).

10) It's possible to resize the top and bottom halves of the Day screen, which causes each of the timelines to resize correspondingly. It would be cool to be able to resize each timeline independently. That way i.e. "Computer Usage" could be made very thin as it's more of a "general guide" that contains less useful info; conversely, tags/autotags could be made larger to correspond with the fact that, at a glance, they're the most important/relevant.

11) It’d be nice to have the ability to put autotag rules in folders. Basically I'm looking for a way to make my long list of rules a little more digestible, i.e. a folder of work-rules, a folder of leisure-rules, etc. Also, some rules might be created just for a specific project or timeperiod - although I'd like to retain them for the sake of reviewing previous logs, they don't need to "get in the way" of my main long-term rules, so it'd be nice to stick those in a subfolder too.

:)
admin  
#12 Posted : Thursday, December 6, 2012 12:41:47 PM(UTC)
admin

Rank: Administration

Joined: 4/13/2010(UTC)
Posts: 872

I'll comment on the other later, the 8
The absorbed tag, is it set to absorb with the dark green as well? If it is then it does look strange, based on the image I'd say it is set to not absorb with dark green.
metal450  
#13 Posted : Thursday, December 6, 2012 12:44:01 PM(UTC)
metal450

Rank: Advanced Member

Joined: 12/5/2012(UTC)
Posts: 32

Yep, it's set to absorb with both dark and light green...
admin  
#14 Posted : Thursday, December 6, 2012 1:03:26 PM(UTC)
admin

Rank: Administration

Joined: 4/13/2010(UTC)
Posts: 872

Its just the way it works. I checked the code, it works like this:
It first checks if the absorbed part fills the missing interval completely. That means that the same tag has to be on the left and on the right of it. If it fills it up, it merges it with the same tag.
In your case they are joined at one side, but not on both. Then it takes 10 minutes to the left and 10 minutes to the right and merges it with the most used autotag of those 20 minutes.
This happens in your case, light green is probably the most used tag in that time frame.
If it can't find that either it will just present absorbed tag as it is.

We could change it so that if it is joined only on one side it is absorbed with that one.
metal450  
#15 Posted : Thursday, December 6, 2012 8:18:43 PM(UTC)
metal450

Rank: Advanced Member

Joined: 12/5/2012(UTC)
Posts: 32

My understanding of absorption was that an "explicit" task would be "expanded" left or right to "fill" space occupied by a neighboring task marked to be absorbed...

In this case, since dark green is in every case nearer the absorbable task (which is completely detached from light green), it's pretty (visually) clear that what's being worked on is light green. In particular, the absorbable tasks are visits to API docs that apply to both light and dark green code projects. First I worked briefly on the green task (checking the docs a few times during it), then I worked on light green (again checking the docs). It seems like it should prioritize the nearer/neighboring absorbers, rather than disjoint absorbers...know what I mean?

Edited by user Thursday, December 6, 2012 9:04:23 PM(UTC)  | Reason: Not specified

admin  
#16 Posted : Friday, December 7, 2012 9:39:25 AM(UTC)
admin

Rank: Administration

Joined: 4/13/2010(UTC)
Posts: 872

In your case I agree. I almost never notice this issue, because usually the autotag timeline is full, so its either same tag on both sides or different tags on both sides. And when they are different it just goes to the most used in the vicinity.

I added it to our todo list, we will change it so that if it is joined on just one side it merged with that one.
admin  
#17 Posted : Friday, December 7, 2012 10:12:50 AM(UTC)
admin

Rank: Administration

Joined: 4/13/2010(UTC)
Posts: 872

5. Stopwatch improvements. I added it to our todo list. In the next version we will definitely add this:
http://forum.manictime.c...pent-since-last-tag.aspx

Maybe we can add some of your stuff as well.

6. On timesheet I think this already exists, Previous week, month .... It is missing in statistics though.
7. It would be nice, but I don't see any way to get it. We could probably get to the DOM and get data from there, but that would probably stop working anytime they upgrade the page.
9. The idea of showing absorbed parts is that you know which parts are guessed and which not. What would you do differently if you knew which is which?
10. That would be nice, but it is also quite complex. We've been trying to find some time for over a year now to "fatten" the selected timeline. I think it would be great if there was a better visual clue as to which timeline is selected. It should be easier to change the timeline control, we have to refactor it some day, but it is just never makes it to the top. I definitely see the fatten feature and an ability to remove any of the 4 preconfigured timelines as more important.
11. What would folders do? I mean currently I'd say that autotags are some kind of folders. One autotag can hold a lot of rules. So Project 1 some rules, Project 2 some rules, then you can just disable project 2 and still keep it. Or export it and delete it.
metal450  
#18 Posted : Friday, December 7, 2012 10:48:01 AM(UTC)
metal450

Rank: Advanced Member

Joined: 12/5/2012(UTC)
Posts: 32

Originally Posted by: admin Go to Quoted Post
I added it to our todo list, we will change it so that if it is joined on just one side it merged with that one.


Sweet :)
metal450  
#19 Posted : Friday, December 7, 2012 11:08:05 AM(UTC)
metal450

Rank: Advanced Member

Joined: 12/5/2012(UTC)
Posts: 32

>>I added it to our todo list.

Nice :) Expanding these ideas, another possible layout you could consider would be i.e. a few different stopwatches along the top of the GUI, each tied to a specific tag/tags. That way you could stop/start the one you want with a single click, and also see which is running at a glance (analog to the hotkeys used to start/stop a stopwatch with specific tags).

In addition, I just noticed a much more critical (for me at least) issue with the stopwatch: it doesn't survive restarts. Often, I find myself rebooting the machine numerous times in a given workday (i.e. while testing a system driver); the current implementation requires that I manually open MT, restart the timer, and fill in the gap caused by the restart. Because I do legitimately stop/start the timer periodically, if I forget to do this right after, there's almost no way to look back at the timeline and figure out when it should've been stopped, and when it stopped because of a reboot but then I just kept on working. It would be much better if it were an option to auto-resume a timer that was left running (not explicitly stopped) prior to a restart, filling in the space (i.e. so it's like the timer has been going continuously).
[X] If a stopwatch is left running while the computer is turned off/suspended, keep it running until explicitly stopped
[X] Implicitly stop a timer whenever the computer is turned off / suspended.

Of all my stopwatch recommendations, personally, this is the most critical - I realized at the end of the day I lost quite a few hours due to this, and really just had to guess to put them back in ;)

>>On timesheet I think this already exists, Previous week, month

It's called "previous week," but it's still the previous week up to the nearest week-boundary. So if today's Friday, "previous week" will show from last Sunday to last Saturday.

>>7. It would be nice, but I don't see any way to get it. We could probably get to the DOM and get data from there, but that would probably stop working anytime they upgrade the page.

Yeah, that's kind of what I figured. Is the plugin API documented somewhere where I might be able to implement this myself? Although GMail changing it would certainly make it a hassle for others, parsing the DOM and pulling the data should be pretty simple, as it seems you're already hooking into the browser on some level. I'd be happy to whip something up and share if it doesn't seem like too much work :)

>>The idea of showing absorbed parts is that you know which parts are guessed and which not. What would you do differently if you knew which is which?

It's mainly just for debugging rules; looking back at the timeline every once in awhile there's a somewhat ambiguous highlight, and I figured it'd be nice to know excatly how it was being calculated. It's not critical or anything, but if it's a 5min change, might be nice to have access to the info :)

>>That would be nice, but it is also quite complex.

Gotcha. It was just a thought, and very unimportant to me personally - I just thought I'd mention it, because I noticed it :)

>>What would folders do?

Just purely for organization. I already have like 25 rules; some work related, some leisure related, some exclusively for absorption, some for very specific jobs that will eventually be concluded, etc. Functionally it would be the same, but it could just make things a bit easier to digest if conceptually similar rules could be hidden/filed away/organized.
metal450  
#20 Posted : Saturday, December 8, 2012 8:14:23 AM(UTC)
metal450

Rank: Advanced Member

Joined: 12/5/2012(UTC)
Posts: 32

12. When generating timesheets (totaled by days), is there a way to have it only list days that include a nonzero number of hours?

Since I cycle between numerous independent jobs, I often don’t invoice a given employer for a few weeks (or even months) at a time; a timesheet that includes every day therefore includes TONS of empty days. It’d be very useful if I could produce a timesheet that just shows days on which I’ve worked (aka days with nonzero time values for the selected tags).
2 Pages12>
Forum Jump  
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.