Skip to main content

11 - Specialized Development Domains

Logic

  • Logic - The study of correct reasoning
    • Logical reasoning - A mental activity that aims to arrive at a conclusion in a rigorous way
      • Deductive, Inductive, Abductive and Analogical
  • Branches of Logic
    • Informal Logic - A broad term for any of the various methods of analyzing and evaluating arguments used in everyday life
    • Formal logic - A system of reasoning that uses abstract rules and symbols to represent and evaluate the structure of arguments

Informal Logic

  • Argument - The central object of study in informal logic; a series of statements (premises) intended to determine the degree of truth of another statement (the conclusion)
    • Enthymeme - An argument in which one premise is not explicitly stated, a common feature of real-world reasoning
  • Criteria for Argument Evaluation
    • Fallacy - The use of invalid or otherwise faulty reasoning in the construction of an argument that may appear to be well-reasoned if unnoticed
    • Category mistake - The broader application of informal logic and other skills (like analysis and self-reflection) to decide what to believe or do
  • Related Fields
    • Rhetoric - The art of persuasion
    • Critical Thinking - The process of analyzing available facts, evidence, observations, and arguments to make sound conclusions or informed choices

Formal Logic

  • Foundational Concepts
    • Formal system - An abstract structure and formalization of an axiomatic system used for deducing, using rules of inference, theorems from axioms by a set of inference rules
    • Gödel's incompleteness theorems - The two theorems of mathematical logic that demonstrate the inherent limitations of every formal axiomatic system capable of modelling basic arithmetic
    • Logic Principles
      • De Morgan's laws - A pair of transformation rules that are both valid rules of inference
      • Law of noncontradiction - The law that states that for any given proposition, the proposition and its negation cannot both be simultaneously true
      • Law of excluded middle - The principle that for every proposition, either this proposition or its negation is true
      • Peirce's law - The principle in classical logic that the law of excluded middle holds for any proposition
      • Proof by contradiction - A form of indirect proof that establishes the truth of a proposition by showing that assuming the proposition to be false leads to a contradiction
  • Logical Systems
    • Propositional calculus - A branch of logic that deals with propositions (which can be true or false) and relations between propositions, including the construction of arguments based on them
      • conjunction, disjunction, implication, biconditional and negation
      • Tautology - A formula that is true regardless of the interpretation of its component terms, with only the logical constants having a fixed meaning
    • First order logic - A collection of formal systems used in mathematics, philosophy, linguistics, and computer science
      • universal quantification and existential quantification
    • Higher order logic - A form of logic that is distinguished from first-order logic by additional quantifiers and, sometimes, stronger semantics
    • Modal logic - A type of logic that is used to represent statements about possibility and necessity
  • Branches of Mathematical Logic
    • Set theory - The branch of mathematical logic that studies sets, which can be informally described as collections of objects
    • Naive set theory
      • Set - A collection of different things; these things are called elements or members of the set and are typically mathematical objects of any kind
      • Function (a.k.a. Map) - A binary relation between two sets that associates every element of the first set to exactly one element of the second set
      • Operation - A function from a set to itself
        • Idempotence - The property of certain operations in which they can be applied multiple times without changing the result beyond the initial application
      • Partition of a set - A grouping of a set's elements into non-empty, disjoint subsets (called "blocks" or "cells") such that every element is in exactly one subset
      • Equivalence relation - A binary relation (reflexive, symmetric, and transitive) that partitions a set into disjoint equivalence classes
    • Axiomatic set theory
      • Zermelo–Fraenkel set theory - An axiomatic system that was proposed in the early twentieth century in order to formulate a theory of sets free of paradoxes such as Russell's paradox
        • Ordinals & Cardinals
    • Type Theory - A formal system that provides an alternative foundation for mathematics (like Set Theory) and is the basis for typed functional programming and proof assistants.
    • Proof Theory - A major branch of mathematical logic that represents proofs as formal mathematical objects, facilitating their analysis by mathematical techniques
      • Sequent calculus - A deductive system for proving theorems
      • Natural deduction - A kind of proof calculus in which logical reasoning is expressed by inference rules closely related to the "natural" way of reasoning
    • Computability Theory - A branch of mathematical logic, computer science, and the theory of computation that originated in the 1930s with the study of computable functions and Turing degrees
      • Lambda calculus - A formal system in mathematical logic for expressing computation based on function abstraction and application
      • Turing machine - A mathematical model of computation describing an abstract machine that manipulates symbols on a strip of tape according to a table of rules
    • Model Theory - The study of the relationship between formal theories (collections of sentences in a formal language) and their models (structures in which the sentences are true)
  • Applications
    • Constraint satisfaction problem - Mathematical questions defined as a set of objects whose state must satisfy a number of constraints or limitations
    • Satisfiability modulo theories - The problem of determining whether a mathematical formula is satisfiable
    • Automated theorem proving - A subfield of automated reasoning and mathematical logic dealing with proving mathematical theorems by computer programs
    • Formal verification - the act of proving or disproving the correctness of a system with respect to a certain formal specification or property, using formal methods of mathematics
      • Hoare logic - A formal system with a set of logical rules for reasoning rigorously about the correctness of computer programs
  • Tools and Resources
    • Stanford Encyclopedia of Philosophy - A reference work that organizes scholars in philosophy and related fields from around the world to create and maintain up-to-date content
    • SMT-LIB - A command language for interacting with SMT solvers via a textual interface
    • MiniZinc - A free and open-source constraint modeling language
    • P - A state machine based programming language for formally modeling and specifying complex distributed systems
    • Lean - An interactive theorem prover and programming language based on the Calculus of Constructions

Desktop Environment

  • Linux Desktop Environment
    • Debian-based
      • Ubuntu desktop - The Linux-based operating system that runs from the desktop, to the cloud, to all your internet connected things
      • BunsenLabs Linux - A distribution offering a light-weight and easily customizable Openbox desktop
    • Arch-based
      • Manjaro Linux - A user-friendly Linux distribution based on the independently developed Arch operating system
      • Mabox Linux - Fast, lightweight and functional Linux Desktop “relaxed” rolling-release, Manjaro based with Openbox Window Manager
  • GUI systems
    • Display Servers
      • X.org - An open source implementation of the X Window System
      • Wayland - A replacement for the X11 window system protocol and architecture
    • Desktop Environments
      • GNOME - An easy and elegant way to use your computer, designed to put you in control and get things done
      • Xfce - A lightweight desktop environment for UNIX-like operating systems
    • Window Managers
      • openbox - A highly configurable, next generation window manager
  • Windows Environment
    • Package Management & Administration
      • Chocolatey - The package manager for Windows
      • Scoop - A command-line installer for Windows
      • gsudo - A Sudo for Windows, with a similar user-experience to the original Sudo
    • Productivity & Automation
      • AutoHotKey - A free, open-source scripting language for Windows that allows users to easily create small to complex scripts
      • Clavier+ - Allows to trigger actions with keyboard shortcuts
      • WinSSHTerm - A tabbed SSH solution for Windows, combining PuTTY, WinSCP and VcXsrv
  • Android on Linux
    • Waydroid - A container-based approach to boot a full Android system on regular GNU/Linux systems running Wayland based desktop environments

Binary & Media Processing

  • General Tools
    • file (command) - A file type guesser
    • hexdump - A filter which displays the specified files, or the standard input, in a user specified format
    • xxd - The well-known hex-dump-type utility
    • bed - A binary editor written in Go
    • fq - A tool inspired by jq that lets you poke at binary formats
  • Serialization Formats
    • Protobuf - A language-neutral, platform-neutral, extensible mechanism for serializing structured data
    • MessagePack - An efficient binary serialization format
  • Executable Formats
    • ELF format - A common standard file format for executable files, object code, shared libraries, and core dumps
  • Media Formats
    • JPEG - A commonly used method of lossy compression for digital images
    • PNG - A raster-graphics file format that supports lossless data compression
    • Webp - A raster graphics file format developed by Google intended as a replacement for JPEG, PNG, and GIF file formats
    • MPEG-4 - A method of defining compression of audio and visual digital data
    • High Efficiency Video Coding - A video compression standard, designed as a successor to the widely used Advanced Video Coding (AVC)

Image & Media Processing

  • Tools
    • exiftool - A command-line application and Perl library for reading and writing meta information in files
    • ImageMagick - A free, open-source software suite, used for editing and manipulating digital images
    • FFmpeg - A complete, cross-platform solution to record, convert and stream audio and video
  • Libraries
    • Native WebP for Go - A native WebP encoder written entirely in Go, with no dependencies on libwebp or other external libraries
    • Pillow - The friendly PIL (Python Imaging Library) fork that adds image processing capabilities to your Python interpreter
    • pure_jpeg - A pure Ruby JPEG encoder and decoder library with no native dependencies

Compression & Archiving

  • Tools
    • GNU Gzip - A popular data compression program
    • GNU tar - A program that provides the ability to create tar archives, as well as various other kinds of manipulation
    • Info-Zip - A set of open-source software for handling ZIP archives
    • P7ZIP - A port of 7za.exe for POSIX systems
  • Libraries
    • Python Data Compression and Archiving libs - The modules that support data compression and the creation and reading of archives
    • Go compress libs - A package that defines a common interface to compression and decompression algorithms
    • Go archive libs - A package that defines a common interface for accessing archived file formats
    • JSZip - A javascript library for creating, reading and editing .zip files
    • Ruby module Zlib - A module that contains classes for compressing and decompressing streams, and for working with gzip-format files
    • zlib - A free, general-purpose, legally unencumbered lossless data-compression library for use on virtually any computer hardware and operating system
    • zlib-rs - A safer zlib
    • snappy - A compression/decompression library that aims for very high speeds and reasonable compression
    • rubyzip - A ruby library for reading and writing zip files

Document Processing

  • Universal Tools
    • Docling - A powerful library which simplifies document processing, parsing diverse formats
  • Formats
    • PDF - A file format developed by Adobe to present documents in a manner independent of application software, hardware, and operating systems
    • PDF/A - An ISO-standardized version of the Portable Document Format (PDF) specialized for use in the archiving and long-term preservation of electronic documents
    • Office Open XML - A zip-based XML-based file format for representing spreadsheets, charts, presentations and word processing documents
    • OpenDocument - A zip-compressed, XML-based file format for spreadsheets, charts, presentations and word-processing documents

PDF Processing

  • Tools
    • Ghostscript - A suite of software based on an interpreter for Adobe Systems' PostScript and Portable Document Format page description languages
    • qpdf - A command-line tool and C++ library that performs content-preserving transformations on PDF files
    • pdftk server - A command-line tool for working with PDFs
    • pdfcpu - A PDF processor written in Go
    • MinerU - A high-quality tool for convert PDF to Markdown and JSON
  • Libraries
    • Poppler - A PDF rendering library based on the xpdf-3.0 code base
    • PDF.js - A general-purpose, web standards-based platform for parsing and rendering PDFs
    • pypdf - A pure-python PDF library capable of splitting, merging, cropping, and transforming the pages of PDF files
    • Prawn PDF - A fast, nimble PDF generator for Ruby
    • ReportLab - The Open Source Python library for generating PDFs and graphics

Office Document Processing

  • Tools
    • libreoffice cli - The command-line interface for the LibreOffice office suite
    • markitdown - A lightweight Python utility for converting various files to Markdown for use with LLMs and related text analysis pipelines
    • xlsx2csv - A fast and easy way to convert XLSX files to CSV
    • docx2txt - A pure python-based command line tool to extract text from docx files
    • pptx2md - A simple tool for converting pptx to markdown
  • Libraries
    • python-pptx - A Python library for creating and updating PowerPoint (.pptx) files
    • PptxGenJS - A JavaScript library for building PowerPoint presentations that works with Node.js, React, and web browsers
    • Excelize - A Go library for reading and writing XLSX/XLSM/XLTM files
    • Roo - A library that can access the contents of various spreadsheet files

Mobile & Desktop App Development

Mobile Platforms & Native SDKs

  • Android - A mobile operating system based on a modified version of the Linux kernel and other open-source software
    • Android Studio - The official integrated development environment for Google's Android operating system
  • iOS - A mobile operating system created and developed by Apple Inc. exclusively for its hardware

GUI Toolkits & Libraries

  • Standard Toolkits
    • Tk - A graphical user interface toolkit
      • tkinter - The standard Python interface to the Tcl/Tk GUI toolkit
      • CustomTkInter - A python UI-library based on Tkinter, which provides new, modern and fully customizable widgets
    • GTK - A free and open-source cross-platform widget toolkit for creating graphical user interfaces
      • pygobject - A set of Python bindings for the GLib, GObject, GIO and GTK object-oriented C libraries
  • Compiled & Canvas-Based (Custom Rendering)
    • Flutter - An open-source UI software development kit created by Google
    • Slint - A declarative GUI toolkit to build native user interfaces for Rust, C++, or JavaScript apps
    • Gio - A library for writing cross-platform immediate mode GUI-s in Go
    • Fyne - An easy to learn toolkit for creating graphical apps for desktop, mobile and web
  • Web-Technology Based
    • Native Widget Brigde
      • React Native - A framework for building native apps with React
        • Expo - A framework and a platform for universal React applications that run natively on Android, iOS, and the web
    • Chromium Bundling
      • Electron - A framework for building desktop applications using JavaScript, HTML, and CSS
    • System WebView (Hybrid)
      • Tauri - A toolkit that helps developers make applications for the major desktop platforms
      • Microsoft Edge WebView2 - A control that allows you to embed web technologies (HTML, CSS, and JavaScript) in your native apps by using Microsoft Edge as the rendering engine

Installation & Packaging

  • NSIS - A professional open source system to create Windows installers
  • PyInstaller - A tool that bundles a Python application and all its dependencies into a single package

Application Services & Features

  • Notifications
  • Device Hardware/OS Integration
    • GPS - A satellite-based radionavigation system owned by the United States government and operated by the United States Space Force
    • QR code - A type of matrix barcode invented in 1994 by the Japanese company Denso Wave
  • Backend-as-a-Service (BaaS)
    • Firebase - An app development platform that helps you build and grow apps and games users love
    • Supabase - A Postgres development platform that provides a database, authentication, instant APIs, edge functions, real-time subscriptions, storage, and vector embeddings
    • AWS Amplify - A complete solution that lets frontend web and mobile developers easily build, ship, and host full-stack applications on AWS

Office Suite Ecosystem Tools

  • M365 Tools
    • CLI for Microsoft 365 - A cross-platform command line interface that enables you to manage your Microsoft 365 tenant and SharePoint Framework projects on any platform
    • PnPjs - A collection of fluent libraries for consuming SharePoint, Graph, and Office 365 REST APIs
    • Microsoft Graph - The gateway to data and intelligence in Microsoft 365
    • Microsoft Teams JavaScript client library - A library that helps you create hosted experiences in Teams, Microsoft 365 app, and Outlook, where your app content is hosted in an iFrame
    • SharePoint Framework (SPFx) - A page and web part model that provides full support for client-side SharePoint development, easy integration with SharePoint data, and extending Microsoft Teams and Microsoft Viva
  • Google Workspace Tools
    • Google Workspace CLI - A command-line tool for Drive, Gmail, Calendar, Sheets, Docs, Chat, Admin, and more, dynamically built from Google Discovery Service and including AI agent skills

Internet of Things (IoT)

  • Concepts
    • Internet of things (IoT) - The network of physical objects—'things'—that are embedded with sensors, software, and other technologies for the purpose of connecting and exchanging data with other devices and systems over the Internet
    • Edge computing - A distributed computing paradigm that brings computation and data storage closer to the sources of data
    • Machine to machine - The direct communication between devices using any communications channel, including wired and wireless
    • Firmware - A specific class of computer software that provides the low-level control for a device's specific hardware
    • Over-the-air update - The wireless delivery of new software, firmware, or other data to mobile devices
  • Communication Standards
    • Wi-Fi - A family of wireless network protocols, based on the IEEE 802.11 family of standards, which are commonly used for local area networking of devices and Internet access
    • Bluetooth Low Energy - A wireless personal area network technology designed to provide considerably reduced power consumption and cost while maintaining a similar communication range to classic Bluetooth
    • Zigbee - An IEEE 802.15.4-based specification for a suite of high-level communication protocols used to create personal area networks with small, low-power digital radios
    • Near-field communication - A set of communication protocols that enables communication between two electronic devices over a distance of 4 cm (1+1⁄2 in) or less
  • Devices
    • Raspberry Pi - A small, affordable computer for you to use and learn with
  • PaaS
    • Azure IoT Hub - A managed cloud-based service that serves as a central message hub for communication between an IoT application and its connected devices
    • AWS IoT Greengrass - An open-source edge runtime and cloud service for building, deploying, and managing device software

Computer Graphics & Game Development

3D Graphics

  • Three.js - A JavaScript 3D library that makes it easy to create and display animated 3D computer graphics in a web browser using WebGL
  • GSAP - A robust JavaScript toolset that turns developers into animation superheroes

Graphics APIs

  • WebGL - A cross-platform, royalty-free web standard for a low-level 3D graphics API based on OpenGL ES
  • OpenGL - A cross-language, cross-platform application programming interface for rendering 2D and 3D vector graphics
  • Vulkan - A low-overhead, cross-platform, 3D graphics and computing API
    • nvk - Vulkan headers for the Go programming language