Tuesday, November 28, 2017

Null is a Global Variable

Programmers often bemoan the problems of the concept of null that exists in programming languages. Even C.A.R. Hoare, the inventor of the null reference, calls it a billion dollar mistake. Some detest its existence, and indicate that it's useless. However, it occurred to me that null can actually be thought of as a global variable - one that is used across all applications and domains to indicate special cases, such as the end of a data structure or a missing entry.

Monday, October 30, 2017

Oft-Misheard Phrases in the Workplace

There's an affliction that affects many millions of Americans in the workplace, and it's time to bring that affliction to light. There's perhaps nothing more benignly embarrassing than uttering one of these often misheard phrases during a work meeting, much less writing them down in a widely distributed email or memo. Perhaps it's time to set things straight once and for all, and help bring our less fortunate colleagues out of the darkness by setting them on the righteous path to using the correct version of these phrases.

Which version of each of these phrases do you think is the correct one?

Friday, February 3, 2017

The Math Behind the Jury Selection Problem

I recently served on the jury for a trial in the county superior court system, and contrary to popular belief it turned out to be an interesting experience. The ordeal gave me confidence in the idea of being judged by a jury of one's peers, and I came away with an appreciation of the fact that the responsibilities of a jury are precise and straightforward, much like the role of computer hardware (jurors) carrying out the instructions of a software program (law) given a set of well-defined inputs (evidence).

As I sat through the initial jury selection process, I also got to thinking about some of the mathematics behind the process. In particular, is there a way to answer the two questions on every prospective juror's mind: will I be selected as a juror and how long is this process going to take?