Computer Science/Programming General

Type Paradigm Description Remarks
Imperative Imperative programming uses statements that change a program's state
Procedural Programming program is built from one or more procedures (also termed subroutines or functions) Fortran, Pascal, C
Object-Oriented Programming Java, C++, C#, Scala, Smalltalk
Declarative Declarative Programming expresses the logic of a computation without describing its control flow SQL, XQuery, Regex
Functional Programming treats computation as the evaluation of mathematical functions and avoids changing-state and mutable data Clojure, Erlang, Haskell
Reactive programming concerned with data streams and the propagation of change
  • Functional Programming Concepts
    • Higher-order function : (mathematical) functions that can either take other functions as arguments or return them as results
    • First-class function : (computer science) treats functions as first-class citizens
    • First-class citizen : an entity which supports all the operations including being passed as an argument, returned from a function, and assigned to a variable.
    • Lambda : a function definition that is not bound to an identifier (lambda abstraction, lambda expression, function literal, anonymous function)
    • Closure : a record storing a function together with an environment
  • Predicate : commonly understood to be a Boolean-valued function

Data Structure and Algorithm

Higher-order Function

Function Description Sample Remark
Filter processes a data structure (usually a list) in some order to produce a new data structure containing exactly those elements of the original data structure for which a given predicate returns the boolean value true. stream.filter(pred),
filter(func, list)
Map applies a given function to each element of a functor, e.g. a list, returning a list of results in the same order.,
map(func, list)
Fold analyze a recursive data structure and through use of a given combining operation, recombine the results of recursively processing its constituent parts, building up a return value stream.reduce(initval, func),
reduce(func, list, initval)
Reduce, Aggregate, Inject



  • ASN.1 (Abstract Syntax Notation One)
    • a standard and notation that describes rules and structures for representing, encoding, transmitting, and decoding data in telecommunications and computer networking

Extended BNF

Usage Notation
Definition =
Concatenation ,
Termination ;
Alternation |
Optional [ ... ]
Repetition { ... }
Grouping ( ... )
Comment (* ... *)
Special Sequence ? ... ?
Exception -

Programming Language


  • Desc. : a programming language used to build massively scalable soft real-time systems with requirements on high availability.






  • Desc. : a powerful, efficient, lightweight, embeddable scripting language

Coding Convention


Java SE

  • Intervals, Durations, Periods
    • An interval in Joda-Time represents an interval of time from one instant to another instant.
    • A duration in Joda-Time represents a duration of time measured in milliseconds. The duration is often obtained from an interval.
    • A period in Joda-Time represents a period of time defined in terms of fields, for example, 3 years 5 months 2 days and 7 hours.

API Documentation and Source

Java SE

Java EE

Apache Commons

Module Version API Source Maven Remarks
Lang 3.3.2 Commons Lang 3.3.2 API
Collections 4.1 Commons Collections 4.1 API
4.0 Commons Collections 4.0 API
3.2.1 Commons Collections 3.2.1 API
Validator 1.4.0 Commons Validator 1.4.0 API
IO 2.4 Commons IO 2.4 API
Compress 1.6-SNAPSHOT Commons Compress 1.6-SNAPSHOT API
Math 3.2 Commons Math 3.2 API Commons Math 3.2 source
2.2 Commons Math 2.2 API Commons Math 2.2 source
Configuration 2.0-alpha2 Commons Configuration 2.0-alpha2 API
1.10 Commons Configuration 1.10 API
DBCP 2.1 Apache Commons DBCP 2.1 API
1.4 Commons DBCP 1.4 API
Imaging 1.0-SNAPSHOT Apache Commons Imaging 1.0-SNAPSHOT API
Notable Classes

Common Libraries

Library Version API Source Maven Remarks Classes
JSR-305 3.0.2 FindBugs-JSR305 3.0.2 API » jsr305 JSR 305: Annotations for Software Defect Detection @Nonnull, @Nullable, @ParametersAreNonnullByDefault, @ThreadSafe, @NotThreadSafe, @Immutable
javax.inject 1 Package javax.inject API javax.inject » javax.inject » 1 JSR 330: Dependency Injection for Java
Bean Validation 2.0 Bean Validation API 2.0.1.Final javax.validation » validation-api » 2.0.1.Final Bean Validation 2.0 (JSR 380)
JSR 380: Bean Validation 2.0
@NotEmpty, @NotBlank, @Positive, @PositiveOrZero, @Negative, @Min, @Max, @Size, @Pattern
1.1 Bean Validation API 1.1.0.Final javax.validation » validation-api » 1.1.0.Final Bean Validation 1.1 (JSR 349)
JSR 349: Bean Validation 1.1
Hibernate Validator 6.0 Hibernate Validator 6.0.9.Final API org.hibernate » hibernate-validator » 6.0.9.Final Hibernate Validator 6.0.9.Final Reference Guide
5.2 Hibernate Validator 5.2.5.Final API org.hibernate » hibernate-validator » 5.2.5.Final Hibernate Validator 5.2.5.Final Reference Guide


JSR Description Remarks
JSR 94: Java Rule Engine API Defines a Java runtime API for rule engines.
JSR 250: Common Annotations for the Java Platform Develop annotations for common semantic concepts in the J2SE and J2EE platforms that apply across a variety of individual technologies. @Resource, @Resources, @PostConstruct, @PreDestroy
JSR 303: Bean Validation Define a meta-data model and API for JavaBean validation based on annotations, with overrides and extended meta-data through the use of XML validation descriptors.
JSR 305: Annotations for Software Defect Detection Work to develop standard annotations (such as @NonNull) that can be applied to Java programs to assist tools that detect software defects.
JSR 308: Annotations on Java Types Extends the Java annotation syntax to permit annotations on any occurrence of a type. Type Annotations Specification
JSR 330: Dependency Injection for Java
JSR 349: Bean Validation 1.1 Standardizes constraint definition, declaration and validation for the Java platform. Bean Validation API 1.1.0.Final
JSR 352: Batch Applications for the Java Platform
JSR 353: Java API for JSON Processing (JSON-P)
JSR 356: Java API for WebSocket




  • Valueable classes
Classes Description
java.util.concurrent.locks.Condition Condition factors out the Object monitor methods (wait, notify and notifyAll) into distinct objects to give the effect of having multiple wait-sets per object, by combining them with the use of arbitrary Lock implementations. A synchronization abstraction supporting waiting on arbitrary boolean conditions.
java.util.concurrent.atomic.LongAdder usually preferable to AtomicLong when multiple threads update a common sum that is used for purposes such as collecting statistics


Annotations Description Included
java.lang.annotation package @Documented, @Inherited, @Repeatable, @Retention, @Target
Dependency Injection Annotations in Java EE 7 @Inject, @Named, @Qualifier
JSR 305 Annotations for Software Defect Detection 3.0.1 API @Nonnull, @Nullable, @Immutable, @ThreadSafe, @NotThreadSafe, @GuardedBy
Bean Validation API 1.1.0 Annotations @Min, @Max, @Size, @Pattern
Bean Validation API 2.0 Annotations
Hibernate Validator 5.2.4.Final Annotations
Hibernate Validator 6.0.0.Alpha1 Annotations
Swagger 1.5 Annotations @Api, @ApiOperation, @ApiParam, @ApiModel, @ApiModelProperty






IO and Networking




  • JDK and JDBC
J2SE 1.4 JDBC 3.0 JSR 54: JDBC 3.0 Specification
Java SE 6 JDBC 4.0 JSR 221: JDBC 4.0 API Specification
Java SE 7 JDBC 4.1
Java SE 8 JDBC 4.2 JSR-000221 JDBC API Specification 4.2 Maintenance Release 2
Database Connection URL Connection Properties Drivers Remarks
Oracle Database OracleDataSource.setConnectionProperties(java.util.Properties value)
DB2 Properties for the IBM Data Server Driver for JDBC and SQLJ
Microsoft SQL Server jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]] Setting the Connection Properties - SQL Server 2008 R2
MySQL Driver/Datasource Class Names, URL Syntax and Configuration Properties for Connector/J from MySQL 5.0 Reference
HSQLDB Connection properties

Oracle Database


Microsoft SQL Server













Java EE

Expression Language (EL)



Java Programming









command description remarks
go build compile packages and dependencies
go install compile and install packages and dependencies
go get download and install packages and dependencies
package description remarks
fmt implements formatted I/O with functions analogous to C's printf and scanf.
http provides HTTP client and server implementations.
path/filepath implements utility routines for manipulating filename paths in a way compatible with the target operating system-defined file paths.









Gorilla WebSocket



  • Desc. : both a library for creating powerful modern CLI applications as well as a program to generate applications and command files.
  • License : Apache License Version 2.0

Golang logging library




command description remarks
dlv attach Attach to running process and begin debugging
dlv exec Execute a precompiled binary, and begin a debug session





Design Pattern


    • to solve errors with SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed



C, C++








  • Unicode code point
    • "U+" followed by its hexadecimal number.
    • e.g. U+0058, U+E0001, U+10FFFD
  • HTML numeric character reference
    • "&#" + decimal number + ";" or "&#x" + hexadecimal number + ";"
    • e.g. ¨, ¨, ♠, ♠


Name Symbol HTML 4.0 Entity Remarks
parentheses ( ) round brackets, curved brackets, oval brackets
square brakets [ ] brakets
braces { } curly brackets, flower brackets
guillemets « » « »
single quotation mark ‘ ’ ‘ ’
double quotation mark “ ” “ ”
period . full stop, dot, point
ellipses …
question mark  ?
exclamation mark  !
comma ,
colon  :
semicolon  ;
dash – — – —
apostrophe '
slash /


Name Symbol HTML 4.0 Entity Remarks
tilde ~ ˜
grave accent `
at sign @
number sign # pound sign, hash mark
percent  %
caret ^
circumflex ˆ ˆ
ampersand & &
asterisk ∗ star
underscore _   understroke
backslash \
vertical bar | pipe, stick, vertical slash, thick colon
pilcrow ¶ paragraph mark, paragraph sign
bullet •
section sign § §
prime ′ minutes, feet
double prime ″ seconds, inches
therefore sign ∴



Date Time



Color Space






FLV and F4V

Data Format


JSON Schema


JSON Pointer






Tips and Tricks

Abbreviated form of dictionaries and lists
martin: {name: Martin D'vloper, job: Developer, skill: Elite}
: ['Apple', 'Orange', 'Strawberry', 'Mango']

Protocol Buffers





Architecture and Model


  • Twelve-factor App
    1. One codebase tracked in revision control, many deploys
    2. Explicitly declare and isolate dependencies
    3. Store config in the environment
    4. Treat backing services as attached resources
    5. Strictly separate build and run stages
    6. Execute the app as one or more stateless processes
    7. Export services via port binding
    8. Scale out via the process model
    9. Maximize robustness with fast startup and graceful shutdown
    10. Keep development, staging, and production as similar as possible
    11. Treat logs as event streams
    12. Run admin/management tasks as one-off processes



Data Modeling

Process Modeling




  • MonolithFirst (Martin Fowler, 3 June 2015)
    • Almost all the successful microservice stories have started with a monolith that got too big and was broken up
    • Almost all the cases where I've heard of a system that was built as a microservice system from scratch, it has ended up in serious trouble.
  • The Death of Microservice Madness in 2018 (2018)
  • Why microservices may not be for everybody (February 4, 2017)
  • The Microservices Hype (Aug 25, 2017)
    • Microservices give a lot of benefits, but with those benefits comes a lot of complexity, and this kind of complexity would drive you off the road of focusing on the business, which at the end is what really matters. Distribution, communication, discovery, isolation, health, are some of the topics that come hand in hand with this approach, and every each of them is its own monster to control.

Software Development Process

  • Rational Unified Process
    • RUP (Wikipedia)
    • Four project life-cycle phases
      • Inception phase
      • Elaboration phase
      • Construction phase
      • Transition phase
    • Six engineering disciplines
      • Business modelling
      • Requirements
      • Analysis and design
      • Implementation
      • Test
      • Deployment
    • Three supporting disciplines
      • Configuration and change management
      • Project management
      • Environment


Real-time graph

Data Warehouse and Business Intelligence

Software Configuration Management

Issue Tracking

Contents Management


  • MediaWiki
  • Markdown
  • MultiMarkdown
    • a tool to help turn minimally marked-up plain text into well formatted documents, including HTML, PDF (by way of LaTeX), OPML, or OpenDocument (specifically, Flat OpenDocument or ‘.fodt’, which can in turn be converted into RTF, Microsoft Word, or virtually any other word-processing format).
  • AsciiDoc
    • a text document format for writing notes, documentation, articles, books, ebooks, slideshows, web pages, man pages and blogs.
  • CSV Converter
    • allows you to enter a table in CSV-format and convert it to HTML or the WikiMedia format for tables.


MediaWiki Markup

Magic Words

Behavior Switches Description Remarks
__TOC__ Places a table of contents at the word's current position
Variable Description Remarks
{{CURRENTYEAR}} Current Year
Function Description Remarks
{{formatnum:unformatted number}} Takes an unformatted number and outputs it in the localized digit script and formatted with decimal and decimal group separators, according to the wiki's default locale.


Extension Description Remarks
Extension:SyntaxHighlight Provides rich formatting of source code using the <syntaxhighlight> tag. Powered by the Pygments library
Extension:Header Tabs Transforms top-level MediaWiki headers into tabs using the jQuery UI JavaScript library.
  • Parameters
Parameter Description Remark
lang defines what lexer should be used
line enables line numbers
start defines the first line number of the code block
highlight specifies one or more lines that should be marked
inline indicates that the source code should be inline as part of a paragraph
style allows CSS attributes to be included directly

Real-world Examples





Batch Programming





Command Description Remarks
TASKLIST List running applications and services.
TASKKILL End one or more processes (by process id or image name). taskkill /pid 33752 /f


Name Title Description Recommended Startup Type
wbengine Block Level Backup Engine Service Manual
VSS Volume Shadow Copy Manual
SDRSVC Windows Backup Disabled


Command Description Remarks
route Displays and modifies the entries in the local IP routing table. ROUTE
tracert Determines the path taken to a destination by sending Internet Control Message Protocol (ICMP) Echo Request messages to the destination with incrementally increasing Time to Live (TTL) field values. TRACERT
pathping Provides information about network latency and network loss at intermediate hops between a source and destination. PATHPING
netsh Allows you to, either locally or remotely, display or modify the network configuration of a computer that is currently running. netsh (Wikipedia)
net use Connects a computer to or disconnects a computer from a shared resource, or displays information about computer connections.






  • Debugger Commands
  • SymChk
    • a program that compares executable files to symbol files to verify that the correct symbols are available.

Performance Tuning


  • Typical performance counter collection
Counter Meaning Remarks
\Memory\Available Bytes available bytes
\Memory\Committed Bytes the private bytes committed to processes
\Process(process_name)\% Processor Time Processor Time = User Time + Privileged Time
\Process(process_name)\% Privileged Time the percentage of non-idle processor time spent executing code in privileged mode
\Process(process_name)\% User Time the percentage of time that the processor spent executing code in user mode
\Process(process_name)\Private Bytes bytes allocated exclusively for a specific process can be paged to disk or in the standby page list
\Process(process_name)\Working Set the shared and private bytes allocated to a process suddenly drop when you minimize an application
\Process(process_name)\Pool Nonpaged Bytes the number of bytes in the nonpaged pool, an area of system memory for objects that cannot be written to disk
\Process(process_name)\Pool Paged Bytes the number of bytes in the paged pool, an area of system memory for objects that can be written to disk
\Process(process_name)\Handle Count the total number of handles currently open by this process
\Process(process_name)\Thread Count the number of threads that were active in this process
\Process(process_name)\IO Read Bytes/sec the rate at which the process was reading bytes from I/O operations
\Process(process_name)\IO Write Bytes/sec the rate at which the process was writing bytes to I/O operations
\Network Interface(card_name)\Bytes Received/sec
\Network Interface(card_name)\Bytes Sent/sec


Procotol Full Name Description Layer Remarks
ARP Address Resolution Protocol a communication protocol used for discovering the link layer address, such as a MAC address, associated with a given internet layer address, typically an IPv4 address. Link IPv4 over IEEE 802.3 and IEEE 802.11
ICMP Internet Control Message Protocol used by network devices, including routers, to send error messages and operational information indicating, for example, that a requested service is not available or that a host or router could not be reached. Internet
BGP Border Gateway Protocol a standardized exterior gateway protocol designed to exchange routing and reachability information among autonomous systems (AS) on the Internet Application
SNMP Simple Network Management Protocol an Internet Standard protocol for collecting and organizing information about managed devices on IP networks and for modifying that information to change device behavior. Application
MQTT Message Queuing Telemetry Transport an ISO standard publish-subscribe-based messaging protocol. Application ISO/IEC PRF 20922
Name Pattern Description Remarks
eno1 On-board device with Firmware/BIOS provided index number
ens1 Off-board device with Firmware/BIOS provided PCI Express hotplug slot index number
enp2s0 Device with physical/geographical location of the connector of the hardware
enx78e7d1ea46da Device with the interfaces's MAC address
eth0 Classic, unpredictable kernel-native ethX naming


  • Classless Inter-Domain Routing(CIDR)
    • a method for allocating IP addresses and IP routing
    • IP address = most significant bits + least significant set
    • most significant bits : the network prefix, a whole network or subnet identifier
    • least significant set : the host identifier
classful name IP address range # of addresses subnet mask host id size mask bits RFC1918 name
single class A network – 16,777,216 24 bits 8 bits 24-bit block
16 contiguous class B networks – 1,048,576 20 bits 12 bits 20-bit block
256 contiguous class C networks – 65,536 16 bits 16 bits
  • Priviliged ports
    • The TCP/IP port numbers below 1024 are special in that normal users are not allowed to run servers on them
Option Description Remarks


Type Description Remarks
A record maps a name to one or more IP addresses
CNAME record maps a name to another name
ALIAS record maps a name to another name, but can coexist with other records on that name
URL record redirects the name to the target name using the HTTP 301 status code



Status Codes

Code Description Remarks
400 Bad Request The server cannot or will not process the request due to an apparent client error
401 Unauthorized Similar to 403 Forbidden, but specifically for use when authentication is required and has failed or has not yet been provided. Unauthenticated
403 Forbidden The request was valid, but the server is refusing action. Unauthorized
404 Not Found The requested resource could not be found but may be available in the future.
407 Proxy Authentication Required The client must first authenticate itself with the proxy.

Header Fields

General Header Fields
  • Header fields which have general applicability for both request and response messages, but which do not apply to the entity being transferred.
Header Description Remarks
Connection: keep-alive|close Controls whether or not the network connection stays open after the current transaction finishes.
Request Header Fields
Header Description Remarks
Authorization: <type> <credentials> Contains the credentials to authenticate a user agent with a server, usually after the server has responded with a 401 Unauthorized status and the WWW-Authenticate header.
Proxy-Authorization: <type> <credentials> Contains the credentials to authenticate a user agent to a proxy server, usually after the server has responded with a 407 Proxy Authentication Required status and the Proxy-Authenticate header.
Origin: <scheme> "://" <hostname> [ ":" <port> ] Initiates a request for cross-origin resource sharing (asks server for Access-Control-* response fields). CORS
Host: <host>:<port> The domain name of the server (for virtual hosting), and (optionally) the TCP port number on which the server is listening.
Forwarded: by=<identifier>;for=<identifier>;host=<host>;proto=<http|https> Contains information from the client-facing side of proxy servers that is altered or lost when a proxy is involved in the path of the request. X-Forwarded-For, X-Forwarded-Host
X-Forwarded-For: <client>, <proxy1>, <proxy2> A de-facto standard header for identifying the originating IP address of a client connecting to a web server through an HTTP proxy or a load balancer. XFF
X-Forwarded-Host: <host> A de-facto standard header for identifying the original host requested by the client in the Host HTTP request header. XFH
X-Forwarded-Proto: <protocol> a de-facto standard header for identifying the protocol (HTTP or HTTPS) that a client used to connect to your proxy or load balancer. XFP
X-Request-ID Correlates HTTP requests between a client and server.
Response Header Fields
Header Description Remarks
WWW-Authenticate: <type> realm=<realm> Defines the authentication method that should be used to gain access to a resource.
Proxy-Authenticate: <type> realm=<realm> Defines the authentication method that should be used to gain access to a resource behind a proxy server.



  • WebSocket (on Wikipedia)
    • a computer communications protocol, providing full-duplex communication channels over a single TCP connection


  • Simple Network Management Protocol: an Internet Standard protocol for collecting and organizing information about managed devices on IP networks and for modifying that information to change device behavior.


  • Message Queuing Telemetry Transport : an ISO standard (ISO/IEC PRF 20922) publish-subscribe-based messaging protocol.
  • MQTT (on Wikipedia)


  • Real Time Streaming Protocol
  • RTSP (Wikipedia)
  • RTSP (MultimediaWiki)




  • an open source remote procedure call (RPC) system initially developed at Google.


  • Kerckhoffs's principle
    • A cryptosystem should be secure even if everything about the system, except the key, is public knowledge
  • Glossary
word description remarks
Vulnerability a weakness which can be exploited by a Threat Actor, such as an attacker, to perform unauthorised actions within a computer system at Longman
Eavesdropping secretly or steathily listening to the private conversation of others without their consent at Longman
Session hijacking the exploitation of a valid computer session—sometimes also called a session key—to gain unauthorized access to information or services in a computer system
Man-in-the-middle attack an attack where the attacker secretly relays and possibly alters the communication between two parties who believe they are directly communicating with each other
Cipher an algorithm for performing encryption or decryption
  • Standards
standard description remarks
Rainbow Series a series of computer security standards and guidelines published by the United States government in the 1980s and 1990s
Trusted Computer System Evaluation Criteria (TCSEC) a United States Government Department of Defense (DoD) standard that sets basic requirements for assessing the effectiveness of computer security controls built into a computer system Orange Book
Common Criteria(CC) an international standard (ISO/IEC 15408) for computer security certification Common Criteria for Information Technology Security Evaluation
X.500 a series of computer networking standards covering electronic directory services
X.509 a standard that defines the format of public key certificates


  • Cryptography
    • about constructing and analyzing protocols that prevent third parties or the public from reading private messages
  • Cryptosystem
    • a suite of cryptographic algorithms needed to implement a particular security service, most commonly for achieving confidentiality (encryption)
    • key generation algorithm + encryption algorithm + decryption algorithm
  • Cipher(Cypher)
    • an algorithm for performing encryption or decryption
  • Block cipher mode of operation
    • ECB, CBC, PCBC, CFB, OFB, ...


  • Implementations
Category Implementation Remarks
Java class JDK
Java org.apache.commons.codec.digest.Sha2Crypt class Apache Commons, static String sha256Crypt(byte[] keyBytes, String salt), static String sha512Crypt(byte[] keyBytes, String salt)
MySQL SHA1() function, SHA2() function




  • Digital signature scheme
    • key generation algorithm : generates a private key and a corresponding public key
    • signing algorithm : given a message and a private key, produces a signature
    • signature verifying algorithm : given the message, public key and signature, either accepts or rejects the message's claim to authenticity
Extension Description Remarks
.pem (Privacy-enhanced Electronic Mail) Base64 encoded DER certificate, enclosed between "-----BEGIN CERTIFICATE-----" and "-----END CERTIFICATE-----"
.cer, .crt, .der usually in binary DER form, but Base64-encoded certificates are common too
.p12 PKCS#12, may contain certificate(s) (public) and private keys (password protected)
.pfx PFX, predecessor of PKCS#12


  • Public Key Cryptography Standards : a group of public-key cryptography standards devised and published by RSA Security Inc
  • PKCS on Wikipedia
Name Description Remarks
PKCS #12 Personal Information Exchange Syntax Standard defines an archive file format for storing many cryptography objects as a single file


Concept Description Remarks
Authority Key Identifier The authority key identifier extension provides a means of identifying the public key corresponding to the private key used to sign a certificate
Issuer The issuer field identifies the entity that has signed and issued the certificate


HTTP Basic Authentication

HTTP Digest Authentication



Element Description Remarks
passphrase password for the private key
~/.ssh/authorized_keys a list of public keys to allow to in-access into this account from outside used when accepting others
~/.ssh/known_hosts a list of public keys to allow for current user to out-access used when accessing outer server
~/.ssh/id_dsa, ~/.ssh/id_rsa a private key of current account
~/.ssh/, ~/.ssh/ a public key of current account



Port Forwarding
  • Port forwarding (on Wikipedia)
    • Local port forwarding
    • Remote port forwarding
    • Dynamic port forwarding
Local port forwarding

    Application --- Local Port ------- Bastion Host(Jump Server) ------- Destination Server
            Client side                                                     Remote side

Remote port forwarding


Business Solutions



Documentation Convention

HP Notebook

Software Licenses



  • Open Compute Project
    • to develop servers and data centers following the model traditionally associated with open source software projects.

Computer Bus

Bus Full Name Description Remarks
PATA Parallel AT Attachment(ATA) an interface standard for the connection of storage devices such as hard disk drives, floppy disk drives, and optical disc drives in computers. ATA, IDE
SATA Serial AT Attachment(ATA) a computer bus interface that connects host bus adapters to mass storage devices such as hard disk drives, optical drives, and solid-state drives
PCIe Peripheral Component Interconnect(PCI) Express a high-speed serial computer expansion bus standard, designed to replace the older PCI, PCI-X and AGP bus standards. PCI Express, PCI-e
M.2 a specification for internally mounted computer expansion cards and associated connectors
NVMe Non-Volatile Memory(NVM) Express an open logical device interface specification for accessing non-volatile storage media attached via a PCI Express (PCIe) bus.
Community content is available under CC-BY-SA unless otherwise noted.