Sponsored Link •
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.
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.
Have an opinion? Be the first to post a comment about this weblog entry.
|Gregg Wonderly graduated from Oklahoma State University in 1988 with an MS in COMSCI. His areas of concentration include Operating Systems and Languages. His first job was at the AT&T Bell Labs facilities in Naperville IL working on software retrofit for the 5ESS switch. He designed a procedure control language in the era of the development of Java with similar motivations that the Oak and then Java language development was driven by. Language design is still at the top of his list, but his focus tends to be on application languges layered on top of programming languages such as Java. Some just consider this API design, but there really is more to it! Gregg now works for Cyte Technologies Inc., where he does software engineering and design related to distributed systems in highly available environments.|