Select Git revision
index.html 19.31 KiB
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
</head>
<body link="black" vlink="black" alink="black">
<font face="bitstream vera sans,arial,helvetica,sans-serif">
<center>
<div style="font-size: 125%;">
<b><i>Interface and Application Programming</i></b>
</div>
</center>
<div style="font-size: 120%; margin-left: 2.5%;">
<pre><font face="bitstream vera sans,arial,helvetica,sans-serif">
<font face="bitstream vera sans,arial,helvetica,sans-serif"> <b>languages</b>
<a href=http://helloworldcollection.de/>hello world</a>
<a href=https://esolangs.org/wiki/Language_list>esoteric languages</a>
<a href=http://publications.gbdirect.co.uk/c_book/>C</a>, <a href=http://gcc.gnu.org/>GCC</a>, <a href=https://gcc.gnu.org/projects/cxx-status.html>C++</a>, <a href=http://www.gnu.org/software/gdb/>GDB</a>, <a href=http://www.gnu.org/software/ddd/>DDD</a>
<a href=http://www.dotnetfoundation.org/>.NET</a>, <a href=http://www.ecma-international.org/publications/standards/Ecma-334.htm>C#</a>, <a href=http://www.mono-project.com>Mono</a>
<a href=https://golang.org>Go</a>, <a href=https://www.rust-lang.org/>Rust</a>
<a href=https://flutter.dev>Flutter</a>, <a href=https://dart.dev>Dart</a>
<a href=https://kotlinlang.org/>Kotlin</a>, <a href=https://developer.apple.com/swift/>Swift</a>
<a href=https://www.haskell.org/>Haskell</a>, <a href=http://www.scala-lang.org/>Scala</a>, <a href=https://julialang.org>Julia</a>
<a href=http://www.gnu.org/s/bash/>Bash</a>, <a href=http://www.tcl.tk/>Tcl</a>
<a href=http://www.perl.org/>Perl</a>, <a href=http://www.ruby-lang.org/en/>Ruby</a>
<a href=http://tryapl.org>APL</a>
<a href=http://www.python.org/>Python</a>, <a href=http://docs.python.org/tutorial/>tutorial</a>, <a href=https://xkcd.com/1987>environment</a>, <a href=https://docs.conda.io/en/latest/>Conda</a>, <a href=https://www.jetbrains.com/pycharm/>PyCharm</a>, <a href=https://flask.palletsprojects.com/en/stable/>Flask</a>
<a href=http://processing.org/>Processing</a>, <a href=http://www.wiring.org.co/>Wiring</a>, <a href=http://www.arduino.cc/>Arduino</a>, <a href=http://p5js.org>p5.js</a>
<a href=http://www.java.com/>Java</a>, <a href=http://openjdk.java.net/>OpenJDK</a>, <a href=http://icedtea.classpath.org/wiki/Main_Page>IcedTea</a>, <a href=http://tomcat.apache.org>Tomcat</a>
<a href=https://developer.mozilla.org/en-US/docs/Web/JavaScript>JavaScript</a> <a href=https://developer.mozilla.org/en-US/Learn/Getting_started_with_the_web/JavaScript_basics>tutorial</a>, <a href=http://nodejs.org/>Node.js</a>, <a href=https://developers.google.com/v8/>V8</a>, <a href=https://www.npmjs.org/>npm</a>, <a href=http://asmjs.org/>asm.js</a>, <a href=https://webassembly.github.io>WebAssembly</a>, <a href=https://coffeescript.org>CoffeeScript</a>, <a href=https://www.typescriptlang.org/>TypeScript</a>, <a href=https://microsoft.github.io/devicescript>DeviceScript</a>
low-code, no-code
dataflow
<a href=http://www.ni.com/labview/>LabVIEW</a>, <a href=http://www.mathworks.com/products/simulink/>Simulink</a>, <a href=http://cycling74.com/>Max</a>, <a href=http://puredata.info/>Pd</a>, <a href=http://scratch.mit.edu/>Scratch</a>, <a href=http://appinventor.mit.edu>App Inventor</a>, <a href=http://www.grasshopper3d.com/>Grasshopper</a>, <a href=http://www.fireflyexperiments.com>Firefly</a>, <a href=https://github.com/google/blockly>Blockly</a>
<a href=https://nodered.org>Node-RED</a>, <a href=http://modsproject.org>mods</a>
<a href=WebSockets/hello.ws-blink.C3.py>hello.ws-blink.C3.py</a>, <a href=WebSockets/hello.ws-blink.js>node</a>, <a href=WebSockets/hello.ws-blink.js.html>html</a>, <a href=WebSockets/hello.ws-blink.mods.html>mods</a>, <a href=WebSockets/hello.ws-blink.Node-RED.json>Node-RED</a>, <a href=WebSockets/hello.ws-blink.mp4>video</a>
<a href=https://github.com/miguelgrinberg/microdot>microdot</a>, <a href=https://github.com/websockets/ws>ws/wss</a>, http/https
AI
<a href=https://github.com/features/copilot>Copilot</a>, <a href=https://openai.com>ChatGPT</a>
copyright, hallucinations, understanding
<b>device interfaces</b>
<a href=http://www.camiresearch.com/Data_Com_Basics/RS232_standard.html>RS/EIA/TIA 232/422/485</a>, <a href=https://github.com/pyserial/pyserial>pySerial</a>, <a href=https://www.npmjs.org/package/serialport>serialport</a>, <a href=https://web.dev/serial>Web Serial</a>
<a name=I2C href=https://www.nxp.com/docs/en/user-guide/UM10204.pdf>I<sup>2</sup>C</a>, <a href=https://learn.adafruit.com/circuitpython-essentials/circuitpython-i2c>CircuitPython</a>, <a href=https://pypi.org/project/smbus2>smbus2</a>, <a href=https://www.npmjs.com/package/i2c-bus>i2c-bus</a>
<a href=http://www.ftdichip.com/>FTDI</a>, <a href=http://www.intra2net.com/en/developer/libftdi/>libFTDI</a>, <a href=http://packages.ubuntu.com/python-ftdi>python-ftdi</a>, <a href=https://www.npmjs.com/package/ftdi>ftdi</a>
<a href=https://www.arduino.cc/en/Reference/Firmata>Firmata</a>
<a href=http://www.usb.org/>USB</a>, <a href=https://github.com/walac/pyusb/>PyUSB</a>, <a href=https://www.npmjs.com/package/usb>usb</a>
<a href=http://www.irda.org/>IrDA</a>, <a href=https://pypi.python.org/pypi/irda>python-irda</a>
<a href=http://www.ni.com/gpib/>GPIB</a>, <a href=http://www.ni.com/visa/>VISA</a>, <a href=http://pyvisa.sourceforge.net/>PyVISA</a>
<a href=http://docs.python.org/2/library/socket.html>socket</a>, <a href=https://nodejs.org/api/dgram.html>dgram</a>, <a href=https://nodejs.org/api/net.html>net</a>
<a href=http://xmpp.org/about-xmpp/>XMPP</a>, <a href=https://ifttt.com>IFTTT</a>, <a href=https://openconnectivity.org/developer/specifications/upnp-resources/upnp>UPnP</a>, <a href=https://github.com/topics/wemo>Wemo</a>, <a href=https://rainmaker.espressif.com/>RainMaker</a>
<a href=http://mqtt.org/>MQTT</a>
<a href=https://mosquitto.org>Mosquitto</a>
<a href=https://github.com/mqttjs>MQTT.js</a> <a href=MQTT/mqtt.min.js>mqtt.min.js</a>
<a href=MQTT/hello.MQTT-blink.C3.py>hello.MQTT-blink.C3.py</a> <a href=MQTT/hello.MQTT-blink.C3.html>hello.MQTT-blink.C3.html</a> <a href=MQTT/hello.MQTT-blink.C3.mp4>video</a>
<b>data interfaces</b>
flat files
<a href=https://www.json.org>JSON</a> <a href=https://toml.io>TOML</a> <a href=https://gitlab.fabcloud.org/inventory/inventory.fabcloud.io>inventory</a>
<a href=https://www.libreoffice.org/discover/calc/>Calc</a>, <a href=https://www.google.com/sheets/about/>Sheets</a>
<a href=http://manns.github.io/pyspread/>Pyspread</a>, <a href=http://pandas.pydata.org/>Pandas</a>
<a href=https://www.mysql.com/>MySQL</a>, <a href=https://www.mongodb.org/>MongoDB</a>
<b>user interfaces</b>
<a href=https://gist.github.com/fnky/458719343aabd01cfb17a3a4f7296797>ANSI escape codes</a>, <a href=https://www.gnu.org/software/ncurses>ncurses</a>
<a href=http://www.tcl.tk/>Tk</a>, <a href=https://wiki.python.org/moin/TkInter>Tkinter</a>
<a href=../input_devices/step/hello.load.45.py>hello.load.45.py</a>
<a href=http://wxwidgets.org/>wxWidgets</a>, <a href=http://www.wxpython.org/>wxPython</a>
<a href=http://kokompe.cba.mit.edu/index.html>panel_png_path.py</a>
<a href=https://www.qt.io/>Qt</a>, <a href=http://wiki.python.org/moin/PyQt>PyQt</a>
<a href=http://www.gtk.org/>GTK</a>, <a href=http://www.pygtk.org/>PyGTK</a>
<a href=http://blogs.gnome.org/clutter/>Clutter</a>, <a href=http://www.modrana.org/pyclutter_tutorial/tutorial/html/sec-pyclutter.html>PyClutter</a>
<a href=http://kivy.org>Kivy</a>
<a href=http://www.w3.org/TR/html5/forms.html>forms</a>
<a href=http://jqueryui.com/widget/>jQuery</a>, <a href=https://github.com/dataarts/dat.gui>dat.GUI</a>, <a href=http://getbootstrap.com/>Bootstrap</a>, <a href=http://designmodo.github.io/Flat-UI>Flat UI</a>, <a href=https://material.io>Material</a>
<a href=http://backbonejs.org/>Backbone</a>, <a href=http://requirejs.org/>Require</a>, <a href=https://angularjs.org/>Angular</a>, <a href=http://handlebarsjs.com/>Handlebars</a>, <a href=http://emberjs.com/>Ember</a>, <a href=https://webpack.js.org/>Webpack</a>
<a href=https://www.meteor.com/>Meteor</a>, <a href=https://babeljs.io/>Babel</a>, <a href=https://reactjs.org>React</a>, <a href=https://facebook.github.io/react-native>React Native</a>, <a href=https://cordova.apache.org>Cordova</a>, <a href=http://ionicframework.com>Ionic</a>, <a href=https://electronjs.org>Electron</a>, <a href=https://www.blynk.cc>Blynk</a>, <a href=https://firebase.google.com>Firebase</a>
<b>graphics</b>
<a href=https://www.w3.org/html/wg/spec/the-canvas-element.html>Canvas</a>
<a href=programs/canvasline.html>canvasline.html</a>, <a href=programs/canvasimage.html>canvasimage.html</a>
<a href=http://www.w3.org/TR/SVG/>SVG</a>
<a href=programs/svgline.html>svgline.html</a>
<a href=http://www.khronos.org/webgl/>WebGL</a>
<a href=programs/webglline.html>webglline.html</a>
<a href=http://threejs.org/>Three.js</a>
<a href=programs/threejsline.html>threejsline.html</a>, <a href=programs/threejsimage.html>threejsimage.html</a>, <a href=programs/threejssurf.html>threejssurf.html</a>
<a href=https://www.w3.org/TR/webgpu/>WebGPU</a> <a href=https://github.com/pygfx/wgpu-py>wgpu-py</a> <a href=https://github.com/pygfx/pygfx>pygfx</a>
<a href=programs/pygfxsurf.py>pygfxsurf.py</a> <a href=programs/pygfxsurf.mp4>video</a>
<a href=https://github.com/taichi-dev/taichi>Taichi</a>
<a href=programs/taichisurf.py>taichisurf.py</a> <a href=programs/taichisurf.mp4>video</a>
<a href=http://www.opengl.org/>OpenGL</a>, <a href=http://www.opengl.org/resources/libraries/glut/>GLUT</a>, <a href=http://glew.sourceforge.net>GLEW</a>, <a href=https://www.glfw.org>GLFW</a>, <a href=https://github.com/ocornut/imgui>Dear ImGui</a>, <a href=http://pyopengl.sourceforge.net/>PyOpenGL</a>, <a href=https://hexler.net/kodelife>KodeLife</a>
<a href=glimage.c>glimage.c</a>, <a href=glimage.mp4>video</a>, <a href=glsurf.c>glsurf.c<a/>, <a href=glsurf.mp4>video</a>
$ gcc glsurf.c -o glsurf -lm -lGL -lGLU -lglut
<a href=glimage.py>glimage.py</a>, <a href=glsurf.py>glsurf.py<a/>
<a href=http://www.x.org>X Windows</a>
<a href=xline.c>xline.c</a>, <a href=xline.mp4>video</a>, <a href=ximage.c>ximage.c</a>, <a href=ximage.mp4>video</a>
$ gcc xline.c -o xline -lm -lX11
<a href=http://www.oracle.com/technetwork/java/index.html>AWT, JFC, Swing</a>
<a href=JavaLine.java>JavaLine.java</a>, <a href=JavaLine.html>JavaLine.html</a>, <a href=JavaLine.mp4>video</a>
<a href=JavaImage.java>JavaImage.java</a>, <a href=JavaImage.html>JavaImage.html</a>, <a href=JavaImage.mp4>video</a>
<a href=http://renderman.pixar.com/view/non-commercial-renderman>RenderMan</a>, <a href=http://cgkit.sourceforge.net/>cgkit</a>
<a href=http://www.vtk.org/>VTK</a>, <a href=http://www.vtk.org/Wiki/VTK/Writing_VTK_files_using_python>pyvtk</a>, <a href=http://docs.enthought.com/mayavi/mayavi/>Mayavi</a>
<a href=https://www.paraview.org/>ParaView</a>
<a href=http://www.openvdb.org/>OpenVDB</a>
<a href=https://unity3d.com>Unity</a>, <a href=https://www.unrealengine.com>Unreal</a>, <a href=https://godotengine.org>Godot</a>, <a href=https://docs.blender.org/manual/en/latest/physics/index.html>Blender Physics</a> (<a href=physics.mp4>video</a>)
<b>audio, video</b>
<a href=http://www.libsdl.org/>SDL</a>, <a href=http://www.pygame.org/>Pygame</a>, <a href=https://pysdl2.readthedocs.io>PySDL2</a>
<a href=http://www.openframeworks.cc/>openFrameworks</a>, <a href=http://code.google.com/p/openframeworks-python-bindings/downloads/list>ofpython</a>
<a href=https://derivative.ca>TouchDesigner</a>
<a href=https://supercollider.github.io/>SuperCollider</a>
<a href=https://developer.mozilla.org/en-US/docs/Glossary/HTML5>HTML5</a>
<a href=https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API>Web Audio</a>
<a href=programs/audioline.html>audioline.html</a>
<a href=http://www.webrtc.org/>WebRTC</a>
<a href=../input_devices/video.html>video.html</a> <a href=../input_devices/video.mp4>video</a>
<a href=https://github.com/vintlabs/fauxmoESP>FauxmoESP</a>
<b>VR/AR/MR/XR</b>
<a href=https://www.w3.org/TR/webxr>WebXR</a> <a href=https://github.com/stewdio/THREE.VRController>THREE.VRController</a>
<a href=https://developers.google.com/ar>ARCore</a>
<a href=https://forge.autodesk.com/categories/arvr>Forge</a>
<a href=https://github.com/google-ar/three.ar.js>three.ar.js</a> <a href=https://github.com/mozilla/three.xr.js>three.xr.js</a>
<a href=https://github.com/jeromeetienne/AR.js>AR.js</a>
<a href=https://github.com/aframevr/aframe>A-Frame</a>
<b><a href=http://fab.cba.mit.edu/classes/MAS.864>math</a></b>
<a href=http://www.netlib.org/>Netlib</a>, <a href=http://www.netlib.org/blas/>BLAS</a>, <a href=http://www.netlib.org/linpack/>LINPACK</a>, <a href=http://www.netlib.org/lapack/>LAPACK</a>
<a href=http://www.mathworks.com/>MATLAB</a>, <a href=http://www.gnu.org/software/octave/>Octave</a>
<a href=http://www.numpy.org/>NumPy</a>, <a href=http://www.scipy.org/>SciPy</a> <a href=https://github.com/v923z/micropython-ulab>ulab</a>
<a href=http://matplotlib.org/>matplotlib</a>, <a href=http://stanford.edu/~mwaskom/software/seaborn/>Seaborn</a>
<a href=programs/line.py>line.py</a> (<a href=matline.mp4>video</a>), <a href=programs/lines.py>lines.py</a> (<a href=matlines.mp4>video</a>), <a href=programs/image.py>image.py</a>, <a href=programs/images.py>images.py</a> (<a href=matimage.mp4>video</a>), <a href=programs/surface.py>surface.py</a> (<a href=surface.mp4>video</a>)
<a href=https://www.continuum.io>Anaconda</a>, <a href=http://ipython.org/>IPython</a>, <a href=http://jupyter.org>Jupyter</a>, <a href=https://colab.research.google.com>Colab</a>
<a href=programs/plot.ipynb>plot.ipynb</a> <a href=programs/plot.html>plot.html</a>
<a href=http://www.r-project.org/>R</a>, <a href=http://rpy.sourceforge.net/>RPy</a>, <a href=http://ggplot2.org/>ggplot2</a>
<a href=http://www.wolfram.com/>Mathematica</a>, <a href=http://docs.sympy.org/>SymPy</a>, <a href=http://www.sagemath.org/>Sage</a>, <a href=https://www.scilab.org>Scilab</a>
<a href=http://mathjs.org/>Math.js</a>, <a href=https://www.npmjs.org/package/science>Science.js</a>, <a href=https://www.npmjs.org/package/numbers>numbers.js</a>
<a href=https://plot.ly>Plotly</a> <a href=https://plot.ly/python/>Python</a> <a href=https://plot.ly/javascript>JavaScript</a>
<a href=programs/plotline.html>plotline.html</a>
<a href=http://d3js.org/>D3</a>, <a href=http://www.jqplot.com/>jqPlot</a>, <a href=http://www.highcharts.com/>Highcharts</a>, <a href=http://www.chartjs.org>Chart.js</a>, <a href=http://mpld3.github.io>mpld3</a>, <a href=http://docs.bokeh.org/en/latest/>Bokeh</a>
<a href=https://gitlab.cba.mit.edu/pub/pi/blob/master/README.md><b>performance</b></a>
<a href=https://gitlab.cba.mit.edu/pub/pi/-/blob/master/Python/pi.py>pi.py</a>, <a href=https://gitlab.cba.mit.edu/pub/pi/-/blob/master/Python/numpi.py>numpi.py</a>
<a href=http://numba.pydata.org>Numba</a>, <a href=https://gitlab.cba.mit.edu/pub/pi/-/blob/master/Python/numbapi.py>numbapi.py</a>
<a href=https://jax.readthedocs.io/en/latest/quickstart.html>Jax</a>, <a href=https://gitlab.cba.mit.edu/pub/pi/-/blob/master/Python/jaxpi.py>jaxpi.py</a>
<a href=https://pub.pages.cba.mit.edu/pi/JavaScript/pi.html>pi.html</a>
<a href=https://v8.dev>JIT</a>, <a href=https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays>typed arrays</a>, <a href=https://developer.mozilla.org/en-US/docs/Web/Guide/Performance/Using_web_workers>web workers</a>, <a href=https://developer.mozilla.org/en-US/docs/Web/API/FileReader>file readers</a>
<a href=https://gitlab.cba.mit.edu/pub/pi/-/blob/master/C/pi.c>pi.c</a>, <a href=https://gitlab.cba.mit.edu/pub/pi/-/blob/master/C/threadpi.c>threadpi.c</a>
<a href=https://gitlab.cba.mit.edu/pub/pi/-/blob/master/Rust/pi.rs>pi.rs</a>, <a href=https://gitlab.cba.mit.edu/pub/pi/-/blob/master/Rust/threadpi.rs>threadpi.rs</a>
<a href=https://docs.rs/rayon/latest/rayon>Rayon</a>, <a href=https://gitlab.cba.mit.edu/pub/pi/-/blob/master/Rust/rayonpi.rs>rayonpi.rs</a>
<a href=https://www.openmp.org>OpenMP</a>
<a href=https://gitlab.cba.mit.edu/pub/pi/-/blob/master/OpenMP/mppi.c>mppi.c</a>
<a href=https://www.mpich.org>MPICH</a>, <a href=https://www.open-mpi.org>Open MPI</a>, <a href=http://mvapich.cse.ohio-state.edu>MVAPICH</a>
<a href=https://gitlab.cba.mit.edu/pub/pi/-/blob/master/MPI/mpipi2.c>mpipi2.c</a>
<a href=https://mpi4py.readthedocs.io/en/stable/>mpi4py</a> <a href=https://gitlab.cba.mit.edu/pub/pi/-/blob/master/Python/mpipi2.py>mpipi2.py</a>
<a href=https://gitlab.cba.mit.edu/pub/pi/-/blob/master/CUDA/cudapi.cu>cudapi.cu</a>
<a href=https://developer.nvidia.com/cuda-zone>CUDA</a>, <a href=https://mathema.tician.de/software/pycuda>PyCUDA</a>
<a href=https://www.khronos.org/opencl>OpenCL</a>, <a href=https://mathema.tician.de/software/pyopencl>PyOpenCL</a>
<a href=https://gpuweb.github.io/gpuweb/>WebGPU</a>, <a href=http://fab.cba.mit.edu/classes/864.17/people/amandaghassaei/CAs>GPUMath.js</a>
<a href=https://github.com/taichi-dev/taichi>Taichi</a>
<a href=programs/taichipi.py>taichipi.py</a>
<b><a href=https://fleuret.org/francois/lbdl.html>machine learning</a></b>
<a href=https://pytorch.org>PyTorch</a>, <a href=https://www.tensorflow.org>TensorFlow</a>, <a href=https://js.tensorflow.org>TensorFlow.js<a>
<a href=xor.py>xor.py</a> <a href=xor.txt>output</a>
<a href=https://huggingface.co>Hugging Face</a> <a href=https://huggingface.co/models>models</a>
LLM APIs
<a href=https://platform.openai.com/docs/api-reference/introduction>OpenAI</a>, <a href=https://ai.google.dev/>Gemini</a>, <a href=https://www.llama-api.com/>Llama</a>, <a href=https://www.anthropic.com/api>Claude</a>, <a href=https://aws.amazon.com/ai/generative-ai/>AWS</a>
<b>deploy</b>
<a href=https://restfulapi.net/>REST</a>, <a href=https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps/Introduction>PWA</a>
<a href=https://aws.amazon.com>Amazon AWS</a>, <a href=https://aws.amazon.com/ec2>EC2</a>, <a href=https://aws.amazon.com/lightsail/>Lightsail</a>, <a href=https://aws.amazon.com/lambda>Lambda</a>, <a href=https://github.com/aws/aws-parallelcluster>ParallelCluster</a>, <a href=remote.html>remote desktop</a>
<a href=https://cloud.google.com>Google Cloud</a>, <a href=https://www.google.com/script/start>Apps Script</a>
<a href=https://azure.microsoft.com>Microsoft Azure</a>, <a href=https://powerapps.microsoft.com>Power Apps</a>
<a href=https://www.digitalocean.com>DigitalOcean</a>
<a href=https://www.linode.com>Linode</a>
<a href=https://www.heroku.com>Heroku</a>
<a href=https://www.docker.com>Docker</a>, <a href=https://kubernetes.io>Kubernetes</a>, <a href=https://docs.gitlab.com/ee/topics/autodevops/>Auto DevOps</a>
<b>security</b>
attack surfaces
transparency <i>vs</i> obscurity
dependencies, patching
encryption
<b><a href=https://fabacademy.org/2021/labs/waag/students/nadieh-bremer/blog/week-15/>assignment</a></b>
<i>individual assignment:</i>
write an application that interfaces a user with an
<a href=../input_devices/index.html>input</a> &/or <a href=../output_devices/index.html>output</a> device that you made
<i>group assignment:</i>
compare as many tool options as possible