(defconst technobabble-matrix [["Tri-" "Stellar" "Improbability" "Caliper" ] ["Nano-" "Digital" "Ionization" "Spectrometer" ] ["Sub-" "Spatial" "Nullifier" "Drive" ] ["Mono-" "Anionic" "Disturbance" "Calibrator" ] ["Astro-" "Matter/Antimatter" "Recalibration" "Beacon" ] ["Macro-" "Ultraviolet" "Suppression" "Matrix" ] ["Inter-" "Annular" "Timing" "Gel" ] ["Bi-" "Magnetic" "Phase" "Filament" ] ["Trans-" "Positron" "Depletion" "Manifold" ] ["Neo-" "Normality" "Disruption" "Transducer" ] ["Uni-" "Electron" "Containment" "Sustainer" ] ["Omni-" "Continuum" "Proximity" "Web" ] ["Meta-" "Synergetic" "Vector" "Grid" ] ["Anti-" "Graviton" "Magnitude" "Baffle" ] ["Hyper-" "Deuterium" "Transduction" "Device" ] ["Electro-" "Space" "Fragment" "Tube" ] ["Micro-" "Lateral" "Integration" "Resonator" ] ["Exo-" "Di-Hydrogen-Monoxide" "Ignition" "Emitter" ] ["Intra-" "Relativistic" "Perspective" "Transponder" ] ["Photo-" "Gluon" "Instability" "Articulator" ] ["Multi-" "Singularity" "Alignment" "Stage" ] ["Myo-" "Nuclear" "Fold" "Cascade" ] ["Dyno-" "Photon" "Frequency" "Scanner" ] ["Quasi-" "Gravitic" "Splitter" "Distributor" ] ["Proto-" "X-Ray" "Intermix" "Array" ] ["Iso-" "Alfvn" "Mass" "Detector" ] ["Integral" "Neutrino" "Diagnostic" "Actuator" ] ["Tertiary" "Emergency" "Convection" "Diode" ] ["Positive" "Engram" "Analysis" "Field" ] ["Primary" "Microwave" "Isotopic" "Torch" ] ["Compressed" "Astral" "Compensator" "Recorder" ] ["Manual" "Radar" "Displacement" "Replicator" ] ["Automatic" "Molecular" "Retrieval" "Accelerator" ] ["Adaptive" "Voltage" "Spin" "Chamber" ] ["Asynchronous" "Quantum" "Conversion" "Node" ] ["Binary" "Muon" "Particle" "Filter" ] ["Internal" "Neutronium" "Inversion" "Modulator" ] ["Forced" "Universal" "Rotation" "Coil" ] ["Artificial" "Fusion" "Emission" "Probe" ] ["Heavy" "Plasma" "Routing" "Vortex" ] ["Potential" "Directional" "Causality" "Cell" ] ["Phased" "Variable" "Synthesis" "Beam" ] ["Secondary" "Visible Light" "Separation" "Tracer" ] ["Static" "Thermal" "Control" "Enhancer" ] ["Coded" "Regenerative" "Interlock" "Orb" ] ["Synchronous" "Chroniton" "Point" "Stem" ] ["Neutral" "Metabolic" "Differential" "Processor" ] ["Experimental" "Seismic" "Converse" "Buffer" ] ["Coherent" "Total" "Crystalline" "Compensator" ] ["Negative" "LASER" "Interference" "Dynamo" ] ["" "Aurora" "Space-Time" "Core" ] ["" "Temporal" "Graphic" "Lens" ] ["" "Luminary" "Harmonic" "Damper" ] ["" "Infinite" "Deflection" "Generator" ] ["" "Null" "Entropy" "Monitor" ] ["" "Probability" "Coolant" "Stabilizer" ] ["" "Passive" "Flow" "Magnetometer" ] ["" "Gamma-Ray" "Cloaking" "Disruptor" ] ["" "Meson" "Materialization" "Portal" ] ["" "Energetic" "Detection" "Collar" ] ["" "Dimensional" "Collection" "Sweeper" ] ["" "Resonance" "Warp" "Nexus" ] ["" "Cellular" "Transfer" "Cube" ] ["" "Radio Frequency" "Reduction" "Bomb" ] ["" "Antimatter" "Flare" "Circuit" ] ["" "Superconductive" "Resolution" "Stream" ] ["" "Linear" "Optical" "Inhibitor" ] ["" "Phasic" "Fluctuation" "Pod" ] ["" "Cyclic" "Pressure" "Weapon" ] ["" "Tachyon" "Dynamic" "Net" ] ["" "Heuristic" "Memory" "Pocket" ] ["" "Fission" "Slip" "Discriminator"] ["" "Quark" "Alteration" "Deflector" ] ["" "Entropic" "Polarity" "Shielding" ] ["" "Ionic" "Suspension" "Densitometer" ] ["" "Environmental" "Spectrum" "Assembly" ] ["" "Inertial" "Anomaly" "System" ] ["" "Energy" "Fractal" "Inverter" ] ["" "Static" "Power" "Tap" ] ["" "Phased" "Flux" "Initiator" ] ["" "Heisenberg" "Simulation" "Capacitor" ] ["" "Infrared" "Impulse" "Seal" ] ["" "Neural" "Diffraction" "Coupler" ] ["" "Electric" "Parallax" "Communicator" ] ["" "Centripetal" "Imaging" "Adjuster" ] ["" "Holographic" "Reversion" "Plate" ] ["" "Spectral" "Triangulation" "Interlink" ] ["" "Matrix" "Pattern" "Interface" ] ["" "Vacuum" "Operation" "Conduit" ] ["" "Mutual" "Nucleic" "Valve" ] ["" "Atomic" "Migration" "Converter" ] ["" "Ionized" "Wave" "Stimulator" ] ["" "Warp Field" "Induction" "LASER" ] ["" "Partial" "Interface" "Pellet" ] ["" "Cosmic" "Distortion" "Catalyst" ] ["" "Cryonic" "Compression" "Decelerator" ] ["" "Wormhole" "Decay" "Crystal" ] ["" (technobabble-rtype . "-Ray") "Confinement" "Controller" ] ["" (technobabble-rtype . "-Band") "Oscillation" "Membrane" ] ["" (technobabble-rtype . " Radiation") "Spread" "Sequencer" ]]) (defconst technobabble-rtype ["A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q" "R" "S" "T" "U" "V" "W" "X" "Y" "Z" "α" "β" "γ" "δ" "ε" "ζ" "η" "θ" "ι" "κ" "λ" "μ" "Boson" "ξ" "Tachyon" "π" "ρ" "σ" "τ" "Meson" "φ" "χ" "ψ" "Ω"]) (defconst technobabble-excuses '[ ("The " technobabble-phrase " needs recalibration.") ("The " technobabble-phrase " is overheating!") ("The " technobabble-phrase " cannae take anymore!") ("The " technobabble-phrase "! It's going into emergency shutdown!") ("The " technobabble-phrase " is worn out.") ("The " technobabble-phrase " has been exposed to too much " technobabble-rtype ".") ("We need a new " technobabble-phrase "." ) ("The " technobabble-phrase " is interfering with the " technobabble-phrase ".") ] ) (defun technobabble-rtype (&optional radiation) (or radiation (setq radiation (nth (random 2) '(" Radiation" " Particle Flux")))) (let ( (idx (random (* 2 (length technobabble-rtype)))) (max (length technobabble-rtype)) (rad nil) ) (setq rad (concat (if (< idx max) (aref technobabble-rtype idx) ;;(message "(max . idx): (%d . %d)" max idx) (aref (aref technobabble-matrix (- idx max)) 0)) radiation)) (replace-regexp-in-string "- +" "-" rad) )) (defun technobabble-interpret (element) ;;(message "element: %S" (car-safe element)) (cond ((consp element) (funcall (car element) (cdr element))) (t element)) ) (defun technobabble-element (column) (technobabble-interpret (aref (aref technobabble-matrix (random (length technobabble-matrix))) column))) (defun technobabble-phrase () (replace-regexp-in-string "\\(-\\|^\\)[- ]+\\|^ +" "\\1" (mapconcat 'technobabble-element '(0 1 2 3) " "))) (defun technobabble-expand (e) ;;(message "e => %S" e) (cond ((not e) "The ") ((functionp e) (funcall e)) ((consp e) (funcall (car e) (cdr e))) (t e) )) (defun technobabble-excuse () (mapconcat 'technobabble-expand (aref technobabble-excuses (random (length technobabble-excuses))) "") ) (defun fs-babble () (technobabble-phrase)) (defun fs-excuse () (technobabble-excuse))