Subject: RE: Best practice for data encoding?

From: "Hallam-Baker, Phillip" <[email-masked]>
Date: Tue, 6 Jun 2006 11:43:04 -0700

> From: Steven M. Bellovin [mailto:[email-masked]] 

> > Having had Tony Hoare as my college tutor at Oxford I have 
> experienced 
> > a particularly uncompromising approach to complexity. However the 
> > point Hoare makes repeatedly is as simple as possible but 
> no simpler.
> 
> Hoare has been a great influence on my thinking, too.  I 
> particularly recall his Turing Award lecture, where he noted:
> 
> 	There are two ways of constructing a software design: One way is
> 	to make it so simple that there are obviously no 
> deficiencies, and
> 	the other way is to make it so complicated that there are no
> 	obvious deficiencies. The first method is far more difficult.
> 
> (In that same lecture, he warned of security issues from not 
> checking array bounds at run-time, but that's a separate rant.)

I think it is a useful illustration of my point.

Dennis Ritchie:
	Bounds checking is too complex to put in the runtime library.

Tony Hoare:
	Bounds checking is too complex to attempt to perform by hand.

I think that time has proved Hoare and Algol 60 right on this point. It is much better to have a single point of control in a system and a single place where checking can take place than make it the responsibility of the programer to hand code checking throughout their code.

Equally the idea of unifying control and discovery information in the DNS may sound complex but the result has the potential to be considerably simpler than the numerous ad hoc management schemes that have grown up as a result of the lack of a coherent infrastructure.

_______________________________________________
Ietf mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/ietf

---

From: "Hallam-Baker, Phillip" <[email-masked]>
Date: Tue, 6 Jun 2006 12:11:08 -0700

> From: Jeffrey Hutzelman [mailto:[email-masked]] 

> It's a subset, in fact.  All DER is valid BER.

It is an illogical subset defined in a throwaway comment in an obscure part of the spec.

A subset is not necessarily a reduction in complexity. Let us imagine that we have a spec that allows you to choose between three modes of transport to get to school: walk, bicycle or unicycle.

The unicycle option does not create any real difficulty for you since you simply ignore it and use one of the sensible options. And it is no more complex to support since a bicycle track can also be used by unicyclists.

Now the same derranged loons who wrote the DER encoding decide that your Distinguished transport option is going to be unicycle, that is all you are going to be allowed to do.

Suddenly the option which you could ignore as illogical and irrelevant has become an obligation. And that is what DER encoding does. 

Since you don't appear to have coded DER encoding I suggest you try it before further pontification. If you have coded it and don't understand how so many people get it wrong then you are beyond hope.

BTW its not just the use of definite length tags, there is also a requirement to sort the content of sets which is a real fun thing to do. Particularly when the spec fails to explain what is actually to be sorted.