Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
AU2014202495B2 - A system and method for generating a chronological timesheet - Google Patents
[go: Go Back, main page]

AU2014202495B2 - A system and method for generating a chronological timesheet - Google Patents

A system and method for generating a chronological timesheet Download PDF

Info

Publication number
AU2014202495B2
AU2014202495B2 AU2014202495A AU2014202495A AU2014202495B2 AU 2014202495 B2 AU2014202495 B2 AU 2014202495B2 AU 2014202495 A AU2014202495 A AU 2014202495A AU 2014202495 A AU2014202495 A AU 2014202495A AU 2014202495 B2 AU2014202495 B2 AU 2014202495B2
Authority
AU
Australia
Prior art keywords
user activity
activity data
data records
user
duration
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
AU2014202495A
Other versions
AU2014202495A1 (en
Inventor
Thomas Haines
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wisetime Pty Ltd
Original Assignee
Practice Insight Pty Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from AU2013901625A external-priority patent/AU2013901625A0/en
Application filed by Practice Insight Pty Ltd filed Critical Practice Insight Pty Ltd
Priority to AU2014202495A priority Critical patent/AU2014202495B2/en
Publication of AU2014202495A1 publication Critical patent/AU2014202495A1/en
Assigned to PRACTICE INSIGHT PTY LTD reassignment PRACTICE INSIGHT PTY LTD Request for Assignment Assignors: WISETIME PTY LTD
Application granted granted Critical
Publication of AU2014202495B2 publication Critical patent/AU2014202495B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • User Interface Of Digital Computer (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

The present invention relates to an improved method of generating a passive chronological timesheet for users of computing devices having a graphical user interface. A computer implemented method for generating a chronological timesheet for a computing device user over a given time period is provided, the method comprising the steps of receiving a set of user activity data records associated with a user identifier for time period, each user activity data record containing a time representation including duration value and descriptive element of action performed by user on computing device during time representation; applying a high-pass filter to the set of user activity data records to form a filtered set of user activity data records; creating an expanded set of user activity data records, wherein the duration value of the user activity data records is greater than the corresponding user activity data record of the filtered set of user activity data records, and whereby aggregate of duration values of the filtered set of user activity data records is less than or equal to the duration of the given time period. Fig. 1 1500 divide time period into a sequence of lesser-duration time periods for each lesser-duration time period receive first set of user activity data records for the time period 1502 apply high-pass filter to form a filtered second set of user activity data records 1504 expand duration value of each user activity data record 1506 collate each timesheet into chronological order 1508 1

Description

Fig. 1 1500
divide time period into a sequence of lesser-duration time periods
for each lesser-duration time period
receive first set of user activity data records for the time period 1502
apply high-pass filter to form a filtered second set of user activity data records 1504
expand duration value of each user activity data record 1506
collate each timesheet into chronological order 1508
A system and method for generating a chronological timesheet
Technical Field
[01] The present invention is related to the field of timesheet recordal. In particular, the present in vention relates to an improved method of generating a passive chronological timesheet for users of com puting devices having a graphical user interface.
Description of the Related Art
[02] Manually inputting timesheets is a necessary but very time consuming and generally inaccurate activity engaged in by a myriad of knowledge workers. The timesheet recipient requires that detailed and accurate information is contained therein, so that the information can be utilised to more efficiently allo cate finite technical and environment resources. It is beneficial for the timesheet information to be pro duced in a time-efficient manner.
[03] Current technologies that aim to improve the efficiency of producing timesheet information pre dominately fall into one of two categories: a) start/stop timers, and b) screen/image recorders.
[04] The start/stop timers include an activity selector and a "start/stop" button, and record the time period between when the user presses start and the user presses stop. These rely on the user activity remembering to press the start and stop buttons, and the change the activity selector throughout each day. The start/stop timer systems are hence error prone and onerous.
[05] The screen recorder systems record a 'snapshot' of the user's screen at intervals during the day. There are many problems with this approach, including that more surveillance data than is necessary for the task outcome is recorded; the volumes of data produced are significant, they are extremely time con suming to review, and they may record confidential or personal information. They are more suited as a surveillance tool than to timesheet recordal.
[06] Yet another approach to timesheet recordal is to record all of a user's interactions with the com puter, and then aggregate or group the information for presentation to the user, with the goal of allowing that user to improve their personal time productivity. For example, the user may learn that they spent 3 hours reading email on a given day, or that he or she spent 18 minutes on Wikipedia, or 6 seconds at "bi oceuticals.com". This type of time expenditure information can be useful for optimising how time is best spent on competing priorities. However, this form of recordal does not substitute for the chronological narrative that a timesheet must embody.
[07] When processing user interactions, if all of the events and actions of the user were to be
arranged in chronological order, the information is indigestible, because it is voluminous, and each
item, of which are of vastly differing importance, must be consumed by the reader in turn. This is
because users typically switch from input type to input type frequently.
[08] Therefore, there is a need in the art to address and/or ameliorate the aforementioned
problem.
Summary of Invention
[09] It is an object of the present invention to meet this need or to substantially overcome, or
at least ameliorate, one or more disadvantages of existing arrangements.
[10] According to a first aspect of the present invention, there is provided a computer
implemented method of generating a chronological timesheet over a given time period is
provided, the method performed by a timesheet generator apparatus comprising a user activity
data receiving module and a processor configured to implement a normalisation module, and said
method comprising the steps of: the user activity data receiving module receiving a first set of user
activity data records associated with a user identifier for the given time period, each user activity
data record containing a time representation including a duration value and a descriptive element
of an action performed by said user on a computing device during the time representation; the
normalisation module applying a high-pass filter to the first set of user activity data records to form
a filtered second set of user activity data records, wherein the filtered second set of user activity
data records includes fewer data records than the first set of user activity data records; the
normalisation module creating an expanded third set of user activity data records from the second
set of user activity data records, wherein the duration value of one or more user activity data
records of the expanded third set of user activity data records is greater than the corresponding
user activity data record of the filtered second set of user activity data records and the expanded
third set of user activity data records includes the same number of data records as the filtered
second set of user activity data records, whereby an aggregate of duration values of the third set of
user activity data records is less than or equal to the duration of the given time period; wherein the
high-pass filter allows high duration value user activity data records to pass but does not allow user
activity data records with duration values lower than a cut-off determinate to pass, and creating
the expanded third set of user activity data records comprises expanding the duration values of
one or more user activity data records of the filtered second set of user activity data records.
[11] According to this aspect, there is also provided a computer program comprising program
code configured to perform the method steps of this aspect when the program code is executed by
a computer. There is also provided a computer reading medium storing computer program code
configured to perform the method steps of this aspect when the computer program code is
executed by a computer. This aspect also provides an electromagnetic carrier wave encoding
computer program code adapted to perform the method of this aspect when the carrier wave is
decoded by a computer and the program code is executed by a computer.
[12] According to a second aspect of the present invention, there is provided a timesheet
generator apparatus configured to generate a chronological timesheet over a given time period on
a computer system, the timesheet generator apparatus comprising: a memory; a user activity data
receiving module configured to receive a first set of user activity data records for the given time
period associated with a user identifier, each user activity data record containing a time
representation including duration value and descriptive element of action performed by said user
on a computing device during the time representation; a processor device operatively coupled to
the memory and user activity data receiving module, the processor device configured to
implement a normalisation module, and the normalisation module configured to: apply a high-pass
filter to the first set of user activity data records to form a filtered second set of user activity data
records, wherein the filtered second set of user activity data records includes fewer data records
than the first set of user activity data records, and create an expanded third set of user activity
data records from the second set of user activity data records, wherein the duration value of one
or more user activity data records of the expanded third set of user activity data records is greater
than the corresponding user activity data record of the filtered second set of user activity data
records and the expanded third set of user activity data records includes the same number of data
records as the filtered second set of user activity data records, whereby an aggregate of duration
values of the second set of user activity data records is less than or equal to the duration of the
given time period, wherein the high-pass filter allows high duration value user activity data records
to pass but does not allow user activity data records with duration values lower than a cut-off
determinate to pass, and creating the expanded third set of user activity data records comprises
expanding the duration values of one or more user activity data records of the filtered second set
of user activity data records.
[13] By filtering the number of user activity data records, statistically insignificant user activity
records are removed from the chronological timesheet. By subsequently expanding the duration
values of one or more user activity data records, the chronological record embodies an aggregate
2A time duration that is consistent with the actual spent using the computer device user for the given time period.
[14] It will be appreciated that, specifically in multiuser environments, the number of activity
data records may grow to a size within a short period of time while the information included may
only be of little use if not further processed. The invention provides a method to manage also large
numbers of data records and extract meaningful high-level information.
[15] In an embodiment of the method of the invention, the normalisation module expands the
duration value of one or more user activity data records of the filtered second set of user activity data recordsusingafunction(duractionvalue), wherein 5 is the numerical difference between the
aggregate duration values of the first and second sets of user activity data records, and P is the aggregate of duration values in the second set of user activity data records.
[16] In another embodiment, the normalisation module expands the duration value of one or
more user activity data records of the filtered second set of user activity data records using a function ) , wherein 5 is the numerical difference between the aggregate duration values of
the first and second sets of user activity data records, and LI is the number of records in the second
set of user activity data records.
[17] Expanding the duration values of the user activity data records remedies the issue of
inconsistent aggregate duration of values following application of the high pass filter on the to the
first set of user activity data records. Specifically, over time, adaptation of both the function and
the parameters of the expansion can be optimized in a recursive manner and, this way, the
accuracy of the resulting time sheet improved.
[18] In another embodiment of the method of the invention, a precursory step of dividing said
given time period into a sequence of lesser-duration time periods of predetermined duration is
performed, whereby a timesheet for each said lesser-duration time periods is generated, and a
further subsequent step of collating said lesser-duratioon timesheets into chronological order is
performed to generate a timesheet for said given time period.
[19] Generation of lesser-duration time periods and subsequent collation thereof, while
initially increasing the total number of data records, provides for more flexibility in the adaptation
of the method of the invention to individualized needs and implementations, and thus more
accurate timesheet results downstream
[20] In yet another embodiment of the method of the invention, the first set of user activity data records are gathered by a further step of registering to receive user input events of the computing device using a windowing system that the user of the computing device is operating, and recording the window particulars of the foremost window of the computing device as user input events are received to create one or more user activity data records associated with the user identifier.
[21] This allows generation of user activity data records in an automatic manner so that the
user is not required to enter any information into the system, yet the system will still produce a
sufficiently accurate representation of the user activity and thus generation of a suitable time
sheet. Specifically, such operation may provide accurate tracking of user activity and provide a
suitable database for long-time or large-scale user activity monitoring.
[22] In an embodiment of the timesheet generator of the invention, the processor device expands
the duration value of one or more user activity data records of the filtered second set of user activity data records by a functionS(durationValue) or a function S(T), wherein 5 is the numerical
difference between the aggregate of duration values of the first and second sets of user activity
data records, P is the aggregate of duration values in the second set of user activity data records. In
another embodiment of the timesheet generator of the invention, and LI is the number of records
in the second set of user activity data records.
[23] As explained above, expanding the duration values of the user activity data records
remedies the issue of inconsistent aggregate duration of values following application of the high
pass filter on the to the first set of user activity data records. Specifically, over time, adaptation of
both the function and the parameters of the expansion can be optimized in a recursive manner
and, in this way, the accuracy of the resulting time sheet improved.
[24] In another embodiment of the timesheet generator of the invention, the processor device
first divides said given time period into a sequence of lesser-duration time periods of
predetermined duration, whereby a timesheet for each said lesser-duration time periods is
generated, and the processor device subsequently collates each timesheet into chronological order
to generate the timesheet for said given time period.
[25] In yet another embodiment of the timesheet generator of the invention, the user activity
data receiving module further comprises an active window monitor module, to monitor the active
window title of a computing device, by registering to receive user input events of the computing
device using a win dowing system, and obtaining the window title of the foremost window of the computing device when user input events are received to thereby generate user activity data records, whereby the active window monitor module may persist user activity data records to a user activity data store.
[26] As indicated above, this embodiment allows generation of user activity data records in an auto
matic manner so that the user is not required to enter any information into the system, yet the system
will still produce a sufficiently accurate representation of the user activity and thus generation of a suita
ble time sheet. Specifically, such operation may provide accurate tracking of user activity and provide a
suitable database for long-time or large-scale user activity monitoring. In this context, the active window
monitoring module may be implemented as a process in itself that may be hidden and/or running as a
background process of the operating system. Storing the user activity data records in a user activity data
store saves the data for archiving purposes and, in particular, provides a basis for long-term or large-scale
analyses, such as trend analyses, and potentially further statistics.
[27] The specific features of the embodiments described above can be combined as needed for a spe
cific application. Although not all combinations of features have been described in detail, they have been
considered and evaluated in the context of the development of the present invention and are merely
omitted for the sake of brevity. Further, reference is made to the below detailed description of embodi
ments of the invention which help to understand certain features better and provide additional support
for combinations thereof.
Brief Description of Drawings
[28] These and/or other aspects and advantages of the invention will become apparent and more
readily appreciated from the following description of the embodiments, taken in conjunction with the
accompanying drawings of which:
[29] Fig. 1 is a flow chart of algorithmic operations of an active window monitor module and including
user activity data store/record synchronization to an upstream server according to an embod
iment.
[30] Fig. 2 is a block diagram illustrating one embodiment of a timesheet generator apparatus for gen
erating a passive chronological timesheet for a computing device user over a given time period on
a computer system.
[31] Figs. 3a-3c illustrates by example the steps of one embodiment of generating a chronological
timesheet.
[32] Fig. 4 is a flow chart of algorithmic operations of an active window monitor module and including
user activity data store/record synchronization to an upstream server according to an embod
iment.
[33] Fig. 5 is a flow chart of algorithmic operations of an active window monitor module according to
an embodiment.
[34] Fig. 6 is an example chronological timesheet according to one embodiment.
[35] Fig. 7a represents the 'Cocoa' class needed to capture user input events on MacOS X.
[36] Fig. 7b is a sample method that can be used to capture the active application name and win
dow title, using 'AppleScript' on MacOS X.
[37] Fig. 8 illustrates a set of sample user activity data records.
Description of Embodiments
[38] Although the description has been described with respect to particular embodiments thereof,
these particular embodiments are merely illustrative, and not restrictive. The specification makes refer
ence to example categories of users (preferably knowledge workers) such as accountants and attorneys.
These examples are for illustrative purposes only, and should not be considered as restricting the scope of
application of the invention as limited to any given type or genus of worker. The invention may prefera
bly have utility in any organisation that employs users that engaged to complete various tasks, preferably
using computing devices.
[39] With reference to Fig. 1, an overview of the steps of a method for generating a chronological
timesheet 6 for a computing device 14 user over a given time period is hereby described. For explanatory
purposes, we shall describe the steps by using an example given time period of Wednesday 15 September
2004 09:54-10:18; and computing device 14 of a laptop computer device running the OS X operating
system in this embodiment. In the present example, a timesheet 6 for user Max Mustermann is to be
generated.
[40] A first step of dividing given time period into a sequence of lesser-duration time periods of prede
termined duration is performed at 1500. Considered in conjunction with the form of high-pass filter that
is used (described later herein), a shorter predetermined duration will generally result in a higher number
of records, and conversely, a longer predetermined duration will result in a lower number of records. The
predetermined duration should be selected based on the requirements of the user. In the present em
bodiment, a predetermined duration of 6 minutes is used. Hence, example time period 09:54-10:18 is
divided into a set of lesser-duration time periods: 9:54-10:00, 10:00-10:06, 10:06-10:12 and 10:12
10:18. In this description, the start of the period is inclusive and the end of the period is exclusive. By
example for time period 10:00-10:06, any event that both greater than or equal to time value 10:00 and
less than 10:06.
[41] To generate the timesheet for 2004-09-15 10:00-10:06, a first set of user activity data records 72
is received. The embodiment may include active window monitor module 32 (described later herein) to
generate, retain and provide the first set of user activity data records 72. Alternatively, the first set of
user activity data records 72 may be received from a third-party's system, such as receipt over a network
from a data-server provider. The first set of user activity data records is associated with a user identifier
(in this case, with user Max Mustermann).
[42] Each user activity data record 64 contains a time representation including duration value and
descriptive element of action performed by the user on computing device 14 during time representation.
The time representation could be in the form of a duration value in seconds. The time representation
may include a start timestamp. The duration value could be in the form of the combination of a start
timestamp and an end timestamp.
[43] In the present embodiment, the descriptive element of action performed by the user is a descrip
tion of application name and window title (described later herein) in use by user. An example first set of
user activity data records is illustrated in Fig. 3a.
[44] A high-pass filter is applied to the first set of user activity data records 72 to form a filtered se
cond set of user activity data records 74 at 1504. A high-pass filter is an electronic filter that allows high
duration value rows to pass, but does not allow rows with duration values lower than a cut-off determi
nate to pass. In the present embodiment, the cut-off determinate is that the duration value must be
greater than 5 seconds. As an alternatives, the cut-off determinate may act on a first set of user activity
data sorted by descending duration value, and for example only allow the top 30% of rows or top 5 rows
in the first set to pass.
[45] By way of illustration, the high-pass filter of the present embodiment is applied to the first set of
user activity data records 72 illustrated in Fig. 3a, to form the filtered second set of user activity data rec
ords 74 illustrated in Fig. 3b. As one example of the operation of the high-pass filter of the present em
bodiment, the first row (1 second, System Preferences - DELL 2405FPW) was less than the 5-second cut
off determinate, and hence is not present in the filtered set of user activity data records 74.
[46] It should be noted that the second set of user activity data records 74 of user Max Mustermann
now totals 283 seconds (despite the actual time spent on the computing device being 300 seconds). An
advantage of applying the high-pass filter is to reduce the amount of insignificant and/or irrelevant infor
mation, and hence, to make the timesheet into a form that can be readily understood by the reader.
However, in the situation of a timesheet, it may present a problem in that the time logged for the given time period is not equal to the aggregate of the duration values. In the example where a recipient is using the aggregate of the duration values for analysis or calculation, the need to have the insignificant and/or irrelevant information removed from their data set should be achieved without impacting on the validity of the aggregate duration values.
[47] To remedy the issue of inconsistent aggregate duration of values explained above, a step of cre
ating an expanded third set of user activity data records 76 from the second set of user activity data rec
ords 74, wherein the duration value of one or more user activity data records 76 is performed at 1506.
The aggregate of duration values of the third set of user activity data records 76 is less than or equal to
the duration of the given time period. In the present example illustrated in Figs. 3a-3c, the aggregate of
duration values of the third set of user activity data records 76 should be less than or equal to 300 se
conds. The term expanded in this context means that the duration value in the third set of user data rec
ords 76 is longer in duration than the corresponding duration value of the user activity data record in the
second set of user activity data records 74.
[48] For the step of creating an expanded third set of user activity data records 76 at 1506, the pre
sent embodiment firstly makes a copy of the second set of user activity data records 74. Next, the aggre
gate of duration values in the second set of user activity data records is stored as/ . 5 is the numerical
difference between the aggregate duration values of the first and second sets of user activity data rec
ords. In the example of Figs. 3a-3c, 5 is equal to 17 seconds (300 - 283), and / is equal to 283.
[49] In the case that 5 is a positive value, each user activity data record is examined to determine an
expansion value, and expand the duration value by the expansion value. The expansion value of the pre (durationvalue sent embodiment is calculated using function f44
[50] Continuing with example in Fig. 3b, expansion value for the first row is calculated as 17(-). The 283)
expansion value of 2.6431 is added to the value (44 seconds), to create an expanded duration value of 47
seconds (rounded, see Fig 3c).
[51] An alternative function may be used (), where T is the number of records in the second set of
user activity data records. If this function were applied to the same record, the expansion value of 4.25 is
derived from 1 7 ( ), to create an expanded duration value of 48 seconds.
[52] A timesheet for each of the six minute time periods is generated and the timesheet is collated
into its chronological order to generate a complete timesheet for the given time period at 1508. An ex
ample collated chronological timesheet 6 is provided in Fig. 6. This is one example of presenting the
chronological timesheet. The set of user activity data records may be used in other contexts, such as
saved into a database for subsequent analysis.
[53] A timesheet generator apparatus 8 for generating a chronological timesheet for a computing
device 14 user over a given time period on a computer system is herein described. With reference to Fig.
2, the timesheet generator apparatus includes a memory 106, a user activity data receiving module 54
and a processor device 60 operatively coupled to the memory 106 and user activity data receiving module
54.
[54] The user activity data receiving module 54 is configured to perform step 1502 described herein.
The processor device is configured to implement a normalisation module 62. The normalisation module
62 is configured to perform steps 1504 and 1506. The user activity data receiving module 54 includes an
active window monitor module 32, to monitor the active window title of a computing device 14, by regis
tering to receive user input events 36 of the computing device 14 using a windowing system, and obtain
ing the window title of the foremost window of the computing device operating system 34 when user
input events 36 are received to thereby generate user activity data records. The active window monitor
module 32 persists user activity data records to a user activity data store 58. The user activity data store
58 may take the form of a SQL relational database, such as MySQL. The active window monitor module
32 is described in further detail below.
[55] A further step of registering to receive user input events 36 of a computing device using a win
dowing system that the computing device user is operating, and recording the window particulars of the
foremost window of the computing device 14 as user input events 36 are received to create a user activity
data records associated with a user identifier, is described for the embodiment. The embodiment prefer
ably includes an active window monitor module 32 (also described as taking the form of a 'window title
monitor module'). The active window monitor module 32 generates user activity data records. The user
activity data records are stored in a user activity data store 58. The active window monitor module 32 is
responsible for querying, polling or otherwise ascertaining the active activity (i.e. the 'foremost') that the
user is engaged with on a given computing device 14. This usually takes the form of a 'window', and each
window preferably contains information about the application that created the window, and information
about the contents of the window. This could take the form of a visual textual string presented to the
user, or it could be hidden from the user, but available programmatically, or via alternative means such as
audible information that may be played to the user.
[56] A set of preferred steps of the active window monitor module 32 are illustrated in Fig. 4. The
'event receiver thread' process starts at 1440. The active window monitor module 32 receives a plurality
of user input events at 1442. This is explained further below with reference to Fig. 5. As each user input
event is received, it is transformed into user activity record by adding the username and removing certain
particulars (described in another portion of specification), and is preferably saved to a local storage loca
tion, such as the memory or disk storage of the computing device 14 at 1444. In some limited cases, such as where the user activity data store 58 is hosted locally on the computing device 14, it may be preferable to save each user input events to the user activity data store 58 as it is received.
[57] A second thread of the active window monitor module 32 is illustrated in Fig. 4 in the bottom
rectangular box labelled 'Uploader Thread'. The Uploader Thread runs periodically, starting at 1446. It
checks the local storage location where the user activity record are stored if there are any user activity
records available that are pending (in the sense they have not been uploaded to the user activity data
store 58)at1448. For any records that are found, they are compressed into a bundle ofrecords, and
uploaded to the user activity data store 58 at 1450. If the upload was successful at 1452, the user activity
data record(s) are marked as complete at 1454, and the process completes at 1456. If the upload was not
successful at 1452, the process completes at 1456. In the case that upload was not successful, the rec
ords will try to be uploaded again when the process runs again.
[58] With reference to Fig. 5, active window monitor module 32 preferably registers to receive user
input events from the host operating system of the worker's computing device 14 at 1038. It may also
start an inactivity timer thread. An example method of registering to receive user input events is shown
in Fig. 7a.
[59] With reference to Fig. 4, upon the active window monitor module 32 receiving user input events
36, the application owner of the foremost window (also called the active window) and window title of the
active window are obtained from the computing device operating system 34 at 1040. A user input event
36 may preferably include the mouse being moved or clicked, keys on a keyboard being pressed, a touch
screen or track-pad being touched by the user. This combination may also be referred to as the 'active
application name and window title' (AANWT).
[60] The notion of window 'ownership' or 'owner' is a term used to describe the application that cre
ated and/or is responsible for instructing the operating systems what should be rendered in that window
(i.e. the active application). The mechanics of how to obtain these particulars are described later herein
with reference to using the AppleScript engine of the OS X operating system.
[61] There are various approaches to passively collecting the information about the active window
title on a given worker's computer. In the present embodiment, the Mac OS X operating system is used as
the basis of describing this operation. A personal skilled in the art would understand that the API calls
under the Win32 environment may differ in name, but provide similar functionality.
[62] There are two significant aspects to the creation of data rows that contain the user identifier (in
the form of a username or email address), the active window title, and the time period that the window
title was active. Firstly, that the window title, preferably also including the application name is tracked;
and secondly, that the active window is only tracked when it can be ascertained that the worker is active
ly engaged with the computer. If after a predetermined or dynamic time period, e.g. 60 seconds, there has been no inputs from the user such as moving the mouse or pressing a key, then the system should allocate all time following and until further input is detected as 'offline'. Preferably, a user dialog is pre sented to the user when user input is again detected, giving them the option to enter a comment about the time spent away from the computer.
[63] In the present embodiment, a background process that links with the AppleScript API is adopted
to implement this aspect of the invention.
[64] At anytime, the process name and window title of the current active application can be captured.
In AppleScript on Mac OS X, this can be achieved by calling 'tell process frontAppName' and 'tell (1st win
dow whose value of attribute "AXMain" is true)'. Using one approach, a background process can continu
ally poll the AppleScript periodically to gather historic records of active application switching. This meth
od is illustrated in Fig. 7b.
[65] The user identifier in the form of a username may be determined via AppleScript by calling 'set
username to (short user name of (system info))'. Alternatively, if the username needs to mirror another
system, i.e. a central directory of usernames maintained by the organization, or takes the form of an
email address, it may be stored in a settings file accessible by the process that is collecting the infor
mation about the window titles and creating the data rows.
[66] In an alternative configuration, a plurality of data rows may be received from an external data
storage and application provider, such as that provided by the RescueTime.com application and its associ
ated API. For organizations where the processes and methods are confidential, or where confidential
information may be gleaned from analysis of the activities of its knowledge workers, or an organization
with a large number of users, the use of an external data storage and application provider may be highly
undesirable.
[67] In another preferred configuration, the system registers to receive user action events, and ob
tains the application name and window title at the time that each user event occurs.
[68] Each record has an associated time period, starting from the timestamp when the current active
window was first detected until a new active window title bar description is detected.
[69] For example, 'tell (1st window whose value of attribute "AXMain" is true)' may return the follow
ing sequence at the following times....
- 20130427-17:15:38.277: windowName=MS Word, windowTitle=P186TG-2-Pleadings.docx
- 20130427-17:16:20.061: windowName=MS Outlook, windowTitle=Re: P186TG2 Review of draft
pleadings
- 20130427-17:16:22.783: windowName=Google Chrome, window
Title=https://www.lexisnexis/?search=pleadings-precedent
- 20130427-17:16:23.463: windowName=Google Chrome, windowTitle=Pleadings precedents.pdf
- 20130427-17:16:54.634: windowName=Firefox, windowTitle=Case Docket WebApp - P642TH-6
- 20130427-17:16:55.307: windowName=MS Outlook, windowTitle=P642T6 Re: Follow-up re meet
ing
- 20130427-17:16:56.035: windowName=Google Chrome, windowTitle=TTPleadingv9 [P1682G
3]
- 20130427-17:17:01.221: windowName=Firefox, windowTitle=Case Docket WebApp: P642TH-6
- 20130427-17:17:05.285: windowName=MS Outlook, windowTitle=Re: Rotor assembly [P186TG
4]
- 20130427-17:17:17.577: windowName=Google Chrome, windowTitle=Rotar assembly [P186TG
4].CAD
[70] This approach takes advantage of a common windowing strategy of operating systems and addi
tionally in some applications that support an internal tabbed interface such as web browsers, where each
window has a unique and transient 'Z order' to determine which window should be displayed to the user.
At anytime, there can only be one window or tab that is 'active', that is, that has the front-most Z order.
[71] Fig. 4 details an algorithm implemented by the active window monitor module 52 (may also be
referred to as window activity monitor module or WAMM).
[72] When the process is first launched, the process registers to receive all direct user interaction
events at 1210, including mouse events (movements or clicks) and keystroke events (keydown,
touchscreen drag event, mouse click, keyup and so on). Other direct user interaction events may include
touch-screen related events, or specialist assistive technologies for sensory impaired users.
[73] A convention of current operating systems is that whenever a document is opened, its window
becomes the 'active'window. That is, no other windows overlay it. When a direct user interaction event
is received, the next step of the active window monitor module 50 at 1212, is to obtain the application
name and window title (method previously described).
[74] Upon the operating system event bus sending a mouse event or keystroke event to the active
window monitor module 50 at 1040, most particulars of the user interaction event is preferably discarded
(for privacy or efficiency reasons). For example, in the case of a user interaction event in the form of the
user having pressed a key on a keyboard, the key that was pressed should preferably be discarded, for
both privacy and security reasons.
[75] If a timestamp of when the event occurred is included in the user interaction event generated by
the computing device 14, it should preferably be retained. Alternatively, if a timestamp is not included in
the event, the timestamp should be calculated by obtaining the system's hardware clock. A user activity
data record 64 (that is, an log of the event) is created and ultimately saved to the user activity data store.
The user activity data store is preferably located on a remote machine. Alternatively, the user activity
data store may be stored on the computing device 14 that the active window monitor module 50 is moni
toring.
[76] At the time the user interaction event is received, the active application name, active window
title should be obtained, to ascertain which window of the computing device 14 the user is interacting
with. There may be many user interaction events received each second when the user is using their com
puting device 14, and hence it is preferable to amalgamate any identical and sequential user activity data
records 64 together, to form a start and end timestamp.
[77] A user activity data record 64 preferably includes a start timestamp value and a user identifier. It
may also include an end timestamp value, an active application name, and an active window title. A set
of sample user activity data records 64 is illustrated in Fig. 8.
[78] It is preferable for a subset of user activity data records 64 to include user location information,
such as geographical co-ordinates and/or a textual description of the location that the geographical co
ordinates references.
[79] An example chronological timesheet for a computing device user over a given time period is pro
vided in Figures 12.
[80] It will be appreciated that embodiments of the present invention provide a method, apparatus,
server, system, and computer-readable medium for collecting definitive data relating to time expenditure
of a knowledge worker. Although the invention has been described in language specific to computer
structural features, methodological acts, and computer readable media, it is to be understood that the
invention defined in the appended claims is not necessarily limited to the specific structures, acts or me
dia described. Therefore, the specific structural features, acts and mediums are disclosed as exemplary
embodiments implementing the claimed invention.
[81] It will also be understood the references to a first second and third sets of user activity data rec
ords, are sets defined as a reference to their content, and may be implemented in a single memory loca
tion, where the values of that memory change over time. Alternatively, they may be saved in memory as
separate and distinct sets.
[82] Although a few embodiments of the present invention have been shown and described, it would
be appreciated by those skilled in the art that changes may be made in this embodiment without depart ing from the principles and spirit of the invention, the scope of which is defined in the claims and their equivalents.
[83] As will be appreciated by one skilled in the art, aspects of the present invention may be embod
ied as a system, apparatus, method or computer program product, Accordingly, aspects of the present
invention may take the form of an entirely hardware embodiment, an entirely software embodiment
(including firmware, resident software, micro-code, etc,) or an embodiment combining software and
hardware aspects that may all generally be referred to herein as a "circuit," "module" or "system," Fur
thermore, aspects of the present invention may take the form of a computer program product embodied
in one or more computer readable medium(s) having computer readable program code embodied there
on.
[84] The described aspects of the invention may also be implemented as a computer-controlled appa
ratus, a computer process, a computing system, an apparatus, or as an article of manufacture such as a
computer program product or computer-readable medium. The computer program product may be a
computer storage media readable by a computer system and encoding a computer program of instruc
tions for executing a computer process. The computer program product may also be a propagated signal
on a carrier readable by a computing system and/or encoding a computer program of instructions for
executing a computer process.
[85] In the present embodiment, there are detailed descriptions of implementation details with refer
ence to specific operating systems. The skilled reader will appreciate that any methods or functions de
fined with reference to a specific operating system may have equivalent or analogous operations available
in other operating systems. While the equivalent or analogous operations may differ in name and in the
underlying implementation, alternatives may be used to achieve similar effect to that described.
[86] The present embodiment describes a sequence of modules, calculators, managers and data
stores. These elements can be run across a plurality of computing devices 14 that are connected via one
or more computer networks. They may be implemented using preconfigured digital circuits or circuitry,
or using precompiled or pre-sequenced software that is executed on digital circuitry. The elements could
be grouped into a single computing device 14, or a single application running on the computing device 14.
The description of the system and method with reference to logical entities is to aide the reader's under
standing of the system and method, and the description and figures is to illustrate and inform, and the
segmentation of responsibility of the elements, or general arrangement of responsibilities of the ele
ments, may be varied according to the specific technical considerations of each implementation.
[87] Any combination of one or more computer readable medium(s) may be utilized. The computer
readable medium may be a computer readable signal medium or a computer readable storage medium, A
computer readable storage medium may be but are not limited to, for example, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combi nation of the foregoing, More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable com puter diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read- only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable com bination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain or store a program for use by or in connection with an instruction execution system, apparatus, or device.
[88] A computer readable signal medium may include a propagated data signal with computer reada
ble program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propa
gated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or
any suitable combination thereof. A computer readable signal medium may be any computer readable
medium that is not a computer readable storage medium and that can communicate, propagate, or
transport a program for use by or in connection with an instruction execution system, apparatus, or de
vice,
[89] Program code embodied on a computer readable medium may be transmitted using any appro
priate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable
combination of the foregoing.
[90] Computer program code for carrying out operations for aspects of the present invention 30 m a y
be written in any combination of one or more programming languages, including an object oriented pro
gramming language such as Java, Smalltalk, C++ or the like and conventional procedural programming
languages, such as the "C" programming language or similar programming languages, The program code
may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software
package, partly on the user's computer and partly on a remote computer or entirely on the remote com
puter or server, In the latter scenario, the remote computer may be connected to the user's computer
through any type of network, including a local area network (LAN) or a wide area network (WAN), or the
connection may be made to an external computer (for example, through the Internet using an Internet
Service Provider).
[91] Aspects of the present invention are described herein with reference to flowchart illustrations
and/or block diagrams of methods, apparatus (systems) and computer program products according to
embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or
block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be
implemented by computer program instructions, These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
[92] These computer program instructions may also be stored in a computer readable medium that
can direct a computer, other programmable data processing apparatus, or other devices to function in a
paiticular manner, such that the instructions stored in the computer readable medium produce an article
of manufacture including instructions which implement the 20 function/act specified in the flowchart
and/or block diagram block or blocks. The computer program instructions may also be loaded onto a
computer, other programmable data processing apparatus, or other devices to cause a series of opera
tional steps to be performed on the computer, other programmable apparatus or other devices to pro
duce a computer implemented process such that the instructions which execute on the computer or the
programmable apparatus provide processes for implementing the functions/acts specified in the
flowchart and/or block diagram block or blocks.
[93] Referring again to Figs. 1-8, the diagrams in the figures illustrate the architecture, functionality,
and operation of possible implementations of systems, methods and computer program products accord
ing to various embodiments of the present invention. In this regard, each block in a flowchart or a block
diagram may represent a module, segment, or portion of code, which comprises one or more executable
instructions for implementing the specified logical function(s). It should also be noted that, in some alter
native implementations, the functions noted in the block may occur out of the order noted in the figures,
For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the
block may sometimes be executed in the reverse order, depending upon the functionality involved. It will
also be noted that each block of the block diagram and/or flowchart illustration, and combinations of
blocks in the block diagram and/or flowchart illustration, can be implemented by special purpose hard
ware-based systems that perform the specified functions or acts, or combinations of special purpose
hardware and computer instructions.
[94] Accordingly, techniques of the invention, for example, as depicted in Figs. 1-8, can also include, as
described herein, providing a system, wherein the system includes distinct modules (e,g,, modules com
prising software, hardware or software and hardware). One or more embodiments can make use of soft
ware running on a general purpose 10 computer or workstation, With reference to Fig. 2, such an imple
mentation may employ, for example, a processor device 60, a memory 68, and an input/output interface
formed, for example, by a display and a keyboard 70. The term "processor device" as used herein is in
tended to include any processing device, such as, for example, one that includes a CPU (central processing
unit) and/or other forms of processing circuitry, Further, the term "processor device" may refer to more
than one individual processor, The term "memory" is intended to include memory associated with a pro cessor or CPU, such as, for example, RAM (random access memory), ROM (read only memory), a fixed memory device (for example, hard drive), a removable memory device (for example, diskette), a flash memory and the like. In addition, the phrase "input/output interface" as used herein, is intended to op tionally include, for example, one or more mechanisms for inputting data to the processing unit (for ex ample, keyboard or mouse), and one or more mechanisms for providing results associated with the pro cessing unit (for example, display or printer)
[95] The processor device 60, memory 68, and input/output interface such as a display and mouse 70
can be interconnected, for example, via bus as part of data processing unit. Suitable interconnections, for
example, via bus, can also be provided to a network interface, such as a network card, which can be pro
vided to interface with a computer network, and to a media interface, such as a diskette or CD-ROM
drive, which can be provided to interface with media.

Claims (19)

1. A computer implemented method of generating a chronological timesheet over a
given time period, said method performed by a timesheet generator apparatus comprising a user activity data receiving module and a processor configured to implement a
normalisation module, and said method comprising the steps of: the user activity data receiving module receiving a first set of user activity data records
associated with a user identifier for the given time period, each user activity data record containing a time representation including a duration value and a descriptive element of an
action performed by said user on a computing device during said time representation;
the normalisation module applying a high-pass filter to the first set of user activity data records to form a filtered second set of user activity data records, wherein the filtered second
set of user activity data records includes fewer data records than the first set of user activity data records; and
the normalisation module creating an expanded third set of user activity data records from the second set of user activity data records, wherein the duration value of one or more
user activity data records of the expanded third set of user activity data records is greater than the corresponding user activity data record of the filtered second set of user activity data
records and the expanded third set of user activity data records includes the same number of data records as the filtered second set of user activity data records, whereby an aggregate of
duration values of the third set of user activity data records is less than or equal to the
duration of the given time period; wherein the high-pass filter allows high duration value user activity data records to pass
but does not allow user activity data records with duration values lower than a cut-off determinate to pass; and
creating the expanded third set of user activity data records comprises expanding the duration values of one or more user activity data records of the filtered second set of user
activity data records.
2. The computer implemented method of claim 1, wherein the method includes, when
after a predetermined or dynamic time period there have been no inputs from the user, allocating all time following and until further input is detected as offline and presenting a
user dialog to the user when user input is again detected, wherein the user dialog gives the user an option to enter a comment about time spent away from the computing device.
3. The computer implemented method of any one of the preceding claims, wherein the
normalisation module expands the duration value of one or more user activity data records
of the filtered second set of user activity data records using a function 5 (duract onValue
wherein 5 is the numerical difference between the aggregate duration values of the first and second sets of user activity data records, and P is the aggregate of duration values in
the second set of user activity data records.
4. The computer implemented method of any one of the preceding claims, further comprising a precursory step of dividing said given time period into a sequence of lesser
duration time periods of pre-determined duration, whereby a timesheet for each of said lesser-duration time periods is generated, and a further subsequent step of collating said
lesser-duration timesheets into chronological order is performed to generate a timesheet for said given time period.
5. The computer implemented method of any one of the preceding claims, wherein the
normalisation module expands the duration value of one or more user activity data records of
the filtered second set of user activity data records using a function 5 ),wherein5isthe numerical difference between the aggregate duration values of the first and second sets of user activity data records, and L is the number of records in the second set of user activity
data records.
6. The computer implemented method of any one of the preceding claims, wherein the first set of user activity data records are gathered by a further step of registering to receive
user input events of the computing device using a windowing system that the user of the computing device is operating, and recording the window particulars of the foremost window
of the computing device as user input events are received to create one or more user activity
data records associated with the user identifier.
7. The computer implemented method of any one of the preceding claims, including an
active window monitor module of the user activity data receiving module monitoring the
active window title of the computing device, by registering to receive user input events of the computing device using a windowing system, and obtaining the window title of the foremost window of the computing device when user input events are received by an operating system of the computing device to thereby generate the first set of user activity data records for the time period associated with the user identifier.
8. The computer implemented method of claim 7, including the active window monitor module implementing (i) an event receiver thread comprising receiving the user input events
of the computing device, transforming each user input event into a user activity record and saving the user activity records, and (ii) an uploader thread comprising checking for any
available user activity records that are pending, and compressing and attempting to upload
any of said user activity records that are pending to the timesheet generator apparatus as a bundle of records.
9. A computer program comprising program code configured to perform the method steps
of any one of the preceding claims when said program code is executed by a computer.
10. A computer reading medium storing computer program code configured to perform the
method steps of any one of claims 1 to 8 when said computer program code is executed by a
computer.
11. An electromagnetic carrier wave, said carrier wave encoding computer program code
adapted to perform the method of any one of claims 1 to 8 when said carrier wave is decoded
by a computer and said program code is executed by a computer.
12. A timesheet generator apparatus configured to generate a chronological timesheet over
a given time period on a computer system, the timesheet generator apparatus comprising:
a memory; a user activity data receiving module configured to receive a first set of user activity data
records for the given time period associated with a user identifier, each user activity data record containing a time representation including duration value and descriptive element of
action performed by said user on a computing device during said time representation; a processor device operatively coupled to the memory and user activity data receiving
module, the processor device configured to implement a normalisation module, and the normalisation module configured to:
apply a high-pass filter to the first set of user activity data records to form a
filtered second set of user activity data records, wherein the filtered second set of user activity data records includes fewer data records than the first set of user activity data records, and create an expanded third set of user activity data records from the second set of user activity data records, wherein the duration value of one or more user activity data records of the expanded third set of user activity data records is greater than the corresponding user activity data record of the filtered second set of user activity data records and the expanded third set of user activity data records includes the same number of data records as the filtered second set of user activity data records, whereby an aggregate of duration values of the second set of user activity data records is less than or equal to the duration of the given time period, wherein the high-pass filter allows high duration value user activity data records to pass but does not allow user activity data records with duration values lower than a cut-off determinate to pass; and creating the expanded third set of user activity data records comprises expanding the duration values of one or more user activity data records of the filtered second set of user activity data records.
13. The timesheet generator apparatus of claim 12, wherein the normalisation module is
configured to expand the duration value of one or more user activity data records of the
filtered second set of user activity data records by a function 5)uractionvaluewherein5 is
the numerical difference between the aggregate of duration values of the first and second sets
of user activity data records, and P is the aggregate of duration values in the second set of user activity data records.
14. The timesheet generator apparatus of either claim 12 or 13, wherein the processor device first divides said given time period into a sequence of lesser-duration time periods of
predetermined duration, whereby a timesheet for each said lesser-duration time periods is generated, and the processor device subsequently collates the lesser-duration timesheets into
chronological order to generate the timesheet for said given time period.
15. The timesheet generator apparatus of any one of claims 12 to 14, wherein the normalisation module is configured to expand the duration value of one or more user activity data records of the filtered second set of user activity data records by a function 5
, wherein 5 is the numerical difference between the aggregate of duration values of the first
and second sets of user activity data records, and L4 is the number of records in the second set of user activity data records.
16. The timesheet generator apparatus of any one of claims 12 to 15, the user activity data
receiving module further comprising an active window monitor module, configured to monitor the active window title of the computing device, by registering to receive user input events of
the computing device using a windowing system, and obtaining the window title of the foremost window of the computing device when user input events are received by an
operating system of the computing device to thereby generate the first set of user activity data records for the time period associated with the user identifier.
17. The timesheet generator apparatus of claim 16, wherein the active window monitor
module is configured to implement (i) an event receiver thread comprising receiving the user input events of the computing device, transforming each user input event into a user activity
record and saving the user activity records, and (ii) an uploader thread comprising checking for
any available user activity records that are pending, and compressing and attempting to upload any of said user activity records that are pending to the timesheet generator apparatus
as a bundle of records.
18. The timesheet generator apparatus of any one of claims 12 to 17, further configured such that, if after a predetermined or dynamic time period there have been no inputs from
the user, the timesheet generator apparatus allocates all time following and until further input is detected as offline and presents a user dialog to the user when user input is again detected,
wherein the user dialog gives the user an option to enter a comment about time spent away from the computing device.
19. A multi-node cluster apparatus configured to implement a timesheet generator, the
multi-node cluster apparatus comprising at least two separate nodes arranged in a cluster, the cluster configured to perform the method steps of any one of claims 1to 6;
wherein the cluster comprises at least the normalisation module, the user activity receiving module, and an active window monitor module.
AU2014202495A 2013-05-08 2014-05-08 A system and method for generating a chronological timesheet Active AU2014202495B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2014202495A AU2014202495B2 (en) 2013-05-08 2014-05-08 A system and method for generating a chronological timesheet

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
AU2013901625A AU2013901625A0 (en) 2013-05-08 A system and method for collecting data
AU2013901625 2013-05-08
AU2013901774A AU2013901774A0 (en) 2013-05-20 A system and method for collecting data
AU2013901774 2013-05-20
AU2013903113A AU2013903113A0 (en) 2013-08-17 A system and method for collecting data
AU2013903113 2013-08-17
AU2013903226 2013-08-25
AU2013903226A AU2013903226A0 (en) 2013-08-25 A system and method for categorizing time expenditure of a computing device user
AU2014202495A AU2014202495B2 (en) 2013-05-08 2014-05-08 A system and method for generating a chronological timesheet

Publications (2)

Publication Number Publication Date
AU2014202495A1 AU2014202495A1 (en) 2014-11-27
AU2014202495B2 true AU2014202495B2 (en) 2020-01-30

Family

ID=51946262

Family Applications (2)

Application Number Title Priority Date Filing Date
AU2014202494A Abandoned AU2014202494A1 (en) 2013-05-08 2014-05-08 A system and method for categorizing time expenditure of a computing device user
AU2014202495A Active AU2014202495B2 (en) 2013-05-08 2014-05-08 A system and method for generating a chronological timesheet

Family Applications Before (1)

Application Number Title Priority Date Filing Date
AU2014202494A Abandoned AU2014202494A1 (en) 2013-05-08 2014-05-08 A system and method for categorizing time expenditure of a computing device user

Country Status (1)

Country Link
AU (2) AU2014202494A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220100900A1 (en) * 2019-06-14 2022-03-31 Hewlett-Packard Development Company, L.P. Modifying data items

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030046321A1 (en) * 2001-08-21 2003-03-06 Raymond Thomas Daniel Method of high pass filtering a data set
US20030046135A1 (en) * 2001-06-20 2003-03-06 Cartwright Richard James Method and apparatus for automated timesheet and other related information recording, processing and visualisation
US6535870B1 (en) * 2000-02-09 2003-03-18 International Business Machines Corporation Method of estimating an amount of changed data over plurality of intervals of time measurements
US20060010051A1 (en) * 2004-07-07 2006-01-12 Sap Aktiengeseilschaft Method and system for time sheet reporting

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6535870B1 (en) * 2000-02-09 2003-03-18 International Business Machines Corporation Method of estimating an amount of changed data over plurality of intervals of time measurements
US20030046135A1 (en) * 2001-06-20 2003-03-06 Cartwright Richard James Method and apparatus for automated timesheet and other related information recording, processing and visualisation
US20030046321A1 (en) * 2001-08-21 2003-03-06 Raymond Thomas Daniel Method of high pass filtering a data set
US20060010051A1 (en) * 2004-07-07 2006-01-12 Sap Aktiengeseilschaft Method and system for time sheet reporting

Also Published As

Publication number Publication date
AU2014202494A1 (en) 2014-11-27
AU2014202495A1 (en) 2014-11-27

Similar Documents

Publication Publication Date Title
US10692048B2 (en) Apparatus and method for generating a chronological timesheet
US7676761B2 (en) Window grouping
US10567557B2 (en) Automatically adjusting timestamps from remote systems based on time zone differences
EP2686771B1 (en) Usability testing
JP2018501566A (en) Job scheduling and monitoring
US9355003B2 (en) Capturing trace information using annotated trace output
US10990359B2 (en) Use and advancements of assistive technology in automation for the visually-impaired workforce
CN113688288A (en) Data association analysis method and device, computer equipment and storage medium
CN110580253B (en) Time sequence data set loading method and device, storage medium and electronic equipment
US5842177A (en) Management of calendar events in a data processing system
US7802233B2 (en) Automated display of trace historical data
CN113220530B (en) Data quality monitoring method and platform
CN115098479B (en) Data integration method, device, electronic device and storage medium
CN113553320B (en) Data quality monitoring method and device
AU2014202495B2 (en) A system and method for generating a chronological timesheet
CN114625743A (en) Data updating method and device for personnel master data and electronic equipment
US9280439B2 (en) Usage analysis of productive environment to establish new data source for process optimization and project planning
US10769125B2 (en) Ordering records for timed meta-data generation in a blocked record environment
US9965131B1 (en) System and processes to capture, edit, and publish problem solving techniques
KR20160002144A (en) A system and method for generating a chronological timesheet
US12169713B2 (en) Managing artifact information including finding a searched artifact information item
EP4651048A1 (en) Information processing system and information processing method
CN108897762A (en) A kind of broadcasting system of accurate user's screening
US11392348B2 (en) Ordering records for timed meta-data generation in a blocked record environment
Pollack et al. Monitoring Indexes

Legal Events

Date Code Title Description
PC1 Assignment before grant (sect. 113)

Owner name: PRACTICE INSIGHT PTY LTD

Free format text: FORMER APPLICANT(S): WISETIME PTY LTD

FGA Letters patent sealed or granted (standard patent)