Summary
In the world of animation, Apple's web page is "lagging". It's an interesting example of how not to depict a real time event stream in a non-realtime environment.
Advertisement
When I was going through software after software class in college, there were a lot of things we learned about real time vs non-realtime environments. Most of them centered around the premise that moments of time in a real-time system are predictable within the degrees of latency that the OS supports.
Our desktop systems have a high degree of latency and non-predictability in execution speed from point a to point b in code, because they are not real time, and the OS can freely choose to let preemption ruin any chance we had to guess at the latency between two points.
My kids are all about the Apple count down to the billionth downloaded app. They've been encouraging me to watch it. On Monday of this week, we watched the counter count for 1000 downloads, and timed it. We then computed how much was left to get to a billion, divided by the time (5 seconds) that we had counted, and then figured out how many days that was and settled on Thursday as the day of the roll over.
Here it is thursday, and I decided I wanted to know more precisely how long it would be. So, I poured over the web page and associated java script to find the URL where they were getting the values from. I then whipped up a quick Java application that says the time of the event will be 6:30pm CDT or so. As I watched my number of predicted downloads count up, I looked at the web page and noticed I was way ahead of it.
So, I reloaded the page and presto, the web page was right at what I had computed! So, it appears that they are computing a "loop increment", and the running through the loop incrementing the count, without recomputing the value based on the current time.
Also, if you look at the time of the data, it is 2 hours behind the current time on the west coast, so I'd guess the end event will happen way before we have numbers on what the
current rate is.