New Modern Glossary of Computer Science

singingfish1 pts0 comments

New Modern Glossary of Computer Science

This is terminology I’ve collected over the years. Essentially like<br>the jargon file but mine<br>- with help from friends and colleagues credited fairly anonymously<br>below. Feel free to credit me if<br>you use this in written work, but I don’t believe copyright applies<br>terribly well.

A couple of horses worth<br>of glue code

For example, code that populates data into opensearch dashboards by<br>running in a docker container, shelling out to azure-cli and a dotnet<br>tool (written to run in linux) which extracts azure costs by resource,<br>all marshalled by perl finally arriving at opensearch for convenient<br>visualisation.

Favela design pattern

A combination of separation of concerns and lack of separation of<br>concerns. Too many people sleeping in the same room, lots of<br>metaphorical potential for leaks and raw sewage running in the street.<br>Crime can be a problem. See also Ghetto code

Fictional interface

Code that never reached aspiration

First system syndrome

When the first attempt at doing something does far too much and<br>doesn’t anticipate what people will actually want to do with it leading<br>to a failure to provide a sane interface because what you can do and<br>what you might sensibly want to do are hard to differentiate. See<br>mod_perl.

Glass of concrete bugfixing

As in “the code needs to drink a glass of concrete and harden the<br>fuck up”. To be used for code that does insufficient error checking and<br>thus crashes in unexpected and poorly instrumented ways, generally due<br>to a failure of management and craftsmanship.

Ghetto code

Code that’s in a bad, poorly maintained part of town. Could apply to<br>specific subsystems, or could be the full Jakarta (or insert your city<br>of choice here, sorry to the Jakarta people). Thanks Geoff

Historacle reasons

Because Oracle used to be a part of this computing infrasturcture,<br>some aspects are over provisioned for reasons that are no longer<br>neccessary but the over-provisioning is occasinaly convenient.

IDGAF<br>- Information system Design General Abstraction Failure

Failure of fundamental abstraction. For example, in Unix-like<br>operating systems, everything is treated as (for some value of) a file.<br>This is an extremly powerful approach, and has multiple applications.<br>Extending this fundamental abstraction, the Mac OS display subsystem<br>everything is a PDF. Finding an appropriate fundamental abstraction is<br>challenging, and getting it wrong can make life really difficult. For<br>example in SAP, the popular German software enabling the violence of<br>management consultancy, and beloved of big business and government, the<br>fundamental abstraction appears to be the spreadsheet. This is an awful<br>idea, and makes everything awful all the way down to the big bucks you<br>get for being an SAP consultant.

The IDGAF backronym came from discussion on IRC (thanks mst!). GAF is<br>clearly “general abstraction failure”, but I had to reconstruct the ID<br>portion of the backronym as I currently lack access to my older IRC logs<br>and mst sadly passed away.

Jenga design pattern

At some point it will fall over as prior work has left it<br>unstable

Legendary interface

Code has undergone accretion over the years without sufficient<br>maintenance or tests such that distinguishing between myth and reality<br>is very difficult.

Magic payload

Generally a constructor that receives a large ill-thought-out data<br>structure which works but it’s very difficult to understand why.

More edges than<br>a suitcase full of razor blades

Pretty self-explanatory, given the technical definition of<br>edge case. Generally this phrase is useful when being given an<br>unreasonable deadline by management. While trying to accomodate their<br>needs, the phrase provides an opportunity to instil liberal amounts of<br>fear around the viability of ongoning activity if the problem is solved<br>incorrectly.

I think this originates from mst during a conversation on irc.<br>Possibly while discussing commercial networking code which was a<br>research project that escaped - see entry below. The results of a couple<br>of<br>google searches supports my suspicions around the origin.

Mythical interface

Once, briefly in the distant past the code reached aspiration but<br>never again.

The<br>nailing the corpse in the upright position strategy

An approach to exception handling where most errors are ignored.<br>(thanks Ben).

Pantheistic god objects

Rather than a single god object, there is a pantheon of them, with or<br>without a leader object.

Research project that<br>escaped

Code written by academics is often of quite poor quality. My honours<br>thesis supervisor was responsible for code to support psychological<br>research which could render a computer un-bootable. Note that it was not<br>doing anything deliberately clever on the operating system level, so<br>this outcome was definitely unexpected. The same person - who did some<br>important fundamental research on face recognition - also managed to<br>write code that could fill disk at a faster rate than the data could...

code abstraction failure fundamental interface research

Related Articles