Common software terms Flashcards

1
Q

spagetti code

A

multiple pages of nested if clauses and for loops with a lot of copy-pasted procedural code and no proper segmentation

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

ravioli code

A

hundreds of similar little pieces of logic, often classes or objects, without proper structure. If you never can remember if you have to use FurnitureTable, AssetTable or Table, or even TableNew for your task at hand, you might be swimming in ravioli code. The problem is that it tends to lead to functions (methods, etc.) without true coherence, and it often leaves the code to implement even something fairly simple scattered over a very large number of functions. Anyone having to maintain the code has to understand how all the calls between all the bits work, recreating almost all the badness of Spaghetti Code except with function calls instead of GOTO.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

god object

A

an object that knows too much or does too much. Most of such a program’s overall functionality is coded into a single “all-knowing” object, which maintains most of the information about the entire program, and also provides most of the methods for manipulating this data. The god object is an example of an anti-pattern. The polar opposite of the god object is ravioli code.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

lasagna code

A

Program structure characterized by several well-defined and separable layers, where each layer of code accesses services in the layers below through well-defined interfaces. Lasagna code generally enforces encapsulation between the different “layers”, as the subsystems in question may have no means of communication other than through a well-defined mechanism. Loosely coupled layering is generally desirable because it makes objects at each layer more interchangeable with existing or possible future implementations, but other types of changes to the code will actually increase in complexity as more layers are added and so an extensively layered architecture can be seen as an anti-pattern as well.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

big ball of mud

A

Popularized in Brian Foote and Joseph Yoder’s 1997 paper of the same name. A Big Ball of Mud is a haphazardly structured, sprawling, sloppy, duct-tape-and-baling-wire, spaghetti-code jungle. These systems show unmistakable signs of unregulated growth, and repeated, expedient repair. Information is shared promiscuously among distant elements of the system, often to the point where nearly all the important information becomes global or duplicated.

Note: in Lisp, it can be used differently: to describe the malleability of a Lisp system.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

write-only language

A

A programming language with syntax (or semantics) sufficiently dense and bizarre that any routine of significant size is too difficult to understand by other programmers and cannot be safely edited. Examples often cited: APL, Perl, Forth, and regular expression syntax.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

WSGI

A

“wizgi”: The Web Server Gateway Interface: a simple and universal interface between web servers and web applications or frameworks for the Python programming language.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

How do you pronounce Xindice?

A

pronounced zeen-dee-chay in your best faux Italian accent

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

polymorphism

A

(In software) Provides for multiple implementations of the same method

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

triple store

A

A database optimized for RDF triples.

Typically optimized for very many short data items.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

OLAP

A

Online analytical processing. It’s an approach to answering multidimensional analytical queries.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

POCO

A

Plain old CLR object

Often incorrectly expanded to “plain old C# object”, but it can be created in any language targeting the CLR.

Simple objects without inheritance or other attributes needed for a specific framework. In CLR, typically a non-Serviced Component.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

CLR

A

Common Language Runtime. The runtime environment of .NET.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

yesterday’s weather

A

(In Software development.) The principle that says you’ll get as much done today as you got done yesterday. In iterative projects it says that you should plan to do as much this iteration as you did last iteration.

http://martinfowler.com/bliki/YesterdaysWeather.html

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

COTS

A

“commercial off-the-shelf”. A Federal Acquisition Regulation (FAR) term defining a non-developmental item (NDI) of supply that is both commercial and sold in substantial quantities in the commercial marketplace, and that can be procured or utilized under government contract in the same precise form as available to the general public. E.g: computer sw (incl. FLOSS), construction materials.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

FLOSS

A

“Free-Libre / Open Source Software (FLOSS)”. It is considered commercial software, even though some people mistakenly distinguish between commercial & free sw.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

divide and conquer

A

Algorithm design paradigm based on multi-branched recursion. A divide and conquer algorithm works by recursively breaking down a problem into two or more sub-problems of the same (or related) type, until these become simple enough to be solved directly. The solutions to the sub-problems are then combined to give a solution to the original problem.

18
Q

tail recursion

A

A tail call is a subroutine call that happens inside another procedure as its final action. A tail call doesn’t have to be recursive, but when it is, it’s tail recursion. S ignificant because they can be implemented without adding a new stack frame to the call stack.

19
Q

functional programming

A

A programming paradigm that treats computation as the evaluation of mathematical functions and avoids state and mutable data. In functional code, the output value of a function depends only on the arguments that are input to the function, so calling a function f twice with the same value for an argument x will produce the same result f(x) both times. By contrast, in imperative programming, the function may change state data internally, and so might return a different value.

20
Q

What are the byte prefixes?

A

In 2000, however, IEEE adopted the International Electrotechnical Commission (IEC) recommendation, which uses the metric prefix interpretation for prefixes like kB, where kilo means 1000 and not 1024. So:

21
Q

How much is a gigabyte?

A

Depends on the context. For hard drive and networking, the “giga” part usually means the SI meaning of 1000. Referring to RAM sizes, it usually means 1024 3 bytes, i.e., an alias for gibibyte. File systems & software often list file sizes or free space in some mixture of SI units and binary units. Mac OS uses the decimal interp.

Technically, giga means 10 9 in SI, so it really means 1,000,000,000 byte s, i.e., a base 10 definition, not a base 2 definition.

22
Q

When did the interpretation of “giga” change?

A

In 1998 the International Electrotechnical Commission (IEC) proposed standards for binary prefixes and requiring the use of gigabyte to strictly denote 1000 3 bytes and gibibyte to denote 1024 3 bytes. By the end of 2007, the IEC Standard had been adopted by the IEEE , EU , and NIST .

23
Q

What are the proper base 2 prefixes?

A

1024: KiB kikibyte
1024 2 : MiB mebibyte

1024 3 : GiB gibibyte

1024 4 : TiB tebibyte

1024 5 : PiB pebibtye

1024 6 : EiB exbibyte

1024 7 : ZiB zebibyte

1024 8 : YiB yobibyte

24
Q

What units are used by JEDEC?

A

The JEDEC memory standards are the specifications for semiconductor memory circuits and similar storage devices promulgated by the JEDEC Solid State Technology Association, a semiconductor trade and engineering standardization organization.

JEDEC Standard 100B.01 specifies common terms, units, and other definitions in use in the semiconductor industry. They use byte = 8 bits and

kilo, mega, giga = base 2 interpretations.

25
Q

fencepost error

A

An off-by-one error. Also known as a telegraph pole or lamp-post error .

26
Q

What is a megabit per second?

A

1,000,000 (not 1024*1024) bits per second, which works out to 0.125 MB/s.

27
Q

What is “epoch time””?”

A

The Unix epoch (or Unix time or POSIX time or Unix timestamp ) is the number of seconds that have elapsed since January 1, 1970 (midnight UTC/GMT), not counting leap seconds (in ISO 8601: 1970-01-01T00:00:00Z). Literally speaking the epoch is Unix time 0 (midnight 1/1/1970), but ‘epoch’ is often used as a synonym for ‘Unix time’. Many Unix systems store epoch dates as a signed 32-bit integer, which might cause problems on January 19, 2038.

28
Q

sinkholing

A

Sinkholing is the term for taking control of the Internet address used in malware attacks so white hats can ensure that compromised computers don’t continue to report to servers operated by attackers.

29
Q

What is a full stack developer?

A

It means a person who can work with databases, servers, systems engineering, and client work. Depending on what kind of client is needed that can mean a mobile stack, web stack, or native applications.

30
Q

GPRS

A

General packet radio service. Packet oriented mobile data service on the 2G and 3G cellular communication system’s global system for mobile communications (GSM). Originally standardized by European Telecommunications Standards Institute (ETSI). Now maintained by the 3rd Generation Partnership Project (3GPP). Allows 2G, 3G and WCDMA mobile networks to transmit IP packets to the Internet.

31
Q

EDGE

A

Enhanced Data rates for GSM Evolution ( EDGE ). Also known as Enhanced GPRS (EGPRS). A llows improved data transmission rates as a backward-compatible extension of GSM. EDGE is considered a pre-3G radio technology.

32
Q

LTE

A

Long-term evolution. First generation of 4G networks in the US. (In South Korea, they deployed 4G in the form of Mobile WiMAX.) First came online in 2011/2012.

33
Q

WIMP

A

Windows, icons, menus, pointers. It was coined by Merzouga Wilberts in 1980. It is not the same as GUI, because s ome GUIs are not based in windows, icons, menus, and pointers. WIMP interaction was developed at Xerox PARC (see Xerox Alto , developed in 1973) and popularized with Apple ‘s introduction of the Macintosh in 1984, which added the concepts of the “menu bar” and extended window management.

34
Q

RAID

A

Redundant Array of Independent Disks

35
Q

LVM

A

Logical Volume Management

36
Q

What is Logical Volume Management?

A

A way to create logical volumes within the partition space of one or more physical drives.

37
Q

RAID 0

A

This turns all your disks into a single unit with no redundancy. This has the highest read and write performance and the most usable space of any of the options, but the loss of a single disk means the loss of all data.

38
Q

RAID 1+0

A

This turns all your disks into a single unit with all data present on two disks. The read speed is about the same as RAID 0, the write speed is halved (since you need to write each piece of data twice), and you only have half as much space available. The loss of a single disk has no impact on data availability and minimal impact on read/write speeds.

39
Q

RAID 5

A

This turns all your disks into a single unit, with a parity value on one disk. The read speed is slightly lower than RAID 0, the write speed is much slower, possibly slower than the write speed of a single non-RAID disk (each write requires a read-modify-write cycle on at least two disks), and you lose one disk’s worth of space for parity information. The loss of a single disk can cause a major reduction of read speed (reconstructing the data that was stored on it requires reading data from all the other disks), but has no impact on data availability.

40
Q

RAID 6

A

This has essentially all the advantages and drawbacks of RAID 5, except that it stores a fancier checksum in addition to a parity calculation, and can handle the loss of two disks without data loss.

41
Q

VPS

A

virtual private server; a virtual machine sold as a service by an internet hosting company.