Chronos is one of the many Smalltalk-related blogs syndicated on Planet Smalltalk
χρόνος

Discussion of the Essence# programming language, and related issues and technologies.

Blog Timezone: America/Los_Angeles [Winter: -0800 hhmm | Summer: -0700 hhmm] 
Your local time:  

2006-12-31

Chronos 101: "Points" in Time`

It is common to imagine that a point in time is a precise instant in time, based on the idea that a number line is the optimal mathematical model of time, and based on the idea that an instant is a dimensionless point whose location on the number line can be specified as a real number. In practice, however, the "real number line" model of time does not pass muster.

One problem is that the physics of time does not correspond to the real-number line model, because time is quantized: There is a minimum possible measurable length of time, known as the Planck Time, and also a minimum possible measurable amount of distance and of mass, known respectively as the Planck Length and the Planck Mass.

Another problem is that, in practice, we can't measure durations of time to anywhere near a Plank-time level of precision. Few are those with access to a clock that can measure durations of time with even nanosecond precision--and even that's a billion times less precise than the highest precision time duration measurement we've been able to achieve up to now (2006,) and 10^37 times less precise than a Planck Time.

Generally, physical measurements are not infinitely precise. There are usually "error bars" that prevent the "data points" collected by measurement devices from truly being dimensionless "points." This certainly applies to the measurement of time durations. There is little to be gained from pretending otherwise.

And then there's the problem of clock synchronization. Even without considering the fact that General Relativity prevents the concept of simultaneity among a set of events from having any absolute reality or well-defined physical meaning, clocks simply cannot be perfectly synchronized. Even if clocks existed that could timestamp events with infinite precision, no two of those clocks would ever agree as to the precise timestamp of any one event (to infinite precision.) If each clock that timestamps an event (with infinite precision) provides a slightly different time value, which one is correct?

Also, even if durations of time could physically (and not just conceptually) have infinitesimal extent, it would nevertheless not be possible to specify most "points" in time with infinite precision (the exception being those whose location on the timeline happens to be expressible as a rational number.) You can't physically write out a number with an infinite number of digits, nor store such a number in computer memory. The number must be rounded or truncated.

Considering all the points above, it should therefore be clear that any specification or measurement of a "point" in time (as a coordinate on a number line, expressed as a real number) is necessarily an approximation, even without considering the issues of quantization, quantum uncertainty and General Relativity.

In spite of the foregoing problems and issues, we humans insist on measuring time using discrete, countable durations of time. We like to pretend that each event can be timestamped at a precise instant, and so unambiguously placed in a particular second, minute, hour, day, month and year. There's nothing wrong with that, provided we understand that physical law limits us to approximations valid only to some finite limit of precision.

Consequently, Chronos represents "points" in time to some specified resolution, because physical law prevents "time points" from actually being dimensionless points on a timeline. Chronos does not recognize nor attempt to support what most would conceive of as "instants" in time. Rather, a Chronos point-in-time value specifies the initial instant of some interval of time whose duration is no smaller than the resolution of the internal numeric representation. So Chronos points-in-time are not dimensionless points, but rather intervals of time.

Note that the model of time used by Chronos means that there are no gaps in the Chronos timeline. Chronos thus avoids the problem that occurs in the model of time typically adopted by other date/time libraries, which can only represent some of the points on their limeline, and leave most of the points on the line unspecifiable (so that, in effect, they have to translate most timepoints up or down to the nearest point-in-time representable by the internal implementation of their date/time values.) Of course, in practice the result is the same. But the "dimensionless point" model of points-in-time often leads to strange architectural and design decisions that are not well-motivated, and can even cause suboptimal code.

Currently, Chronos provides three different classes that implement the concept of a "point in time." One is the class YearMonthDay, which has a resolution of one calendar day--which means both that its temporal extent is one day, and also that the minimal (non-zero) difference between any two instances of YearMonthDay is one day. The second one is the class Timepoint, which has a resolution of one nanosecond--which means both that its temporal extent is one nanosecond, and also that the minimal (non-zero) difference between any two instances of Timepoint is one nanosecond. The last one is the class InfiniteTimepoint, whose two instances represent either the infinite past ("InfiniteTimepoint past") or the infinite future ("InfiniteTimepoint future.") InfiniteTimepoints have infinite duration.

So a Chronos "date" (instance of YearMonthDay) is simply a point in time whose resolution (and temporal extent) is one calendar day. And since the only difference between a YearMonthDay and a Timepoint is the representational resolution, there is no reason that they both cannot be mostly type compatible (which, in fact, they are.)

There are also two other fundamental types of time values supported by Chronos: Durations of time (temporal extents) and periods of time (temporal intervals.) A time duration has a length of time, but has no location on the timeline (e.g., "one day," "fifty years," "3 minutes 20.3989 seconds.") A time interval has both a starting point-in-time (a location on the time lime, to some limit of resolution) and a duration (whose extent can be any durational value, not just "day" and "nanosecond"; for example "the time interval starting at 2006-12-22T03:13:06.325914 and lasting for 15 days, 12 hours, 19 minutes and 23.43557 seconds.")

Chronos provides several classes that implement durational values, and the class Timeperiod that implements time intervals.

Part 2: Chronos 101: Durational Values


Happy (Gregorian) New Year

2007-01-01 AD [Gregorian]
0163-16-02 BE [Bahai]
1723-04-23 AM [Coptic]
1999-04-23 ZH [Ethiopic]
5767-10-11 AM [Hebrew]
1928-10-11 AS [Indian Civil]
1427-12-11 AH [Islamic (Fatimid)]
2006-12-19 AD [Julian]
2759-12-19 AUC [Julian (Imperial)]
1385-10-11 AP [Persian]
6243-01-11 SY [Solarian]
2007-001 [Gregorian-ordinal date]
2007-W01-1 [ISO]

Mon, 01 Jan 2007 13:00:00 +1300 (NZDT: Pacific/Auckland | New Zealand Time)
Mon, 01 Jan 2007 11:00:00 +1100 (EST: Australia/Sydney | AUS Eastern Time)
Mon, 01 Jan 2007 09:00:00 +0900 (JST: Asia/Tokyo | Tokyo Time)
Mon, 01 Jan 2007 09:00:00 +0900 (WST: Australia/Perth | W. Australia Time)
Mon, 01 Jan 2007 08:00:00 +0800 (HKT: Asia/Hong_Kong)
Mon, 01 Jan 2007 05:30:00 +0530 (IST: Asia/Calcutta | India Time)
Mon, 01 Jan 2007 03:00:00 +0300 (MSK: Europe/Moscow | Russian Time)
Mon, 01 Jan 2007 02:00:00 +0200 (IST: Asia/Jerusalem | Israel Time)
Mon, 01 Jan 2007 01:00:00 +0100 (CET: Europe/Amsterdam)
Mon, 01 Jan 2007 00:00:00 +0000 (GMT: Europe/London | London Time)
Mon, 01 Jan 2007 00:00:00 +0000 (UT: Universal Time)
Sun, 31 Dec 2006 22:00:00 -0200 (BRST: America/Sao_Paulo | E. South America Time)
Sun, 31 Dec 2006 21:00:00 -0300 (ART: America/Argentina/Buenos_Aires)
Sun, 31 Dec 2006 19:00:00 -0500 (EST: America/New_York | Eastern Time)
Sun, 31 Dec 2006 18:00:00 -0600 (CST: America/Chicago | Central Time)
Sun, 31 Dec 2006 17:00:00 -0700 (MST: America/Denver | Mountain Time)
Sun, 31 Dec 2006 16:00:00 -0800 (PST: America/Los_Angeles | Pacific Time)
Sun, 31 Dec 2006 14:00:00 -1000 (HST: Pacific/Honolulu | Hawaiian Time)


2006-12-24

Merry Christmas

(At the time of this post, it's already Christmas in the Far East)

2006-12-25 AD [Gregorian]
0163-15-14 BE [Bahai]
1723-04-16 AM [Coptic]
1999-04-16 ZH [Ethiopic]
5767-10-04 AM [Hebrew]
1928-10-04 AS [Indian Civil]
1427-12-04 AH [Islamic (Fatimid)]
2006-12-12 AD [Julian]
2759-12-12 AUC [Julian (Imperial)]
1385-10-04 AP [Persian]
6243-01-04 SY [Solarian]
2006-359 [Gregorian-ordinal date]
2006-W52-1 [ISO]
J.D. 2454095 [Julian Day]
Christmas

Mon, 25 Dec 2006 13:00:00 +1300 (NZDT: Pacific/Auckland | New Zealand Time)
Mon, 25 Dec 2006 11:00:00 +1100 (EST: Australia/Sydney | AUS Eastern Time)
Mon, 25 Dec 2006 09:00:00 +0900 (JST: Asia/Tokyo | Tokyo Time)
Mon, 25 Dec 2006 09:00:00 +0900 (WST: Australia/Perth | W. Australia Time)
Mon, 25 Dec 2006 08:00:00 +0800 (HKT: Asia/Hong_Kong)
Mon, 25 Dec 2006 05:30:00 +0530 (IST: Asia/Calcutta | India Time)
Mon, 25 Dec 2006 03:00:00 +0300 (MSK: Europe/Moscow | Russian Time)
Mon, 25 Dec 2006 02:00:00 +0200 (IST: Asia/Jerusalem | Israel Time)
Mon, 25 Dec 2006 01:00:00 +0100 (CET: Europe/Amsterdam)
Mon, 25 Dec 2006 00:00:00 +0000 (GMT: Europe/London | London Time)
Mon, 25 Dec 2006 00:00:00 +0000 (UT: Universal Time)
Sun, 24 Dec 2006 22:00:00 -0200 (BRST: America/Sao_Paulo | E. South America Time)
Sun, 24 Dec 2006 21:00:00 -0300 (ART: America/Argentina/Buenos_Aires)
Sun, 24 Dec 2006 19:00:00 -0500 (EST: America/New_York | Eastern Time)
Sun, 24 Dec 2006 18:00:00 -0600 (CST: America/Chicago | Central Time)
Sun, 24 Dec 2006 17:00:00 -0700 (MST: America/Denver | Mountain Time)
Sun, 24 Dec 2006 16:00:00 -0800 (PST: America/Los_Angeles | Pacific Time)
Sun, 24 Dec 2006 14:00:00 -1000 (HST: Pacific/Honolulu | Hawaiian Time)


2006-12-23

Buildup of damaged DNA in cells drives aging


Buildup of damaged DNA in cells drives aging from PhysOrg.com

The accumulation of genetic damage in our cells is a major contributor to how we age, according to a study being published today in the journal Nature by an international group of researchers. The study found that mice completely lacking a critical gene for repairing damaged DNA grow old rapidly and have physical, genetic and hormonal profiles very similar to mice that grow old naturally.

[...]




2006-12-15

Taking nanolithography beyond semiconductors


Taking nanolithography beyond semiconductors from PhysOrg.com

A new process for chemical patterning combines molecular self-assembly with traditional lithography to create multifunctional surfaces in precise patterns at the molecular level. The process allows scientists to create surfaces with varied chemical functionalities and promises to extend lithography to applications beyond traditional semiconductors.

[...]




2006-12-12

2006-12-09

Chemists create 'nanorobotic' arm to operate within DNA sequence


Chemists create 'nanorobotic' arm to operate within DNA sequence from PhysOrg.com

New York University chemistry professor Nadrian C. Seeman and his graduate student Baoquan Ding have developed a DNA cassette through which a nanomechanical device can be inserted and function within a DNA array, allowing for the motion of a nanorobotic arm. The results, reported in the latest issue of the journal Science, mark the first time scientists have been able to employ a functional nanotechnology device within a DNA array.

[...]




2006-12-06

CSIRO demonstrates world's fastest wireless link


CSIRO demonstrates world's fastest wireless link from PhysOrg.com

The CSIRO ICT Centre today announced that it has achieved over six gigabits per second over a point to point wireless connection with the highest efficiency (2.4bits/s/Hz) ever achieved for such a system.

[...]




Breakthrough in magnetic devices could make computers much more powerful


Breakthrough in magnetic devices could make computers much more powerful from PhysOrg.com

Scientists have created novel ‘spintronic’ devices that could point the way for the next generation of more powerful and permanent data storage chips in computers. Physicist at the Universities of Bath, Bristol and Leeds have discovered a way to precisely control the pattern of magnetic fields in thin magnetic films, which can be used to store information.

[...]




2006-12-05

New Chip Provides High-End Sound


New Chip Provides High-End Sound from PhysOrg.com

(AP) -- Veteran audio engineer Tony Bongiovi, who once worked with Jimi Hendrix, has been disappointed for decades that the equipment most people used to listen to music couldn't replicate the high-quality sound heard in the studio.

[...]