Encoding Checks

At some point in the programming process we reduce our instruction to a machine readable form. When this involves lists of names or numbers to be looked up elsewhere we run the risk of mistake seldom surfaced in normal testing.

Example

This conversation among the members of the Wikimedia Foundation's multimedia team illustrate the problem.

Q: I've noticed that czwiki is empty due to lack of data (I presume that maybe Media Viewer wasn't in beta testing there, or that traffic was so low that nobody hit the EventLogging sampling). And fiwiki doesn't load, presumably due to a bug because there's definitely data for Finnish wikipedia in EventLogging. I'll look into that. All the other dashboards are fine.

A: Turns that the issue with fiwiki was simply a typo, should be fixed today.

Practices

Explain consistency checks ...

Explain aggregate property checks ...

Explain the virtue of cut & paste ...

Call for the reduced dependence on names ...

Describe my experience using APL to check bits ...

References

I helped electrical engineer Jeff Bradford complete a vector generator for the Projection Kanji Keyboard. Jeff simplified the ECL design by moving considerable logic into static ram lookup tables. I used APL's array manipulation to formulate and check the bit patterns that would fill these tables.