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...