From Wikipedia, the free encyclopedia
Jump to: navigation, search

Computer science (CS) and Electrical engineering (EE)


Intro to CS[edit]

Computer science, automata theory, logics (CS), philosophy of CS, ... are indebted to maths (including logics) and philosophy. But also it's kinda art, due to its relation to natural languages, and natural languages are the ones in which books, novels, poems, theatre and film/cinema pieces, ... are written. But natural languages have such a great complexity (including the written/spoken dichotomy; the writer's ideas in writing / reader's ideas in reading dichotomy; same for speaker and listener; ...), and formal languages and CS are so simple in comparison to natural languages and human thought (or brain's thought?). The phys-chem-bio processes happening in the human body, in the brain, in the cells and fluids and membranes making the brain, in the neuron and glia and other brain cells are even more complex than natural languages as these processes (in the materialistic school of thought) define the thoughts and thought processes which over the history of humanity generated the natural languages. This artistic culture could be inferred in German by expression Künstliche Intelligenz ("Kunst" means art) and in such things as hacker culture which produces artifacts which are, in a sense, pieces of art (installations, 3D + time = 4D arts (GPS in real time), ...). Therefore the art / science dichotomy deeply rooted in CS. Programmers / CS people have (many) tastes, but mathematicians (includes logicians) have only several choices for axioms! On the other hand, mathematics, (formal / natural) languages, semantics, syntax, grammar refer to things which are not real, not made of matter (photons, electrons, protons, neutrons, neutrinos, ...), therefore, in a sense of the outer world, but the natural sciences (physics and its children (includes chemistry and its children (includes biology and ...()))) are of this world and study the matter (live / dead, organic / inorganic, any other dichotomies to classify the matter).

Computer Science[edit]

Category:Areas of computer science
Category:Algorithms and data structures
Category:Artificial intelligence
Category:Computational science
Category:Computer architecture
Category:Computer graphics ✓
Category:Computer security ~
Category:Concurrency (computer science) ✓
Category:Database theory
Category:Formal methods
Category:Human-based computation
Category:Human–computer interaction ✓
Category:Mathematical optimization
Category:Programming language theory
Category:Soft computing
Category:Software engineering
Category:Theoretical computer science
Category:Theory of computation


Template:Computer science
Template:Formal languages and grammars: R; (formal) grammars, (formal) languages, minimal implementations (automata); syntax & grammar & semantics (meaning) = language?
Backus–Naur Form UMR
Production (computer science)
Terminal and nonterminal symbols
Alphabet (computer science)
Semantics (computer science): mathematical model that describes the possible computations described by the language
Random access: book vs. scroll; RAM and arrays vs. HDD
AI-complete (AI-hard):
Natural language processing: see "Syntactic ambiguity"

Meaning, knowledge (also philosophical and linguistic (syntax, words) sense)[edit]

Category:Knowledge representation
Category:Semantic Web

{q.v. Data/content}

Template:Computable knowledge & Knowledge representation and reasoning
Siri (software) (pronounced /ˈsɪri/): intelligent software assistant and knowledge navigator functioning as a personal assistant application for iOS (for iPhone 4S & later). Due to Siri, National Federation of the Blind describes the iPhone as "the only fully accessible handset that a blind person can buy" [12/01/27]. DARPA, AI; SRI International & SRI's Artificial Intelligence Center; Carnegie Mellon Uni, MIT, Uni of Rochester, Florida Institute for Human & Machine Cognition (IHMC), Oregon State Uni, Uni of Souther Cal, Standford U.
Half-life of knowledge: idea by Fritz Machlup (dissertation under Ludwig von Mises; Machlup "examined knowledge as an economic resource", precursor to the thought about "information society").

Hackers, freedom, free software culture[edit]

Category:Free and open-source software organizations
Category:Free software projects
Category:Free software project foundations
Category:Apache Software Foundation
Category:Blender Foundation
Category:Free Software Foundation
Category:GNU Project
Category:GNU Project software
Category:Linux Foundation
Category:Free software
Category:Free software culture and documents

{q.v. All::Intelligence, espionage, secret agencies, "privacy is dead" :: Privacy}

Hacker ethic
Electronic Frontier Foundation (1990.07-): international non-profit digital rights advocacy and legal organization based in USA.
Free software movement: social movement with the goal of obtaining and guaranteeing certain freedoms for software users, namely the freedom to run the software, to study and change the software, and to redistribute copies with or without changes. Although drawing on traditions and philosophies among members of the 1970s hacker culture, Richard Stallman formally founded the movement in 1983 by launching the GNU Project.
de:Chaos Computer Club (CCC; 1981.09.12-): Die Informationsgesellschaft – so der CCC – erfordere „ein neues Menschenrecht auf weltweite, ungehinderte Kommunikation“, weshalb der Club sich „grenzüberschreitend für Informationsfreiheit einsetzt und mit den Auswirkungen von Technologien auf die Gesellschaft sowie das einzelne Lebewesen beschäftigt“. NASA-Hack, KGB-Hack, ...
de:Chaos Communication Congress & Chaos Communication Congress
Wau Holland
Wau Holland Foundation: relationship with Wikileaks
Free Software Foundation (FSF; 1985.10.04): non-profit corporation founded by Richard Stallman on 4 October 1985 to support the free software movement, a copyleft-based movement which aims to promote the universal freedom to create, distribute and modify computer software. Criticism:
Linus Torvalds has criticized FSF for using GPL3 as a weapon in their fight against DRM. Torvalds argues that the issue of DRM and that of a software license should be treated as two separate issues.
Free Software Foundation v. Cisco Systems: 2009.05.20 the parties announced a settlement which includes Cisco appointing a director to ensure Linksys products comply with free software licenses, and Cisco making an undisclosed financial contribution to the FSF.
Apache Software Foundation (ASF): American non-profit corporation (classified as 501(c)(3) in the United States) to support Apache software projects, including the Apache HTTP Server.
List of Apache Software Foundation projects: ~50% Java
Software Freedom Law Center (SFLC; frdm): organization that provides pro bono legal representation and related services to not-for-profit developers of free software/open source software.
Software Freedom Conservancy: organization that provides a non-profit home and infrastructure for free/open source software projects; conservancy had 31 member projects, including Boost, BusyBox, Git, Inkscape, jQuery, Samba, Sugar Labs and Wine (2014.01).
Software in the Public Interest (SPI): US 501(c)(3) non-profit organization formed to help other organizations create and distribute free/open-source software and open-source hardware. SPI was originally created to allow the Debian Project to accept donations. SPI has hosted Wikimedia Foundation board elections and audited the tally as a neutral third party from 2007–2011. Associated projects: Arch Linux, Debian, Drupal, FFmpeg,, X.Org Foundation. standardization within 2D, 3D, various libraries? project to work on interoperability and shared base technology for free software desktop environments for the X Window System (X11) on Linux and other Unix-like operating systems. It was founded by Havoc Pennington from Red Hat in March 2000. Hosted projects: Cairo, X.Org Server, GTK-Qt engine...
Open Source Initiative (OSI): organization dedicated to promoting open-source software.
Foundation for a Free Information Infrastructure (FFII): non-profit organisation based in Munich, DE, dedicated to establishing a free market in information technology, by the removal of barriers to competition. Fights against software patents.
La Quadrature du Net (founded 2008.03.26): French advocacy group that promotes the digital rights and freedoms of citizens; advocates for the adaptation of French and European legislations to respect the founding principles of the Internet, most notably the free circulation of knowledge.
Cult of the Dead Cow
Foo Camp: annual hacker event hosted by O'Reilly Media (O'Reilly: "the wiki of conferences").
Noisebridge: similar to CCC
DIYbio: doing biology at home; synthetic biology; lab tools made simply and cheaply from everyday appliances.

Net neutrality[edit]

SOPA supporters:
Business Software Alliance (BSA): members - Microsoft, others. "Play It Cybersafe" for student education about piracy, plagiarism, etc; "Bust Your Boss!" targeted against medium and small enterprises (including Ernie Ball/Music Man).
Protests against SOPA and PIPA: The New York Times saw the protests as "a political coming of age for the tech industry."
Online Protection and Enforcement of Digital Trade Act: alternative for SOPA and PIPA. Will Wiki-way of doing law&order/policy/politics work?
ACTA: hugest supporters: MPAA (MPAA representative, in a 2010 private ACTA meeting in Mexico, told negotiators that “Bring in a censoring firewall to block piracy and you can use it to shut off sites that embarrass your government, like Wikileaks.”[1]), PhRMA, IIPA. ACTA establishes the ACTA committee in Article 36 as its own governing body outside existing international institutions such as WTO, WIPO, UN. Article 45: ACTA elects the Government of Japan as depositary (Sony?).
Pharmaceutical Research and Manufacturers of America (PhRMA, founded in 1958): trade group representing the pharmaceutical research and biopharmaceutical companies in USA.
International Intellectual Property Alliance (IIPA; formed in 1984 (!!!)): private sector coalition of seven trade associations representing USA producers of content and materials protected by copyright laws, including computer software, films, television programs, music, books and journals (in both electronic and print media), with the aim of strengthening international protection and enforcement of copyright by working with USA government, foreign government and private sector representatives. IIPA = MPAA + RIAA + Association of American Publishers + Business Software Alliance + Entertainment Software Association (ESA, video games) + Independent Film & Television Alliance + National Music Publishers' Association.

Hardware (HW)[edit]

Category:History of computing
Category:History of computing hardware
Category:Mechanical calculators

{q.v. Computer (machine)-human interaction, user interfaces}

History of computing hardware: Early devices: Punched card data processing, Calculators. First general-purpose computing device. Analog computers. Advent of the modern computer. The stored-program computer
Analog computer
Slide rule: "The young engineer asking for computer time to solve a problem that could have been done by a few swipes on the slide rule became a humorous cliché. Many computer centers had a framed slide rule hung on a wall with the note "In case of emergency, break glass."" :D:D
Fire control system: Director (military) + Gun data computer + radar.
Current examples of analog computers: Neuromorphic engineering (use of very-large-scale integration (VLSI) systems containing electronic analog circuits to mimic neuro-biological architectures present in the nervous system):
Neurogrid: simulation of biological brains; emulate ion channel activity
SyNAPSE: DARPA program that aims to develop electronic neuromorphic machine technology that scales to biological levels
Pascal's calculator (Pascaline)
Template:CPU technologies
von Neumann architecture: separation between the CPU and memory leads to the von Neumann bottleneck
Semiconductors: chips (microprocessors, RAM, SSD), silicon. The economics of semiconductors:
List of Semiconductor Fabrication Plants: USA (32), TW/ROC (24) , CN/PRC (11), Singapore (11), DE (7), JP (5), Ireland (4), S. Korea (4), Italy (2), Israel (1) [6/5/2011].
Semiconductor fabrication plant: just a factory to pump out chips (very expensive product of silicon + other chemical elements). The cost of one factory (fab) is ~$1bln, but $3-4bln is possible too. Fab (microfabrication plant) = clean room + dampened vibration + controlled humidity and temperature (to minimize static electricity) + steppers (for photolithography, etching, cleaning, doping and dicing machines; extremely precise instruments (e.g. 40 nm technology))
Semiconductor consolidation: giant Intel, with other giants IBM and Toshiba. Others must use fabless to compete with the giants, i.e. the design is separated from manufacturing as different entities due to the lack of capital.
Foundry model: separation of a semiconductor fabrication plant operation from an integrated circuit design operation, into separate companies or business units. Fabless semiconductor companies + merchant foundries = smth of the size of Intel.
Mubadala Development Company PJSC (2002; Abu Dhabi, UAE) → Advanced Technology Investment Company (ATIC; 2008) joint venture between ATIC and AMD ⇒ GlobalFoundries
Common Platform: collaboration between IBM, GlobalFoundries, and Samsung Electronics - to implement a common process technology across their semiconductor manufacturing facilities. A contrast to Intel dominance?
Fabless semiconductor company: Qualcomm (3G patents), Broadcom (network: wi-fi, servers, router, switches, cell phones; encryption (e-commerce, HTTPS)), AMD [+ATI after 2006] (CPUs, video cards), MediaTek (wi-fi, HD TV, optical storage (CD, DVD...), GPS), Marvell (high volume storage, mobile and wi-fi), NVIDIA (video cards)...
Semiconductor sales leaders by year: Intel (1st from 1992, 10th in 1987), Samsung (2nd from 2002; also LCD #1 giant, #1 by revenue among global technology companies) [6/5/2011], Toshiba (3rd-4th from 2005), Texas Instruments (6th-3rd from 1987)
Semiconductor equipment sales leaders by year
List of the largest technology companies: Samsung (HW: Si, LCD; SW), HP (HW: printers, Si), Hitachi, IBM (HW+SW), Sony (HW+SW), Toshiba, Panasonic, Dell, Foxconn, Nokia, Microsoft, Fujitsu, NEC, Apple, Canon, Cisco, Intel, Fujifilm, Sharp, Mitsubishi, Motorola,..., 26th Google, Asus, 31st Acer, 34th Lenovo, 37th Olympus... 44th.
Samsung: Template:Samsung phones
Nokia: Nokia phones
Graphics: NVIDIA, AMD (ATI):
Sapphire Technology (Hong Kong): graphics cards based on AMD (ATI) GPUs
Electronics Manufacturing Services (EMS; electronic contract manufacturing (ECM)): companies that design, test, manufacture, distribute, and provide return/repair services for electronic components and assemblies for OEMs. Largest EMSs: Foxconn (Hon Hai Precision Industry Co., Ltd.), Flextronics International Ltd.
Cheapest computer, tablet:
OLPC XO-1: 100$+
Aakash (tablet) (UbiSlate 7): 35$-60$

Keyboard design[edit]

IBM PC keyboard: keyboards for IBM PC compatible computers are standardized, however since the initial release in 1985 several "standard" keyboard layouts have been developed.
Keyboard layout: mechanical (placements and keys of a keyboard), visual (arrangement of the legends that appear on the keys of a keyboard), or functional (arrangement of the key-meaning associations, determined in software, of all the keys of a keyboard) of a computer, typewriter, or other typographic keyboard. Main three different mechanical layouts: ISO (ISO/IEC 9995-2), ANSI (ANSI-INCITS 154-1988), and JIS (JIS X 6002-1980) :: 110, 109, and 112 keys (extended keyboards); 79, 78, and 80 (compact keyboards).
ISO/IEC 9995: defines the modern ISO mechanical keyboard layout; also contains outdated ISO/IEC 9995-3:2002 (aka ANSI mechanical keyboard layout). ISO mechanical keyboard layout (aka ISO; "UK keyboard") when compared to ANSI ("US keyboard") has: enter key is vertical rather than horizontal and the left shift key is smaller to make room for an additional key to its right.
British and American keyboards: both are QWERTY, but physically British is ISO while US or US International is ANSI.
Frequency analysis
Letter frequency
English language:
Most common words in English
Dvorak Simplified Keyboard

Physical keyboard:

Information storage and distribution[edit]

Category:Information storage
Category:Computer storage
Category:Computer storage media
Category:Storage media
Category:Digital media
Category:Computer storage media
Category:Digital art
Category:Computer art
Category:Video storage

{q.v. 3D, 2D, (4D ≡ space-time), emedia} {q.v. All::Distribution, digital distribution}

Template:Hard disk drive manufacturers
Western Digital (WD)
EMC Corporation & Template:EMC (EMC2): owns WMware
Iomega: eGo
List of defunct hard disk manufacturers: Seagate (Samsung, Maxtor (Quantum (DEC, Plus), MiniScribe), Conner, CDC), Toshiba (Fujitsu), WD (Hitachi (IBM), Tandon)
Master boot record (MBR): is usually placed on storage devices (e.g. HDDs) intended for use with IBM PC-compatible systems. MBR does one or more of these: holds partition table; bootstraps the OS; uniquely identifies individual disk media with 32-bit disk signature. For MBR either the maximum size of a partition or the maximum start address (both in bytes) cannot exceed (2 TB−512) bytes (i.e. for HDDs with one partition of bigger size than 2 TB one can't use MBR) - GPT overcomes this.
GUID Partition Table (GPT): part of EFI standard.
Template:Memory cards & Memory card (flash card): small, re-recordable, able to retain data without power. E.g. Microdrive: brand name for miniature, 1-inch HDD; superseded by even smaller and less fragile flash cards.
Storage Networking Industry Association (SNIA): Storage Networking World (SNW) conference; SNIA Dictionary
Standard RAID levels: optimize(data access speed (≈performance; parity calculation; latency), redundancy (≈failure rate), price); RAID 0 (faster data access, bigger failure rate), RAID 1 (could be faster data access, lower failure rate), RAID 2 (not used), RAID 3 (obsolete), RAID 4 (obsolete), RAID 5 (block-level striping with parity data distributed across all member disks; low cost of redundancy), RAID 6 (block-level striping with two parity blocks distributed across all member disks)
Non-standard RAID levels
Intel Matrix RAID (feature of Intel Rapid Storage Technology): computer storage technology marketed by Intel; firmware RAID system. One of the features that Intel Matrix RAID has, which many other RAID implementations lack, is that different areas (e.g. partitions or logical volumes) on the same disk can be assigned to different RAID devices.

Computer, PC[edit]

IBM PC compatible: generally similar to the original IBM PC, XT, and AT (PC clones, or IBM clones).
Apple's transition to Intel processors: from PowerPC to Intel x86 (3rd migration to a new CPU architecture). Before Apple switched from 8-bit 6502 in the Apple II series to the Motorola 68k architecture of the original Macintosh 128k, and from 68k to PowerPC. Mac OS X v10.6 "Snow Leopard" on August 28, 2009 as Intel-only, removing support for the PowerPC architecture.
Commodore 64 (C64, C=64 (after the graphic logo on the case), occasionally CBM 64 (for Commodore Business Machines), or VIC-64; 1982.08-1994.04): during 1983–1986 C64 dominated the market with between 30% and 40% share and 2 million units sold per year, outselling the IBM PC compatibles, Apple Inc. computers, and Atari 8-bit family computers.

Information: storage, processing, communication[edit]

{q.v. Information storage and distribution}

Character encoding[edit]

Category:Character encoding
Character encoding: Unicode and its parallel standard, ISO/IEC 10646 UCS, together constitute a modern, unified character encoding.
character repertoire is the full set of abstract characters that a system supports (closed {e.g. ASCII}/open {Unicode})
coded character set (CCS) specifies how to represent a repertoire of characters using a number of non-negative integer codes called code points
character encoding form (CEF) specifies the conversion of a coded character set's integer codes into a set of limited-size integer code values that facilitate storage in a system that represents numbers in binary form using a fixed number of bits (i.e. practically any computer system).
character encoding scheme (CES) specifies how the fixed-size integer code values should be mapped into an octet sequence suitable for saving on an octet-based file system or transmitting over an octet-based network
ASCII (American Standard Code for Information Interchange; IANA calls: US-ASCII): character-encoding scheme based on the ordering of the English alphabet
EBCDIC (Extended Binary Coded Decimal Interchange Code): While IBM was a chief proponent of the ASCII standardization committee, they did not have time to prepare ASCII peripherals (such as card punch machines) to ship with its System/360 computers, so the company settled on EBCDIC at the time. The System/360 became wildly successful, and thus so did EBCDIC.
Unicode encodings (see "Unicode"):
UTF-8: Unix-like OSs and HTML documents.
Percent-encoding: UTF-8 is mainly chosen (a bit off-topic)
Comparison of Unicode encodings#Processing issues: UTF-8 has searching advantage
Byte order mark (BOM): for UTF-8 BOM is meaningless (due to UTF-8 striving to be ASCII-compatible), while BOM is very meaningful for UTF-16 and UTF-32 as these two have BE (big endian) and LE (little endian). For the others (like UTF-7, UTF-1, UTF-EBCDIC, GB-18030 (PRC)) it is also important.
UCS Encodings (see "UCS; ISO/IEC 10646"):
UCS-2 (2-byte Universal Character Set): encodes each BMP (the Basic Multilingual Plane) character into 2 bytes. Used by older Windows NT systems (prior to Windows 2000). UCS-2 was superseded by UTF-16 in version 2.0 of the Unicode standard in July 1996.
UTF-16: extension of UCS-2 to represent code points outside the BMP (due to PRC's GB 18030). Used by MS Windows 2000/XP/2003/Vista/7/CE. UTF-16 is also used in the Java and .NET bytecode environments; Mac OS X, and KDE also use it for internal representation.
Unicode in Microsoft Windows: Windows NT was the first operating system that used Unicode in system calls. Started with UCS-2, then upgraded to UTF-16. Being first means mistakes and learning from mistakes:
Bush hid the facts: IsTextUnicode bug.
UCS-4 (incorporated into Unicode standard as UTF-32): each value as 4 bytes.
International Components for Unicode (ICU): open source project of mature C/C++ and Java libraries for Unicode support, software internationalization, and software globalization. Provides: Unicode text handling, full character properties, and character set conversions; Unicode regular expressions; full Unicode sets; character, word, and line boundaries; Language sensitive collation and searching; normalization, upper and lowercase conversion, and script transliterations; comprehensive locale data and resource bundle architecture via the Common Locale Data Repository (CLDR); complex text layout for Arabic, Hebrew, Indic, and Thai; multi-calendar and time zones; and rule-based formatting and parsing of dates, times, numbers, currencies, and messages.
Common Locale Data Repository (CLDR): project of the Unicode Consortium to provide locale data in the XML format for use in computer applications.
Variable-width encoding (multibyte encodings: most common; MultiByte Character Set (MBCS)): type of character encoding scheme in which codes of differing lengths are used to encode a character set (a repertoire of symbols) for representation in a computer. (MBCS is used in Microsoft documentation, MBCS is a misnomer since representation size is an attribute of the encoding, not of the character set). Multibyte encodings are usually the result of a need to increase the number of characters which can be encoded without breaking backward compatibility with an existing constraint. Due to older software: there are three sorts of units in a variable-width encoding: singletons, which consist of a single unit, lead units, which come first in a multiunit sequence, and trail units, which come afterwards in a multiunit sequence. UTF-8 makes it easy for a program to identify the three sorts of units as they are kept apart. Older variable-width encodings are typically not so well designed, as in them the trail and lead units may use the same values, and in some all three sorts use overlapping values.


5 Laws of IT:

  1. Metcalfe's law: value of a telecommunications network is Quadratic growth|proportional to the square of the number of connected users of the system (n2).
  2. Klaiber's Law: "the silicon wafer size (e.g. 6/5/2011 300 nm) will dictate the largest diameter (e.g. 6/5/2011 315 mm conduit of PVDF) of ultrapure water (UPW) supply piping needed within a semiconductor wafer factory".
    Polyvinylidene fluoride (PVDF): highly non-reactive and pure thermoplastic fluoropolymer (usage: western blots for immobilization of proteins, due to its non-specific affinity for amino acids, PVDF paints have extremely good gloss and color retention [e.g. Taipei 101], chemical, semiconductor, medical and defense industries, in lithium ion batteries).
    Ultrapure Water (UPW): many definitions. Defined in terms of one of these or a combo: bacterial proliferation, particulates, organic contaminants (measured as total organic or total oxidizable carbon (TOC)), metallic contaminants, anionic contaminants. Piping:
  3. Wirth's law: "Software is getting slower more rapidly than hardware becomes faster." "The hope is that the progress in hardware will cure all software ills. However, a critical observer may observe that software manages to outgrow hardware in size and sluggishness." "The speed of software halves every 18 months." (Gates' law)
  4. Rock's law: cost of a semiconductor chip fabrication plant doubles every four years. Collides with Moore's Law. Cost per product is low, cost per fab is huge. \text{Product cost} = \frac{\text{fab cost} + \text{design cost}}{\mathrm{\#\ of\ products\ sold}}. Design cost is human capital cost; fab cost is non-human capital (materials, resources) + some human capital (building the fab). # of products sold - 1 product per each human? Human population growth rate is sub-exponential?
  5. Machrone's law: PC you want to buy will always be $5000 (in 1976-1990), $2000-$3000 (in 2000s)
Growth rate of world population (1950-2010, prediction till 2050) [6/5/2011]

Computing: mathematics[edit]

IEEE 754-2008, aka IEEE Standard for Floating-Point Arithmetic (IEEE 754): Single precision floating-point format (aka binary32)


Greedy algorithm: follows the problem solving heuristic of making the locally optimal choice at each stage with the hope of finding a global optimum.

Programming, software[edit]

Category:Computer programming
Category:Computer libraries
Category:Computer programming tools
Category:System software
Category:Computer libraries
Category:Computing infrastructure
Category:Centralized computing
Category:Cloud infrastructure
Category:Computer libraries

{q.v. Mathematics :: Logics (also philosophical sense)}

Ideas, philosophy, software (SW) development[edit]

Template:Software engineering: fields: Requirements analysis, Systems analysis, Software design, Programming (coding), Formal methods, Software testing, Software deployment, Software maintenance; concepts: Structured analysis
The Mythical Man-Month
No Silver Bullet
Template:Aspect-oriented software development: Aspect-oriented programming
Concern (computer science) (a particular set of behaviors needed by a computer program, the conceptual sections):
  • Object-oriented programming, describing concerns as objects
  • Functional programming, describing concerns as functions
  • Aspect-oriented software development, treating concerns and their interaction as constructs of their own standing
Separation of concerns (SoC): process of separating a computer program into distinct features that overlap in functionality as little as possible
Separation of presentation and content: a common idiom, a design philosophy, and a methodology applied in the context of various publishing technology disciplines, including information retrieval, template processing, web design, web development, word processing, desktop publishing, and model-driven development.
Coupling (computer programming) (aka dependency: the degree to which each program module relies on each one of the other modules)
Cross-cutting concern
Rule of least power: design principle which "suggests choosing the least powerful [computer] language suitable for a given purpose".

Politics, law[edit]

Software patent#Overlap with copyright
Patent troll, aka non-practicing entity
Allied Security Trust: patent holding company which combats patent trolls. Members: Google, Motorola, HP, Ericsson.
Open Invention Network: acquires patents and licenses them royalty free to entities which, in turn, agree not to assert their own patents against Linux and Linux-related systems and applications. Key applications: Firefox, Python, many others. Members: Google, Oracle.

Programming languages[edit]

Category:Computer languages
Category:Programming language topics
Category:Programming language concepts
Category:Evaluation strategy
Category:Programming constructs
Category:Programming languages
Category:Computer libraries
Category:Application programming interfaces
Category:Graphics libraries
Category:Multimedia frameworks
Category:Natural language processing toolkits {q.v. Theory ??}
Category:Software development kits
Category:Programming libraries
Various language libraries: Java, C, C#, C++, Fortran, JavaScript, Pascal, Perl, PHP, Python
Category:Unit testing frameworks
Category:Web application frameworks {q.v. Data/content}
Category:Widget toolkits
Category:X-based libraries
Template:C programming language: Undefined behavior
Design pattern (computer science): general reusable solution to a commonly occurring problem within a given context in software design; description or template for how to solve a problem that can be used in many different situations
Pattern language
Design Patterns (Design Patterns: Elements of Reusable Object-Oriented Software): software engineering book; by Gang of Four (GoF)
Code Complete: software development book
Standard library
Application binary interface (ABI): describes the low-level interface between a computer program and OS or another program. ABIs cover: the sizes, layout, and alignment of data types; calling convention, which controls how functions' arguments are passed and return values retrieved; how an application should make system calls to the operating system and, if the ABI specifies direct system calls rather than procedure calls to system call stubs, the system call numbers; in the case of a complete operating system ABI, the binary format of object files, program libraries and so on. Complete ABI allows a program from one operating system supporting that ABI to run without modifications on any other such system, provided that necessary shared libraries are present, and similar prerequisites are fulfilled.
Comparison of programming languages:
expressiveness (expressive power of the programming language): C ≤ C++ ≤ Java < Perl = Smalltalk = Python
Template:Programming language comparisons:
List of programming languages by type: Python (Server side embeddable; Extension lang.; Functional: Impure; Imperative; Interactive mode; Interpreted; Iterative; Metaprogramming; Multiparadigm; Object-oriented class-based lang.: Single dispatch; Off-side rule lang.; Procedural; Reflective; Scripting)

Programming languages:

Microsoft Visual Basic, or just simply Visual Basic (VB):
Visual Basic .NET, successor of VB
b:Visual_Basic/Arrays: also dynamic arrays (like in Python, but much more writing/coding overhead!)
Visual Basic for Applications: Joel Spolsky was one of the ones who drove MS Excel to object-oriented programming and VBA.
Template:Microsoft development tools
Visual C++
Common Language Infrastructure (CLI)
Managed Extensions for C++: being replaced by C++/CLI.
Managed code
C++/CLI: language specification created by Microsoft and intended to supersede Managed Extensions for C++. Available in Visual Studio 2005, 2008, 2010, 2012 and 2013, including the Express editions. C++/CLI should be thought of as a language of its own (with a new set of keywords, for example), instead of the C++ superset-oriented Managed C++ (MC++) (whose non-standard keywords were styled like __gc or __value). Because of this, there are some major syntactic changes, especially related to the elimination of ambiguous identifiers and the addition of .NET-specific features.
Alice (software) - teaching programming languages; storytelling; 3D
Perl (1987): older than Python (1991), is Perl still a competitor to Python?
R (programming language): free software programming language and software environment for statistical computing and graphics. The R language is widely used among statisticians and data miners for developing statistical software and data analysis. Polls and surveys of data miners are showing R's popularity has increased substantially in recent years.
APL (programming language) (1964): important influence on the development of spreadsheets, functional programming, and computer math packages. "Programmer's view of the IBM 2741 keyboard layout with the APL typeball".
Short-circuit evaluation: denotes the semantics of some Boolean operators in some programming languages in which the second argument is executed or evaluated only if the first argument does not suffice to determine the value of the expression: when the first argument of the AND function evaluates to false, the overall value must be false; and when the first argument of the OR function evaluates to true, the overall value must be true.
Dylan (1992-): a language with Lisp-like semantics and ALGOL-like syntax; multi-paradigm: functional, object-oriented; dynamic and reflective while providing a programming model designed to support efficient machine code generation, including fine-grained control over dynamic and static behaviors. Created by a group led by Apple Computer. Dylan derives from Scheme and Common Lisp and adds an integrated object system derived from the Common Lisp Object System (CLOS). In Dylan, all values (including numbers, characters, functions, and classes) are first-class objects. Main design goal is to be a dynamic language well-suited for developing commercial software. Dylan attempts to address potential performance issues by introducing "natural" limits to the full flexibility of Lisp systems, allowing the compiler to clearly understand compilable units (i.e., libraries). Although deriving much of its semantics from Scheme and other Lisps—some implementations were in fact initially built within existing Lisp systems—Dylan has an ALGOL-like syntax rather than a Scheme-like prefix syntax.
History of the Dylan programming language


Category:Source code
Delimiter: sequence of one or more characters used to specify the boundary between separate, independent regions in plain text or other data streams. Delimiter collision
String literal: representation of a string value within the source code of a computer program. Dual quoting style (Py: '<...>', "<...>"), extended quoting styles (Py: triple quotes), raw strings (Py: r'<...>').
Escape character: invokes an alternative interpretation on subsequent characters in a character sequence. Py: backslash (\)
Syntactic sugar: syntax within a programming language that is designed to make things easier to read or to express. It makes the language "sweeter" for human use: things can be expressed more clearly, more concisely, or in an alternative style that some may prefer. Language processors, including compilers, static analyzers, and the like, often expand sugared constructs into more fundamental constructs before processing, a process sometimes called "desugaring". Notable examples: Augmented assignment (a = a + b ⇒ a += b); Parallel assignment (a = x; b = y ⇒ a, b = x, y; particular use: a, b = b, a); Operator overloading; List comprehension in Python; Decorators in Python. Syntactic salt. Syntactic saccharin.

Functional languages (functional programming languages)[edit]

Category:Functional languages
Category:Haskell programming language family
Category:Lisp programming language family
Category:ML programming language family
Haskell (programming language) (1990: 1.0, 2010, 2014)
Lisp (programming language) (LISP): family of computer programming languages with a long history and a distinctive, fully parenthesized syntax
Scheme (programming language): one of the two main dialects of the programming language Lisp; developed at MIT, and was taught to CS students at MIT
Common Lisp
Emacs Lisp: used in GNU Emacs.
Standard ML: → OCaml, Rust

ECMAScript, JavaScript[edit]


ECMAScript: many dialects: JavaScript (Netscape/Mozilla), JScript (MS), ActionScript (Adobe: Flash), ... History: based on Scheme and Java and others; mainly for browsers and interactive web/internet. Now, a full-fledged object-oriented scripting language which accesses all kinds of applications: client, server, etc. Integrates into DOM and the web.
Version correspondence: correspondence between JavaScript, JScript, ECMAScript
Implementations: ECMA-262 edition 5 compatible: Firefox JavaScript, Google Chrome JavaScript, IE (JScript 9.0), Opera. ECMAScript e.3: Microsoft .NET Framework (JScript.NET 8.0), Adobe Flash and Adobe Flex (ActionScript 3), Adobe Acrobat (JavaScript 1.7), and many others [14/10/28]. ECMA-262 e.5 is a political consensus of e.4 (which never materialized) and e.3.1 (which was supported by Yahoo, Microsoft, Google). Future ECMAScript Harmony (aka e.6): Drafts of have been published periodically since July 2011, with a target release date of June 2015.
Comparison of layout engines (ECMAScript): Gecko (Firefox), Presto (Opera), Trident (IE), WebKit (Google Chrome, Safari) support level of various ECMAScript features.
JQuery: library for the client-side scripting of HTML
Comparison of JavaScript frameworks: all frameworks except 2 are in JavaScript
Pyjamas (Python→JavaScript compiler): port of Google Web Toolkit (Java→JavaScript).
JavaScript engine: virtual machine which interprets and executes JavaScript (ECMAScript).
V8 (JavaScript engine): open source JavaScript engine developed by Google for the Google Chrome web browser.
MathJax: cross-browser JavaScript library that displays mathematical equations in web browsers, using LaTeX math and MathML markup. Apache license. Successor of JsMath.
Node%js: open source, cross-platform runtime environment for server-side and networking applications. Provides an event-driven architecture and a non-blocking I/O API that optimizes an application's throughput and scalability. Uses the Google V8 JavaScript engine to execute code, and a large percentage of the basic modules are written in JavaScript.


Category:Python (programming language)
Category:Python implementations
Category:Python software
Category:Python libraries
Python (programming language):
History of Python:
  • 1.0 - 1994.01 (1.6 - 2000.09.05); Python 1.6 - 2000.09.05
  • 2.0 - 2000.10.16 (2.7 - 2010.07.03); Python 2.7 - 2010.07.03
  • 3.0 - 2008.12.03 (3.x - ongoing). "Python 3000" or "Py3K".
2.0 introduced: list comprehensions; garbage collection system capable of collecting reference cycles; unification of Python's types (types written in C) and classes (types written in Python) into one hierarchy; generators.
3.0 introduced: "reduce feature duplication by removing old ways of doing things"; print; separation of text and data: unifying str/unicode types (text type), introducing immutable bytes type and mutable bytearray type (data type)
CPython: default, most-widely used implementation of the Python; written in C; Cpython is bytecode interpreter.
Python for S60: Nokia’s port of the general Python programming language to its S60
Stackless Python (Concurrent computing): it's about concurrency in Python by getting rid of "Stacks"
Jython: implementation of Python written in Java (Java Virtual Machine).
IronPython: implementation of the Python targeting the .NET Framework and Mono; written entirely in C#.
PyPy: Python interpreter and just-in-time compiler; started out as a Python interpreter written in the Python language itself. Current PyPy versions are translated from RPython to C code and compiled. RPython (Restricted Python): puts some constraints on the Python language so that a variable's type can be inferred at compile time ["It is a proper subset of Python, restricted in a way that enables easy analysis and efficient code generation"].
Python derivatives: Pyrex & Sage → Cython:
Pyrex (programming language): to aid in creating Python modules; syntax is very close to Python; the aim of making it easy for Python programmers to write the non-Python code usually required for such modules in a language which at least is very close; Pyrex allows the user to write extension modules in a Python-like language which may directly access the external C code.
Cython: derivative of Pyrex; Cython syntax is a superset of Python syntax, Cython compiles to C rather than Python.
Unladen Swallow: was an optimization branch of CPython, intended to be fully compatible and significantly faster. It aimed to achieve its goals by supplementing CPython's custom virtual machine with a just-in-time compiler built using LLVM.
List of Python software
Pip (package manager): package management system used to install and manage software packages written in Python.
Python Package Index: official third-party software repository for the Python programming language. Python developers intend it to be a comprehensive catalog of all open source Python packages.
Anaconda (Python distribution): distribution of the Python programming language that aims to simplify package management and deployment.
Python libraries[edit]
Category:Python libraries
Category:Python scientific libraries

Python scientific libraries:

Sage (mathematics software)

Python libraries:

PyQt: Python binding of the cross-platform GUI toolkit Qt; one of Python's options for GUI programming
Python Imaging Library


Numerical Recipes: algorithms and numerical analysis for FORTRAN (77, 90), C, Pascal, C++

Similarities between programming/scripting philosophies for certain applications[edit]

PHP and AutoHotKey similarities: the first is scripting the web interface, the second: Windows and through IronAHK & co to any OS. Regrettably, both have their own syntax. Regrettably, they inherit syntax and semantics and curly brackets style from C/C++ rather than using more compact, clearer and more up-to-date Python-like syntax.

Programming language implementation[edit]

Category:Programming language topics
Category:Programming language implementation
C3 linearization (C3 superclass linearization) is an algorithm used primarily to obtain the order in which methods should be inherited (the "linearization") in the presence of multiple inheritance, and is often termed "MRO" for Method Resolution Order.

Programming platforms[edit]

Template:Operating system
Fatal error (fatal exception error): error that causes a program to abort and may therefore return the user to the OS
Fatal system error (system crash, stop error, kernel error, or bug check): OS error. "Crash dump".
Template:Screens of death & Screen of death: Kernel panic {Unix & Unix-like} & Linux kernel oops; Blue Screen of Death (Stop Error) {Windows}

Main platforms for deploying programs on the Internet (browser based) or for specific OS or OSes:

Template:Java (software platform); Java (software platform): cross-platform.
Java virtual machine (JVM): VM capable of executing Java bytecode. Jython, ...
Java bytecode: is to Java (programming language) as assembler is to C/C++.
Java applet: run many times faster than JavaScript, but at comparable (though generally slower) speed as compiled langs as C++.
Different editions and different possible installations of Java platform/JVM (Template:Java platforms):
Java Card: for smart cards (e.g. SIMs)
Java Platform, Micro Edition: for embedded systems (e.g. smart & feature phones).
Java Platform, Standard Edition: for stand alone computers (e.g. PCs)
SableVM (Java Intermediate Language): was a clean room implementation of Java bytecode interpreter implementing. There is no difference between markup and programming languages as long as there is some format agreed for the logical expressions
Adobe Flash Player (1996) and Adobe Shockwave (1995-), at first it was Micromedia, which was bought by Adobe; at the very first Flash started from FutureSplash Animator (Template:Adobe Flash). .swf (Shackwave Flash), .as (ActionScript), .flv & .f4v (Flash Video), .amf (Action Message Format)
.NET Framework (2002): mainly for Windows, but there is Mono (software) (2004) - FLOSS
Active Server Pages (ASP): superseded by ASP.NET. Was Microsoft's first server-side script engine for dynamically-generated Web pages
Microsoft Silverlight (2007): .NET subset for browsers, Moonlight (runtime) (2009): FLOSS equivalent
CUDA (Compute Unified Device Architecture) - for GPUs and not for CPUs (like the previous platforms); PyCUDA & others; only NVIDIA GPUs. Language bindings: Perl, Python, Ruby, R, MATLAB, .NET, Lua, Java, Fortran.
OpenCL, Open Computing Language: runs on CPUs, GPUs and other processors (i.e. tries to be hardware independent)
DirectCompute: Microsoft product (still in infancy?)
Integrated development environment (IDE):
Microsoft Visual Studio: Visual Studio 2008 introduced the Visual Studio Shell that allows for development of a customized version of the IDE. The Visual Studio Shell is available as a free download.
Eclipse (software)

Compiling programs[edit]


Compiling on MS Windows:

Microsoft Windows SDK (previously was two separate SDKs: Platform SDK [for Windows 2000, XP and Windows Server 2003], and .NET Framework SDK [for .NET Framework 1.1 and .NET Framework 2.0]): for Windows XP, Windows Vista, Windows 7, Windows Server 2008, .NET Framework 3.0, .NET Framework 3.5, and .NET Framework 4.0
Getting Unix-like program code compiled on Windows:

Bugs, vulnerabilities[edit]

Category:Software testing
Category:Software bugs
Category:Bug and issue tracking software
Memory debugger: needed even for garbage-collected languages, e.g. for managed code by having "living" references in collections
Memory leak
Performance analysis, aka program profiling, software profiling, or profiling
Template:Bug tracking systems
GitHub (2008.04): web-based hosting service for software development projects that use the Git revision control system. GitHub offers both paid plans for private repositories, and free accounts for open source projects.
Travis CI: hosted, distributed continuous integration service used to build and test projects hosted at GitHub.
Bitbucket: web-based hosting service for projects that use either the Mercurial (since the origin) or Git (since 2011.10) revision control systems.
Launchpad (website): web application and website that allows users to develop and maintain software, particularly open-source software. Launchpad is developed and maintained by Canonical Ltd. Projects: Canonical Ltd.'s own projects: Ubuntu, Bazaar; Drizzle, Inkscape (bug tracking, code hosting), Linux Mint (bug tracking, blueprints, and translations), GNU Mailman, MongoDB, MySQL (code hosting), Nova Linux, OpenStack, Pinta (bug tracking and translations), Upstart, Systers, Zope 3, {OpenERP and OpenObject till May 2014}.
SourceForge (1999.11): web-based source code repository. DevShare adware controversy: 2013.07 SourceForge announced that it will provide project owners an optional feature called DevShare, which places closed-source ad-supported content into the binary installers and gives the project part of the ad revenue. In 2013.11, GIMP, a popular free image manipulation program, removed its download from SourceForge, citing misleading download buttons that can potentially confuse customers, as well as SourceForge's own Windows installer, which bundles third-party offers. In a statement, GIMP called SourceForge a once "useful and trustworthy place to develop and host FLOSS applications" that now faces "a problem with the ads they allow on their sites..."
Debugging software:
Valgrind: Linix/Mac OS X; checkers, profilers
IBM Rational Purify
CVSS (Common Vulnerability Scoring System): free and open industry standard for assessing the severity of computer system security vulnerabilities. It is under the custodianship of NIST. It attempts to establish a measure of how much concern a vulnerability warrants, compared to other vulnerabilities, so efforts can be prioritized.
Common Vulnerabilities and Exposures (CVE): system provides a reference-method for publicly known information-security vulnerabilities and exposures. MITRE Corporation maintains the system, with funding from the National Cyber Security Division of the United States Department of Homeland Security.

Open source famous bugs:

Heartbleed (disclosed 2014.04): security bug in the OpenSSL cryptography library, which is a widely used implementation of TLS protocol. Heartbleed may be exploited regardless of whether the party using a vulnerable OpenSSL instance for TLS is a server or a client. It results from improper input validation (due to a missing bounds check) in the implementation of the TLS heartbeat extension, thus the bug's name derives from "heartbeat". The vulnerability is classified as a buffer over-read, a situation where software allows more data to be read than should be allowed.
Shellshock (software bug) (kept confidential under embargo until 2014.09.24): security bug in the widely-used Unix Bash shell, causing Bash to execute commands from environment variables unintentionally. While Bash is not an Internet-facing service, many Internet-facing daemons call Bash internally. An attacker can use an Internet-facing service that sets the contents of an environmental variable to cause Bash to execute the commands in the variable. Some web servers calling Bash files as CGI scripts and DHCP clients are known to be vulnerable.

Browser-dependent vulnerabilities:


Versioning, revision control[edit]

Category:Revision control systems

Template:Revision control software:

Concurrent Versions System (CVS; 1990.11.19)
Apache Subversion (SVN; lang=C; 2000.10.20): TortoiseSVN. Goal is to be a mostly compatible successor to the widely used Concurrent Versions System (CVS)
GNU Bazaar (lang=Python; 2005.03.26)
Git (software) (lang=C, Bourne Shell, Tcl, Perl; 2005.04.07)
Revision control (version control, source control)

Markup languages[edit]

Category:Computer file formats
Category:Markup languages
Category:Computer languages
Category:Data modeling languages
Category:Markup languages
Category:Technical communication
Category:Data serialization formats

Markup languages in general EECS sense:

Programming language: Markup languages like XML, HTML or troff, which define structured data, are not usually considered programming languages. Programming languages may, however, share the syntax with markup languages if a computational semantics is defined. XSLT, for example, is a Turing complete XML dialect. Moreover, LaTeX, which is mostly used for structuring documents, also contains a Turing complete subset.
Turing completeness: Data languages: The notion of Turing-completeness does not apply to languages such as XML, HTML, JSON, YAML and S-expressions, because they are typically used to represent structured data, not describe computation. These are sometimes referred to as markup languages, or more properly as "container languages" or "data description languages".
Markup language: modern system for annotating a document in a way that is syntactically distinguishable from the text. The idea and terminology evolved from the "marking up" of paper manuscripts, i.e., the revision instructions by editors, traditionally written with a blue pencil on authors' manuscripts. In digital media this "blue pencil instruction text" was replaced by tags.
3 types of electronic markup:
  • Presentational markup: WYSIWYG
  • Procedural markup: troff, LaTeX, and PostScript
  • Descriptive markup: objective is to decouple the inherent structure of the document from any particular treatment or rendition of it; such markup is often described as "semantic". HTML
SCRIPT (markup) [1968], GML [1960s] → SGML [1986 or earlier?] → HTML [1993 -] → XML [1996 -] → XHTML [2000 -], SVG [2004 -]
TeX [1978] → LaTeX, pdfTeX, XeTeX, ConTeXt, LuaTeX; BibTeX → Biber
Scribe [1980] → GML; Scribe → LaTeX
TeX → RTF [1987, MS]
RUNOFF → troff, groff [1973]
Structured Text and Setext → reStructuredText [2001]
Document markup language
Comparison of document markup languages
Serialization: process of translating data structures or object state into a format that can be stored (for example, in a file or memory buffer, or transmitted across a network connection link) and reconstructed later in the same or another computer environment. When the resulting series of bits is reread according to the serialization format, it can be used to create a semantically identical clone of the original object. For many complex objects, such as those that make extensive use of references, this process is not straightforward. This process of serializing an object is also called marshalling an object.
Marshalling (computer science): process of transforming the memory representation of an object to a data format suitable for storage or transmission, and it is typically used when data must be moved between different parts of a computer program or from one program to another. Marshalling is similar to serialization and is used to communicate to remote objects with an object, in this case a serialized object. It simplifies complex communication, using custom/complex objects to communicate instead of primitives. The opposite, or reverse, of marshalling is called unmarshalling (or demarshalling).
Comparison of data serialization formats: different ways to convert complex objects to sequences of bits (excludes markup languages used exclusively as document file formats). JSON (JavaScript syntax), XML (SGML), JavaScript syntax
Lightweight markup language: markup language with a simple syntax, designed to be easy for a human to enter with a simple text editor, and easy to read in its raw form.
Wiki markup (Wikitext language): lightweight markup language used to write pages in wiki websites.
List of Wiki markups: raw HTML, MediaWiki Metasyntax (aka MediaWiki syntax/text/markup, Wikipedia text (but NOT wikitext, which means any wiki markup language!)) {used by many Wikis which use MediaWiki}, Creole (markup) ("standard" which is not even compatible with MediaWiki markup...)
Markdown & MultiMarkdown: "to write using an easy-to-read, easy-to-write plain text format, then convert it to structurally valid XHTML (or HTML)". The language takes many cues from existing conventions for marking up plain text in email.
ReStructuredText (reST; .rst): part of the Python programming language Docutils project of the Python Doc-SIG (Documentation Special Interest Group); create a set of tools for Python similar to Javadoc for Java or POD for Perl; lightweight markup language, designed to be both (a) processable by documentation-processing software such as Docutils, and (b) easily readable by human programmers who are reading and writing Python source code.
Markdown: plain text formatting syntax designed so that it optionally can be converted to HTML using a tool by the same name.

XML and family (parents and children)[edit]

IBM Generalized Markup Language (GML): at IBM by Charles Goldfarb, Edward Mosher and Raymond Lorie; set of macros that implement intent-based (procedural) markup tags for the IBM text formatter, SCRIPT.
Standard Generalized Markup Language (SGML; ISO 8879:1986 SGML): SGML found wide acceptance and use in fields with very large-scale documentation requirements. However, many found it cumbersome and difficult to learn—a side effect of its design attempting to do too much and be too flexible. E.g., SGML made end tags (or start-tags, or even both) optional in certain contexts, because its developers thought markup would be done manually by overworked support staff who would appreciate saving keystrokes (Markup language).
HTML (HyperText Markup Language)
XML (Extensible Markup Language): markup language that defines a set of rules for encoding documents in a format which is both human-readable and machine-readable. Design goals of XML emphasize simplicity, generality and usability across the Internet. Textual data format with strong support via Unicode for different human languages. Although the design of XML focuses on documents, it is widely used for the representation of arbitrary data structures such as those used in web services. Key terminology: (Unicode) character; Processor (XML parser) and application; Markup and content (< and >; & and ;); Tag; Element; Attribute; XML declaration.
  • Tag names cannot contain any of the characters !"#$%&'()*+,/;<=>?@[\]^`{|}~, nor a space character, and cannot start with -, ., or a numeric digit.
Schemas and validation:
Document type definition (DTD)
XML schema: description of a type of XML document, typically expressed in terms of constraints on the structure and content of documents of that type, above and beyond the basic syntactical constraints imposed by XML itself; expressed using some combination of grammatical rules governing the order of elements, Boolean predicates that the content must satisfy, data types governing the content of elements and attributes, and more specialized rules such as uniqueness and referential integrity constraints.
XML Schema (W3C) (XML Schema Definition (XSD))
RELAX NG (REgular LAnguage for XML Next Generation)
Document Schema Definition Languages (DSDL)
Binary XML: to have random access and indexing of XML documents.
XSL (Extensible Stylesheet Language): used to refer to a family of languages used to transform and render XML documents. Historically, the XSL Working Group in W3C produced a draft specification under the name XSL, which eventually split into three parts: 1) XSLT, 2) XSL-FO, 3) XPath. As a result, the term XSL is now used with a number of different meanings: XSLT; XSL-FO; both XSLT and XSL-FO; now-obsolete variant of XSLT developed and shipped by Microsoft as part of MSXML before the W3C specification was finalized.
XQuery: query and functional programming language that is designed to query and transform collections of structured and unstructured data, usually in the form of XML, text and with vendor-specific extensions for other data formats (JSON, binary, etc.).
Special XML derivatives:
MathML (1998): main competitor to LaTeX and TeX to typeset HTML and other documents. Based on XML, therefore stronger competitor than (La)TeX, but very verbose, which means that (La)TeX could be much more easily read/written by humans than MathML.
SBML (Systems Biology Markup Language): SBML is used to represent various biological phenomena: metabolic networks, cell-signaling pathways, regulatory networks, infectious diseases
VRML (Virtual Reality Modeling Language): superseded by X3D (Blender uses)
XHTML (Extensible HyperText Markup Language)
XPath 2.0
XSLT (Extensible Stylesheet Language Transformations)
Document-oriented database: computer program designed for storing, retrieving, and managing document-oriented information, also known as semi-structured data. Document-oriented databases are one of the main categories of NoSQL databases and the popularity of the term "document-oriented database" (or "document store") has grown with the use of the term NoSQL itself.
XML database: data persistence software system that allows data to be stored in XML format. These data can then be queried, exported and serialized into the desired format. XML databases are usually associated with document-oriented databases.

TeX & family (LaTeX, XeTeX and ConTeXt are derived from TeX (TeX extensions)) [1978][edit]

Category:TeX editors
Category:Free TeX software
Template:TeX navbox
TeX (1978-; by Donald Knuth; TeX): typesetting system; TeX is now very stable, and only minor updates are anticipated. Mathematical spacing; Hyphenation and justification; Metafont; Macro language. tex produces DVI.
pdfTeX (by Hàn Thế Thành): extension of TeX - character protrusion (generalizes the concept of hanging punctuation), font expansion; can output PDF directly. pdflatex is a wrapper around pdfTeX.
XeTeX: TeX typesetting engine using Unicode and supporting modern font technologies such as OpenType, Graphite and Apple Advanced Typography. xelatex is LaTeX counterpart; what is the ConTeXt counterpart?
LuaTeX: TeX-based computer typesetting system; started as a version of pdfTeX with a Lua scripting engine embedded; version of TeX where all internals are accessible from Lua. In contrast to XeTeX, the fonts are not accessed through the operating system libraries, but through a library based on FontForge.
ConTeXt: general-purpose document processor; especially suited for structured documents, automated document production, very fine typography, and multi-lingual typesetting; based in part on the TeX typesetting system. ConTeXt’s unified design avoids the package clashes that can happen with LaTeX.
Distributions: MiKTeX (Win), TeX Live (Linux, Mac, Win)
Template:LaTeX navbox: Conversion tools: LaTeX2RTF (RTF can be imported by MS Word), LaTeX2HTML.
LaTeX (1984-; started by Leslie Lamport; LaTeX): document markup language and document preparation system for TeX; set of commands defined in terms of the underlying TeX commands, often at many many layers of abstraction. Concepts like packages
standardized package system, environments
\begin{environment} ... \end{environment}
and document classes
were all introduced by Leslie Lamport in LaTeX. LaTeX is available on most OSs (Win, Mac OS X, UNIX, BSD, Linux, etc.). LaTeX is a wrapper around TeX. latex produces DVI.
LaTeX Project Public License (LPPL) & LaTeX#Licensing: LPPL not compatible with: GPL, Copyleft; compatible with: DFSG, FSF, OSI, linking.
BibTeX: reference management software for formatting lists of references; typically used with LaTeX. Reimplemented as biblatex.
Biber (LaTeX): relies on BibTeX only for sorting and generating a very generic .bbl file; full Unicode support.
AMS-LaTeX: collection of LaTeX document classes and packages developed for the American Mathematical Society (AMS). Its additions to LaTeX include the typesetting of multi-line and other mathematical statements, document classes, and fonts containing numerous mathematical symbols.
Template:TeX editors and Comparison of TeX editors (Vim-latex suite / Vim-LaTeX is mentioned) {}

Mathematical markup languages[edit]

Category:Mathematical tools
Category:Mathematical notation
Category:Markup languages
Category:Mathematical markup languages

{q.v. Mathematics :: Mathematical notation}

ASCIIMathML: client-side mathematical markup language for displaying mathematical expressions in web browsers. The simplified markup language supports a subset of the LaTeX language instructions, as well as a much less verbose syntax (which, for example, replaces "\times" with "xx" to produce the "×" symbol). Both syntaxes are vastly less verbose than the raw MathML. The resulting MathML mathematics can be styled by applying CSS to class "mstyle".

W3C: web (internet) standards[edit]

Template:W3C standards (World Wide Web Consortium, aka WWW):
HTML, HTML5: Template:Html series:
Web Hypertext Application Technology Working Group: proposed HTML5, :
Web Workers
Link relation: rel attribute; descriptive attribute attached to a hyperlink in order to define the type of the link, or the relationship between the source and destination resources
XHTML: family of XML markup languages that mirror or extend versions of the widely-used HTML (e.g. XHTML5 is part of HTML5 specification). HTML was defined as an application of Standard Generalized Markup Language (SGML), a very flexible markup language framework, XHTML is an application of XML, a more restrictive subset of SGML.
Document Object Model : +++; Object.SubObject.Properties/Methods/Functions()...; similar to Visual Basic for Applications in Excel
ECMAScript (see "Template:ECMAScript")
WebRTC (Web Real-Time Communication): API being drafted by W3C; enable applications such as voice calling, video chat and P2P file sharing without plugins.
Opus (audio format): open and royalty-free lossy audio compression format developed by the IETF.

Programs working together[edit]

Template:IPC (Inter-process communication in computing): useful for passing stuff around between programs; piping. Is WinNT32/64 better than POSIX? IPC methods are divided into methods for message passing, synchronization, shared memory, and remote procedure calls (RPC).

Programming tools[edit]

Category:Computer programming tools
Category:Static program analysis tools
Lint (software): was the name originally given to a particular program that flagged some suspicious and non-portable constructs (likely to be bugs) in C language source code; term is now applied generically to tools that flag suspicious usage in software written in any computer language. Term lint-like behavior: sometimes applied to the process of flagging suspicious language usage. Lint-like tools generally perform static analysis of source code. Can also refer more broadly to syntactic discrepancies in general, especially in interpreted languages like JavaScript and Python.
List of tools for static code analysis
Python: Pylint, Pychecker

3D, 2D, (4D ≡ space-time), emedia[edit]

Category:Graphic design
Category:Graphics software
Category:Graphics libraries
Category:DirectX [still not a subCat 13/07/19]
Category:Computer graphics
Category:3D computer graphics
Category:Image processing {q.v. Work::Image processing}
Category:Communication design
Category:Graphic design
Category:Information science
Category:3D imaging
Category:3D computer graphics
Category:Image processing


All::Language, linguistics, semantics, syntax, programming languages; symbols, writing systems, characters, Unicode/Writing (and display (+printing)): writing systems, characters, symbols .../Typography
All::Arts, media



Real-time computer graphics: producing and analyzing images in real time; interactive 3D computer graphics, typically using a GPU, with video games the most noticeable users; from rendering an application's GUI to real-time image processing and image analysis
Alpha compositing ⇔ Alpha channel (aka, transparency channel)
Painter's algorithm and Z-buffering
Z-fighting due to too small z-buffer (e.g. only 8-bit z-buffer)
GIMP: GEGL; scripting=Python, Scheme (Lisp)
Non-destructive editing
Edit decision list
Adobe Photoshop: scrpting=JavaScript (cross-platform), AppleScript (only MacOS), or VisualBasic Script (only Windows)
Digital dark age: possible future situation where it will be difficult or impossible to read historical digital documents and multimedia, because they have been stored in an obsolete and obscure digital format (also encryption of data, proprietary file formats)
Category:Acoustic fingerprinting
Acoustic fingerprint: condensed digital summary, deterministically generated from an audio signal, that can be used to identify an audio sample or quickly locate similar items in an audio database. Practical uses of acoustic fingerprinting include identifying songs, melodies, tunes, or advertisements; sound effect library management; and video file identification. Perceptual characteristics often exploited by audio fingerprints include average zero crossing rate, estimated tempo, average spectrum, spectral flatness, prominent tones across a set of bands, and bandwidth.
Digital video fingerprinting: technique in which software identifies, extracts and then compresses characteristic components of a video, enabling that video to be uniquely identified by its resultant “fingerprint”. For digital video data, both audio and video fingerprints can be extracted, each having individual significance for different application areas. Use of software that decodes the video data and then applies several feature extraction algorithms.

Computer graphics[edit]

Category:Computer graphics
Category:Vector graphics
Category:Vector graphics editors
Category:Graphics software
Category:3D computer graphics
Category:Computer file formats
Category:Graphics file formats
Category:Image processing
Category:Image compression
Category:Graphics standards
Image resolution: detail an image holds; raster digital images, film images, and other types of images; higher resolution means more image detail. Pixel resolution; Spatial resolution (optical systems (eye lens, (light and electron and any particle) microscopes, telescopes; detectors (retina, film, CCD, CMOS))); Spectral resolution; Temporal resolution (Movie cameras and high-speed cameras; 24 to 48 FPS, high speed=50 to 300 FPS); Radiometric resolution (how finely a system can represent or distinguish differences of intensity, and is usually expressed as a number of levels or a number of bits, for example 8 bits or 256 levels that is typical of computer image files; radiometric resolution is typically limited by the noise level).
Pixel density (pixels per centimeter (ppcm), Pixels per inch (PPI)): measurement of the resolution of devices in various contexts: typically computer displays, image scanners, and digital camera image sensors. LDPI: Low density, ~120 DPI; MDPI: Medium density, ~160 DPI; HDPI: High density, ~240 DPI; XHDPI: eXtra High density, ~320 DPI; XXHDPI: eXtra eXtra High density, ~480 DPI. 300 DPI of the retina of an eye is a myth, human brain feels a difference between 30 FPS and 60 FPS, also between the prints of 300 DPI, 600 DPI and even 1200 DPI (How many "pixels" does the retina of an eye have?).
Dots per inch: printing (sometimes video) dot density. Usually each pixel in video/LCD/monitor is made of 3 different color dots, also for the printer to reproduce the same quality of image as length [px] × width [px] screen, the printer needs to have at least 3 times more dots per inch than screen has pixels per inch (PPI). Logical PPI vs physical PPI.
Dots per centimetre: used in CSS3 media queries (metrification of DPI).
Retina Display: brand name used by Apple for liquid crystal displays which they claim have a high enough pixel density that the human eye is unable to notice pixelation at a typical viewing distance (HiDPI=HDPI/XHDPI). 326 PPI (iPhone, iPod Touch), 264 PPI (iPad), 220 PPI (MacBook Pro).
Comparison of vector graphics editors
Dia (software)
Adobe Flash {q.v. Programming platforms}
Adobe Illustrator: considered an industry leading editor and is more expensive than other similar products
Inkscape Draw
Main vector file formats: AI, CDR, ODG, PS/EPS, PDF, SVG, SWF, DXF, WMF/EMF, XAML. Obscure: LaTeX (cf. XML(SVG; XHTML(HTML))). Main "vector" file format in some specific sense: TT/T1 fonts

2D standards:

Create Project: web-based community focused on communication and sharing between Free and Open Source Creative applications. Blender, GIMP, Inkscape, Scribus, Audacity, Open Clip Art Library, Open Font Library and the Aiki Framework came together under "Create Project".
Libre Graphics Meeting: annual convention for the discussion of free and open source software used with graphics; Inkscape, GIMP, Krita, Scribus, sK1, Blender, Open Clip Art Library, Open Font Library & co come together.
OpenRaster: file format proposed for the common exchange of layered images between raster graphics editors. It is meant as a replacement for later versions of the Adobe PSD format.
Portable Network Graphics (PNG): raster graphics file format that supports lossless data compression; created as an improved, non-patented replacement for GIF and is the most used lossless image compression format on WWW [2013.01.31]. Supports palette-based images (palettes of 24-bit RGB or 32-bit RGBA colors), grayscale images (+/- alpha channel), and full-color non-palette-based RGB[A] images (+/- alpha channel); designed for transferring images on the Internet, not for professional-quality print graphics, and therefore does not support non-RGB color spaces, e.g. CMYK; file extension: PNG or png; MIME media type: image/png; approved for this use by the Internet Engineering Steering Group on 1996.10.14; published as an ISO/IEC standard in 2004. Adobe Fireworks uses PNG as its native file format, by default stores meta data for layers, animation, vector data, text and effects (these cannot be opened by ISO-PNG programs. BUT: allows lossless editing); due to this AF's PNG files are larger than the same PNG by any other program.

3D/4D/game engine "languages", standards[edit]

Category:3D computer graphics
Comparison of OpenGL and Direct3D
DirectX {proprietary}: the Microsoft's product for 3D gaming; uniting Xbox-like & PC-like gaming; maybe consoles would die or PCs? Made up of many different things, including:
Direct2D (D2D): Firefox 4 will use it, per Robert O'Callahan Open GL does not have any similar thing to D2D
Microsoft Direct3D: the main horse behind any game designed for DirectX
Template:Khronos Group standards: main rival to Microsoft's gaming, media, 2D/3D industry; promoting cross-platform, cross-software, cross-hardware compatibility. E.g. OpenGL, OpenCL, WebGL
OpenGL {various licenses}
WebGL: part of HTML (#5) canvas element based on OpenGL ES 2.0 (OpenGL for Embedded Systems)
COLLADA: (by Khronos) interchange file format for interactive 3D applications; open standard XML schema. Is COLLADA compatible with AutoCAD, Maya, 3ds Max file formats?
Cg (programming language): high-level shading language developed by Nvidia in close collaboration with Microsoft for programming vertex and pixel shaders; based on C; only suitable for GPU programming; Cg compiler outputs DirectX or OpenGL shader programs

Video game engines[edit]

Game engine: one of the most complicated pieces of software (esp. for the online multiplayer games). Game engine provides rendering engine (“renderer”) for 2D or 3D graphics, a physics engine or collision detection (and collision response), sound, scripting, animation, artificial intelligence, networking, streaming, memory management, threading, localization support, and a scene graph. Game engines are built upon graphics APIs like Direct3D or OpenGL. Hardware accelerated physics processing ⇒ physics API & physics extensions of COLLADA.
Game creation system (GCS)
Template:Video game engines:
GoldSrc: used in Half-Life (1998), engine branched from $Src
Source (game engine) Counter-Strike: Source & Half-Life 2 (2004); constantly updated. Scripting language: Squirrel.
Template:Source (game engine) modifications
Epic Games (Epic; formerly: Epic MegaGames): 40% owned by Tencent
Unreal Engine: scripting languages: UnrealScript (1, 2, 3) → Blueprint visual scripting system (4) and C++
  • Unreal Engine 1: Unreal; Unreal Tournament
  • Unreal Engine 2: America's Army; Unreal Tournament 2003; Unreal Championship
  • Unreal Engine 3
  • Unreal Engine 4
UnrealScript: scripting language that Unreal Engine used for authoring game code and gameplay events before the release of Unreal Engine 4. The language was designed for simple, high-level game programming.
List of Unreal Engine games
Crytek: German video game company, founded in 1999 by brothers Cevat, Avni, and Faruk Yerli, that is headquartered in Frankfurt.
CryEngine: primary scripting language is Lua.
Unity Technologies
Unity (game engine): cross-platform game creation system developed by Unity Technologies, including a game engine and IDE. The game engine's scripting is built on Mono, the open-source implementation of the .NET Framework. Programmers can use UnityScript (a custom language with ECMAScript-inspired syntax, referred to as JavaScript by the software), C#, or Boo. Games: Hearthstone: Heroes of Warcraft.
Physics engine:
Havok (software)
Bullet (software): open source physics engine featuring 3D collision detection, soft body dynamics, and rigid body dynamics
Physics processing unit (PPU)

Computer animation, graphics, CAD[edit]

Category:Computer animation

Future of merging of CAD with geo (GIS, mapping, 3D surface views, aerial photography) for building; CAD merging with manufacturing (CNC, 3D printer); just like from computer text editor (LaTeX)→PDF→to the printing (e.g. offset printing)?

Computer-aided technologies (CAx): broad term that means the use of computer technology to aid in the design, analysis, and manufacture of products. CAD, CAE, CAID, CAM, CAR, CARD, CARE, CASE, CFD, CIS, CIM, CNC, EDA, ERP, FEA, KBE, MPM, MPP, MRP, MRP II, PDM, PLM.
List of CAx companies
Computer-generated imagery (CGI): application of 3D computer graphics to special effects in art, video games, films, television programs, commercials, simulators and simulation generally, and printed media. Dynamic or static.
Computer animation
Portal:Computer graphics & Template:3D computer graphics
Rendering equation
Bidirectional reflectance distribution function (BRDF): 4D function, defines how light is reflected at an opaque surface
Texture synthesis: process of algorithmically constructing a large digital image from a small digital sample image by taking advantage of its structural content
Programs and corporations:
Comparison of 3D computer graphics software & 3D computer graphics software
Computer-aided design (CAD; computer-aided design and drafting (CADD)): use of computer technology for the process of design and design-documentation
List of computer-aided design editors for architecture, engineering and construction (CAD for AEC)
Computer-aided manufacturing (CAM): use of computer software to control machine tools and related machinery in the manufacturing of workpieces (not to be confused with 3D printer; both achieve similar goals). Numerical control (NC; computer numerical control (CNC)): automation of machine tools that are operated by abstractly programmed commands encoded on a storage medium, as opposed to manually controlled via handwheels or levers, or mechanically automated via cams alone. The first NC machines were built in the 1940s and 1950s, based on existing tools that were modified with motors that moved the controls to follow points fed into the system on punched tape. CNC machines are mainly coded in G-code.
Computer-aided engineering (CAE)
Template:Video editors & Comparison of video editing software
Template:3D software & Template:Animation editors
Template:Views: Graphical projection
Subdivision surface
Nonuniform rational B-spline
Template:Compositing Software (List of Compositing Software)
Blender Foundation & Template:Blender Foundation: Ton Roosendaal; non-profit organization which develops Blender; produced animated short films (Elephants Dream (2006), Big Buck Bunny (2008), Sintel (2010) and Tears of Steel (2012)) and games (Yo Frankie! (2008), Sintel The Game (2012)).
Blender (VSE : Video Sequence Editor) & The Blender Game Engine (aka Game Blender). Blender has Python 3.0 scripting.
Autodesk: huge American multinational corporation producing AutoCAD, Maya, 3ds Max:
Template:AutoCAD related articles (Autodesk AutoCAD): AutoCAD was developed by Autodesk from the beginning
Autodesk Inventor: 3D mechanical solid modeling design software; internally developed parametric mechanical design CAD application.
AutoCAD Architecture (ACA; AutoCAD Architectural Desktop, ADT): version of Autodesk's flagship product, AutoCAD, with tools and functions specially suited to architectural work.
Autodesk Revit: building Information Modeling (BIM) software (process of generating and managing building data during its life cycle; BIM tools define objects parametrically: objects are defined as parameters and relations to other objects, so that if a related object changes, this one will also); aka 4D CAD (4th dim is time).
AutoCAD file formats:
Design Web Format: secure file format developed by Autodesk for the efficient distribution and communication of rich design data to anyone who needs to view, review, or print design files
AutoCAD DXF: CAD data file format developed by Autodesk for enabling data interoperability between AutoCAD and other programs
.dwg: binary file format used for storing two and three dimensional design data and metadata; native to AutoCAD and related, .dwfx (container-file of XML and non-XML files).
AutoLISP: based on LISP; somehow evolved into Visual LISP?; strong following among CAD community?
Competitors for AutoCAD:
Open Design Alliance: Bentley Systems {CAD SW}, ESRI {geodesics, GIS (Geographic Information System)}, Intergraph {many things, one of them utilities, aerial mapping & photogrammetry, gov stuff}
AutoCAD 360 (formerly: AutoCAD WS): first AutoCAD mobile application; iOS (App Store), Android (Google Play and Amazon Appstore) for free - registered license is required to use the mobile application.
Autodesk Media and Entertainment (formerly Discreet):
Autodesk 3ds Max (formerly: 3D Studio MAX): scripting langs: MAXScript
Autodesk Maya: Alias Research, Inc. (Maya used Tcl for scripting) + Wavefront Technologies, Inc. → Silicon Graphics Inc. (SGI), Maya 1.0 in 1998 → Autodesk (2005). Current Maya scripting langs: MEL, Python (added as of Maya 8.5)
Maya Embedded Language (MEL)
other: IFF (software) (Inferno, Flame and Flint): runs on RHEL; Academy Award at the Scientific and Technical Academy Awards
Art of Illusion
Trimble Navigation (HQ: Sunnyvale, CA): makes GPS (Global Positioning Systems) receivers, laser rangefinders and inertial navigation systems. The company is best known in the fields of surveying, construction, agriculture, scientific instrumentation, and mobile and fleet management; ~54% of employees outside USA. Market Segments: Engineering and Construction, Field Solutions, Mobile Solutions, Advanced Devices
SketchUp (officially: Trimble SketchUp; Sketchup Make {$0} or Sketchup Pro {paid}): independent stage (2000-2006), a second phase under Google ownership (2006-2012), to current ownership under Trimble Navigation; 3D modeling program for a broad range of applications such as architectural, civil, mechanical, film as well as video game design. Extensions: Ruby.


List of graphical methods
Plot (graphics)
Automatic label placement: in charts/plots
Graph of a function
List of information graphics software: plotting: gnuplot, many other; stats: R
Template:Computer algebra systems: Mathematica, MathCad, Maple
Maxima (software) {Common Lisp}
Template:Numerical analysis software: MATLAB
GNU Octave {C++}: has been built with MATLAB compatibility in mind, and shares many features with MATLAB
Python modules (Template:SciPy ecosystem): numerical and scientific: SciPy, NumPy, matplotlib;
QtiPlot: interactive scientific graphing and data analysis
SciDAVis: interactive scientific graphing and data analysis
Veusz {Qt application written in Python, PyQt and NumPy}: publication-quality plots
SymPy {Python}: symbolic computation; goals of the library are to become a full-featured computer algebra system and to keep a simple code base to promote extensibility and comprehensibility
Computer algebra + numerical analysis SW:
Sage (mathematics software) (previously SAGE; sagemath): mathematical software with features covering many aspects of mathematics, including algebra, combinatorics, numerical mathematics, number theory, and calculus. OS: on Linux; Mac OS X (Sage is largely developed on OS X 10.6.x); for Windows, one must use virtual machine to run Linux version. Software packages contained in Sage: Sage has everything math-related (and the best one(s) if there is more than one) that Python could have + other packages written in Lisp, C, ...
PARI/GP {C}: computer algebra system with the main aim of facilitating number theory computations.
Comparison of statistical packages
Comparison of numerical analysis software
List of computer algebra systems
Enthought: develops scientific computing tools using primarily the Python programming language. Primarily known for SciPy
MayaVi: scientific data visualizer written in Python, which uses VTK and provides a GUI via Tkinter (a competitor to matplotlib).

Compression formats for emedia[edit]

Template:Compression formats (Multimedia compression and container formats):
video: H.262≡MPEG-2 Part 2;
H.264/MPEG-4 AVC (H.264/MPEG-4 Part 10 or AVC (Advanced Video Coding)): H.264 - ITU-T standard, MPEG-4 AVC - ISO/IEC standard; standard for video compression, and is currently one of the most commonly used formats for the recording, compression, and distribution of high definition video.

3D fabrication, 3D printing[edit]

Digital modeling and fabrication: joins architecture with the construction industry through the use of 3D modeling software and CNC machines. Using various machines for fabrication: CNC router, laser cutter, Z plotter.
3D printing
RepRap Project (short for "replicating rapid prototyper"): can print most of its own components; may well facilitate a major paradigm shift in the design and manufacture of consumer products from one of factory production of patented products to one of personal production of un-patented products with open specifications
Makerbot: Thing-O-Matic (2nd generation 3D printer kit) - open-source hardware and licensed under the GNU GPLv3. Uses automatic build platform which allows for the user to queue items to print, printing each individually, ejecting the final part after cooldown, and then beginning on the next item; to execute a queue of print jobs unattended.
Thingiverse: website dedicated to the sharing of user-created digital design files
STL (file format): file format native to the stereolithography CAD software created by 3D Systems
Laser cutting
Milling machine
Fab lab
Template:Metalworking navbox
Metalworking: history - from gold to steel

Networks (Internet: Web), (tele)communications[edit]

Networks (Internet: Web): mobile, Wi-Fi & GSM & 3G & internal LANs convergence ⇒ THE Internet

Hosts (file) = Localhost
Template:VPN (Virtual Private Networking): VPNs typically require remote users of the network to be authenticated, and often secure data with encryption technologies to prevent disclosure of private information to unauthorized parties.
Mobile virtual private network: persistence, roaming, software applications (running in "always-connected" wired LAN environment) run over the mobile VPN without modification
Template:WebManTools: Website management, from HW (HardWare) to SW (SoftWare) to CMS

Networking standards[edit]

Template:Cellular network standards
Universal Mobile Telecommunications System (UMTS): 3G of the GSM standard.
GSM (2G)→EDGE (2.5G)→UMTS (3G)
5G: three very distinct 5G network visions having emerged by 2014: A super-efficient mobile network; A super-fast mobile network; A converged fiber-wireless network.

Internet architecture[edit]

Category:Internet architecture
Category:Content delivery network
Network address translation (NAT): process of modifying IP address information in IPv4 headers while in transit across a traffic routing device. Basic NAT (one-to-one NAT) . It is common to hide an entire IP address space, usually consisting of private IP addresses, behind a single IP address (or in some cases a small group of IP addresses) in another (usually public) address space; NAPT (network address and port translation), PAT (port address translation), IP masquerading, NAT Overload, many-to-one NAT (sometimes simply NAT).
NAT traversal: techniques that establish and maintain Internet protocol connections traversing NAT gateways. NAT breaks end-to-end connectivity. Many techniques exist, but no single method works in every situation since NAT behavior is not standardized. Many NAT traversal techniques require assistance from a server at a publicly routable IP address. Some methods use the server only when establishing the connection, while others are based on relaying all data through it, which adds bandwidth costs and increases latency, detrimental to real-time voice and video communications.
UDP hole punching: e.g. Skype.
Content delivery network (content distribution network; CDN): large distributed system of servers deployed in multiple data centers across the Internet. The goal of a CDN is to serve content to end-users with high availability and high performance. CDNs serve a large fraction of the Internet content today, including web objects (text, graphics and scripts), downloadable objects (media files, software, documents), applications (e-commerce, portals), live streaming media, on-demand streaming media, and social networks.

Physical layer[edit]

Ethernet: name came from the physical concept of ether
Ethernet physical layer

Internet backbone:

Submarine communications cable: fiber optics: submarine branching unit (SBU), self-healing ring (SHR), Cable landing point.
List of international submarine communications cables: to put a cable under the water for extremely long distances is cheaper than to dig it through the land.
Internet2: advanced not-for-profit US networking consortium (universities, industry, government):
Abilene Network: high-performance backbone network created by the Internet2 community, now called Internet2 Network
GEANT: main European multi-gigabit computer network for research and education purposes
Template:Internet access:
Digital subscriber line access multiplexer (DSLA): network device, often located in telephone exchanges, that connects multiple customer DSL interfaces to a high-speed digital communications channel using multiplexing techniques.
Digital Subscriber Line (DSL): asymmetric DSL = ADSL (the most commonly used by end consummers), symmetric DSL = SDSL. Family of technologies that provides digital data transmission over the wires of a local telephone network
Template:DSL technologies
Fiber to the x, aka FTTx, optical fibers to users
Template:UTP Cable Standards (Unshielded and shielded twisted pair cabling standards)
Twisted pair: two conductors (the forward and return conductors of a single circuit) are twisted together for the purposes of canceling out electromagnetic interference (EMI) from external sources
Crosstalk (electronics): signal transmitted on one circuit or channel of a transmission system creates an undesired effect in another circuit or channel.
Balanced line: balanced line or balanced signal pair is a transmission line consisting of two conductors of the same type, each of which have equal impedances along their lengths and equal impedances to ground and to other circuits. The chief advantage of the balanced line format is good rejection of external noise
Balun (bal(ance) + un(balance)): type of electrical transformer that can convert electrical signals that are balanced about ground (differential) to signals that are unbalanced (single-ended) and vice versa. They are also often used to connect lines of differing impedance.
Wi-Fi Protected Access, WPA and WPA2, brought TKIP security protocol, which has weaknesses
IEEE 802.11g-2003, aka Wi-Fi
Cellular frequencies#Frequency bands recommended by ITU
International Telecommunications Union, ITU

High level infrastructure:

Root nameserver


Carrier Routing System: large-scale core router by Cisco.
Hop (networking): Each time packets are passed to the next router a hop occurs. Hop count: distance between two hosts. Hop limit (IPv6) = TTL (IPv4).
Time to live (TTL): mechanism that limits the lifespan of data in a computer or network. TTL field is set by the sender of the datagram, and reduced by every router on the route to its destination. If the TTL field reaches zero before the datagram arrives at its destination, then the datagram is discarded and an ICMP error datagram (11 - Time Exceeded) is sent back to the sender. In practice, the TTL field is reduced by one on every hop.


Demarcation point (aka: demarc, DMARC, MPOE (minimum point of entry or main point of entry)): point between wiring of the customer and the wiring of the telco/communication provider (e.g. internet, phone, cable TV)

Socializing ISPs (work together for a single internet)[edit]
Peering: voluntary interconnection of administratively separate Internet networks for the purpose of exchanging traffic between the customers of each network.
Internet exchange point: where Internet service providers (ISPs) exchange Internet traffic between their networks
List of Internet exchange points: practically says which places are important Internet hubs and which countries have huge Internet market.
Equinix: provides carrier-neutral data centers and internet exchanges. "Also, many major enterprises such as Google and Microsoft use Equinix data centers for disaster avoidance and off-site data backup." Former CEO and current Executive Chairman Peter Van Camp describes Equinix internet exchanges (IBXs) as "international airports where passengers from many different airlines make connections to get to their final destinations."
Autonomous system (Internet) (AS)

The inter-government side of the ISPs ("politics" of Internet on the technical side):

Regional Internet registry (RIR): organization that manages the allocation and registration of Internet number resources (IP addresses & autonomous system numbers) within a particular region of the world. African Network Information Centre (AfriNIC; 2004.10.11); American Registry for Internet Numbers (ARIN; mainly USA & Canada; 1997.12.22); Asia-Pacific Network Information Centre (APNIC: South & South East & East Asia; Australasia; 1993.01.13); Latin America and Caribbean Network Information Centre (LACNIC; 2001); Réseaux IP Européens Network Coordination Centre (RIPE NCC: Europe, Russia, the Middle East, and Central Asia {former USSR}; 1992.04)

History of internet in EU:

de:Verein zur Förderung eines Deutschen Forschungsnetzes

Messaging (communication) and software "layers"[edit]

Internet Protocol Suite (aka TCP/IP): set of communications protocols used for the Internet. Officially 4 layers: application (e.g. BGP), transport (e.g. TCP), internet (e.g. IP {Internet Protocol}), link
Border Gateway Protocol (BGP): backs the core routing decisions on the Internet. Has Internet routing table which designates network reachability among autonomous systems.
Default-free zone (DFZ; Internet routing table, global routing table or global BGP table): collection of all Internet autonomous systems that do not require a default route to route a packet to any destination. Conceptually, DFZ routers have a "complete" BGP table.
TCP (Transmission Control Protocol): Slow-start - part of the congestion control strategy
UDP encapsulation.svg
IP stack connections.svg

Applications using network[edit]

Category:Distributed computing architecture
Category:Clients (computing)
Category:Servers (computing)
Client–server model: distributed application structure in computing that partitions tasks or workloads between the providers of a resource or service, called servers, and service requesters, called clients
Client (computing): application or system that accesses a service made available by a server. Server is often (but not always) on another computer system, in which case the client accesses the service by way of a network. Client-server model/architecture (local-remote machines) (client vs. server: any capable PC could become a server/remote machine to be used by some other machine(s) and their applications); e.g. web browser, e-mail client, online chat. Clients tend to unify (e.g. Pidgin - one online chat client supporting various protocols which have their own clients): existing large client applications are being switched to websites, making the (internet/web) browser a sort of universal client (avoids the hassle of downloading a large piece of software onto any computer you want to use the application on. E.g. the rise of webmail (GMail) (email clients (Thunderbird, Outlook) dying out))
Fat client (heavy, rich, thick client): typically provides rich functionality independent of the central server. E.g. game clients (online gaming; most game clients are a hybrid of client–server and peer-to-peer architectures): MUD client, Eve Online, StarCraft II: Wings of Liberty (esp. multiplayer), Second Life, Template:3D virtual worlds.
User agent: user agent string as not-so-unique identifier.
List of online backup services & Comparison of online backup services:
Dropbox (storage provider)
Amazon S3: DropBox, Twitter use it
Template:Remote administration software & Remote administration (rooting/0wning; hacking/cracking):
Virtual Network Computing (VNC): cross-platform
Remote Desktop Services (Terminal Services; Remote Desktop Connection (formerly called Terminal Services Client)): Remote Desktop Protocol: (RDP) MS Win, Mac OS X; proprietary protocol developed by Microsoft, which provides a user with a graphical interface to another computer; version 5.1 for WinXP32, 6.0 for Win Vista, 7.0 for Win7. Network Level Authentication: reduces the risk of denial-of-service attacks.
Secure Shell (SSH): (PuTTY: originally for Windows, client for SSH)

Communication reliability[edit]

Byzantine fault tolerance
Two Generals' Problem

Search, search engines, online DBs[edit]

Search Engine Watch
Google Blogoscoped: blog authored by Philipp Lenssen. It has been covering the search engine company Google since 2003.
Organic search: listings on search engine results pages that appear because of their relevance to the search terms, as opposed to their being advertisements. "Because so few ordinary users (38% according to Pew Research Center) realized that many of the highest placed "results" on search engine results pages were actually ads, it became important within the search engine optimization industry to distinguish between the two types of content."

Search engines[edit]

Category:Web software
Category:Web crawlers
List of search engines
Google search
Cuil based on Google or not?
Alltheweb: bought indirectly by Yahoo
Kartoo: dead visual search engine
RU: Yandex (Я́ндекс),, Rambler (Рамблер)
Wolfram Alpha (WolframAlpha and Wolfram|Alpha): answer-engine developed by Wolfram Research.

Popularity of search engines [2]:

  1. Google everywhere, except:
  2. China/PRC:
  3. South Korea:
  4. RU:
  5. Taiwan/ROC:
  6. Japan:
  7. North Korea: NA

The workings of search engines:

Robots exclusion standard: robots.txt
Web crawler: bot/spider (aka ant, worm, indexer, Web scutter).

eCommerce, mCommerce[edit]

Livemocha: online language learning
TutorVista: Indian tutors to the people worldwide
CellBazaar: Bangladesh; allowing farmers to sell harvest over mobile phone


Category:Websites by topic
Category:Review websites
AlternativeTo: website which lists alternatives to web-based software, desktop computer software, and mobile apps, and sorts the alternatives by various criteria; software is not arranged into categories, but each individual piece of software has its own list of alternatives, permitting a more tailored listing approach.
Ranker (2009-): socially minded consumer web platform designed around collaborative and individual list-making and voting. Uses Freebase and Factual.
Pingdom: service that tracks the uptime, downtime, and performance of websites.


Category:Internet culture
Category:Internet slang
RTFM ("Read The Fucking Manual"): ~GIYF ("Google is your friend") and LMGTFY ("let me google that for you")

Computer networking[edit]

Category:Computer networking
Organizational Unit (OU): provides a way of classifying objects located in directories, or names in a digital certificate hierarchy, typically used either to differentiate between objects with the same name (John Doe in OU "marketing" versus John Doe in OU "customer service"), or to parcel out authority to create and manage objects (for example: to give rights for user-creation to local technicians instead of having to manage all accounts from a single central group). OUs appear in X.500, X.509, LDAP, Active Directory, ..., in almost any modern directory or digital certificate container grouping system.
Lightweight Directory Access Protocol (LDAP): application protocol for accessing and maintaining distributed directory information services over IP network.


Category:Data management
Category:Content management systems
Category:Data structures
Category:Semantic Web
Solution stack: set of software subsystems or components needed to deliver a fully functional solution, e.g. a product or service (web application = OS + web server + DB + programming language).
  • LAMP (Linux + Apache + DB (MySQL, ...) + language (PHP, Python, Perl,...))
  • WISA (Windows Server + IIS + SQL Server + ASP.NET {many programming languages}) or WIMP (SQL Server → MySQL, ASP.NET → PHP)
  • others: LYME (LYCE), GLASS, MAMP, LEAP, OpenACS.

Data (data structure; data type, type)[edit]

Category:Programming constructs
Category:Data types
Category:Data structures
  • data type vs data structure
Data type
Abstract data type (≡Abstract data structure)
Graph (abstract data type) (≡Graph (data structure))
Primitive data type
Composite data type
Array data type
Function type
Template:Data types
Data structure
Template:Data structures
Row-major order: row-major order and column-major order describe methods for arranging multidimensional arrays in linear storage such as memory.
  • Row-major order: C/C++, Mathematica, PL/I, Pascal, Python, Speakeasy, SAS
  • Column-major order: Fortran, OpenGL and OpenGL ES, MATLAB, GNU Octave, S-Plus, R, Julia, Rasdaman, and Scilab

Databases, labels, indexes, identifiers, schemes[edit]

Category:Database management systems

{q.v. All::Library, archive}

Database engine (storage engine): underlying software component that a database management system (DBMS) uses to create, read, update and delete (CRUD) data from a database. Most have APIs. Many DBMSs support multiple database engines, e.g. MySQL supports InnoDB (default MySQL (ver.>5.5) DB engine) and MyISAM (ver.<5.5).
Shard (database architecture): horizontal partition in a DB or search engine. Each individual partition is referred to as a shard or database shard.
SQL (Structured Query Language): special-purpose programming language designed for managing data held in RDBMS. Consists of a data definition language and a data manipulation language; data insert, query, update and delete, schema creation and modification, and data access control. Operators: =, <> or !=, >, <, >=, <=, BETWEEN, LIKE (search for a pattern), IN (to specify multiple possible values for a column). Queries: FROM & (JOIN), WHERE, GROUP BY, HAVING, ORDER BY.
Unique key: one or more unique keys may be declared for each data entity; each unique key is composed from one or more data attributes of that data entity. Primary key uniquely defines the characteristics of each row; has to consist of characteristics that cannot be duplicated by any other row; may consist of a single attribute or a multiple attributes in combination.
Uniform resource identifier (URI): string of characters used to identify a name or a resource on the Internet. URI is a superset of URL (location, e.g. file:///home/username/RomeoAndJuliet.pdf, or and URN (name, e.g. urn:isbn:0-395-36341-1, same for DOI, though there are DOI resolving HTTP).
URI scheme & Template:URI scheme: top level of URI naming structure. Generic syntax of URIs: <scheme name> : <hierarchical part> [ ? <query> ] [ # <fragment> ], e.g. means: http - 'scheme' name,
File URI scheme: Addressing files on local or network file systems
About URI scheme: internal URI scheme in various web browsers to display certain built-in functions; not an officially registered scheme, and has no standard syntax
IPv4 and IPv6:
Private network: network that uses private IP address space, following the standards set by RFC 1918 and RFC 4193. Used for enterprise LANs, home, office, when globally routable addresses are not mandatory or not available. These addresses are private because they are not globally delegated, meaning they are not allocated to any specific organization, and IP packets addressed by them cannot be transmitted onto the public Internet. For such IP addresses to connect to the Internet, it must use NAT (network address translator) gateway or proxy server.
IPv4: 24-bit block: –; 20-bit: –; 16-bit: –
URL normalization (URL canonicalization): process by which URLs are modified and standardized in a consistent manner, so it is possible to determine if two syntactically different URLs may be equivalent. Search engines (reduce indexing of duplicate pages), web crawlers (to avoid crawling the same resource more than once), web browsers use it (to determine if the page is cached/visited before).
Top-level domain:
Template:Generic top-level domains & Generic top-level domain (gTLD): Original in 1984.10: .com, .edu, .gov, .mil, .org; .net was added with the implementation of the previous. The .com, .net, and .org TLDs, despite their originally specific goals, are now open for use for any purpose. Unrestricted gTLD: .com, .net, .org, and .info. Others: .biz, .name, .pro. New top-level domains: Expansion of gTLDs (2011.06.20), Opposition to gTLD expansion.
Sponsored top-level domain (sTLD): .aero, .asia, .cat (Catalan language and culture), .coop (Cooperative associations), .edu, .gov, .int, .jobs, .mil, .mobi, .museum, .post, .tel, .travel, .xxx.
Country code top-level domain: The first registered ccTLD were .uk, .us and .il, all registered in 1985. In 1986, .au, .de, .fi, .fr, .jp, .kr, .nl and .se were registered. Historical ccTLDs: .cs (for Czechoslovakia) and .zr (for Zaire); .yu, .su - still accepting registrations. Internationalized ccTLDs: cyrillic, arabic, sout asian, east and southeast Asian, georgian scripts.
.рф (xn--p1ai): domain accepts only Cyrillic subdomain applications, and is the first Cyrillic implementation of the Internationalizing Domain Names in Applications (IDNA) system. The domain became operational on 2010.05.13. No direct mapping of subdomains between рф and ru, they are independent domains hosting potentially different resources
Sponsored top-level domain: .aero, .asia, .cat, .coop, .edu, .gov, .int, .jobs, .mil, .mobi, .museum, .post, .tel, .travel, .xxx
Domain parking & Template:Domain parking: Typosquatting
COinS (ContextObjects in Spans): method to embed bibliographic metadata in the HTML code of web pages; allows bibliographic software to publish machine-readable bibliographic items and client reference management software to retrieve bibliographic metadata; metadata can also be sent to an OpenURL resolver (e.g. search for a copy of a book in one's own library).

Web page, internet page[edit]

To program a web (internet) framework/wiki/CMS, one needs knowledge of:

  • Server side:
    Server set-up: LAMP (Linux environment), WIMP/WISA (Windows, IIS)
    Data and databases (e.g. MySQL)
    Programming language in which the framework/wiki/CMS is written (PHP: the language of the web; C/C++; Java; C# (.NET); any other: Python, Ruby, Perl)
  • Client side:
    Programming language (for interactive web): JavaScript, ...
    Client software: internet browser, app, ...
Template:Rich Internet applications
Dynamic web page: e.g. changing news content, user preferences in a login session, user interaction, etc.
Dynamic HTML: umbrella term for a collection of technologies used together to create interactive and animated web sites by using a combination of a static markup language (such as HTML), a client-side scripting language (such as JavaScript), a presentation definition language (such as CSS), and the Document Object Model {see above @ "W3C standards"}.

Application layer: Session Initiation Protocol (SIP), XMPP
Transport layer: TLS/SSL, UDP

Semantic web, open data, knowledge base[edit]

Category:Open content
Category:Access to Knowledge movement
Category:Open data
Category:Metadata registry
Category:Semantic Web


  • All::Copyright and Urheberrecht (author rights)
  • Meaning, knowledge
Template:Semantic Web & Semantic Web:
Microformat: "adds semantics (meaning) to the web ((X)HTML)
HCard: the contact details (which might be no more than the name) of people, companies, organizations, and places
Geo (microformat): marks up WGS84 geographical coordinates (latitude;longitude) in (X)HTML
hCalendar: semantic (X)HTML
Operator (extension): Firefox extension; manages microformats
Giant Global Graph (GGG): by Tim Berners-Lee in 2007; influenced Open Graph by Facebook
FOAF (software) (from an acronym of Friend of a friend): machine-readable ontology describing persons, their activities and their relations to other people and objects; expressed using Resource Description Framework (RDF) and Web Ontology Language (OWL). Not supported by Facebook to export the social network data.
Open data: certain data should be freely available to everyone to use and republish as they wish, without restrictions from copyright, patents or other mechanisms of control; goals of the open data movement are similar to those of other "Open" movements such as open source, open hardware, open content, and open access.
Open science data: focused on publishing observations and results of scientific activities available for anyone to analyze and reuse; rise of the Internet has significantly lowered the cost and time required to publish or obtain data. In 2004, the Science Ministers of OECD signed a declaration which essentially states that all publicly funded archive data should be made publicly available
Open access journals
Delayed open access journal
Hybrid open access journal: NPG (EMBO,...), PNAS, Cambridge, Oxford, IUCr, Elsevier (ScienceDirect)
Linked data: describes a method of publishing structured data so that it can be interlinked and become more useful. Linked data extends standard Web technologies (such as HTTP, RDF and URIs) to share information in a way that can be read automatically by computers. This enables data from different sources to be connected and queried.
DBpedia: project aiming to extract structured content from the information created as part of the Wikipedia project
Semantic MediaWiki: extension to MediaWiki that allows for annotating semantic data within wiki pages, thus turning a wiki that incorporates the extension into a semantic wiki; {q.v.: Wikidata}.
YAGO (database): knowledge base developed at the Max Planck Institute for Computer Science in Saarbrücken; automatically extracted from Wikipedia and other sources.
DBLP: computer science bibliography website hosted at Universität Trier, in Germany
WordNet: lexical database for the English language; groups English words into sets of synonyms called synsets, provides short, general definitions, and records the various semantic relations between these synonym sets. The purpose is twofold: to produce a combination of dictionary and thesaurus that is more intuitively usable, and to support automatic text analysis and artificial intelligence applications.
GeoNames: geographical database available and accessible through various web services, under a Creative Commons attribution license.
Participatory GIS (PGIS; 2005.09-)
Collaborative mapping: aggregation of web maps and user-generated content, from a group of individuals or entities, and can take several distinct forms; map itself is created collaboratively by sharing a common surface. Both OpenStreetMap and WikiMapia allow for the creation of single 'points of interest', as well as linear features and areas. Collaborative maps must deal with the difficult issue of cluttering, due to the geometric constraints inherent in the media; one approach to this problem is using overlays - group together items on a map, allowing the user of the map to toggle the overlay's visibility and thus all items contained in the overlay
OpenStreetMap (OSM; license: ODbL): collaborative project to create a free editable map of the world; two major driving forces behind the establishment and growth: restrictions on use or availability of map information across much of the world, the advent of inexpensive portable satellite navigation devices
OpenStreetMap Foundation: company limited by guarantee, registered in England and Wales on 2006.08.22
OpenSeaMap: software project collecting freely usable nautical information and geospatial data to create a worldwide nautical chart.
WikiMapia (Wikimapia; lincense: CC-BY-SA): open-content collaborative mapping project that aims to mark and describe all geographical objects in the world; combines an interactive web map with a geographically-referenced wiki system. Wikimapia website provides Google Maps API-based interactive web map that consists of user-generated information layer on top of Google Maps satellite imagery and other resources.
Google Map Maker (Google map maker; 2008.06-): designed to expand the breadth of the service currently offered by Google Maps; in some countries mapping data is unavailable, and so to fill this void Google has decided to open up Google Maps to a collaborative community effort in certain territories; ultimate goal of the project is to acquire sufficient high-quality mapping data to be published and used on the existing Google Maps service. initiative launched 2011.06.02 by Bing, Google and Yahoo! to “create and support a common set of schemas for structured data markup on web pages; Yandex joined 11.01; propose using their ontology and Microdata in HTML5 to mark up website content with metadata about itself. Such markup can be recognized by search engine spiders and other parsers, thus gaining access to the meaning of the sites.
Semantic desktop: desktop search; data is more easily shared between different applications or tasks and so that data that once could not be automatically processed by a computer could be

Web applications (web application frameworks)[edit]

Category:Web software
Category:Web applications
Category:Web application frameworks
Category:Web development
Category:Web application frameworks

Template:Application frameworks, aka WAFs [2013]:

ASP.NET (MS) also has ASP.NET Dynamic Data (Ruby on Rails inspired) and ASP.NET AJAX; previously it was Active Server Pages, aka ASP (now called Classic ASP or ASP Classic) {8}:
ASP.NET MVC Framework
ColdFusion (Adobe) {7}
Common Lisp {3}
C++ {2}
Java {24}
Javascript {13}
Perl {6}
PHP {21}:
Python {15}:
Django (web framework) & Django-cms
Pylons (web framework)
Zope: Python killer app.
Plone (software): Py
MoinMoin (CMS, Wiki)
Ruby {6}:
Ruby on rails. History: Basecamp (software)
Scala {4}
Smalltalk {2}

Content management[edit]

Category:Content management systems
Category:Blog software
Category:Collaborative software
Category:Wiki software
Category:Document management systems
Category:Revision control systems
Category:Wiki software
Category:Portal software
Software framework & Application server
Multimedia framework
Application framework
Web application framework (WAF): software framework that is designed to support the development of dynamic websites, web applications, web services and web resources; aims to alleviate the overhead associated with common activities performed in web development; ibraries for database access, templating frameworks and session management, and they often promote code reuse. Types of framework architectures: MVC, Push-based vs. pull-based, Three-tier organization. Features: Web template system, Caching, Security, Database access, mapping and configuration, Scaffolding, URL mapping, Ajax, Web services, Web resources.
Content management system (CMS): computer program that allows publishing, editing and modifying content as well as maintenance from a central interface; manage workflow in a collaborative environment. Often used to run websites containing blogs, news, and shopping
Content management (CM): set of processes and technologies that support the collection, managing, and publishing of information in any form or medium
List of content management frameworks: content management framework (CMF) is a system that facilitates the use of reusable components or customized software for managing web content; shares aspects of WAF and CMS.
Comparison of web application frameworks: [2013] ASP.NET {6}, C++ {4}, ColdFusion Markup Language (CFML) {8}, Haskell {2}, Java {34}, Javascript {6}, Scala {4}, Perl {6}, PHP {25}, Python {16}, Ruby {6}, etc.
List of content management systems
Template:Content management systems
Enterprise content management (ECM): formalized means of organizing and storing an organization's documents, and other content, that relate to the organization's processes. The term encompasses strategies, methods, and tools used throughout the lifecycle of the content. ECM covers: document management, web content management, search, collaboration, records management, digital asset management, work-flow management, capture and scanning.
Web content management system (WCMS): DB (page content, metadata,), content is presented as templates, server side caching (improve performance), administration is done through browser-based interface or fat client. {managing dynamic HTML content (extremely rich media) through the web}
Document management system (DMS): computer system (or set of computer programs) used to track and store electronic documents; also capable of keeping track of the different versions modified by different users (history tracking)


Category:Wiki software

List of wikis: Wikipedia, Wikia, TV Tropes, Wiktionary, Uncyclopedia, LyricWiki, wikiHow, Ciitizendium, Wikibooks

List of biological wikis: EcoliWiki, NeuroWiki,
m:List of largest wikis
Wikidot: Polish wiki hosting corporation which owns, operates and supports the community of wiki-based web projects at, a social networking service and wiki hosting service (or wiki farm), developed in Toruń, Poland.

History of Wikis

Hypermedia: computer-based information retrieval system that enables a user to gain or provide access to texts, audio and video recordings, photographs and computer graphics related to a particular subject
HyperCard: application program created by Bill Atkinson for Apple Computer, Inc. that was among the first successful hypermedia systems before the World Wide Web; 1987. Ideological precursor to PowerPoint and the first Wiki (WikiWikiWeb)
Online office suite (online productivity suite; Office 2.0,)
Template:Wiki software [2013]:
.NET {3}
Microsoft SharePoint
Java {5}:
Confluence (software): web-based, corporate (lots of security & VPN (Virtual private network) access)
Perl {4}
PHP {8}:
Tiki Wiki CMS Groupware (TikiWiki, Tiki)
Python {3}
Ruby {2}
Comparison of wiki software
Template:Wiki topics (Wikis)

Personal Wiki[edit]

Personal wiki
Semantic Wiki:
Semantic MediaWiki
Freebase: large collaborative knowledge base consisting of metadata composed mainly by its community members. Harvested data from Wikipedia. Freebase aims to create a global resource which allows people and machines to access common information more effectively. Bought by Google in 2010 07 16.
Powerset (company): was developing a natural language search engine for the Internet in 2006. In 2008 05 11, unveiled a tool for searching a fixed subset of Wikipedia using conversational phrases rather than keywords. Microsoft bought Powerset in 2008 07 01 ⇒ Bing.
Personal knowledge management:

Social web, social networking, instant messengers, virtual communities[edit]

Category:Virtual communities

{q.v. All::Virtual worlds, MMORPGs, online life}

Template:Computer-mediated communication

Virtual community
Collaborative software (groupware): algos: Operational transformation
Collaborative real-time editor: allows several people to edit a computer file using different computers. Non-real-time collaborative editing, the users do not edit the same file at the same time (similar to revision control systems). SW: Abiword, GNU Emacs, MS Office 2010 (Sharepoint/SkyDrive); Browser-based: Apache Wave, Google Docs, Mozilla Skywriter (formerly Bespin) ⇒ Ace (from Cloud9 Editor); other: Eclipse, Inkscape, TeamViewer, Microsoft Visual Studio (VS Anywhere plugin), WhiteBoardMeeting (Skype Extra).
AppJet > Etherpad > a part of Google wave > Open source; Etherpad Lite: almost complete rewrite of the original Etherpad software.
Social networking service: only positive "Notifications on websites", death of privacy (impersonation, trolling). Template:Online social networking (Social network services):
Social network analysis software
Friendster: the grandaddy of social networks.
Facebook {q.v. Facebook}
Twitter (2006.03.21-)
Black Twitter: social-media subculture, centered around Twitter, that highlights issues of interest to the black community, particularly in the United States
South Korea:
Cyworld: social network service operated by SK Communications (Hangul: SK커뮤니케이션즈), a subsidiary of SK Telecom (Hangul: SK텔레콤). Avatars and "mini-rooms", small, decorate-able, apartment-like spaces in an isometric projection, also feature. All of this can make for a The Sims-like experience.
Naver: popular search portal in South Korea, which holds a market share of over 70% at least since 2011, continuing to 2013; launched in June 1999 by ex-Samsung employees, and it debuted as the first Web portal in South Korea that used its own proprietary search engine
Knowledge Search: information-sharing tool first launched in 2002 for Naver users
SlideShare: 2012.05.03 LinkedIn acquired SlideShare for ~$120mln.
Pulse (application): application displays news from multiple RSS feeds in a single page using a tile based interface. 2013.04.11 LinkedIn had purchased Pulse from Alphonso Labs for $90 million. personal web hosting service co-founded by Ryan Freitas, Tony Conrad and Tim Young in October 2009; bought by AOL on 2010.12.20, bought back by Conrad on 2013.02.05 for a fraction of original price paid by AOL.
Comparison of microblogging services:
using open SW: initially based on StatusNet, but from 2012.12 till 2013.07.12 switched to
Jaiku (Google; what's the relation to Google+?)
VoIP: Comparison of VoIP software (main protocols: proprietary (e.g. Skype, now owned by MS [11/05/25]), SIP, XMPP; server software: Asterisk (PBX) {by Digium} & Inter-Asterisk eXchange {also IAX2})
Behance: designs organizational products and services based on research among productive creative people and teams. Behance Network is an online portfolio platform for creative professionals across multiple industries, including photography, graphic design, illustration, and fashion. "Action Method", "The 99%".
XMPP, aka Jabber (THE precursor to GWave):
Jingle: (P2P) session control (signaling) for multimedia interactions such as in voice over IP (VoIP) or videoconferencing communications
Google Wave Federation Protocol (GWFP): near real-time communication between the computer supported cooperative work (Collaborative learning-work, Collaborative software)
Apache Wave (originally: Google Wave; Wave in a Box - server-based product): real-time collaborative editing; e-mail (Gmail), instant messaging (MSN/Windows Live, Skype), wiki (history included?), and social networking (Facebook & co). Lacking: word/text editor. 2010.08.04: suspension of stand-alone Wave development; 2012.01: all Waves were deleted. ⇒ Wave in a Box.

Computer/programming code documentation[edit]

Self-documenting (self-describing): source code that follows certain loosely-defined conventions for naming and structure
Literate programming: approach to programming introduced by Donald Knuth as an alternative to the structured programming paradigm of the 1970s. Move away from writing programs in the manner and order imposed by the computer, and instead enables programmers to develop programs in the order demanded by the logic and flow of their thoughts (but if different programmers have different programming logic flow, then they find it hard to read each other's literately programmed programs!)
Sweave: enables integration of R code into LaTeX or LyX documents.
Pweave: Sweave equivalent for Python; output to a literate environment using either reStructuredText, Sphinx or LaTeX markup; capture matplotlib graphics.
Comparison of documentation generators
Sphinx (documentation generator): uses ReStructuredText.

(Personal) information management[edit]

Operations research (decision science, management science): interdisciplinary mathematical science that focuses on the effective use of technology by organizations. In contrast, many other science & engineering disciplines focus on technology giving secondary considerations to its use.
Data proliferation
Knowledge management (KM): range of strategies and practices used in an organization to identify, create, represent, distribute, and enable adoption of insights and experiences. Such insights and experiences comprise knowledge, either embodied in individuals or embedded in organizational processes or practice. KM is in the fields of: business administration, information systems, management, library and information sciences, information and media, CS, public health, public policy. KM is within any large human organization (private, NGO, gov) within: 'business strategy', 'information technology', or 'human resource management' departments. See Personal Wiki and Reference management
Information management: entails organizing, retrieving, acquiring and maintaining information. Highly overlapping with data management; includes (digital) data maintenance (storage & co). Information continuum (the whole set of all info). Digital Continuity (data/info is available even when HW changes (e.g. storage HW)).
Personal information manager (PIM) & List of personal information managers: refers to practice and the study of the activities people perform in order to acquire, organize, maintain, retrieve and use information items such as documents (paper-based and digital), web pages and email messages for everyday use to complete tasks (work-related or not) and fulfill a person’s various roles (as parent, employee, friend, member of community, etc.). One ideal of PIM is that we always have the right information in the right place, in the right form, and of sufficient completeness and quality to meet our current need. PIM tools and technologies help us spend less time with time-consuming and error-prone activities of PIM (such as looking for information). We then have more time to make creative, intelligent use of the information at hand in order to get things done, or to simply enjoy the information itself.
Address book: standards: vCard, LDAP Data Interchange Format (LDIF; RFC 2849). SW: Thunderbird (LDIF)
Calendaring software: standards: iCalendar (RFC 5545; 1:1 with hCalendar). SW: Thunderbird:Lightning, MS Outlook (partial); Google Calendar... Mozilla Calendar Project (obsolete) & Mozilla Sunbird (obsolete; standalone version of Lightning) → Lightning (software) (add-on on Thunderbird)
Online diary planner: Yahoo Calendar, Outlook → Google Calendar

HW and SW of information management[edit]

Collections of media in: libraries, museums, ...

Digital asset management (DAM): ingestion, annotation, cataloging, storage, retrieval and distribution of digital assets
Hierarchical storage management (HSM): automatically moves data between high-cost (and fast) and low-cost (and slow) storage media. HSM turns the fast disk drives into caches for the slower mass storage devices. In terms of speed and price: SSD disks (aka flash) > HDD (SAN (Storage Area Network) fiber channel > SATA disks arrays (RAID)) > tape.

Web annotation[edit]

Social Bookmarking: method for Internet users to organize, store, manage and search for bookmarks of resources online.
Web annotation: online annotation associated with a web resource (a web page). With a Web annotation system, a user can add, modify or remove information from a Web resource without modifying the resource itself. The annotations can be thought of as a layer on top of the existing resource, and this annotation layer is usually visible to other users who share the same annotation system. In such cases, the web annotation tool is a type of social software tool:
ShiftSpace: open source (MPL / GPL / LGPL), runs on FF with Greasemonkey.
others (proprietary, closed source, online): Diigo, reddit
See also: Virtual graffiti


Template:Notetaking software & Comparison of notetaking software

Computer standards[edit]

Category:Computer standards
Category:Cloud standards
Template:Authentication APIs:
Authentication APIs
OAuth: open standard for authorization; provides a method for clients to access server resources on behalf of a resource owner (such as a different client or an end-user); complementary to, and therefore distinct from, OpenID. A growing number of social networking services (Klout, Kred, Foursquare...) promote OAuth logins to the dominant social networks (Facebook, Twitter, LinkedIn, G+,...) as the primary authentication method, over "traditional" email confirmation type processes; permissions granted typically permit the authorized application to download the entire social data stream belonging to the user, which is stored for data-mining purposes by the application provider; OAuth is acting as a component in a social engineering type scam where users of the application probably do not realize the extent of the data they are sharing. OAuth 2.0 is the next evolution of the OAuth protocol and is not backwards compatible with OAuth 1.0.
OpenID: allows users to be authenticated by certain co-operating sites (known as Relying Parties or RP) using a third party service, eliminating the need for webmasters to provide their own ad hoc systems and allowing users to consolidate their digital identities. Providers include Google, Yahoo!, PayPal, BBC, AOL, LiveJournal, MySpace, IBM, Steam, Sherdog, Orange and VeriSign.
Mozilla Persona: decentralized authentication system for the web based on the open BrowserID protocol prototyped by Mozilla.

System software[edit]

Category:Information technology management
Category:System software
Category:System administration
Category:Computer configuration
Category:Computer systems
Category:Embedded systems
Category:Real-time computing
Environment variable: set of dynamic named values that can affect the way running processes will behave on a computer. Default Values on Microsoft Windows: %APPDATA%, %PATH%, %PROGRAMFILES%, %PROGRAMFILES(X86)%, %TEMP% and %TMP%, %USERPROFILE%, %WINDIR%...
Firmware: combination of persistent memory and program code and data stored in it; typical examples of devices containing firmware are embedded systems (such as traffic lights, consumer appliances, and digital watches), computers, computer peripherals, mobile phones, and digital cameras. Firmware is held in non-volatile memory devices such as ROM, EPROM, or flash memory. Firmware such as the program of an embedded system may be the only program that will run on the system and provide all of its functions. Flashing (or flashing firmware) refers to the overwriting of existing firmware or data on ROM modules present in an electronic device with new data. Firmware hacking. Security risks: open source firmware vs closed source.
BIOS (Basic Input/Output System; System BIOS, ROM BIOS, PC BIOS): de facto standard defining a firmware interface; BIOS software is built into the PC, and is the first software run by a PC when powered on. Fundamental purposes of the BIOS are to initialize and test the system hardware components, and to load a bootloader or an operating system from a mass memory device. Modern operating systems ignore the abstraction layer provided by the BIOS and access the hardware components directly.
Real-time computing (RTC; reactive computing): study of hardware and software systems that are subject to a "real-time constraint", for example operational deadlines from event to system response. Real-time programs must guarantee response within strict time constraints, often referred to as "deadlines". Criteria for real-time computing:
  • Hard – missing a deadline is a total system failure.
  • Firm – infrequent deadline misses are tolerable, but may degrade the system's quality of service. The usefulness of a result is zero after its deadline.
  • Soft – the usefulness of a result degrades after its deadline, thereby degrading the system's quality of service.
Real-time operating system (RTOS)

Main programs[edit]

Choosing "main programs, stacks": AlternativeTo

{q.v. Hackers, freedom, free software culture}

Operating system (OS)[edit]

Category:Computer file systems
Category:Disk file systems
Category:Semantic file systems
Category:Operating system technology
Category:Concurrency (computer science)
Category:Concurrent computing
Category:Threads (computing)
Category:Threads (computing)

{q.v. System software}

Comparison of operating systems
Comparison of operating systems#Commands: ls vs dir, cd vs chdir, traceroute vs tracert, ifconfig vs ipconfig...

Plan 9 from Bell Labs: distributed OS; based on Unix
Comparison of file systems:
NTFS: B+ tree; max_len(filename)=255 UTF-16 for Win32 UTF-16 except: U+0000 (NUL) / (slash) \ (backslash) : (colon) * (asterisk) ? (Question mark) " (quote) < (less than) > (greater than) and | (pipe); dates recorded: Creation, modification, POSIX change, access; Date resolution=100 ns; earliest example: Win NT 3.1

X86-64: aka: AMD64, Intel 64 (IA-32e, EM64T), x64, is x86 instruction set fully backwards compatible with 32-bit code. Not to be confused with IA-64 (Itanium)

Home directory: file system directory on a multi-user OS containing files for a given user of the system; specifics of the home directory is defined by OS. Windows NT: %UserProfile%; Unixes: $HOME and ~/.
Device file (device, special file): interface for a device driver that appears in a file system as if it were an ordinary file; allow software to interact with a device driver using standard input/output system calls, which simplifies many tasks and unifies user-space I/O mechanisms

Exotic stuff:

WinFS (Windows Future Storage): code name for a cancelled data storage and management system project based on relational databases, developed by Microsoft and first demonstrated in 2003 as an advanced storage subsystem for the Microsoft Windows operating system, designed for persistence and management of structured, semi-structured as well as unstructured data.

Concurrency, parallelization[edit]

Category:Concurrency (computer science)
Category:Concurrent computing
Category:Threads (computing)
Template:Parallel computing: OpenMP (Open Multi-Processing), MPI (Message Passing Interface); threading: simultaneous multithreading (SMT) vs. temporal multithreading
Automatic parallelization
{q.v. GPGPU, CUDA}
Concurrency (computer science): property of systems in which several computations are executing simultaneously, and potentially interacting with each other. The computations may be executing on multiple cores in the same chip, preemptively time-shared threads on the same processor, or executed on physically separated processors.
Dining philosophers problem
Concurrency control: ensures that correct results for concurrent operations are generated, while getting those results as quickly as possible.
Mutual exclusion: refers to the requirement of ensuring that no two concurrent processes are in their critical section at the same time; it is a basic requirement in concurrency control, to prevent race conditions.
Race condition: behavior of an electronic or software system where the output is dependent on the sequence or timing of other uncontrollable events.
Critical section: piece of code that accesses a shared resource (data structure or device) that must not be concurrently accessed by more than one thread of execution. A critical section will usually terminate in fixed time, and a thread, task, or process will have to wait for a fixed time to enter it (aka bounded waiting). Some synchronization mechanism is required at the entry and exit of the critical section to ensure exclusive use, for example a semaphore.
Concurrent computing: form of computing in which several computations are executing during overlapping time periods – concurrently – instead of sequentially (one completing before the next starts). This is a property of a system – this may be an individual program, a computer, or a network – and there is a separate execution point or "thread of control" for each computation ("process"). A concurrent system is one where a computation can make progress without waiting for all other computations to complete – where more than one computation can make progress at "the same time". Examples: HW: CPU (Instruction pipeline CPU makes the instruction cycle concurrent), GPU (Graphics pipeline in GPU); programming: channel, coroutine, (future, promise, delay); OS: (Computer multitasking, including both cooperative multitasking and preemptive multitasking), (time-sharing, which replaced sequential batch processing of jobs with concurrent use of a system), process, thread.
Thread (computing): of execution is the smallest sequence of programmed instructions that can be managed independently by a scheduler (typically as part of OS). Multiple threads can exist within the same process and share resources such as memory, while different processes do not share these resources.
Readers–writers problem: first and second readers-writers problems are examples of a common computing problem in concurrency. The two problems deal with situations in which many threads must access the same shared memory at one time, some reading and some writing, with the natural constraint that no process may access the share for reading or writing while another process is in the act of writing to it.
Readers–writer lock: synchronization primitive that solves one of the readers-writers problems. A readers-writer lock is like a mutex, in that it controls access to a shared resource, allowing concurrent access to multiple threads for reading but restricting access to a single thread for writes (or other changes) to the resource.
Lock (computer science): synchronization mechanism for enforcing limits on access to a resource in an environment where there are many threads of execution. A lock is designed to enforce a mutual exclusion concurrency control policy.
Parallel computing: form of computation in which many calculations are carried out simultaneously, operating on the principle that large problems can often be divided into smaller ones, which are then solved concurrently ("in parallel").
Amdahl's law: is used to find the maximum expected improvement to an overall system when only part of the system is improved. Often used in parallel computing to predict the theoretical maximum speedup using multiple processors. The speedup of a program using multiple processors in parallel computing is limited by the time needed for the sequential fraction of the program.
Gustafson's law: is a law in computer science which says that computations involving arbitrarily large data sets can be efficiently parallelized. Gustafson's Law provides a counterpoint to Amdahl's law, which describes a limit on the speed-up that parallelization can provide, given a fixed data set size.
Frequency scaling: technique of ramping a processor's frequency so as to achieve performance gains. Frequency ramping was the dominant force in commodity processor performance increases from the mid-1980s until roughly the end of 2004.


GNU Core Utilities (coreutils: textutils, shellutils, fileutils):
Shred (Unix): used to securely delete files and devices so that they can be recovered only with great difficulty with specialised hardware, if at all. Specifics for SSD/Flash vs. HDD type storage?
Comparison of Linux distributions [13/04/20]: Ubuntu & co (11; based on Debian), Red Hat Enterprise Linux {aka RHEL} (5; based on Fedora (RHL)), Debian (46), Arch Linux (2), Fedora (5; superseded/based on RHL), Gentoo (4), Slackware (10; based on Softlanding Linux System), CentOS (2; based on RHEL), SUSE family (SUSE Linux, openSUSE, SUSE Linux Enterprise Server, Novell Open Enterprise Server), Knoppix (6; based on Debian), Mandriva (3; based on RHL). Red Hat Linux {aka RHL; discontinued in 2004, replaced by Fedora} (8)
List of Linux distributions: Debian-based {45; total=45+5+15+48=113} (Knoppix-based {5}; Ubuntu-based (Official distributions {15}; Third-party distributions {48})); Gentoo-based {11} [most famous: Chromium OS]; Pacman-based {8} [most famous: Arch Linux]; RPM-based {16; total=16+20+11+4=51} [most famous: Red Hat Linux (Fedora + RHEL) and SUSE Linux] (Fedora-based {20}; RHEL-based {11}; Mandriva Linux-based {4}); Slackware-based {20; total=24} (Slax-based {4}); Others {47} (can not be categorized under the preceding sections).
Ubuntu: based on Debian; has LTS version (long-term support: 5 years); used by Wikimedia
CentOS: based on RHEL, which is based on Fedora; heavily modified and used by Facebook
Arch Linux: the extreme Linux; "do it yourself"
Linux (in general): has problems with HW which is not open (e.g. Nvidia newest video cards (but nowadays Nvidia puts some effort to make binary blobs for Ubuntu)) and with binary-blob drivers (SW) written for such HW for Linux. Also DirectX cannot be easily (?) ported to Linux even through Wine, though OpenGL is on Linux. Flash (Adobe) is available on Linux. Over the time, more and more vendors open up their HW specifications or provide their own drivers for Linux.
List of Linux distributions endorsed by the Free Software Foundation: meet criteria for a free system distribution, as defined by Free Software Definition.
Chromium OS (by Google): designed to work exclusively with web applications; open source development version of Google Chrome OS.
Chrome OS: released in 2011.06.15 with Chromebooks from Samsung (Acer in July).
Filesystem Hierarchy Standard (FHS): defines the directory structure and directory contents in Unix and Unix-like operating systems
Unix filesystem: file system is considered a central component of the operating system: / :: root, /bin, /boot, /dev, /etc, /home :: user stuff, /lib, /lib64, /media :: USB sticks and external storage media go there, /mnt, /opt, /proc, /root, /sbin, /srv, /sys, /tmp, /usr (/usr/bin, /usr/include, /usr/lib, /usr/libexec, /usr/local), /var (/var/log, /var/mail, /var/spool, /var/tmp).
boot: holds files used in booting the operating system. vmlinuz, initrd.img,; LILO; GRUB.

Windows NT[edit]

Category:Windows components
Template:Microsoft Windows components & List of Microsoft Windows components:
  1. Management tools:
Windows Task Manager (VM Size : process' private bytes, System Idle Process is the first process that is created when Windows is loaded, and it always has a process ID of 0...)
  1. Windows shell
Special folder: Application Data (@XP: '%USERPROFILE%\Application Data', @Win7: '%USERPROFILE%\AppData\Roaming') vs. Local Application Data (@XP: '%USERPROFILE%\Local Settings\Application Data', @Win7: '%USERPROFILE%\AppData\Local'). E.g. Firefox stores all user details (bookmarks, settings, ...) in "Application Data" while Google Chrome stores all that in "Local Application Data".
My Documents: system commonly uses to store a user's documents, music, pictures, downloads, and other files. Group Policy: administrators can configure the location of "My Documents".
  1. Architecture:
Windows Registry: hierarchical database that stores configuration settings and options on Microsoft Windows operating systems; contains settings for low-level operating system components and for applications running on the platform that have opted to use the registry. HKEY_LOCAL_MACHINE (HKLM) : "HKLM\SOFTWARE" subkey contains software and Windows settings (in the default hardware profile), organized by software vendor (with a subkey for each); "HKLM\SOFTWARE\Wow6432Node" key is used by 32-bit applications on a 64-bit Windows OS, and is equivalent but separate to "HKLM\SOFTWARE".
  1. Security:
User Account Control (UAC; introduced in Windows Vista and Windows Server 2008): aims to improve the security of Microsoft Windows by limiting application software to standard user privileges until an administrator authorizes an increase or elevation.
  1. Compatibility:
WoW64: to run 32-bit Windows applications on 64-bit versions of Windows. For 16-bit (e.g. Windows 3.x) on 32-bit, see Windows on Windows.
Command Prompt (cmd.exe): Microsoft-supplied command-line interpreter on OS/2, Windows CE and on Windows NT-based OSs (2000; XP; Vista; 7; 8; Server: 2003, 2008, 2008 R2, 2012); analog of COMMAND.COM in MS-DOS and Windows 9x systems.
Batch file
List of DOS commands: CHDIR or CD; DIR (Displays a list of files and subdirectories in a directory); REM (Records comments (remarks) in a batch file or CONFIG.SYS)
Template:Windows commands:
  1. File system (basic): dir
  2. File system (advanced):
    tree: graphically displays the directory structure of a drive or path.
  3. Processes: Shutdown
  4. User environment: pushd
  5. networking: ipconfig, netstat (Internet socket), nslookup,
    Net use: drive mapping ("mapping" in MS terminology)
Windows Server 2008 & Windows Server 2008 R2 (release 2): Hyper-V (hypervisor-based virtualization system for x86-64), aka Windows Server Virtualization
Physical Address Extension (PAE): Windows Server 2003 & 2003 R2 (16 GB RAM for 32-bit system); HW must support this: Intel Pentium Pro & later series, AMD Athlon & later; x86 architecture is augmented; still no single application can access all RAM simultaneously (above 4 GB limit); the mapping is applied differently for each process (so: process or application can't exceed 4 GB RAM?)
Windows Runtime: platform-homogeneous application architecture on the Windows 8 operating system. WinRT applications natively support both the x86 and ARM architectures, and also run inside a sandboxed environment to allow for greater security and stability. API definitions are stored in ".winmd" files, which are encoded in ECMA 335 metadata format, the same format that .NET Framework uses with a few modifications.
C++/CX: language extension for C++ compilers from Microsoft that enables C++ programmers to write programs for the new Windows Runtime platform, or WinRT.
Windows 10: pcoming release of the Microsoft Windows operating system. Unveiled in 2014.09.30, it will be released in late 2015.
WHQL Testing (Windows Hardware Quality Labs testing): products that pass the WHQL tests get to use a "Certified for Windows" logotype, which certifies that the hardware or software has had some share of testing by Microsoft to ensure compatibility.
Windows Search (Windows Desktop Search (WDS) on Windows XP and Windows Server 2003): indexed desktop search platform created by Microsoft for Microsoft Windows. Advanced Query Syntax (AQS): advanced property-based queries; boolean operations on searched terms (AND, OR, NOT); further filters based on file metadata or file type; supports wildcard prefix matching searches; includes several SQL-like operators like GROUP BY; locale dependent and uses different keywords in international versions of Windows 7.
Group Policy: feature of the Microsoft Windows NT OSs; control the working environment of user accounts and computer accounts. Centralized management and configuration of OSs, applications, and users' settings in an Active Directory environment. Set of such configurations is called a Group Policy Object (GPO). gpupdate. GPOs are processed in this order: Local, Site (Active Directory), Domain (Windows domain), Organizational Unit (Active Directory organizational unit (OU)); Resultant Set of Policy (RSoP). gpresult (specifically gpresult /R for a starter). Inheritance; WMI filtering. Local Group Policy (LGP). Group Policy preferences. Group Policy Management Console. Advanced Group Policy Management
Active Directory (AD): directory service implemented by Microsoft for Windows domain networks. AD domain controller authenticates and authorizes all users and computers in a Windows domain type network—assigning and enforcing security policies for all computers and installing or updating software. For example, when a user logs into a computer that is part of a Windows domain, Active Directory checks the submitted password and determines whether the user is a system administrator or normal user.
Roaming user profile: concept in MS Windows NT OSs; allows users with a computer joined to a Windows Server domain to log on to any computer on the same network and access their documents and have a consistent desktop experience, such as applications remembering toolbar positions and preferences, or the desktop appearance staying the same.
Windows domain: form of a computer network in which all user accounts, computers, printers and other security principals, are registered with a central database (called a directory service) located on one or cluster of central computers known as domain controllers.
Workgroup (computer networking): MS's technology for a peer-to-peer Windows computer network.
Domain controller (DC): Microsoft Server that responds to security authentication requests (logging in, checking permissions, etc.) within the Windows domain.

Internet browser[edit]

Template:Web browser engines (aka layout engines): browser layout engines; browsers are the main applications nowadays; everything can be embedded into the browser, everything can be done through the browser; browsers are small windows into Internet(=databases, slowly becoming the sum of human knowledge, the edge of technology, law, ethics, philosophy, sciences, mathematics, ...)
Firefox: Gecko
Google Chrome: WebKit until version 27, version 28 and beyond uses Blink (except iOS: still uses WebKit)
WebKit: layout engine software component for rendering web pages in web browsers. It powers Apple's Safari web browser and was previously used in Google's Chrome web browser. WebKit's HTML and JavaScript code was originally a fork of the KHTML and KJS libraries from KDE, and has now been further developed by individuals from KDE, Apple, Google, Nokia, Bitstream, BlackBerry, Igalia, and others. In 2013.04.3, Google announced that it had forked WebCore, a component of WebKit to be used in future versions of Google Chrome and Opera under the name Blink.
Blink (layout engine): web browser engine developed as part of the Chromium project by Google with contributions from Opera Software ASA, Intel, Samsung and others; used in Chrome starting at version 28, Opera (15+), Amazon Silk and other Chromium based browsers as well as Android's (4.4+) WebView and Qt's upcoming WebEngine.
The main point in browser comparison: List of Internet Explorer extensions, List of Firefox extensions, Chrome Extensions. As of [11/02/02 5:43:54 PM] the FF list is the greatest... But, Electrolysis (Out-of-process tabs) is NOT in FF4 only in FF4 mobile, while Internet Explorer 8#Performance and stability "runs the browser frame and tabs in separate processes" and Chrome google#Security&Chrome google#Stability: "multi-process architecture" ("per-tab processes").
Google Native Client, aka NaCl: sandboxing technology for running a subset of Intel x86 native code using software-based fault isolation on a web browser safely.
Local shared object (LSOs; flash cookies): pieces of data that websites which use Adobe Flash may store on a user's computer. Since Firefox 4 flash cookies are equal to HTTP cookies and there is no way to manage these two types of cookies in different ways.
Zombie cookie: any HTTP cookie that is recreated after deletion from backups stored outside the web browser's dedicated cookie storage, in a breach of browser security. This makes them very difficult to remove.
Evercookie: JavaScript-based application which produces zombie cookies in a web browser that are intentionally difficult to delete. 2010.09.13 Samy Kamkar released v0.4 beta, as open source, a highly persistent cookie he called an Evercookie. Uses many mechanisms to create new cookies (HTTP cookies; Flash cookies; HTTP ETags; Web history; Web cache; Silverlight Isolated Storag; HTML5: Session, Local, Global, DB (via SQLite) Storage...)



Mozilla: free software community best known for producing the Firefox web browser (also Thunderbird); uses, develops, spreads and supports Mozilla products and works to advance the goals of the Open Web; supported institutionally by the Mozilla Foundation and its tax-paying subsidiary, the Mozilla Corporation.
Web browser:
Firefox (Mozilla Firefox): FOSS web browser for Windows, OS X, and Linux, with a mobile version for Android, by the Mozilla Foundation and its subsidiary, the Mozilla Corporation.
About:config : see URI
History of Firefox: 1.0, 1.5, 2, 3, 3.5, 3.6, (4.0); Rapid release: 5-33 [2014]. Extended Support Release (ESR): 10, 17, 24, 31.
Gecko (software): web browser engine used in many applications developed by Mozilla Foundation and the Mozilla Corporation (notably the Firefox web browser including its mobile version and their e-mail client Thunderbird), as well as in many other open source software projects.
Firefox for mobile
Add-on (Mozilla): installable enhancements to the Mozilla Foundation's projects, and projects based on them.
Mozilla Add-ons: official Mozilla Foundation repository for add-ons for Mozilla software, including Mozilla Firefox, Mozilla Thunderbird, SeaMonkey, and Mozilla Sunbird.
MozillaZine: unofficial Mozilla website that provides information and support for products like Firefox and Thunderbird; active Mozilla webforum, and a community-driven knowledge base of information about Mozilla products.
See also
List of Firefox extensions
Vimperator: forked from the original Firefox extension version of Conkeror and designed to provide a more efficient user interface for keyboard-fluent users. The design is heavily inspired by the Vim text editor, and the authors try to maintain consistency with it wherever possible.
Pentadactyl: forked from the Vimperator and designed to provide a more efficient user interface for keyboard-fluent users. The design is heavily inspired by the Vim text editor, and the authors try to maintain consistency with it wherever possible.
Zotero {q.v. Work::Citation, references, SW, reference management}

Text editor, regular expressions[edit]

Category:Formal languages
Category:Pattern matching
Category:Regular expressions
Regular expression (regex, regexp): regular expression processor; ? :: zero or one; * :: zero or more; + :: one or more. Expressive power and compactness; Deciding equivalence of regular expressions. Standards: POSIX basic and extended (. ; [ ] ; [^ ] ; ^ ; $ ; ( ) ; \n ||n is a digit 1-9|| ; * ; {m,n} ); POSIX extended ( ? ; + ; | ). BRE, ERE, and SRE for Basic, Extended, and Simple Regular Expressions. SRE is deprecated, in favor of BRE, as both provide backward compatibility. Character classes; Standard Perl
Comparison of regular expression engines: the most powerful are: Perl (THE regex language) and Perl Compatible Regular Expressions (PCRE). Both have: Unicode support, named capture, recursion. PCRE has additionally: native UTF-16 and UTF-8 support; multi-line matching.
Vim (text editor) vs Emacs vs Notepad (software) (→ Notepad2 (305 KiB), Notepad++ (7.58 MB), Notepad+ (-1996, ver 1.11))

Family tree:

QED (text editor) (1965-1966; "quick editor") → Ed (text editor) (1971)
Ex (text editor) (1976; EXtended) → Vi (1976) → Vim (Vi clone; 1991)
sed (stream editor) → AWK (1977, 1985-1988) → Perl (1987)

Utility software[edit]

Category:Utility software
Category:File comparison tools
Category:Utility software by type
Category:Data differencing
File comparison: examples: diff, cmp, FileMerge, WinMerge, Beyond Compare, and Microsoft File Compare.
Comparison of file comparison tools: the most important features to be compared: Show in-line changes, Directory comparison, Binary comparison, Moved lines, 3-way comparison, Merge, Structured comparison; the best according to these criteria are:
WinMerge (GPL; OS: Win)
Meld (software) (GPL; OS: Unix-like): they kinda have Win installation, because it only depends on Python and PyGTK, but...
WinDiff (by MS)
ExamDiff Pro (proprietary; OS: Win)
Devart Czech company, produces: Code Compare (proprietary; OS: Win)
Diffuse (GPL; in Python)

Computer security software; Privacy software[edit]

Category:Utility software by type
Category:Computer security software
Category:Privacy software
Tails (operating system) (The Amnesic Incognito Live System): security-focused Debian-based aimed at preserving privacy and anonymity; next iteration of development on the previous Gentoo-based Incognito Linux distribution. All its outgoing connections are forced to go through Tor, and direct (non-anonymous) connections are blocked. The Tor Project has provided most of the financial support for development.
Pretty Good Privacy (PGP; 1991-): data encryption and decryption computer program that provides cryptographic privacy and authentication for data communication
GNU Privacy Guard: alternative to the PGP suite of cryptographic software.
Off-the-Record Messaging (OTR): cryptographic protocol that provides strong encryption for instant messaging conversations; uses a combination of the AES symmetric-key algorithm, the Diffie–Hellman key exchange, and the SHA-1 hash function.

Media players[edit]

Comparison of media players: whole list
Comparison of video player software ("video players" are defined as any media player which can play video, even if it can also play audio files.)
Comparison of audio player software ("audio players" are defined as any media player which can only play audio files)
Comparison of portable media players
List of codecs
Comparison of container formats


VLC media player
Media Player Classic
K-Lite Codec Pack
Content accessing:


Winamp: full (?) support of ID3 even for non-MP3 files
Songbird: not full support of ID3; uses Taglib metadata handler
Tag editor
Audio tag formats: ID3 (only for MP3s; ID3v1; ID3v2: Unicode support), Vorbis comment (only in Vorbis, FLAC, Theora, Speex), APE tag (APEv1; APEv2: Unicode)

Media editors[edit]

4D editing (sound, video, 2D, 3D, vector, raster) {q.v. 3D, 2D, (4D = space-time), emedia}
2D editing
GIMP (GEGL beta)
Ai (Adobe Illustrator)
Inkscape (SVG)
raster+vector: Photoshop
Image organizer:
Digikam [3]: "Be carreful digiKam is not as stable under windows as under linux because of some bugs in the underlying KDE libs" {11/03/09}

Computer mediated communication[edit]

{q.v. Social web, social networking, instant messengers, virtual communities}

Category:Computer-mediated communication
Category:Bulletin board systems
Category:Instant messaging
Category:Internet forums
Category:Online chat
Category:Social networking services
Category:Voice over IP
Computer-mediated communication (CMC): any communicative transaction that occurs through the use of two or more electronic devices; research on CMC focuses largely on the social effects of different computer-supported communication technologies. Synchronous, asynchronous. IMs, VoIP, Email.

Internet forums, Internet communication, Internet news[edit]

Category:Virtual communities
Category:Internet forums
Category:News media
Usenet: worldwide distributed Internet discussion system; users read and post messages (called articles or posts, and collectively termed news) to one or more categories, known as newsgroups; resembles BBS; precursor to Internet forums. Can be superficially regarded as a hybrid between email and web forums. Discussions are threaded, as with web forums and BBSes, though posts are stored on the server sequentially. BBS vs Usenet: Usenet - absence of a central server and dedicated administrator; distributed among a large, constantly changing conglomeration of servers that store and forward messages to one another in so-called news feeds. Eternal September (September that never ended). Archiving of the most useful or whole of Usenet ⇒ Google Groups (Deja News → (Google bought) 1995.03-2001 + 1981.05-1991.06 (University of Western Ontario with the help of David Wiseman and others, and were originally archived by Henry Spencer at the University of Toronto's Zoology department) + 1991.late-1995.early (Kent Landfield from the NetNews CD series[80] and Jürgen Christoffel from Fraunhofer Society) + 2000.08 (Google)).
Reddit (reddit): entertainment, social networking service and news website where registered community members can submit content, such as text posts or direct links. Only registered users can then vote submissions "up" or "down" to organize the posts and determine their position on the site's pages. Organized by areas of interest called "subreddits". One of the most popular subreddits is IAmA ("I Am A") where a user may post "AMAs" (for "Ask Me Anything"), or similarly "AMAAs" ( for "Ask Me Almost Anything").
Controversial Reddit communities


Category:Data synchronization
Category:Free backup software
Data synchronization SW:
File synchronization:
Synkron: cross-platform; Qt based GUI
Rsync & Grsync: Unixes (through Cygwin on Win)


Hardware virtualization: Full virtualization (complete simulation of the underlying hardware.The obvious test of virtualization is whether an operating system intended for stand-alone use can successfully run inside a virtual machine.):
Virtual machine (VM): simulation of a machine (abstract or real) that is usually different from the target machine (where it is being simulated on). Virtual machines may be based on specifications of a hypothetical computer or emulate the computer architecture and functions of a real world computer.
Comparison of platform virtual machines
VirtualBox (Oracle VM VirtualBox): host: Linux, Mac OS X, Windows XP, Windows Vista, Windows 7, Solaris, and OpenSolaris; guest: versions and derivations of Windows, Linux, BSD, OS/2, Solaris, and others; 64-bit guests (64-bit hosts with CPU virtualization extensions). Initially made by Innotek, bought by Sun Microsystems which was bought by Oracle.
VMware's virtualization:
VMware Player: freeware, but closed source.
VMware Workstation: suitable for desktops, the full options which are not available in VMware player


Office software is everything which "common office worker" uses "every day": internet browser, Word (replaceable by desktop publishing SW, TeX & LaTeX for advanced usage), Excel (irreplaceable; only programming), Email program (replaced by browser). There is no single program which does all of this: from document layout/typesetting, presenting to the user (maybe even printing/publishing), to text and media editing. BUT, there are many SW stacks which try very hard to integrate the various media formats into a single document:

Microsoft Stack: MS Office + MS Internet Explorer
MediaWiki (supports 2D/3D raster/vector graphics, animation, but not interactive; maths, various (ancient and extinct included) scripts (Unicode)), and this SW package outputs HTML/XHTML which are viewable in one of the most advanced, extremely frequently used programs: (web/Internet) browser.
TeX and family + some media "viewer": specifically for PDF, HTML and DVI.
Adobe Stack: mainly in 2D raster/vector editing + publishing (including PDF format and Adobe Professional)
OpenOffice stack: many forks
Word processor: NOT desktop publishing, NOT markup language (not useful for 1000+ pages?). Vs. text editor, media editors (audio-visual media: 2D/3D graphics, sound, animation/movies, ...)
Comparison of office suites#Comparison of general and technical information


A chart of derivatives of StarOffice, via the open-sourcing of
StarOffice (1985-2010.12) (2002.05.01-2011.04.12; OpenOffice): was an open-source office suite. It was an open-sourced version of the earlier StarOffice, which Sun Microsystems acquired in 1999 for internal use. Sun open-sourced the software in 2000.07 as a competitor to Microsoft Office, releasing version 1.0 on 2002.05.01. In 2011 Oracle Corporation, the then-owner of Sun, announced that it would no longer offer a commercial version of the suite and that it was donating the project to the Apache Foundation. Apache renamed the software Apache OpenOffice. Other active successor projects include LibreOffice and NeoOffice. Component applications: Writer, Calc, Impress, Draw, Math, Base.
LibreOffice (2011.01.25-): developed by The Document Foundation. It was forked from in 2010, which was an open-sourced version of the earlier StarOffice. Component applications: Writer, Calc, Impress, Draw, Math, Base. Written in: C++, Java, Python.
Apache OpenOffice (2012.05.08-): successor project of that incorporates code merged from the IBM Lotus Symphony code base. Component applications: Writer, Calc, Impress, Draw, Math, Base. Written in: C++, Java.
NeoOffice (Mac OS X 10.8+):

Microsoft Office[edit]

Microsoft Office:
Microsoft Word (Microsoft (Office) Word): used for nicely & fast printing of graphics; up to and including Word 2003 .doc was used; Word 2007 and later has .docx, the Ribbon. MS Word vs Scrivener (software).
Microsoft Excel
Numeric precision in Microsoft Excel: works only to limited accuracy because it retains only a certain number of figures to describe numbers. Although Excel can display 30 decimal points, its precision for a specified number is confined to 15 significant figures, and calculations may have an accuracy that is even less due to three issues: round off, truncation, and binary storage.


Template:PDF software: Xpdf
Portable Document Format (PDF): represent documents in a manner independent of application software, hardware, and operating systems.
Specialized subsets of PDF
PDF/X (since 2001): umbrella term for several ISO standards that define a subset of the PDF standard; purpose: to facilitate graphics exchange, and it therefore has a series of printing related requirements which do not apply to standard PDF files (e.g., in PDF/X-1a all fonts need to be embedded and all images need to be CMYK or spot colors. PDF/X-3 accepts calibrated RGB and CIELAB colors, while retaining most of the other restrictions of PDF/X-1a).
PDF/A (since 2005): ISO-standardized version of PDF specialized for the digital preservation of electronic documents. PDF/A-1: based on PDF 1.4 (ISO 19005-1:2005); PDF/A-2: based on PDF 1.7 (ISO 19005-2:2011). PDF/A documents must be 100% self-contained (e.g. no font-linking; contains all text, raster and vector graphics, color information; encryption is forbidden).
PDF/UA (PDF/Universal Accessibility): International Standard for accessible PDF technology; provides accessibility for people with disabilities who use assistive technology such as screen readers, screen magnifiers, joysticks and other technologies to navigate and read electronic content.
Association for Information and Image Management (AIIM; founded in 1943 as the National Microfilm Association): non-profit organization that provides education, research, and best practices for document management and enterprise content management (aka electronically stored information)
PDF/E (since 2008): subset of PDF 1.6 (ISO 24517-1:2008); designed to be an open and neutral exchange format for engineering and technical documentation.
PDF/VT (since 2010)
PDF/UA (~2011?)
Competitors to PDF: Open XML Paper Specification (OpenXPS) {by MS}, DjVu (designed primarily to store scanned documents)

Desktop publishing[edit]

Category:Typography software
Category:Printing software
Category:Publishing software
Category:Graphics software
Category:Desktop publishing software


All::Arts, media\Distribution\Publishing


Desktop publishing (DTP): creation of documents using page layout skills on PC; produce text and images with attractive layouts and typographic quality comparable to traditional typography and printing, so DTP is also the main reference for digital typography. TeX, LaTeX; HTML. math & XML support: do DTP SW packages use MathML or Tex/LaTeX, or other for maths?

Portability of applications, programs[edit]

Portable application: Depending on the operating system, portability is more or less complex to implement. A portable application does not leave its files or settings on the host computer. Typically this means that the application does not write to the Windows registry or store its configuration files (such as an INI file) in the user's profile; instead, it stores its configuration files in the program's directory.
Portable application creators
Firefox Portable (Mozilla Firefox, Portable Edition)


Autohotkey (AHK), FontForge

Software add-ons, extensions, themes[edit]

q.v. "Internet browser"

Category:Software add-ons
Plug-in (computing) (plugin, extension)
Browser extension
Theme (computing): preset package containing graphical appearance details, used to customize the look and feel of an operating system or a piece of computer software.

SW as a service[edit]

Wikipedia (q.v. Wikipedia::Policy and politics, economics)
List of question-and-answer websites
Experts-Exchange {Reg. req.=YES}: killed by Stack Overflow & Stack Exchange.
Stack Overflow (2008-) {CC-BY-SA 3.0}: created by Jeff Atwood and Joel Spolsky; more open alternative to earlier forums such as Experts Exchange ("anti Experts Exchange site"). Server Fault, Super User, Meta Stack Overflow, Area 51, Careers, Stack Apps followed.
Stack Exchange Network {CC-BY-SA 3.0}: group of question-and-answer Web sites on topics in many different fields, each site covering a specific topic, where questions, answers, and users are subject to a reputation award process.
Wikipedia:Reference desk {CC-BY-SA 3.0}: works like a library reference desk. Note: legal or medical advice is prohibited.
Quora (2009-) {Reg. req.=YES} (2005-) {Reg. req.=NO}
WikiAnswers (1996-; Ask Jeeves) {Reg. req.=NO}
Discourse (software): open source Internet forum software application founded in 2013 by Jeff Atwood, Robin Ward, and Sam Saffron.

Computer (machine)-human interaction, user interfaces[edit]

Category:Human–machine interaction
Category:Human–computer interaction
Category:Ubiquitous computing
Category:Ambient intelligence
Category:Internet of Things
Category:User interfaces
Category:Distributed computing architecture
Category:Ubiquitous computing
Category:Widget toolkits
Human–computer interaction (HCI; man–machine interaction (MMI), computer–human interaction (CHI)):
List of human–computer interaction topics:
Motion pictures with interesting user interfaces: The Matrix (1999)
Hick's law: time it takes for a person to make a decision as a result of the possible choices one has. Log relationship.
Fitts's law: model of human movement primarily used in human–computer interaction and ergonomics that predicts that the time required to rapidly move to a target area is a function of the distance to the target and the size of the target (for hand controlled mouse).
Baby Duck Syndrome
Text editor: Brace matching, Code folding (text folding), Autocomplete (IntelliSense), Syntax highlighting, Line number. Less common features: Elastic tabstop.
IBM Common User Access (CUA): standard for user interfaces to OSs and computer programs; developed by IBM and first published in 1987 as part of their Systems Application Architecture. Set strict rules about how applications should look and function; aim was to bring about harmony among DOS applications, which until then had independently implemented different user interfaces. Much more ambitious goal of unifying all UI— from personal computers to minicomputers to mainframes. CUA contains standards for the operation of elements such as dialog boxes, menus and keyboard shortcuts.
Internet of Things: uniquely identifiable objects and their virtual representations in an Internet-like structure; radio-frequency identification (RFID) is often seen as a prerequisite for the Internet of Things. If all objects and people in daily life were equipped with identifiers, they could be managed and inventoried by computers.
Direct manipulation interface: continuous representation of objects of interest, and rapid, reversible, incremental actions and feedback. E.g. resizing a graphical shape, such as a rectangle, by dragging its corners or edges with a mouse (2D, 3D graphics editors).
Cut, copy, and paste, Undo (redo; branching undo tree): Non-destructive editing (2D, film).
Spell checker (spell check)
Graphical user interface (GUI)
Caret navigation: kind of keyboard navigation where a caret (aka "text cursor", "text insertion cursor", or "text selection cursor") is used to navigate within a text document. Used in: Vim, Emacs, Firefox & IE ("caret browsing"), word processors, desktop publishing tools.
Tabbing navigation (Tab/Shift + Tab);
Marching ants: animation technique often found in selection tools of computer graphics programs
Template:Graphical control elements
Template:X desktop environments and window managers (for X11):
Desktop environments (DEs): GNOME, KDE (KDE Software Compilation (KDE SC)); Xfce
Controversy over GNOME 3: Unity (user interface) (uses GNOME 3) vs. GNOME Shell (uses GNOME 3) vs MATE (desktop environment) (uses GNOME 2)
WIMP (computing)
Graphical control element (widget): element of interaction in GUI, such as a button or a scroll bar. Controls are software components that a computer user interacts with through direct manipulation to read or edit information about an application.
Template:Widget toolkits {widget toolkit, widget library, or GUI toolkit}: set of widgets for use in designing applications with GUIs:
Qt (framework): cross-platform application framework that is widely used for developing application software with GUI. Qt used in Autodesk Maya, KDE, Skype, VLC, VirtualBox, Mathematica. Py wrappers: PyQt, PySide (a bit different from PyQt).
GTK+ (GIMP Toolkit): GTK was created for GIMP, then it became cross-platform widget toolkit for creating GUIs. GTK+ is used in: GNOME, Xfce, KDE, GIMP, Pidgin, Chromium. Py wrapper: PyGTK. Starting with version 2.8 from 2005 GTK+ uses Cairo to render the majority of its graphical control elements. Since GTK+ version 3, all the rendering is done using Cairo.
Cairo (graphics): library used to provide a vector graphics-based, device-independent API for software developers. It is designed to provide primitives for 2-dimensional drawing across a number of different backends. Cairo is designed to use hardware acceleration when available.
WxWidgets: Py wrapper: WxPython
Tk (framework): Py wrapper: Tkinter
Conversation threading: feature used by many email clients, bulletin boards, newsgroups, and Internet forums in which the software aids the user by visually grouping messages.

Wearable computer, ubiquitous computing (ubicomp):

Google Glass ("GLΛSS"): will it become as ubiquitous as watches and cell phones? [13/05/24]

People and ideas about UIs[edit]

Jef Raskin: American human-computer interface expert best known for starting the Macintosh project for Apple in the late 1970s.
The Humane Interface: points I agree with:
  • Monotony of design - there should be only one way to accomplish a certain atomic task in an application (in many modern applications, there are at least three - one through a button on the screen, one through a menu dropdown, and one through a keyboard shortcut - and often more)
  • Every action should be undoable, even after a document or application has been closed and reopened (almost achieved in (g)Vim, at least as long as the document is opened).
  • Elimination of warning screens - modern software applications often ask the user "are you sure?" before some potentially harmful action; Raskin argues they are unhelpful because users tend to ignore them out of habit, and that having a universal undo eliminates the need for them. (almost in (g)Vim achieved)
  • Universal use of text - Raskin argues that graphic icons in software without any accompanying text are often cryptic to users.
  • An end to stand-alone applications - every software package should be structured as a set of tools available to users on any document. For example, in the middle of writing a text document, a user should be able to do a mathematical computation by writing out the computation in the document, then hitting some "calculate" function. (utopistic: the longer the code, the more the bugs; this would mean integrating all programs together, or have very loose integration where each "module" stands on its own, but such modular design would have to outcompete MS Office, Adobe suite, Mathematica, Matlab, text editor as they are available now - hard to achieve).
ArchyUbiquity (Firefox) : dead end (end of coding)

Text user interface; console; command-line[edit]

Category:Text mode
Category:Text user interface
Category:Console applications
Category:Command-line software
Category:Command shells
Read–eval–print loop (REPL; interactive toplevel, language shell): interactive computer programming environment that takes single user inputs (i.e. single expressions), evaluates them, and returns the result to the user; a program written in a REPL environment is executed piecewise. Common examples include command line shells and similar environments for programming languages.
Comparison of command shells
Command-line interpreter & Command-line interface
Text user interface

PC in a pocket (HW + SW): smartphones[edit]

Evolution of mobile web standards
Smartphone: 4 templates at bottom
Mobile development: Java (JVM, Android, BlackBerry) , C++ (Symbian), Objective-C [strict superset of C](iPhone OS), .NET, Python, Ruby, ActionScript (Flash Lite), XHTML&WML. iPhone OS AppStore sweep...
List of digital distribution platforms for mobile devices
Open Mobile Terminal Platform, OMTP; standardization, cross-operation, UCS (Universal Charging Solution):
Template:Mobile operating systems:
Linux-based (Unix-like):
  • 2.3 (Gingerbread) {6 Dec 2010}: >50% of all Android devices; 2.3 + 2.2 (Froyo) >85% [January 3, 2012].
  • 3.0-3.2 (Honeycomb) {22 Feb 2011}: tablet oriented; supports larger screen sizes, multi-core processors, HW acceleration for graphics
  • 4.0 - 4.0.3 (Ice Cream Sandwich) {May 2011 - 19 Oct 2011}: brought 3.x features to smartphones.
Rooting (Android OS): on Google phones (Nexus One, Nexus S and the Galaxy Nexus) command is "fastboot oem unlock".
Comparison of Android devices
List of open source Android applications
Amazon Appstore: mobile application store for the Google Android operating system and was opened on March 22, 2011. Amazon's own store for Kindle Fire. Negative comments by International Game Developers Association (IGDA).
bada: mobile operating system being developed by Samsung Electronics for use on high-end smartphones and feature phones (similar to Symbian of Nokia in this respect).
MeeGo (obsolete by 2011: Nokia has Windows Phone): first announced at Mobile World Congress in February 2010 by Intel and Nokia in a joint press conference. Merge the efforts of Intel's Moblin and Nokia's Maemo former projects into one new common project. Others joined: Novell (MeeGo is increasingly using more of Novell's technology that was originally developed for openSUSE), AMD (November 2010).
Unix-like (non-Linux):
iOS (previously: iPhone OS): iPhone, iPod touch, iPad, and 2G Apple TV
BlackBerry Tablet OS: OS based on the QNX Neutrino real-time operating system designed to run Adobe AIR and BlackBerry WebWorks applications.
Windows CE & Template:Windows Mobile (Windows Mobile, Windows Phone (Microsoft Corporation)) = Windows Mobile (latest version 6.5.x [6/5/2011], older stuff) + Windows Phone 7 (newer stuff). Windows Mobile is best described as a subset of platforms based on a Windows CE underpinning. Windows Phone 7 is currently based on Windows Embedded CE 6.0 R3 with some features borrowed from Windows Embedded CE 7.0. Windows CE is real-time OS.
Symbian: operating system (OS) and software platform designed for smartphones and currently maintained by Nokia. The Symbian platform is the successor to Symbian OS and Nokia Series 60. By April 5, 2011, Nokia released Symbian under a new license and converted to a proprietary shared-source model as opposed to an open source project.
BlackBerry OS: to be replaced by BlackBerry Tablet OS by coming of BlackBerry 8.
TouchWiz: touch interface developed by Samsung Electronics with partners, featuring a full touch user interface (NOT an OS, it can be on top of bada, Android, Windows Mobile). Generations: TouchWiz Nature UX (Supports Android 4.0 - Android 4.1) (2012); TouchWiz Nature UX 2.0 (Supports Android 4.2) (2013); TouchWiz Nature UX 2.5 (Supports Android 4.3 - Android 4.4) (2013); TouchWiz Nature UX 3.0 (Supports Android 4.4) (2014).
Smartwatch: computerized wristwatch with functionality that is enhanced beyond timekeeping, and is often comparable to a personal digital assistant (PDA) device.
Pebble (watch)

Virtual reality + wearable electronics:

Oculus Rift

Hardware (HW) + Software (SW)[edit]

Wireless sensor network (WSN; sensor network): consists of spatially distributed autonomous sensors to monitor physical or environmental conditions (temperature, sound, vibration, pressure, motion, pollutants...) and to cooperatively pass their data through the network to a main location. Military (drones) or scientific use, industrial process monitoring and control, machine health monitoring... WSN has many nodes (10s-1000s), each node is connected to several sensors. Each sensor has transceiver, microcontroller, some energy source (battery, energy harvesting). Size of the sensors varies greatly (though nanodust ("motes") is still a sci-fi, e.g. Diamond Age).

Robotics, automation[edit]

DARPA Grand Challenge: prize competition for driverless vehicles.
DARPA Grand Challenge (2004): None of the robot vehicles finished the route.
DARPA Grand Challenge (2005): 5 vehicles successfully completed the race:
  1. Stanley (Stanford Uni (leader: Sebastian Thrun); cooperation with the Volkswagen Electronics Research Laboratory (ERL); uses 5 Sick AG LIDARs (to get 3D map of environ) + GPS; gyroscopes, accelerometers (orientation of the vehicle and also to supplement GPS and other sensor data); video camera used to observe driving conditions out to eighty meters (beyond the range of the LIDAR); sensors installed in a wheel well to record a pattern imprinted on the tire and to act as an odometer in case of loss of signal (such as when driving through a tunnel); 6 low-power 1.6 GHz Intel Pentium M PCs + different versions of Linux OS; School of Engineering developed the 100,000 lines of software; also log of "human reactions and decisions" and fed the data into a learning algorithm tied to the vehicle's controls (making Stanley more accurate in detecting shadows))
  2. Sandstorm (vehicle): Carnegie Mellon Uni's Red Team
  3. H1ghlander : Carnegie Mellon Uni's Red Team; sister vehicel of Sandstorm
  4. Kat-5 (vehicle): by The Gray Insurance Company; 100% pure Java; runs both the Mac OS X and Linux OSs.
  5. TerraMax (vehicle): autonomous tactical cargo hauler fielded by Oshkosh Truck Corporation, University of Parma's Artificial Vision and Intelligent Systems Laboratory and Rockwell Collins
DARPA Grand Challenge (2007): DARPA Urban Challenge; with real traffic and driving rules.
Kiva Systems: order fulfillment systems that use mobile robots for warehouse automation. 2012 March: Amazon bought Kiva for 0.775*10^9 $.

Automated vehicles on other planets[edit]

Flight spare of Pathfinder; test rovers: sibling to Spirit & Opportunity, Curiosity.
Wheel size comparison: Pathfinder, Spirit&Opportunity, Curiosity.
Mars rover: successful ones: Sojourner's Pathfinder, MER's Spirit & Opportunity, MSL's Curiosity
Cleaning event: reference to the fact that Martian winds have blown dust clear of the solar panels of probes on Mars increasing their energy output.


Corona discharge: electrical discharge brought on by the ionization of a fluid surrounding a conductor that is electrically energized; discharge will occur when the strength (potential gradient) of the electric field around the conductor is high enough to form a conductive region, but not high enough to cause electrical breakdown or arcing to nearby objects.


Superconductor timeline
Unconventional superconductor: materials that display superconductivity which does not conform to either the conventional BCS theory or the Nikolay Bogolyubov's theory or its extensions. At present it is considered unlikely that cuprate perovskite materials will achieve room-temperature superconductivity.
High-temperature superconductivity (high-Tc, HTS): materials that behave as superconductors at unusually high temperatures. Until 2008, only certain compounds of copper and oxygen (so-called "cuprates") were believed to have HTS properties, however, several iron-based compounds are now known to be superconducting at high temperatures. "Ordinary" or metallic superconductors usually have transition temperatures below 30 K (−243.2 °C), HTS have been observed with transition temperatures as high as 138 K (−135 °C).
Iron-based superconductor (ferropnictides): chemical compounds (containing iron) whosesuperconducting properties have been discovered in 2006.

Electricity generation and distribution[edit]

High-voltage direct current (HVDC): electric power transmission system uses direct current for the bulk transmission of electrical power. Advantages of HVDC over AC: more economic for transmitting large amounts of power point-to-point over long distances (HVDC losses are ~3.5%/1000 km), HVDC powerflow between separate AC systems can be automatically controlled to provide support for either network during transient conditions, but without the risk that a major power system collapse in one network will lead to a collapse in the second; power transmission and stabilization between unsynchronised AC networks; cable systems (underground, undersea). Disadvantages of HVDC over AC: conversion (availability of ~98.5%, converter stations are expensive), switching, control, availability, maintenance, new technology which is fast changing (spare parts are kept for the specific lines, because there is no standardization), realizing multiterminal systems is complex, HVDC circuit breakers are difficult to build (ABB made one in 2012 which switches off the current in 5 ms).
List of HVDC projects:
Tres Amigas SuperStation: focuses on uniting North America’s two major power grids (the Eastern Interconnection and the Western Interconnection) and one minor grid (the Texas Interconnection); 5 GW superconductive high-voltage direct current power transmission lines.
Lithuania and neighbors: NordBalt (SwedLit) - planned submarine power cable between Klaipėda (LT) and Nybro (SE); LitPol Link - planned 1000 MW electricity link between the Baltic transmission system (part of the IPS/UPS system (CIS)) and the synchronous grid of Continental Europe.


Super grid ("mega grid"): wide area transmission network that makes it possible to trade high volumes of electricity across great distances.
European super grid: possible future super grid that would ultimately interconnect the various European countries and the regions around Europe's borders.
SuperSmart Grid (SSG): hypothetical wide area electricity network connecting Europe with northern Africa, the Middle East, Turkey and the IPS/UPS system of CIS countries.
Synchronous grid of Continental Europe (Continental Synchronous Area, UCTE grid): largest synchronous electrical grid (by connected power) in the world; interconnected a single phase-locked 50 Hz mains frequency electricity grid that supplies over 400 million customers in 24 countries (most of EU); 2009 - 667 GW of production capacity.
European Network of Transmission System Operators for Electricity (ENTSO-E): association of Europe's transmission system operators for electricity. 5 regional groups: Continental Europe, Ireland, United Kingdom (UKTSOA), Nordic (NORDEL), Baltic (BALTSO)

Companies in EECS[edit]

EECS giants and little ones. HW+SW, mainly HW, mainly SW, server racks (aka "clouds")

Template:Major information technology companies:

mentioned more than once [14/09/29]:
BT Group (UK) [2]: ex-British Telecom
Dell [3]
Fujitsu (JA) [6]
Hitachi (JA) [2]
HP [6]
IBM [5]
NEC (JA; 日本電気株式会社 Nippon Denki Kabushiki Gaisha; till 1983: Nippon Electric Company, Limited) [3]
Nippon Telegraph and Telephone (NTT; JA) [3]
Toshiba (JA) [4]
Oracle [3]
Samsung (KO) [6]
Acer Inc. (ROC) [2]
Apple [3]
Asus (ROC) [2]
Huawei (PRC) [2]
LG (KO) [3]
Sony (JA)
ZTE (PRC) [2]
TCL + Alcatel-Lucent [2]
Cisco [2]
SK Group= SK Telecom + SK Hynix [2]
Intel (x86, x86-64)
OEMs: Foxconn (ROC, PRC), Quanta (ROC)
Nokia (FI) [mobile business sold: 2013.07-2014.04]→ Nokia (new) + Microsoft Mobile (Microsoft owned company)
History of IBM

Chinese (PRC) companies[edit]

PRC in terms of law and regulations is like Wild West of USA in before 20th c.

Tencent Holdings (2013.09 market valuation: $100 bln)
Tencent QQ (QQ): instant messaging software service; variety of services, including online social games, music, shopping, microblogging, and group and voice chat
Multiplayer online games
Tencent Weibo: Chinese microblogging (weibo) website launched by Tencent in 2010.04, and is still currently under beta testing
WeChat ("micro message"): mobile text and voice messaging communication service
Renren (Renren Network; former: Xiaonei Network): makes "a Chinese copy of Facebook"
Sina Corp
Sina Weibo ("New-wave Microblog"): hybrid of Twitter and Facebook, it is one of the most popular sites in China, in use by well over 30% of Internet users, with a market penetration similar to what Twitter has established in the USA
360 v. Tencent


Template:Google Inc. & Google Inc. (G): USA multinational corporation specializing in Internet-related services and products; search, cloud computing, software and online advertising technologies; most of its profits derive from AdWords. Larry Page and Sergey Brin; IPO: 2004.08.19. "Don't be evil". Email, an office suite, and social networking; editing photos, and instant messaging; leads the development of the Android mobile OS and the browser-only Google Chrome OS, Chromebook; high-end Nexus devices; fiber-optic infrastructure was installed in Kansas City to facilitate a Google Fiber broadband; run more than 1 mln servers in data centers around the world (2007.07.02). (Google has a web/internet oriented world of view -- all applications and software are accessible from anywhere as long as server is running and there is internet connection. Then only the software needs to be made which shadows and supersedes the desktop software)
DoubleClick: subsidiary of Google which develops and provides Internet ad serving services
Google platform: Google Web Server — Custom Linux-based Web server that Google uses for its online services; languages: C++, Java, Py, ...
Google Account: Web History (Google Search History), AdWords, Blogger, Gmail, Google+, Google Calendar, Google Checkout, Google Code, Google Docs, Google Finance, Google Groups, Google Health, Google Maps, Google News, Google Reader, Google Sites, Google Talk, iGoogle, Orkut, Picasa, YouTube.
Google App Engine
Google Search (Google Web Search): web search engine owned by Google Inc.; most-used search engine on WWW. Instant Search.
Google Web History: all search queries and results that a user clicks on are recorded to
Google Personalized Search: works only when logged into Google Account.
Google Real-Time Search: was a feature of Google Search; results also sometimes included real-time information from sources such as Twitter, Facebook, blogs, and news websites
Google mail - the app for all in one management (except for Facebook (the alternative contact management))
Gmail interface: integrates GTalk (+Audio & video from 2008; ⇒ Hangouts [2013]), Buzz (Twitter-like), G+
Google Talk
Google Buzz
Google Docs: online office suite.
  • Spreadsheet (Google Spreadsheet on 2006.06.06)
  • Word processor (as Writely form 2005.08, as Google Document from 2006.08.23)
  • Presentations (2007.09.17)
  • Drawing application
  • Form creator
Google Drive: file storage and synchronization service, released 2012.04.24. In 2013.05.13 Google announced the overall merge of storage across Gmail, Google Drive and Google+ Photos allowing users 15 GB of unified free storage between the services.
Google Calendar: time zone for the events, everything is online, sync with MS Outlook, device sync (Android & co), inside GMail, Google Desktop to see calendar
Google+ (G+, Google Plus): a new incarnation of Orkut & direct competition to Facebook
G+ SW: server code: Java servlets, browser-side UI: JavaScript; largely built with Google's Closure framework, including the JavaScript compiler and the template system. HTML5 History API to maintain good looking URLs in modern browsers despite it being an AJAX app. Google renders the Closure templates on the server-side to achieve fast response times, to render Closure templates before any JavaScript is loaded; then the JavaScript finds the right DOM nodes, hooks up event handlers... The backends are built mostly on top of BigTable and Colossus/GFS, and other common Google technologies such as MapReduce.
Google Closure Tools: help developers build rich web applications with JavaScript. Used extensively by Google.
Orkut (@G; dead [2014]): named after its creator, Google employee Orkut Büyükkökten; 2008.08 Google announced that Orkut would be fully managed and operated in Belo Horizonte, Brazil, by Google Brazil; due to the large Brazilian user base and growth of legal issues.
Google Hangouts (launched: 2013.05.15): instant messaging and video chat platform developed by Google; replaces three messaging products that Google had implemented concurrently within its services, including Talk, Google+ Messenger, and Hangouts, a video chat system present within Google+. {is XMPP dead?}
List of Google products:
Picnik: online photo editing service; acquired by Google on March 1, 2010; integrated into Picassa and G+
Communication (Gmail, GTalk, Calendar, Google+, {G Buzz (discontinued) 11/11/19}...)
Google Search (internet, books, code, video, image, scholar...), {G Wave (discon.)}
Google Chrome, Google Chrome OS; advertising
Motorola Mobility: USA telecommunications equipment corporation owned by Google Inc. since 2011.08.15 ("Motorola - a Google Company"; acquired for $12.5 bln); was formerly Motorola's cellular phone division, which was called the Personal Communication Sector (PCS) prior to 2004. Google's ownership of Motorola would be short-lived, as the company announced on January 29, 2014 that it would sell most of Motorola Mobility to Chinese personal computer maker Lenovo for $2.91 billion.
Google X (Google[x]): secret facility run by Google thought to be located somewhere in the Bay Area of Northern California.
Google Fiber {Google as ISP}: fiber-to-the-premises service in USA, providing broadband internet and television to a small and slowly growing number of locations; first introduced to Kansas City, Kansas; being rolled out to Kansas City, Missouri; plans for expansion to several other Kansas City area suburbs, as well as Austin, Texas, and Provo, Utah.
Criticism of Google: Page rank: Possible misuse of search results; Danger of page rank manipulation; Page ranking related lawsuits; Abandonment of Neutral Rankings. Copyright issues: Google Print, Books, and Library; Cached data; Google Map Maker. Privacy: Potential for data disclosure (Data leaks, Cookies, Tracking, Gmail, Ties to the CIA and NSA, Government requests, Google Chrome); Street View (Information collection from WiFi networks); Google Buzz; Google+ and Nymwars; YouTube and Viacom; Privacy and data protection cases and issues by state (EU...; USA); Do Not Track; Scroogle. Censorship: Web search; PRC/China; AdSense/AdWords; YouTube; Ungoogleable. Monopoly, restraint of trade, and antitrust: The Aliyun OS affair; Alternatives to Google and monopoly power; Lack of transparency and market visibility.
Google Free Zone (2012-): initiative undertaken by Internet company Google in collaboration with mobile phone-based Internet providers, whereby the providers waive data (bandwidth) charges (also known as zero-rate) for accessing select Google products such as Google Search, GMail, and Google+. Phillippines (2012.11.08), India (2013.06), Nigeria (2013.12).

Microsoft (MS)[edit]

Category:Microsoft websites
Template:Windows Live (Hotmail, ...)
Channel 9 (discussion forum) (2009-): Microsoft community site for Microsoft customers. Formerly featured a wiki based on Microsoft's own FlexWiki; wiki had been used to provide ad-hoc feedback to various Microsoft teams such as the Internet Explorer team as well as for teams such as Patterns & Practices to promote discussion, although some teams have migrated to CodePlex.
OneDrive (SkyDrive, Windows Live SkyDrive and Windows Live Folders): file hosting service that allows users to upload and sync files to a cloud storage and then access them from a Web browser or their local device.


Genius Bar: tech support station located inside some Apple retail stores, the purpose of which is to offer help and support for Apple products
History of Apple Inc.


Amazon CloudFront: content delivery network offered by Amazon Web Services. CloudFront operates on a pay-as-you-go basis.
Fire OS: produced by Amazon for its Fire Phone and Kindle Fire range of tablets, and other content delivery devices like the Fire TV. It is forked from Android: Fire OS 3 :: Android 4.2.2; Fire OS 4 :: Android 4.4.2.
Amazon Cloud Drive: Amazon announced the product on 2011.03.29. Its storage space can be accessed from up to eight specific devices. The devices can be mobile devices, different computers, and different browsers on the same computer. The device limit can be reached if web browser cookies are not stored, or are deleted.


Facebook (2004.02.04-) SW: LAMP ⇒ PHP (other langs: C++, Java, Py, Erlang), Linux (CentOS), MySQL; Memcached; HipHop for PHP; Haystack; BigPipe; Apache Cassandra; Scribe (log server); Hadoop (⇒ Hive); Apache Thrift; Varnish (software)
Template:Facebook navbox: history: book, movie
Facebook Platform (2010-): software environment provided by the social networking service Facebook for third-party developers to create their own applications and services that access data in Facebook. Not fully open, no standards, no sharing with other services by allowing user to scrap one's own info (?)
Social graph
Facebook Zero (2010-): initiative undertaken by social networking service company Facebook in collaboration with mobile phone-based Internet providers, whereby the providers waive data (bandwidth) charges (also known as zero-rate) for accessing Facebook on phones via a stripped-down text-only version of its mobile website, located at or (as opposed to the ordinary mobile website that also loads pictures). 50 mobile operators (2010.05.18)
WhatsApp: 2014.02.19 Facebook Inc. announced its acquisition of WhatsApp Inc. for US$19 bln.


Nokia: in 2013.09 Nokia sold what was once the world's largest vendor of mobile phones to Microsoft as part of an overall deal totaling €5.44 billion; Stephen Elop, Nokia's former CEO, and several other executives joined the new Microsoft Mobile subsidiary of Microsoft as part of the deal, which closed in 2014.04.25.
Nokia Networks (formerly Nokia Solutions and Networks, Nokia Siemens Networks): multinational data networking and telecommunications equipment company headquartered in Espoo, Finland, and wholly owned subsidiary of Nokia Corporation.
Here (Nokia): Nokia business unit that brings together Nokia's mapping and location assets under one brand.