Command Line
Use Case
A Use Case is a thing an actor perceives from the system. A Use Case maps actors with functions. Importantly, the actors need not be people. As an example, a system can perform the role of an actor, when it communicate with another system. In another angle a Use Case encodes a typical user interaction with the system. In particular, it: Captures some user-visible function. Achieves some concrete goal for the user. A complete set of Use Cases largely defines the requirements for your system: everything the user can see, and would like to do.
less
A sophisticated interactive pager program for looking at information on a terminal, one screenful (or "page") at a time. The name is a pun on the more program.
bc
Arbitrary precision calculator
crontab
Automate commands
csplit
Break files at specific locations.
cc
C compiler
ctags
C function references (for vi)
splint
C program analyzer
lprm
Cancel a printer request
chmod
Change access modes on files.
cd
Change directory
chgrp
Change file group
chown
Change file owner.
Class Diagram
Class diagrams are widely used to describe the types of objects in a system and their relationships. Class diagrams model class structure and contents using design elements such as classes, packages and objects. Class diagrams describe three different perspectives when designing a system, conceptual, specification, and implementation. These perspectives become evident as the diagram is created and help solidify the design. The Class diagrams, physical data models, along with the system overview diagram are in my opinion the most important diagrams that suite the current day rapid application development requirements.
clear
Clear the screen
dircmp
Compare directories
comm
Compare items in two sorted files
diff3
Compare three different files
cmp
Compare two files, byte by byte
diff
Compare two files, line by line.
sdiff
Compare two files, side by side.
gzip
Compress files to free up space
ssh
Connect to another system securely
cpio
Copy archives in or out
cp
Copy files
scp
Copy files to remote system securely.
ln
Create filename aliases.
file
Determine a file's type
cal
Display calendar
zcat
Display contents of compressed files
gzcat
Display contents of compressed files (may be linked to zcat)
more
Display files by screenful
finger
Display information about users
date
Display or set date
strings
Display text strings found in binary files
od
Dump input in various formats
make
Execute commands in a specified order
at
Execute commands later
gunzip
Expand compressed (.gz and .z) files
bunzip2
Expand files compressed with bzip2 (.bz2 files)
tar
File tree and tape archiver
locate
Find a file somewhere on the system based on its name. The program uses a database of files that is usually automatically rebuilt, nightly.
uniq
Find repeated or unique lines in a file
printf
Format and print command-line arguments
iconv
General-purpose character-encoding conversion tool
man
Get information on a command
lpq
Get printer status
ftp
Interactive File Transfer Program
lex
Lexical analyzer generator
top
List every program running
ls
List files or Directories
ld
Loader
mkdir
Make a directory
banner
Make posters from words
paste
Merge columns or switch order
join
Merge different columns into a database
Method Overloading
Method overloading is the ability to define several methods all with the same name. public class MyLogger { public void LogError(Exception e) { // Implementation goes here } public bool LogError(Exception e, string message) { // Implementation goes here } }
Method Overriding
Method overriding is a language feature that allows a subclass to override a specific implementation of a method that is already provided by one of its super-classes. A subclass can give its own definition of methods but need to have the same signature as the method in its super-class. This means that when overriding a method the subclass's method has to have the same name and parameter list as the super-class' overridden method. using System; public class Complex { private int real; public int Real { get { return real; } } private int imaginary; public int Imaginary { get { return imaginary; } } public Complex(int real, int imaginary) { this.real = real; this.imaginary = imaginary; } public static Complex operator +(Complex c1, Complex c2) { return new Complex(c1.Real + c2.Real, c1.Imaginary + c2.Imaginary); } public override string ToString() { return (String.Format("{0} + {1}i", real, imaginary)); } } In above example I have extended the implementation of the sample Complex class given under operator overloading section. This class has one overridden method named ToString, which overrides the default implementation of the standard ToString method to support the correct string conversion of a complex number.
MVC
Model The classes which are used to store and manipulate state, typically in a database of some kind. View The user interface bits (in this case, HTML) necessary to render the model to the user. Controller The brains of the application. The controller decides what the user's input was, how the model needs to change as a result of that input, and which resulting view should be used.
sed
Non-interactive text editor
yacc
Parser generator. Can be used with lex
sleep
Pause during processing
expr
Preform arithmetic and comparisons
nohup
Preserve a running job after logging out
md5sum
Print a file checksum using the Message Digest 5 (MD5) algorithm.
cksum
Print a file checksum, POSIX standard algorithm.
dirname
Print all but the last component of a pathname.
basename
Print the last component of a pathname, optionally removing a suffix.
id
Print user and group ID and name information
pwd
Print working directory
xargs
Process many arguments in manageable portions
script
Produce a transcript of your login session
fmt
Produce roughly uniform line lengths
line
Read a line of input
mailx
Read or send mail
nice
Reduce a job's priority
strip
Remove data from an object file
rmdir
Remove directories
rm
Remove files
echo
Repeat command-line arguments on the output
spell
Report misspelled words
fgrep
Search files for literal words
find
Search the system for filenames matching patterns or attributes
cut
Select columns for display
lpr
Send to the printer
stty
Set or display terminal settings
passwd
Set your login password
du
Show disk usage
env
Show environment variables
df
Show free disk space
ps
Show processes
head
Show the first few lines of a file.
tail
Show the last few lines of a file
who
Show who is logged on
slogin
Sign on to remote Unix using secure shell.
sort
Sort or merge files
split
Split files evenly
biff
Stands for "A dog named Biff" This command, which turns on asynchronous mail notification, was actually named after a dog. Courtesy of Eric Cooper, Carnegie Mellon University: "I can confirm the origin of biff, if you're interested. Biff was Heidi Stettner's dog, back when Heidi (and I, and Bill Joy) were all grad students at U.C. Berkeley and the early versions of BSD were being developed. Biff was popular among the residents of Evans Hall, and was known for barking at the mailman, hence the name of the command."
cat
Stands for "Catenate" "Catenate" is an obscure word meaning "to connect in a series", which is what the cat command does to one or more files. This is not to be confused with C/A/T, the Computer Aided Typesetter.
egrep
Stands for "Extended grep" The egrep command uses fancier regular expressions than the grep command. Many people use the egrep command for its internal algorithms, which are more sophisticated than the grep and fgrep commands. Also, the egrep command is usually the fastest of the three programs.
grep
Stands for "Global regular expression print" The grep command is used to print all lines matching a certain pattern grep [OPTIONS] PATTERN [FILE...] grep searches the named input FILEs (or standard input if no files are named, or if a single hyphen-minus (-) is given as file name) for lines containing a match to the given PATTERN. By default, grep prints the matching lines.
nroff, troff
Stands for "New roff, Typesetter new roff" These two commands are descendants of the roff command, which was a re-implementation of the Multics runoff program. The runoff program would "run off" a good copy of a document.
Perl
Stands for "Practical extraction and report language" The Perl language is a text, process, and file manipulation tool, created by Larry Wall. Perl bridges the gap between shell and C programming, and is free and completely portable. The acronym is one of many variants proposed, with varying degrees of seriousness, as the true origin of the name. However, this is currently regarded as apocryphal.
RDDs
Stands for "Resilient Distributed Datasets" RDD is a logical reference of a dataset which is partitioned across many server machines in the cluster. RDDs are Immutable and are self recovered in case of failure. dataset could be the data loaded externally by the user.
SOA
Stands for "System Oriented Architecture" A collection of encapsulated services which communicate over a network, are joined through loose coupling, and can be joined, deleted, and reused in other places in the architecture. This allows companies and designs to be more agile.
tee
Stands for "T" The tee command is named after plumbing terminology for a T-shaped pipe splitter. This Unix command splits the output of another command, sending it to a file and to the terminal.
rc
Stands for "runcom (as in .cshrc or /etc/rc)" The rc command derives from the runcom facility from the MIT CTSS system, ca. 1965. From Brian Kernighan and Dennis Ritchie, as told to Vicki Brown: "There was a facility that would execute a bunch of commands stored in a file; it was called runcom for "run commands", and the file began to be called "a runcom". rc in Unix is a fossil from that usage."
su
Switch to a different user
test
Test a condition
tcsh
The "Tenex" C shell: A much enhanced version of csh
info
The GNU info system for online documentation
pdksh
The Public Domain Korn shell
awk
The awk scripting language was named by its authors, Al Aho, Peter Weinberger, and Brian Kernighan. awk 'pattern {action}' input-file > output-file This means: take each line of the input file; if the line contains the pattern apply the action to the line and write the resulting line to the output-file.
Data Access Layer
The data access layer (DAL), which is a key part of every n-tier system, is mainly consist of a simple set of code that does basic interactions with the database or any other storage device. These functionalities are often referred to as CRUD (Create, Retrieve, Update, and Delete). The data access layer need to be generic, simple, quick and efficient as much as possible. It should not include complex application/ business logics.
Operator Overloading
The operator overloading (less commonly known as ad-hoc polymorphisms) is a specific case of polymorphisms in which some or all of operators like +, - or == are treated as polymorphic functions and as such have different behaviors depending on the types of its arguments. public class Complex { private int real; public int Real { get { return real; } } private int imaginary; public int Imaginary { get { return imaginary; } } public Complex(int real, int imaginary) { this.real = real; this.imaginary = imaginary; } public static Complex operator +(Complex c1, Complex c2) { return new Complex(c1.Real + c2.Real, c1.Imaginary + c2.Imaginary); } } I above example I have overloaded the plus operator for adding two complex numbers. There the two properties named Real and Imaginary has been declared exposing only the required "get" method, while the object's constructor is demanding for mandatory real and imaginary values with the user defined constructor of the class.
csh
The original BSD C shell
sh
The original Bourne shell, particularly on commercial Unix systems.
Three-Tier Architecture
The three-tier architecture has the following three tiers: Presentation Tier or Web Server: User Interface, displaying/ accepting data/ input to/ from the user Application Logic/ Business Logic/ Transaction Tier or Application Server: Data validation, acceptability check before being added to the database and all other business/ application specific operations Data Tier or Database server: Simple reading and writing method to database or any other storage, connection, command, stored procedures etc
strace
Trace signals and system calls
truss
Trace signals and system calls
tr
Translate (redefine) characters
bzip2
Very high quality file compression program
vi
Visual text editor
Polymorphism
a programming language's ability to process objects differently depending on their data type or class. More specifically, it is the ability to redefine methods for derived classes.
wc
count lines, words, and characters
Find (unix)
find <startingpoint> <options> <search term>
pr
format and paginate for printing.
ex
line editor underlying vi
mv
move or rename files or directories
kill
terminate a running command
bash
the GNU Project's Bourne Again Shell
ksh
the Korn shell, either an original or clone, depending on the operating system
zsh
the Z-shell