About

The eLog library was initially developed as a research prototype and later published for lifelogging researchers in 2010 to help them easily analyze heterogenous data and complex visualization. It has been kept growing with the progress of mobile computing environments and recently its UI part is released with GPL v3 license for wider usage. The eLog UI library is optimized for mobile environment and can get easily integrated with existing Web services.

Who We Are

The original work was proposed by Pil Ho and later extended the work with collaboration with 28 researchers around the world who contributed their lifelogs, collaborated for lifelog analysis and share research results to build up an open lifelogging platform for the public. Pil Ho has been keeping the development updating the library following up the progress in mobile computing.

Updates

  • Nov. 2014: Change the web page skin using bootstrap.
  • Nov. 2014: Published elog UI library as GPL v3.
  • Oct. 2014: Version up eLog library and documentation.

 

The time zone issue in using federated tables is resolved.

A timestamp field included in the federated table definition to link remote tables in the cloud is not affected by the local time zone setting in the user query (See last two queries in below examples.) Thus it has been recommended to use a UNIX timestamp field instead. Today we released new table definitions to resolve this incovenience. The trick is using VIEWs atop federated tables.  Now you can use the image_UTC_timestamp field without troubles if you set the time zone properly (See first two of below examples).

You will find from your elifelog.org database that many tables are replaced with VIEWs. We expect that this update will not affect existing routines or libraries since this update does not drop any existing fields or alters existing field names. New table definitions may include an additional UNIX timestamp field when there exists a TIMESTAMP field. Anyway, if you see any problems, please report to me (pilhokim@disi.unitn.it).

In addition, lost two hours data of the elog_sensecam_sensor_acc table is recovered. Thanks for reports!

Below queries are examples to demonstrate changes and priori problems.

mysql> SET time_zone = "+2:00";
Query OK, 0 rows affected (0.26 sec)

mysql> SELECT
    -> MIN(image_UTC_timestamp),
    -> MAX(image_UTC_timestamp),
    -> MIN(FROM_UNIXTIME(sensecam_UTC_unix_timestamp)),
    -> MAX(FROM_UNIXTIME(sensecam_UTC_unix_timestamp))
    -> FROM elog_sensecam_images // This is the new elog_sensecam_images VIEW.
    -> WHERE DATE(image_UTC_timestamp) = "2010-10-04";
+--------------------------+--------------------------+-------------------------------------------------+-------------------------------------------------+
| MIN(image_UTC_timestamp) | MAX(image_UTC_timestamp) | MIN(FROM_UNIXTIME(sensecam_UTC_unix_timestamp)) | MAX(FROM_UNIXTIME(sensecam_UTC_unix_timestamp)) |
+--------------------------+--------------------------+-------------------------------------------------+-------------------------------------------------+
| 2010-10-04 09:00:20      | 2010-10-04 18:36:38      | 2010-10-04 09:00:20                             | 2010-10-04 18:36:38                             |
+--------------------------+--------------------------+-------------------------------------------------+-------------------------------------------------+
1 row in set (0.31 sec)

mysql> SET time_zone = "+0:00";
Query OK, 0 rows affected (0.26 sec)

mysql> SELECT
    -> MIN(image_UTC_timestamp),
    -> MAX(image_UTC_timestamp),
    -> MIN(FROM_UNIXTIME(sensecam_UTC_unix_timestamp)),
    -> MAX(FROM_UNIXTIME(sensecam_UTC_unix_timestamp))
    -> FROM elog_sensecam_images
    -> WHERE DATE(image_UTC_timestamp) = "2010-10-04";
+--------------------------+--------------------------+-------------------------------------------------+-------------------------------------------------+
| MIN(image_UTC_timestamp) | MAX(image_UTC_timestamp) | MIN(FROM_UNIXTIME(sensecam_UTC_unix_timestamp)) | MAX(FROM_UNIXTIME(sensecam_UTC_unix_timestamp)) |
+--------------------------+--------------------------+-------------------------------------------------+-------------------------------------------------+
| 2010-10-04 07:00:20      | 2010-10-04 16:36:38      | 2010-10-04 07:00:20                             | 2010-10-04 16:36:38                             |
+--------------------------+--------------------------+-------------------------------------------------+-------------------------------------------------+
1 row in set (0.31 sec)


mysql> SET time_zone = "+2:00";
Query OK, 0 rows affected (0.26 sec)

mysql> SELECT
    -> MIN(image_UTC_timestamp),
    -> MAX(image_UTC_timestamp),
    -> MIN(FROM_UNIXTIME(sensecam_UTC_unix_timestamp)),
    -> MAX(FROM_UNIXTIME(sensecam_UTC_unix_timestamp))
    -> FROM elog_tmp_sensecam_images // This is the old elog_sensecam_images table
    -> WHERE DATE(image_UTC_timestamp) = "2010-10-04";
+--------------------------+--------------------------+-------------------------------------------------+-------------------------------------------------+
| MIN(image_UTC_timestamp) | MAX(image_UTC_timestamp) | MIN(FROM_UNIXTIME(sensecam_UTC_unix_timestamp)) | MAX(FROM_UNIXTIME(sensecam_UTC_unix_timestamp)) |
+--------------------------+--------------------------+-------------------------------------------------+-------------------------------------------------+
| 2010-10-04 00:00:20      | 2010-10-04 09:36:38      | 2010-10-04 09:00:20                             | 2010-10-04 18:36:38                             |
+--------------------------+--------------------------+-------------------------------------------------+-------------------------------------------------+
1 row in set (0.38 sec)

mysql> SET time_zone = "+0:00";
Query OK, 0 rows affected (0.50 sec)

mysql> SELECT
    -> MIN(image_UTC_timestamp),
    -> MAX(image_UTC_timestamp),
    -> MIN(FROM_UNIXTIME(sensecam_UTC_unix_timestamp)),
    -> MAX(FROM_UNIXTIME(sensecam_UTC_unix_timestamp))
    -> FROM elog_tmp_sensecam_images
    -> WHERE DATE(image_UTC_timestamp) = "2010-10-04";
+--------------------------+--------------------------+-------------------------------------------------+-------------------------------------------------+
| MIN(image_UTC_timestamp) | MAX(image_UTC_timestamp) | MIN(FROM_UNIXTIME(sensecam_UTC_unix_timestamp)) | MAX(FROM_UNIXTIME(sensecam_UTC_unix_timestamp)) |
+--------------------------+--------------------------+-------------------------------------------------+-------------------------------------------------+
| 2010-10-04 00:00:20      | 2010-10-04 09:36:38      | 2010-10-04 07:00:20                             | 2010-10-04 16:36:38                             |
+--------------------------+--------------------------+-------------------------------------------------+-------------------------------------------------+
1 row in set (0.28 sec)