Skip to main content

Improper english

Before retirement ended my last spell of unemployment, i wondered if the timing of that dismissal was ideal. one month earlier or later might have been better?

improving a server log was my last assignment. like many other companies, their senior management believed in their culture, technology, and tools. like other well-funded companies, they used Splunk and wanted to use JSON format. nobody reviewed the pull request that would have established a baseline for my work. their Splunk dashboard code was not versioned.

Overcommunicating

JSON can be ideal, and creating a data structure to discover if a log entry describes an error is easy and reasonably fast, but computers find strings very quickly. a faster algorithm uses less electricity; computer activity is human activity.

a new JSON object member doesn't interfere with older ones. this encapsulation is good, but it leads to interface bloat. for example, my supermarket's product representations contain descriptions like:

  • vitamin A; calculated by summation of the vitamin A activities of retinol and the active carotenoids

this text is actually part of the minimum viable details for a product.

Subtle consistency

continuing my rant about logging, a log should support finding information with grep or something comparable. it should look like it was written by a machine.

the log's dialect should be natural language augmented by jargon introduced by customers and product owners. the log should not mention implementation details like source code line numbers and thread identifiers, because such references make it harder to analyze failures by comparing logs generated at different times.

consistent language usage facilitates filtering/searching log entries, while natural language usage makes this consistency less stilted.

Prolix torture

precise language usage facilitates communication between team members with different linguistic backgrounds. synonyms may seem harmless to people who are fluent, but team members change and outsourcing is common. when two words have similar definitions, review their connotations to see if one is more appropriate. when all else fails, use the shorter word (which probably has fewer syllables).

it should be possible to analyze texts to discover the history of our (collective) affection for jargon. i assumed it was a side effect of technology infiltrating everyday life, but now i'm not sure.

during rush hour in a large city, sometimes someone would try to squeeze into my train, the door wouldn't close, and our departure would be delayed. to avoid this delay, the operator would tell people on the platform: “We have an immediate follower.” that rarely had the desired effect, so some operators would say:

  • We have an immediate follower behind us.

as Pogo famously said: We have met the enemy and he is us.

Comments

Popular posts from this blog

Hoppin' John

Classic recipes born in poverty can be revised to take advantage of things we take for granted. in particular, many dishes traditionally cooked in one pot benefit from separation. on the other hand, we should respect timeless combinations of flavors and textures. ain't nothing like the real thing. Pork off cuts are authentic because this was a slave's dish, but i prefer bacon. ham hocks can taste a bit coarse and deboning them is a chore. i always have salt pork on hand, but it would require rinsing. in general, do not buy packaged bacon unless it's deeply discounted and reasonably lean. packaged ends/pieces can be easier to use and always cost less than slices. when a butcher displays the lean end of a slab, buy all of it. for this dish, i want bite-sized piec...

Bourne to grep

And now for something completely different: a stupid script trick ... once upon a time, i worked with two software developers who had just started their careers. after giving them a script, one of them complained that it didn't support the --help option. the script was about ten lines including its shebang, without conditional expressions or complexity of any kind. i defended its informality by noting that scripts are text files, so developers can easily discover how to use them. my response had no effect, but i still think scripts written for members of the same development team may be less formal/helpful than usual. since then, i did change my mind about one thing: for a long time, i used Python whenever statements were conditionally executed. i use the Bourne shell more often now.

Wake up and smell the glove

After mistakenly buying a large bag of ground coffee, i decided to learn the cold brew process. in the same way that pickleball is similar to badminton, cold steeping resembles espresso and pour over coffee. even though there are obvious differences, some things never change. Grind grind size usually affects extraction, but it has no effect here. on the other hand, it always affects filtration and i get very different results without reconfiguring my grinder (Orphan Espresso Lido 2). for various reasons, i steep in a medium saucepan. first, i add crumbled star anise (because i own too much of it). then, i grind coffee directly into the saucepan. Pour i pour water around the perimeter of the saucepan to prevent ground cof...