Recent

Author Topic: Keeping track of project statistics - timings  (Read 16625 times)

ertank

  • Sr. Member
  • ****
  • Posts: 256
Keeping track of project statistics - timings
« on: July 19, 2017, 11:05:59 pm »
Hello,

I would love to see a functionality which recent versions of Delphi has (please see attached picture). It would be sufficient to have some of them as a starter.

I have no experience with Lazarus code myself. I might be a semi-volunteer (because my Pascal skills are not expert), but I don't even know where to look. It would be nice to have information of Project total time, Editing time as a starter.

It may be added design time, debug time etc later.

Of course, it has to be decided where these information will be saved. In a new file? (Delphi is doing it this way) or, in project file itself?

I event do not know if this forum is the right place to fire that post.

Thanks & regards,
Ertan

Martin_fr

  • Administrator
  • Hero Member
  • *
  • Posts: 5800
    • wiki
Re: Keeping track of project statistics - timings
« Reply #1 on: July 20, 2017, 12:58:48 am »
Of course, it has to be decided where these information will be saved. In a new file? (Delphi is doing it this way) or, in project file itself?

Sounds like the could go into project session. (lps file)
Same like which file is open in which editor.

tr_escape

  • Sr. Member
  • ****
  • Posts: 405
  • sector name toys | respect to spectre
    • Github:
Re: Keeping track of project statistics - timings
« Reply #2 on: July 20, 2017, 06:48:55 am »
Actually maybe GIT integration is will be good for Lazarus but as you know if you don't commit your changes/codes to GIT or other versioning or work/project trackers can't help you.

Delphi has got a history system but as I know not working on form design , however if you save all of your changes into a history database your project size will be incrase.

« Last Edit: July 20, 2017, 06:51:24 am by tr_escape »

GetMem

  • Hero Member
  • *****
  • Posts: 3519
Re: Keeping track of project statistics - timings
« Reply #3 on: July 20, 2017, 07:35:55 am »
This feature is relatively easy to implement but is it worth it? I see in the screenshot "Editing Time". What if Lazarus is open, the editor is in focus, but I'm away for a coffe break. Still considered editing? Or should I start a timer after the last keystroke? What if I'm adding 100 icon to my project with the mouse? Still considered editing right? Hook the mouse? What is "Other"? So many questions...
« Last Edit: July 20, 2017, 07:38:38 am by GetMem »

taazz

  • Hero Member
  • *****
  • Posts: 5363
Re: Keeping track of project statistics - timings
« Reply #4 on: July 20, 2017, 09:02:44 am »
This feature is relatively easy to implement but is it worth it? I see in the screenshot "Editing Time". What if Lazarus is open, the editor is in focus, but I'm away for a coffe break. Still considered editing? Or should I start a timer after the last keystroke?
No you start a timmer on the application Idle and when it passes a threshold eg 10 seconds you stop counting editing if a key is pressed inside that time you reset the timer.
What if I'm adding 100 icon to my project with the mouse? Still considered editing right? Hook the mouse? What is "Other"? So many questions...
No this is considered design time.
Hook the mouse?
No same concept while the designer is on top of the editor and the application on idle has never passed a threshold period then it counts as design time. If there was a UML designer included then we could split hairs about what type of design although it would be a subgroup of the design group also.
What is "Other"? So many questions...
well for now edit/design/admiring are the 3 that need to be done :P
Good judgement is the result of experience … Experience is the result of bad judgement.

OS : Windows 7 64 bit
Laz: Lazarus 1.4.4 FPC 2.6.4 i386-win32-win32/win64

GetMem

  • Hero Member
  • *****
  • Posts: 3519
Re: Keeping track of project statistics - timings
« Reply #5 on: July 20, 2017, 09:26:56 am »
@taazz
Still too many inconsistencies...What if the editor is in focus, then when I come back I click the main menu. I can imagine at least ten scenarios when it would be extremely difficult to decide what time goes where.


taazz

  • Hero Member
  • *****
  • Posts: 5363
Re: Keeping track of project statistics - timings
« Reply #6 on: July 20, 2017, 09:43:52 am »
@taazz
Still too many inconsistencies...What if the editor is in focus
the the idle timer will have kicked in and stopped the time counter.

, then when I come back I click the main menu. I can imagine at least ten scenarios when it would be extremely difficult to decide what time goes where.
a new time counter begins or not depending on where you click and waits for you next move or the idle timer's end value.
I can imagine at least ten scenarios when it would be extremely difficult to decide what time goes where.
Yeah I can imagine even more, but the fact is that the counters time one thing and one thing only, how much time you spend interacting with the IDE and which parts of it. Nothing more. You can write a small program that feeds the active window with a key stroke every second lets say "a" and "backspace" in sequence leave the IDE focused go out for vacation and return and have a two weeks non stop editing. what of it?
Good judgement is the result of experience … Experience is the result of bad judgement.

OS : Windows 7 64 bit
Laz: Lazarus 1.4.4 FPC 2.6.4 i386-win32-win32/win64

josh

  • Hero Member
  • *****
  • Posts: 754
Re: Keeping track of project statistics - timings
« Reply #7 on: July 20, 2017, 09:54:41 am »
WHat about creating application in a team?
Ideally it would need to keep a track of individual users/pc's time, and also a time on which files/units have been changed in the case of shared files.
 
Development Installation Lazarus 1.3, FPC 2.7.1,Windows 7/8 32/64, OSX, *nix

Test Environment Lazarus & FPC Trunk on Windows and OSX (Cocoa Mainly on OSX). Testing also Crosscompile windows to OSX.. 
Any posts made from 2015 will be based on Lazarus Trunk.

taazz

  • Hero Member
  • *****
  • Posts: 5363
Re: Keeping track of project statistics - timings
« Reply #8 on: July 20, 2017, 10:03:11 am »
WHat about creating application in a team?
Ideally it would need to keep a track of individual users/pc's time, and also a time on which files/units have been changed in the case of shared files.
NO. the Ide can not and should not know anything about a team or a user. it can post the timing values to a server along with the logged in user name and that's it anything else is outside the scope of the IDE. How those data are presented/interpreted etc is a matter of an other application. The IDE is only harvesting times.
Good judgement is the result of experience … Experience is the result of bad judgement.

OS : Windows 7 64 bit
Laz: Lazarus 1.4.4 FPC 2.6.4 i386-win32-win32/win64

Thaddy

  • Hero Member
  • *****
  • Posts: 9301
Re: Keeping track of project statistics - timings
« Reply #9 on: July 20, 2017, 10:13:49 am »
NO. the Ide can not and should not know anything about a team or a user. it can post the timing values to a server along with the logged in user name and that's it anything else is outside the scope of the IDE. How those data are presented/interpreted etc is a matter of an other application. The IDE is only harvesting times.
I totally disagree with that. In a team an advanced (not notepad) IDE should and must support the team. Usually that is done by supporting version control. (who is working on what?, which file is locked (and why and by whom) , what do I need to merge?. An advanced IDE is not only harvesting, it is communicating both ways with a team.

Note that metrics in general are only useful if you interpret them right. Timing is one of the easiest to implement but then again also one of the less useful metrics.
also related to equus asinus.

GetMem

  • Hero Member
  • *****
  • Posts: 3519
Re: Keeping track of project statistics - timings
« Reply #10 on: July 20, 2017, 10:15:49 am »
@taazz
With your last 2-3 posts, basically you auto-assigned yourself to implement this feature.  :D

Thaddy

  • Hero Member
  • *****
  • Posts: 9301
Re: Keeping track of project statistics - timings
« Reply #11 on: July 20, 2017, 12:34:21 pm »
+1  :D (that's my first...ever...)
« Last Edit: July 20, 2017, 12:36:34 pm by Thaddy »
also related to equus asinus.

taazz

  • Hero Member
  • *****
  • Posts: 5363
Re: Keeping track of project statistics - timings
« Reply #12 on: July 20, 2017, 12:36:55 pm »
@taazz
With your last 2-3 posts, basically you auto-assigned yourself to implement this feature.  :D
OK. I'll put it in my long list of volunteering work I have to finish. Let me see, I'm working on turbobird this is #1, I have the simplegraph to polish this is #2, a small tpagecontrol replacement with custom tab design (a working prototype with attabs as the tabset is finished and part of turbobird's next release) that's #3, The conversion of the KWizard (if memory serves me right) that I promised some one in this forums I'll finish up that's #4, Oh yeah juhas request (more than a recommendation than request) to port a scripting IDE to lazarus #5, extensions to code librarian for net collaboration #6, the work I started on NewACS to port to lazarus/linux and beyond that's #99 (too low in my list), code librarian and turbobird addins for lazarus #98, Ok i'll jam it somewhere in between those how about  #10? Is this acceptable?
Good judgement is the result of experience … Experience is the result of bad judgement.

OS : Windows 7 64 bit
Laz: Lazarus 1.4.4 FPC 2.6.4 i386-win32-win32/win64

GetMem

  • Hero Member
  • *****
  • Posts: 3519
Re: Keeping track of project statistics - timings
« Reply #13 on: July 20, 2017, 12:50:19 pm »
Let's see what the core developer says about this feature. If we got green light, I will implement it, but we need to lay down the rules before. Sill many parts are not clear to me. 

Martin_fr

  • Administrator
  • Hero Member
  • *
  • Posts: 5800
    • wiki
Re: Keeping track of project statistics - timings
« Reply #14 on: July 20, 2017, 01:06:38 pm »
IMHO it should be done a package.
It may be that it will go to Lazarus CCR. (but lets see what others say)

The question is which info the package needs to get from the IDE, and if the units in IDEInf can provide this, or what hooks needs to be added there.