TOPIC: Time and Motion
Time and Motion 1 year 2 months ago #1
| || |
Time and Motion
The passing of time is continuous: time itself relentlessly marches on. However, it is inextricably linked to motion. Nothing would happen in a timespan reduced to zero, and for anything happen implies a timespan greater than zero.
But is that the full story? No. In the real world it is relative timing we need to consider. By doing this, reducing time differences to zero, whatever would otherwise have happened in a corresponding time span, however long it would have taken and however complex it would have been to do it, we can multiply it all by zero and get zero as a result. In other words, we can neglect it. ENTIRELY.
Consider as an example, planetary trajectories: We could all go into our back gardens, with our new Christmas presents, which just happen to be Sextants. We could measure the angular displacement between the planets, have a pint, record the time we had taken to drink the pint, measure the angular displacement again, called in our friend (a mathematical genius) and asked him to work out where we should look for Mars after our next pint.
OR could we not have gone in our minds, to the Sun, thereby removing any displacement of us from its position, and simply used our simple knowledge of circles to predict Mars’ position?
Now we can “look” at this anyway we like: personally, I find taking the view that this has reduced time difference to zero, but one of the marvels of the human brain is we can “look” at it any way we like, which means the simplest way for each of us as individuals.
Let me give you one example of simplifying thinking:
I’m sure no one would contradict me when I say multi-threading an application takes a bit of thinking about: how it is achieved is a nightmare to understand.
But we do need to appreciate the factors involved: before we even attempt to incorporate it into our program. How much simpler is it to consider a Concorde trip from London to New York.
As we climb out of London, we pass through numerous outgoing flight-paths, so throughout this time we have the programmatic equivalent of ensuring no other flight crosses our path.
When we reach 60,000 feet or so, we know no other commercial aircraft could reach that height, so we don’t have to worry about hitting anything or do we? Well, just a little electronic knowledge tells us nothing could catch us up (electricity travels at constant speed) so programmatically we can forget any such concerns. But what about another Concorde flying New York to London. We must take the programming equivalent of what is done in the aviation word – that is introduce, and stick rigidly to, Rules.
My point is that whilst we may not have addressed the detailed intricacies of multi-threading we know what we need to think about. What we are doing is embarking on a progressive “think-chain”, in which an unmanageable level of “thinking complexity” is reduced bit by bit to lesser levels of complexity which our brains can tackle one at a time.
Could we really do all this artificially in a computer? I don’t think so.
Time and Motion 1 year 2 months ago #2
| || |
I would tread carefully when it comes to TIME.
There may well be a good argument for saying that there is no 'present', just past and future, with a clear and clean 'interface' between the two. Everything our senses reports to us is in fact the past. And even with the speed of light being what it is (fast) all we ever see with space telescopes is in fact 'History'
Some scientists would also argue that there is no TIME (dimension) at all, and that this is just our human way of expressing that events are just states of the system, states that we perceive.
All our ways of stating and measuring TIME is done in a relative way, comparing one state to another and so on.
I have also seen a good TV documentary which told of how scientists have rewritten all the basic laws of Physics without 'time' as such. Yep! - Newton and much further. And they work okay.
No the wonder that Microsoft had so much trouble with 'DateTime' - they did a remarkably good job I feel, under the circumstances ;-0)
Now then 'time for a coffee' ! - or have I had it already ?
Time and Motion 1 year 2 months ago #3
| || |
You have linked Time to a dimension. I would argue that we should not always consider time as a dimension – only think of it that way when it makes things easier to “see”. I know many scientists and engineers who, for mathematical convenience, role time up into complex mathematical calculations (which would otherwise be even more complex).
It springs from the abstract nature of pure mathematics, where we can think in terms of as many dimensions as we like and perform complex matrix manipulations of them and use them to represent whatever we like. C# has an abundance of such things.
We live in a 3-dimensional world which means we can only see or conceptualise things in a maximum of 3 dimensions. We can conceptualise things in 1 or 2 dimensions by mentally linking them to some tangible object. (A square what?).
Take for example going on holiday. I pose the question – if I leave home at 10 o’clock what time can I get my first cup of tea on the aircraft? Of course, I’d have to supply obvious facts such as time to get to airport and so on. Then after take-off, such factors as cabin pressurisation, power of kettle, altitude, weather conditions come in to play.
All factors could be combined into one multi-dimensional matrix. (I’ll leave this as an exercise)
But could anyone remotely “visualise” this calculation as a whole? We could combine this matrix with another, say compare it with a friend who is on a different aircraft and take a bet on who gets tea first!
Now let’s get back to reality: If we are to “see” or visualise any of this we have to get back to 3 dimensions. And of course, we have to “extract” that from whatever complex matrix we have and present the result either in 3 dimensions or in a way we can interpret as such.
As an example, consider a line on a piece of paper. It has a start point and an end point. If I were to suggest rotating the line (about the middle) both line start and line end would move. Have the points rotated? Yes, but behind the scenes the calculation, to be meaningful, must be done in 3 dimensions with z axis reduced to zero.
Take all that pure maths stuff, where we had to think of things converging to zero. Led to some saying things like “there is no place in programming for pure maths.”
Hope you enjoyed coffee – I’m just going for lunch.
Oh – one final thought: this line of thought takes us on a divergent series which could never be computerised!
Time and Motion 1 year 1 month ago #4
| || |
Have you ever thought that everything we do is a compromise?
Particularly when it comes to programming. I doubt there can ever be a “best” way of doing things. It is subjective anyway.
Whatever objective we may be committing to program logic there will be numerous ways to do it. How do we, at least try, to identify the optimum way?
How much easier is it to think in real-world terms rather that electronic terms? We can if we simply recognise a few things that are so obvious to us that they become trivial and overlooked.
Time and “doing something” is an easy thing to overlook.
It takes time to do anything. We can’t go backwards. We can’t use anything before it’s been made. Have you ever had a “bug” that, on reflection you can see as trying to use something (a Type) that has not been constructed?
But when should you construct things? Obviously before use, but how long before use. Just before use costs time at that point. It would cost time in any event, but could it be done on another thread earlier and just used later?
Do you want to use it from anywhere? Make it static.
How much easier to think this through in real everyday terms like building a house.
Building a house means using land (memory) which we can’t use for anything else. If the house is small it may not matter when it is built (as long as it’s finished before the removal men arrive with our stuff), but if the house is a mansion it’s a different story.
Now consider this: We have a numbering scheme. It runs from zero through to a very large number. Is that number Infinite? That is surely a contradiction.
To close the loop, we have a rule Anything multiplied by Zero is always Zero.
Thus, from a programming point of view, we can say any divergent logical sequence must end in either a contradiction or a rule. Clearly a contradiction is a bug, so we must either end our logic with a rule, or ensure our logic forms a convergent sequence.
Just my odd way of thinking.
Time and Motion 1 year 1 month ago #5
| || |
Most of us just deal with an infinite number of bugs !
This seems to be my lot at the moment - seem to be fighting everything this morning, but none of problems seem to be my making !
Fingers crossed for a better afternoon.