What's New In Version September 2013

Thursday, August 29, 2013 by Karin Huber

This month we continue the spate of performance and productivity improvements for time cockpit. We have focused on lists and the customization module:

  • Time cockpit now provides shortcuts for opening forms not only as dialogs but also as tabs. This makes it much easier to deal with large forms as they can use nearly the entire screen. Additionally you can open a list and a form side by side so you still see the overview in the list while editing a data row. Such scenarios are very helpful especially for typical back office work like preparing timesheet data for invoicing, effort analysis in project management, etc. Read more ...
  • We have completely changed the reload logic for lists to provide much better performance in this new time cockpit version. In scenarios where you have to edit data rows in a list record by record we measured runtime improvements of up to 69% (for saving a row) and improvements in terms of transferred data of up to 96%. Read more ...

The new version September 2013 (1.16) is downwards compatible to version March 2013 (1.10) and later. You can use all of these versions in a single account simultaneously.

New Options to Arrange Lists and Forms

Time cockpit allows you to arrange tabs in various ways. You can open multiple tabs in full-screen mode so that only one tab is visible at a time. You can arrange tabs side by side or one upon the other.

In previous releases, dialogs have been different. They have not been part of tabs. In the new version you can now open forms as tabs. There are three options when opening a data row in its associated form:

  • Double-click a row or click on a link: The list or form will be opened as a dialog window.
  • Press Ctrl while double-clicking a row or clicking on a link: The list or form will be opened in a new full-screen tab.
  • Press Alt while double-clicking a row or clicking on a link: The list or form will be opened to the right of the currently active tab.

The following gallery illustrates how the new navigation feature works. Click to enlarge.

Double-click in ListDouble-click in List
Double-click an item in a list to open the edit form.
Edit Form in New DialogEdit Form in New Dialog
If no keyboard modifier like Ctrl or Alt is pressed, the edit form for the selected item is opened in a new dialog.
New Full-Screen TabNew Full-Screen Tab
If you press Ctrl during double-clicking the item, the edit form is opened in a new full-screen tab.
New Tab Next to the Active TabNew Tab Next to the Active Tab
If you press Alt during double-clicking the item, the edit form is opened in a new tab to the right of the currently active tab.

We also introduced a new keyboard shortcut for tab handling: You can now close all tabs and forms with Ctrl + W.

Performance in Lists

In previous versions of time cockpit we reloaded all items whenever you changed a data row (insert, update, or delete). In the new version we significantly enhanced performance by selectively reloading only modified items:

  • Add a new item
    When saving and closing the form with the new item, only the new item is reloaded from the database and added to the existing list. If no column header was clicked for sorting, the new item is added at the bottom of the list. If a sort criteria is specified, the new item is added at the right position. The new item is automatically selected.
  • Edit an item
     When saving and closing the form with the modified item, only the modified item is reloaded from the database and updated in the existing list.
  • Remove an item
    When an item is removed, nothing is loaded from the database. The item is just removed from the already loaded list.

We ran tests with a list of time sheet entries in our own productive database comparing the August and September versions. For this we opened the list of time sheet entries on the server and clicked on "show all rows" to get all the time sheet entries for one user and one year (1,356 items). Then we opened a time sheet entry, modified it and saved it so that the list of time sheet entries was refreshed.

To measure the results we used Wireshark. We captured all TCP traffic with the underlying database. In the following table you can see the number of packets, the time in seconds from the first request to the last response and the size of sent and received packets in KB. You can see that both runtime and transferred bytes were enhanced significantly.


August 2013September 2013

Load 1356 RowsSave Time Sheet EntryLoad 1356 Rows
Save Time Sheet Entry
Packets620628609-2%22-96%
Time1.86 s2.16 s1.60 s-14%0.68 s-69%
Size541.21 KB544.41 KB540.46 KB-0%20.90 KB-96%

Note that the time measurements may slightly be distorted by network bandwidth fluctuations as our database runs in the cloud and the client uses public Internet to connect.

Performance in Customization Module

For the customization module we have improved the time to load the time cockpit meta data model from the database. This has an impact on the following tasks:

  • Switch from client to server
  • Edit a model entity / list / form / action
  • Save a model entity / list / form / action
  • Call GetWritableModel() in Python scripts (see Scripting in time cockpit help)

In the following table you will find the results for editing a model entity and calling GetWritableModel() in Python. Again we used Wireshark to capture all TCP traffic with our database server. In our case the performance did not really change, but we managed to halve the number of bytes of the sent and received packets. For internet connections with lower bandwidth this should make a difference.


August 2013September 2013

Edit Model EntityGetWritableModel()Edit Model Entity
GetWritableModel()
Packets14431403669-54%614-56%
Time4.27 s3.11 s4.22 s-1%3.86 s+24%
Size1265 KB1214 KB598 KB-53%547 KB-55%

Note that the time measurements may slightly be distorted by network bandwidth fluctuations as our database runs in the cloud and the client uses public Internet to connect.

Google Latitude

Heavy-heartedly we have removed the location history feature from the full client (read more about the reasons). We hope that we will soon be able to integrate an appropriate replacement. At the moment we are evaluating alternatives.

comments powered by Disqus