Audio Blog Entries

Click for full-sized image

This 3×5 note card represents one of the great moments in software engineering history. We’d noted that 2 lists of data needed to be sent to the server (’Individual ID’ and ‘Selection Status’), and since they needed to be encoded as text, sent as part of a URL, we got to talking about the format. The IDs were a no-brainer: simply call toString() on the Integer objects used internally. The fun came when we wanted to encode the (boolean) selection status.

Historically, “1″ and “0″ might have been used for selected and not-selected (respectively). This is especially true when flags are encoded into the individual bits that make up a byte: ones and zeros are the stock and trade of the low-level Assembler / C / C++ programmer storing status. That was one of our suggestions.

Someone else suggested we use the actual “true” and “false” of the boolean variable.

The third person in our small group mentioned that we’re talking about whether an individual was Selected or Not Selected, so that became our third option. No clear winner was appearing as the encoding systems duked it out. We finally resorted to emptying pockets looking for coins. One person found a Nickel (the “N” column on the note card) and someone else provided a Quarter (the “Q” column). And thus the great software engineering issue was solved by the tossing of coins.

The coins have spoken: the architectural decision has been made, from now on boolean variables sent as text will be represented by the words “Selected” and “Not Selected”.


Comments are closed.