Skip to main content

11 - Advanced Programming 2

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

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

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
    • 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
    • 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 production-grade React Native Framework
    • 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

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

Ecosystem Tools

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 LE - A wireless personal area network technology designed and marketed by the Bluetooth Special Interest Group aimed at novel applications in the healthcare, fitness, beacons, security, and home entertainment industries
    • 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
  • 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

Computer Graphics & Game Development

3D Graphics

  • Three.js - A cross-browser JavaScript library and application programming interface used to create and display animated 3D computer graphics in a web browser
  • 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