Post Reply 
epoch Prime
01-06-2018, 06:54 PM (This post was last modified: 01-06-2018 07:36 PM by StephenG1CMZ.)
Post: #32
RE: epoch Prime
A liitle coding tip...

Using -1 as a flag for now is not recommended, but not just because -1 is a "magic number". Magic numbers make the code difficult to maintain, but the code still works.

No, it is much worse than that. It encourages you to write code like
Epoch(-1)
And changing that to
Rightnow:=-1 //magic number
Epoch(Rightnow) //no magic number
Is little better.

On its own in a program that does nothing but calculate epoch it looks and works fine.

Now consider
Result1:=Epoch(-1) // what is the time now
Result2:=VoyagerPosition(-1) // where is Voyager now

This will probably work well for weeks, until one day you can't find Voyager...

What happened is:
Epoch(Monday)
//midnight
VoyagerPosition(Tuesday)
And Result1 and Result2 are wrong by 1 day or 24h.

Another potential problem is that the Get Date code is duplicated in both procedures...so if the Prime OS changes, only one instance of the code might be changed...or even none, since it is not obvious that either procedure needs to discover Now, rather than just use a date. (Historically the Time/Teval procedure has changed on the Prime).

A much better solution is to keep the discovery of Now separate from the other code that works with any date, thus:

Code:

Now()
Begin
  Get System date/time, possibly changing format to match Epoch input etc.
End
JustNow:=Now()
Epoch(JustNow)
//midnight
VoyagerPosition(JustNow)//same date!!!
So from a practical viewpoint, user code using this procedure may be more reliable, and from a theoretical viewpoint the functions to calculate the epoch of a date and to discover Now are cleanly separated.

Of course, when putting together something that works, and checking that your algorithm works well enough, it is easy to forget that your code might not be used alone, and might be operating with other procedures, which might also be calculating now, but differently.

Stephen Lewkowicz (G1CMZ)
https://my.numworks.com/python/steveg1cmz
Visit this user's website Find all posts by this user
Quote this message in a reply
Post Reply 


Messages In This Thread
epoch Prime - salvomic - 01-05-2018, 05:00 PM
RE: epoch Prime - pier4r - 01-05-2018, 06:03 PM
RE: epoch Prime - Dieter - 01-05-2018, 07:30 PM
RE: epoch Prime - salvomic - 01-05-2018, 07:42 PM
RE: epoch Prime - Dieter - 01-05-2018, 07:51 PM
RE: epoch Prime - salvomic - 01-05-2018, 08:07 PM
RE: epoch Prime - Dieter - 01-05-2018, 08:47 PM
RE: epoch Prime - salvomic - 01-05-2018, 09:10 PM
RE: epoch Prime - Dieter - 01-05-2018, 09:27 PM
RE: epoch Prime - salvomic - 01-05-2018, 09:36 PM
RE: epoch Prime - Dieter - 01-05-2018, 10:07 PM
RE: epoch Prime - salvomic - 01-05-2018, 10:16 PM
RE: epoch Prime - Dieter - 01-05-2018, 10:48 PM
RE: epoch Prime - pier4r - 01-05-2018, 09:40 PM
RE: epoch Prime - salvomic - 01-05-2018, 09:44 PM
RE: epoch Prime - Dieter - 01-05-2018, 09:56 PM
RE: epoch Prime - salvomic - 01-05-2018, 06:17 PM
RE: epoch Prime - salvomic - 01-05-2018, 11:26 PM
RE: epoch Prime - Dieter - 01-06-2018, 08:53 AM
RE: epoch Prime - salvomic - 01-06-2018, 09:28 AM
RE: epoch Prime - Dieter - 01-06-2018, 09:41 AM
RE: epoch Prime - Didier Lachieze - 01-06-2018, 09:50 AM
RE: epoch Prime - StephenG1CMZ - 01-06-2018, 09:40 AM
RE: epoch Prime - pier4r - 01-06-2018, 10:46 AM
RE: epoch Prime - Dieter - 01-06-2018, 12:42 PM
RE: epoch Prime - salvomic - 01-06-2018, 01:07 PM
RE: epoch Prime - salvomic - 01-06-2018, 02:45 PM
RE: epoch Prime - Dieter - 01-06-2018, 06:26 PM
RE: epoch Prime - StephenG1CMZ - 01-06-2018, 08:26 PM
RE: epoch Prime - Dieter - 01-06-2018, 08:37 PM
RE: epoch Prime - pier4r - 01-06-2018, 09:59 PM
RE: epoch Prime - salvomic - 01-06-2018, 10:07 PM
RE: epoch Prime - pier4r - 01-06-2018, 10:55 PM
RE: epoch Prime - pier4r - 01-06-2018, 03:28 PM
RE: epoch Prime - salvomic - 01-06-2018, 03:45 PM
RE: epoch Prime - salvomic - 01-06-2018, 04:10 PM
RE: epoch Prime - StephenG1CMZ - 01-06-2018 06:54 PM
RE: epoch Prime - salvomic - 01-06-2018, 07:58 PM
RE: epoch Prime - salvomic - 01-06-2018, 08:45 PM
RE: epoch Prime - Dieter - 01-06-2018, 08:59 PM
RE: epoch Prime - salvomic - 01-06-2018, 09:01 PM
RE: epoch Prime - Dieter - 01-06-2018, 11:07 PM
RE: epoch Prime - StephenG1CMZ - 01-06-2018, 11:24 PM
RE: epoch Prime - salvomic - 01-07-2018, 09:26 AM
RE: epoch Prime - Dieter - 01-07-2018, 06:22 PM
RE: epoch Prime - salvomic - 01-07-2018, 06:28 PM



User(s) browsing this thread: