Coordinating the Superbowl's visual fidelity with Elixir
Broadcast video & color workflows
- Commenters note how opaque professional video is to typical IT/devs: different jargon around resolution, color, storage, networking.
- Detailed explanations of chroma subsampling (4:2:0 vs 4:2:2), uncompressed/RAW workflows, proxy generation, and why serious cameras shoot ungraded.
- Strong distinction between “shading” (technical color/exposure matching across cameras to standards like BT.709/BT.2020, especially for sponsor logos) vs “grading” (creative look, typically in post, sometimes live for concerts/fashion).
- Discussion of modern live pipelines: SDI on site, COFDM wireless with ultra‑low‑latency codecs, and emerging SMPTE 2110 over IP; internet streaming remains high-latency and heavily compressed.
Cyanview’s role & scaling from Superbowl to small gigs
- System is used at major sports events mainly for “specialty” cameras: pylons, drones, cable cams, mini‑cams, cinematic mirrorless, slow‑motion, POV, etc., not just main studio cameras.
- Also used in small productions (e.g., 4‑camera classical concerts with PTZs and minicams, no camera operators) and in non‑sports live shows and houses of worship.
- Emphasis that tight camera matching is crucial when switching between ~150–250 cameras; changing light (clouds, nightfall) keeps video engineers busy.
Architecture: Elixir, BEAM & MQTT
- Elixir/BEAM handles control, status and metadata, not video payloads.
- Heavy internal use of MQTT on embedded devices for messaging between processes; Elixir sockets are used rather than MQTT bridging for remote links.
- Benefits cited: massive numbers of lightweight processes, per‑process heaps, supervision trees with custom restart logic, immutability simplifying concurrency.
- MQTT clients implemented with a fork of Tortoise; past issues with emqtt; NATS is being evaluated for future cloud portal / large‑scale remote production.
API design & camera abstraction
- Attempted normalization of camera parameters into a common config; kept only for widely shared controls.
- Many manufacturer‑specific settings remain “native” so operators can use familiar values tuned to particular sports or environments.
Marketing vs “no marketing”
- Some see the article as content marketing for Cyanview and Elixir and question “without any marketing.”
- Others clarify it’s mostly word‑of‑mouth in a tight‑knit broadcast industry; the phrase was hyperbole and the case study was primarily for Elixir adoption.
Elixir developer experience: sharp debate
- One lengthy critique claims Elixir’s DX has degraded: noisy warnings, awkward deprecation handling, slow/non‑parallel dependency compilation, brittle umbrellas, doc/search quirks, weak LSP, limited payoff from Dialyzer.
- Multiple replies dispute specifics: point to Supervisor/DynamicSupervisor docs, ExDoc fixes (“go to latest”, sidebar bugs patched), runtime vs compile‑time warnings, existing race-condition caveats, and new parallel dep compilation.
- Maintainer engages directly: explains design choices around warnings, parallel compilation, crash‑resilient build tooling, and asks for concrete repros, suggesting many issues may stem from a very large, cyclic, misconfigured umbrella.
- Side discussion on Erlang vs Elixir style, documentation quality (many strongly praise HexDocs), and upcoming gradual typing built into the compiler.
Adoption, alternatives & types
- Several commenters report strong success with Elixir in finance, robotics, fraud detection, and other critical systems, emphasizing concurrency and reliability.
- Others wonder why BEAM languages aren’t more popular; hypotheses include inertia from OO/imperative teaching and OTP’s “OS‑level” conceptual overhead.
- Discussion of Gleam as a typed BEAM language: some like static typing and fast compiles; others question whether static types actually reduce production bugs relative to Erlang/Elixir’s proven reliability.