Interface and Application Programming

 languages
   hello world
   esoteric languages
   C, GCC, C++, GDB, DDD
   .NET, C#, Mono
   Go, Rust
   Flutter, Dart
   Kotlin, Swift
   Haskell, Scala, Julia
   Bash, Tcl
   Perl, Ruby
   APL
   Python, tutorial, environment, Conda, PyCharm, Flask
   Processing, Wiring, Arduino, p5.js
   Java, OpenJDK, IcedTea, Tomcat
   JavaScript tutorial, Node.js, V8, npm, asm.js, WebAssembly, CoffeeScript, TypeScript, DeviceScript
   low-code, no-code
   dataflow
      LabVIEW, Simulink, Max, Pd, Scratch, App Inventor, Grasshopper, Firefly, Blockly
      Node-RED, mods
         hello.ws-blink.C3.py, node, html, mods, Node-RED, video
            microdot, ws/wss, http/https
   AI
      Copilot, ChatGPT
         copyright, hallucinations, understanding

device interfaces
   RS/EIA/TIA 232/422/485, pySerial, serialport, Web Serial
   I2C, CircuitPython, smbus2, i2c-bus
   FTDI, libFTDI, python-ftdi, ftdi
   Firmata
   USB, PyUSB, usb
   IrDA, python-irda
   GPIB, VISA, PyVISA
   socket, dgram, net
   XMPP, IFTTT, UPnP, Wemo, RainMaker
   MQTT
      Mosquitto
      MQTT.js mqtt.min.js 
      hello.MQTT-blink.C3.py hello.MQTT-blink.C3.html video

data interfaces
   flat files
   JSON TOML inventory
   Calc, Sheets
   Pyspread, Pandas
   MySQL, MongoDB

user interfaces
   ANSI escape codes, ncurses
   Tk, Tkinter
      hello.load.45.py
   wxWidgets, wxPython
      panel_png_path.py
   Qt, PyQt
   GTK, PyGTK
   Clutter, PyClutter
   Kivy
   forms
   jQuery, dat.GUI, Bootstrap, Flat UI, Material
   Backbone, Require, Angular, Handlebars, Ember, Webpack
   Meteor, Babel, React, React Native, Cordova, Ionic, Electron, Blynk, Firebase

graphics
   Canvas
      canvasline.html, canvasimage.html
   SVG
      svgline.html
   WebGL
      webglline.html
   Three.js
      threejsline.html, threejsimage.html, threejssurf.html
   WebGPU wgpu-py pygfx
      pygfxsurf.py video
   Taichi
      taichisurf.py video
   OpenGL, GLUT, GLEW, GLFW, Dear ImGui, PyOpenGL, KodeLife
      glimage.c, video, glsurf.c, video
         $ gcc glsurf.c -o glsurf -lm -lGL -lGLU -lglut
      glimage.py, glsurf.py
   X Windows
      xline.c, video, ximage.c, video
         $ gcc xline.c -o xline -lm -lX11
   AWT, JFC, Swing
      JavaLine.java, JavaLine.html, video
      JavaImage.java, JavaImage.html, video
   RenderMan, cgkit
   VTK, pyvtk, Mayavi
   ParaView
   OpenVDB
   Unity, Unreal, Godot, Blender Physics (video)

audio, video
   SDL, Pygame, PySDL2
   openFrameworks, ofpython
   TouchDesigner
   SuperCollider
   HTML5
      Web Audio
         audioline.html
      WebRTC
         video.html video
   FauxmoESP

VR/AR/MR/XR
   WebXR THREE.VRController
   ARCore
   Forge
   three.ar.js three.xr.js
   AR.js
   A-Frame

math
   Netlib, BLAS, LINPACK, LAPACK
   MATLAB, Octave
   NumPy, SciPy ulab
   matplotlib, Seaborn
      line.py (video), lines.py (video), image.py, images.py (video), surface.py (video)
   Anaconda, IPython, Jupyter, Colab
      plot.ipynb plot.html
   R, RPy, ggplot2
   Mathematica, SymPy, Sage, Scilab
   Math.js, Science.js, numbers.js
   Plotly Python JavaScript
      plotline.html
   D3, jqPlot, Highcharts, Chart.js, mpld3, Bokeh

performance
   pi.py, numpi.py
      Numba numbapi.py
   pi.html
      JIT, typed arrays, web workers, file readers
   pi.c
   OpenMP
      mppi.c
   MPICH, Open MPI, MVAPICH
      mpipi2.c
      mpi4py mpipi2.py
   cudapi.cu
      CUDA, PyCUDA
      OpenCL, PyOpenCL
      WebGPU, GPUMath.js
   Taichi
      taichipi.py

machine learning
   PyTorch, TensorFlow, TensorFlow.js
      xor.py output
   Hugging Face models
   LLM APIs
      OpenAI, Gemini, Llama, Claude, AWS

deploy
   REST, PWA
   Amazon AWS, EC2, Lightsail, Lambda, ParallelCluster, remote desktop
   Google Cloud, Apps Script
   Microsoft Azure, Power Apps
   DigitalOcean
   Linode
   Heroku
   Docker, Kubernetes, Auto DevOps

security
   attack surfaces
   transparency vs obscurity
   dependencies, patching
   encryption

assignment
   individual assignment:
      write an application that interfaces a user with an
         input &/or output device that you made
   group assignment:
      compare as many tool options as possible