Skip to content

Latest commit

 

History

History
110 lines (73 loc) · 4.51 KB

4-Glossary.md

File metadata and controls

110 lines (73 loc) · 4.51 KB

Glossary

This is a glossary of terms as used in this essay. These do not necessarily have a standardized meaning to other people. Eric S. Raymond has compiled a massive and informative glossary[HackerDict] that rather surprisingly can pleasurably be read cover-to-cover once you can appreciate a fraction of it.

unk-unk : Slang for unknown-unknown. Problems that cannot presently even be conceptualized that will steal time away from the project and wreck the schedule.

boss : The person or entity that gives you tasks. In some cases this may be the public at large.

printlining : The insertion of statements into a program on a strictly temporary basis that output information about the execution of the program for the purpose of debugging.

logging : The practice of writing a program so that it can produce a configurable output log describing its execution.

divide and conquer : A technique of top-down design and, importantly, of debugging that is the subdivision of a problem or a mystery into progressively smaller problems or mysteries.

vapour : Illusionary and often deceptive promises of software that is not yet for sale and, as often as not, will never materialize into anything solid.

boss : The person who sets your tasks. In some cases, the user is the boss.

tribe : The people with whom you share loyalty to a common goal.

low-hanging fruit : Big improvements that cost little.

Entrepreneur :The initiator of projects.

garbage : Objects that are no longer needed that hold memory.

business : A group of people organized for making money.

company : A group of people organized for making money.

tribe : A group of people you share cultural affinity and loyalty with.

scroll blindness : The effect of being unable to find information you need because it is buried in too much other, less interesting information.

wall-clock : Actually time as measured by a clock on a wall, as opposed to CPU time.

bottleneck : The most important limitation in the performance of a system. A constriction that limits performance.

master : A unique piece of information from which all cached copies are derived that serves as the official definition of that data.

heap allocated : Memory can be said to be heap allocated whenever the mechanism for freeing it is complicated.

garbage : Allocated memory that no longer has any useful meaning.

garbage collector : A system for recycling garbage.

memory leak : The unwanted collection of references to objects that prevents garbage collection (or a bug in the garbage collector or memory management system!) that causes the program to gradually increase its memory demands over time.

Extreme Programming : A style of programming emphasizing communication with the customer and automated testing.

hitting the wall : To run out of a specific resource causing performance to degrade sharply rather than gradually.

speculative programming : Producing a feature before it is really known if that feature will be useful.

information hiding : A design principle that seeks to keep things independent and decoupled by using interfaces that expose as little information as possible.

object-oriented programming : An programming style emphasizing the the management of state inside objects.

communication languages : A language designed primarily for standardization rather than execution.

boxes and arrows : A loose, informal style of making diagrams consisting of boxes and arrows drawn between those boxes to show the relationships. This contrast with formal diagram methodologies, such as UML.

lingua franca : A language so popular as to be a de facto standard for its field, as French was for international diplomacy at one time.

buy vs. build : An adjective describing a choice between spending money for software or writing it your self.

mere work : Work that requires little creativity and entails little risk. Mere work can be estimated easily.

programming notation : A synonym for programming language that emphasizes the mathematical nature of programming language and their relative simplicity compared to natural languages.

strawman : A document meant to be the starting point of a technical discussion. A strawman may lead to a stickman, tinman, woodman, ironman, etc.

white-paper : An informative document that is often meant to explain or sell a product or idea to an audience different than the programmers of that product or idea.

Next Bibliography/Websiteography