This is the source code for Words and Buttons Online — a growing collection of interactive tutorials, guides, and quizzes about things generally considered boring. Maths, algorithms, programming languages.
- SymPy makes math fun again
- Circles and lines vs. polynomial splines
- Interactive mnemonics for dot and cross vector products
- Polynomial approximation and interpolation
- Programmer's introduction to linear equations Convergence, stability, and complexity estimation.
- Estimating floating point error the easy way Explains how to predict computational error without actual measurements and why.
- NURBS is just an acronym A gentle explanation of non-uniform rational basis splines. No code or formulas, only plots, sliders, and buttons.
- Quadratic splines are useful too Interactive introduction to naïve quadratic splines for curves and pathes.
- Programmer's guide to polynomials and splines
- Mathematical analysis explained with Python, blood, and TNT
- Interactive guide to homogeneous coordinates Explains obscure concepts with clickable and draggable things.
- SWInE: Simplicial Weight Interpolation and Extrapolation
- Simple image vectorization
- The simplest possible smooth contouring algorithm
- Interactive explanation of marching cubes and dual contouring
- Tries (radix trees, not “try” plural) as the evolution of nothing
- Interactive introduction to iterative algorithms
- Challenge your performance intuition with nanosecond sorting
- Challenge your performance intuition with C++ operators , and the follow-up: Using logical operations for logical operators is good
- Cheap trick to speed up recursion in C++
- Outperforming everything with anything. Python? Sure, why not? 100 lines of Python that generate LLVM code outperforming C and C++ solutions.
- Vastly outperforming LAPACK with C++ metaprogramming C++ compiler trick: 30x performance boost by inlining recursion.
- Outperforming LAPACK with C metaprogramming A pair of C metaprogramming tricks (yes, it's a thing) giving a game-changing performance boost.
- Challenge your performance intuition with C++ magic squares
- Fortran is still a thing
- Why Erlang is among the few true computer languages
- Logic programming in C++ There is a hidden Prolog in every C++ compiler.
- APL deserves its renaissance too A brief introduction to APL explaining the meaning of life←{↑1 ⍵∨.∧3 4= /,¯1 0 1∘.⊖¯1 0 1∘.⌽⊂⍵}.
- How much math can you do in 10 lines of Python? Several examples of Python features that make code ultra-concise.
- You don't have to learn assembly to read disassembly Three examples of how the deduction alone is enough to get some useful information from the code.
- Playing a game of chance with C++ inline keyword
- Can you tell an assembly language when you see one? A language guessing quiz.
- Learn you a lisp in 0 minutes
- So you think you know C?
- If I were to invent a programming language for the 21st century
- Yet another floating point tutorial
- Lexical differential highlighting instead of syntax highlighting
All the code is properly unlicensed.