Originally Posted by Panman1300:
“A box freezing is highly unlikely to be a firmware issue. If it were we would all suffer the same (like with the slow delete).”
Originally Posted by Panman1300:
“Out of interest why do you conclude that? We have the situation where only some boxes exhibit a problem, but they all (near enough) have the same firmware installed. The only difference between them is that each box is a unique combination of similar hardware components. If all boxes have the same symptom (eg. slow to delete) then I think that indicates firmware, but a random distribution of slighly different problems tends to indicate hardware (or a local environmental issues such as poor power supply). One thing I learnt early on in my IT career (and I'm talking the early days of computing) is that, over time, software does not degrade, whereas hardware does. There is also the dreaded bathtub curve for hardware that says the likelyhood of failure when its new is fairly high. Once it beds in it gets very reliable until it gets old, when the incidence of failure rapidly increases again. People with 'freezing' boxes almost certainly have a hardware related problem (that might go away with time if it's one component that may settle down - but don't count on it). My box does not have the problem, and I have one of the early ones (over the air upgraded to .02). Lots of other people have also said that their box just works.”
If it is a firmware issue, it is likely triggered by a particular set of circumstances and/or user activities. This has a number of implications:
1.It is not possible, and I don't say this lightly, to have a testing regime that covers every possible scenario (so-called 100% test coverage).
2.It is probable, with any complicated development, that issues will arise post software release.
3.The probability of issues arising is much greater when the scope of the development work is across many software tiers.*
4.It is easy to identify when one has a problem, not so easy to be certain that one hasn't one.
* With the Humax there are low level routines to deal with hardware interactions, a complex EPG which must interact with a sophisticated OTA data stream, a Graphical User Interface which must support a large heterogeneous user base, etc....... This represents software development at the more complex end of the scale. There is no viable test bed that could replicate every possible permutation and combination.
Originally Posted by Panman1300:
“One thing I learnt early on in my IT career (and I'm talking the early days of computing) is that, over time, software does not degrade, ... People with 'freezing' boxes almost certainly have a hardware related problem (that might go away with time if it's one component that may settle down - but don't count on it).”
Software development has greatly increased in complexity since those early days. I agree that early software programs were far more reliable than the associated hardware. This was hardly surprising, much coding was in low level assembly language with, perhaps, a second level using a language such as 'C'. There is much public evidence to show that software is now the bigger concern. Modern software may not break, in the sense that hardware does, but performance certainly does decrease as times goes by. Equally, software does not degrade with time, in the sense that new defects arise. What does happen is that defects, already inherent in the solution, are manifested as unexpected behaviours.
Originally Posted by Panman1300:
“There is also the dreaded bathtub curve for hardware that says the likelyhood of failure when its new is fairly high. Once it beds in it gets very reliable until it gets old, when the incidence of failure rapidly increases again.”
And that hypothesis still holds today. However, the actual probability of an individual component actually failing has decreased substantially since those early days. There is a far better understanding of the causes of component failure, far better mechanisms for stress testing component samples and better manufacturing techniques for consumer electronics equipment.