~/conference

ACCU 2022

c++ developers, c++ library authors, tooling and build engineers, software architects, embedded systems engineers, test engineers, rust-interested c++ developers

CMake ninja and out-of-source builds; C++20 concepts refactoring; user-defined literals in C++20; std::atomic<std::shared_ptr> lock-free designs; P2300 senders and receivers concurrency; constexpr and consteval usage; std::jthread and synchronization primitives; TLS 1.3 and RSA implementation details; SonarLint and quality gates in CI; RISC-V microprocessors for embedded; documentation with concepts and ranges

titleauthorlength
Keynote: Growing Better ProgrammersGuy Davidson01h 22m
Advocates using code reviews as primary mentoring tool and shows a real bug: a hand-rolled recursive rotate that never increments its write index, fixed and…
Talk on
TLS Cryptography for ProgrammersPeter Bindels01h 26m
Explains exactly how TLS handshakes and ciphers work, showing a 10‑bit RSA demo, why real RSA uses montgomery multiplication (about 500× speedup) and why most…
Talk on
Things I Learnt While Trying to Avoid Becoming a CMake ExpertCB Bailey01h 34m
Maintains several widely used CMake modules and shows concrete patterns: using ninja for fast incremental builds, preferring out-of-source builds, and…
Talk on
C++20 ConceptsAndreas Fertig01h 02m
Demonstrates using C++20 Concepts to replace a 19-class, inheritance-heavy libc++ implementation of libc++ optional with a single class, cutting 1187 lines to…
Talk on
SonarSource: The Power of Clean CodeGeoffray Adde, Olivier Gaudin37m
Live demo shows Sonar tooling catching real C++ problems: lambdas copying vectors (performance), insecure OpenSSL ciphers (crypto risk), memset being optimized…
Talk on
A lock-free std::atomic std::shared_ptrTimur Doumler01h 28m
Claims a portable lock-free std::atomic<std::shared_ptr> is implementable using a split refcount design that keeps a control-block pointer and a local refcount…
Talk on
A Friendly Introduction to Rust for C++ DevelopersHendrik Niemeyer01h 29m
Rust enforces ownership and borrowing so the compiler rejects dangling or simultaneous mutable/immutable references with clear error messages; examples compile…
Talk on
Structured ConcurrencyLucian Radu Teodorescu01h 21m
Claim: P2300 senders/receivers let an entire concurrent C++ application be expressed as nested computations that have one entry and one exit, so the whole…
Talk on
Embracing User-Defined Literals SafelyPablo G Halpern01h 36m
Explains concrete rules and tradeoffs for C++ user-defined literals: four forms (cooked, raw, numeric-template, string-template), 12 cooked overloads, and when…
Talk on
C++20: The Small PearlsRainer Grimm01h 23m
C++20 features are demonstrated with working code examples linked from the slides and live on Compiler Explorer though some chrono time zone queries time out…
Talk on
Equal Rights for TestsJon Jagger01h 26m
Argues that tests must be equal to code and gives concrete practices: instrument tests for coverage and measure cyclomatic complexity of test functions with…
Talk on
Fun With Type ErasurePavel Novikov01h 12m
Demonstrates a C++ dispatcher that parses JSON requests (using tao::json) and maps fields or positional arrays to real function parameters with type checks…
Talk on
C++20 – My Favourite Code ExamplesNicolai M. Josuttis01h 35m
Walks through concrete C++20 code: replaces template overloads with concepts solve overload ambiguity using requires expressions; uses ranges and views are…
Talk on
Structured NetworkingDietmar Kühl01h 01m
Concrete demo of a P2300-style networking stack that composes senders/receivers into an echo server, showing async accept/connect/read/write on an io_context…
Talk on
Diversity Is Too Important to Be Left to WomenHannah Dee01h 25m
Tech teams average ~20% women and that imbalance amplifies microaggressions (the petri multiplier predicts r^2 more hits on the smaller group). Evidence cited…
Talk on
Learning from C++ Juniors’ MistakesAmir Kirsh01h 31m
Course uses a demo project and a graded exercise (container-ship → 3D stacks) as a case study and finds concrete, repeatable junior errors: many teams copy or…
Talk on
Properties & Bindings for Modern C++James Turner16m
An open-source, header-only MIT library implements C++ properties with change-notification signals, operator-overloaded assignment/conversion and…
Talk on
It’s Only Pasta: a Few Tips on Software Architecture to Avoid Spaghetti CodeLucian Radu Teodorescu16m
Argues that three concrete architectural practices — overview, coherence, balance — cut spaghetti code by focusing on essentials, grouping similar components…
Talk on
C++ in the World of Embedded SystemsVladimir Vishnevskii01h 11m
Covers embedded system classes (limited‑resource, real‑time, safety‑critical) and argues modern C++ is usable on many targets as compiler support moves to…
Talk on
Advanced Dependencies Model in Conan 2.0 C, C++ Package ManagerDiego Rodriguez-Losada01h 13m
Conan 2.0 replaces Conan 1.x’s blunt dependency graph with explicit requirement traits (headers, libs, run, build, visibility), plus package types and…
Talk on
The Hip Approach to Safeguarding your UsersCharles Weir22m
Research shows teams routinely misidentify what needs safeguarding after work with over a dozen companies. Run short workshops with post‑its and prompt cards…
Talk on
Why It’s Good to Be A Software ManagerJim Pascoe19m
Becoming a technical manager does not mean stopping coding; hands-on work continues while owning architecture and roadmap decisions, using Jira or a simple…
Talk on
How I Teach Modern C++ One Pixel at a TimeMike Shah01h 26m
Semester-long course frames learning around pixel projects: students implement a doom fire effect, image filters, parallax and a falling-sand sandbox, then…
Talk on
C# Values and Value TypesSteve Love01h 03m
Compares classes, structs, records and record structs by showing concrete code: equals/getHashCode overrides, IEquatable, operator overloads, and the…
Talk on
Remove This IdiomVictor Ciura21m
Upgrading to an MSVC STL revision that marks over 3,000 functions with [[nodiscard]] uncovers silent bugs where code calls remove without erasing, or omits the…
Talk on
Measuring the Overhead of iostreams: What Is the Difference?Ahto Truu20m
A simple harness generates 1–2 million lines (10–40 million integers) and runs gcc 9.2 -O2 binaries on Ubuntu to compare C stdio vs C++ iostreams with…
Talk on
How Code Fails in the Real WorldJames Turner01h 19m
Adds direct crash and error reporting to a large cross‑platform desktop app using CrashRpt then a century backend that wraps crashpad/brakepad and performs…
Talk on
Finding ODR Violations with ORCFoster Brereton, Lee Thomason24m
C++ One Definition Rule bugs can silently corrupt behavior across builds; ORC wraps the linker, scans DWARF debug info and flags mismatched type and vtable…
Talk on
C++ Const Correctness RefresherVladimir Vishnevskii19m
Covers concrete const-correctness fixes: use strict compiler diagnostics and static analysis, make objects const by default, and propagate immutability for…
Talk on
Sandboxing a Linux ApplicationMartin Ertsås01h 25m
Walks through building a minimal but fragile Linux sandbox that actually runs an injected binary, demonstrating use of namespaces (user, mount, pid, net)…
Talk on
Example Mapping – Theory and PracticeSeb Rose22m
Example mapping describes a concrete workflow using a deck of colored cards: a yellow story card, blue rule cards, green example cards and red question cards…
Talk on
DevSecOps - By Any Other NameSeb Rose23m
Argues that “DevSecOps” often becomes a renamed silo unless an organization invests in tooling and process change; cites a 2020 GitLab survey showing no…
Talk on
Deliberate ArchitectureRobert Smallshire01h 14m
Industry demographics produce many inexperienced hires and a high churn rate so the claimed developer half‑life ~3.5 years forces architectures that survive…
Talk on
How to Use C++20 Coroutines for NetworkingJim Pascoe01h 14m
Shows a concrete recipe: prototype the chat in Lua prototype to learn suspension, then implement it in C++20 using co_await suspension semantics and Boost.Asio…
Talk on
Vim for FunAndy Balaam01h 04m
Vim claims to be fast (dates to 1991), handles huge files and long lines, and turns editing into a decades-long game; the demo shows concrete commands (hjkl…
Talk on
A Year In A Rainforest: Engineering For SurvivalMatthew Dodkins01h 25m
Remote ocean and rainforest devices run months by using an FPGA for real‑time filtering and a microcontroller that stores only metadata to SD cards, backed by…
Talk on
Remote Is a Four Letter WordDom Davis19m
Argues that “remote” is the wrong word and that successful teams have long been distributed not remote, citing a 1990s support rota with offices in London…
Talk on
Phoenix?Björn Fahller13m
Burnout escalates into constant fury and tunnel vision that erases priorities and social life, and recovery starts when management enforces an empty to-do list…
Talk on
Coroutines: C++ vs RustJonathan Müller01h 05m
Compares C++ coroutines using a user-defined promise type and std::coroutine_handle (compiler allocates a heap state by default, with optional elision) against…
Talk on
Asynchronous I/O and Coroutines for Smooth Data StreamingBjörn Fahller01h 04m
Linux io_uring (Linux 5.1) and C++20 coroutines are combined into a UDP-read pipeline that submits preallocated 1500‑byte buffers to the ring, receives packets…
Talk on
What Has C++20 Ever Done For Templates?Hendrik Niemeyer01h 21m
C++20 actually adds concrete template tools: concepts provide compiler-enforced predicates (std::invocable, std::same_as, predicate hierarchy) and drive…
Talk on
Classic VulnerabilitiesPatricia Aas01h 16m
Examines decades-old, concrete exploits: an unlink heap primitive is reproduced against Chocolate Doom and a proof-of-concept merged to Chocolate Doom as a…
Talk on
Embracing the **noexcept** Operator and Specifier *Safely*John Lakos01h 28m
Explains that the noexcept operator is a compile time query used mainly to let generic code pick a faster path for moves and swaps, demonstrates a vector…
Talk on
Neotron - Writing a Single-Tasking ‘DOS’ for Arm Microcontrollers, in RustJonathan Pallant01h 34m
A tiny, open-source Neotron OS implements a single-tasking DOS on Cortex‑M hardware using Rust, targeting RP2040 dual‑core 133MHz boards with 256KB RAM and…
Talk on
The C++ Tech Community @ BloombergVittorio Romeo33m
Bloomberg builds an internal C++ Guild that organizes 11 tech communities, mobilizes 150 active contributors, and drives concrete results: a tooling working…
Talk on
Throwing Graphs at COVIDDom Davis01h 29m
Live coding builds a simple contact-tracing simulator using Go structs and pointers and a Neo4j backend queried with Cypher. Code creates 100 person nodes…
Talk on
A Practical Approach to Error HandlingArno Schödl44m
Describes a concrete workflow: check every API call, keep aggressive runtime asserts in release, mark functions noexcept everywhere so failures are forced to a…
Talk on
Cool New Stuff in GDB 9, 10 and 11Greg Law01h 10m
GDB 9–11 adds concrete tools not vague promises: a debuginfod server that serves debug info by build-id (useful when a customer had >50 GB of debug info that…
Talk on
Abstraction Patterns: Making Code Reliably Better Without Deep UnderstandingKate Gregory01h 05m
Codebases reveal missing structure: spotting literal magic numbers and converting them to named constants, grouping seven boolean flags into a single options…
Talk on
Powerful Data Processing Pipelines with C++20 CoroutinesAndreas Weis01h 27m
Shows a concrete pipeline implementation: file source -> zlib deflate filter -> sink using C++20 coroutines, ring buffers and a simple acquire/commit API…
Talk on
The Victorian InternetJim Hague42m
A concise history of how 19th-century telegraph projects turn global communication from weeks to minutes: detailed routes and repeaters such as Alice Springs…
Talk on
Do You Want Fries With That? From Punched Cards to DevOps and BeyondGail Ollis43m
Argues that security is treated as an add‑on rather than built into developer workflows, using a staged punch‑card pipeline demo (analyst → coder → punch‑card…
Talk on
Documentation in the Era of Concepts and RangesChristopher Di Bella, Sy Brand01h 15m
Compares current docs (Abseil, fmtlib, LLVM, Catch2, range-v3, Boost.Range) and recommends concrete changes: put a short description and an example at the top…
Talk on
The Basics of ProfilingMathieu Ropert01h 17m
Explains when sampling versus instrumentation actually finds root causes, demos the game profiler Optick live and compares it to vTune; shows a mutex that…
Talk on
Matrix is a Distributed Real-time DatabaseAndy Balaam01h 07m
Describes Matrix as an open federation you can run locally (Synapse on port 8008, typically backed by Postgres) and uses JSON over HTTP (protocol v1.2). Shows…
Talk on
Kill All Mutants! (Intro to Mutation Testing)Dave Aronson01h 06m
Explains how mutation testing actually works: AST-based tools make thousands of tiny code variations and run only the covering tests, flagging surviving…
Talk on
C++ MythBustersVictor Ciura01h 21m
Claims and evidence: sprintf uses the global locale and a mutex so switching to libformat gives ~3–4× speedups on macOS and ~20× on Windows in a cited case…
Talk on
Many an `any`Alisdair Meredith01h 21m
Implements several concrete std::any designs starting from a minimal version that stores the value on the heap via a void pointer plus a templated deleter and…
Talk on
Contractual Disappointment in C++John McFarlane01h 27m
Lays out four concrete contract kinds (C++ API, standard, end‑user, and a test-user contract), shows a PID controller assert and a real bug where a sentinel…
Talk on
Sandbox Games - Using WebAssembly and C++ to Make a Simple GameÓlafur Waage01h 12m
Builds a browser sliding-puzzle and a Wordle bot by compiling C++ to WebAssembly with Emscripten + C++, exposing functions via the module import object and…
Talk on
The Genius of RISC-V MicroprocessorsErik Engheim01h 01m
Explains why RISC‑V is modular not monolithic, claims the base RV32I spec is tiny enough to read in hours and extensions are frozen for compatibility; shows…
Talk on
Tradeoffs in the Software WorkflowTitus Winters01h 21m
Argues that shipping small changes matters quantitatively: DORA shows 46x more frequent deployments, 440x faster commit→deploy, 170x faster MTTR, and 5x lower…
Talk on
Introduction to Verifiable ComputingAhto Truu01h 25m
Shows how verifiable computing turns C functions into quadratic arithmetic programs and uses commitments, bilinear pairings and discrete‑log hardness to…
Talk on
An Introduction to Multithreading in C++20Anthony Williams01h 28m
Where to start with C++20 multithreading is practical advice not theory: use jthread with stop_token so destructors request stop and join, use parallel…
Talk on
Law of Demeter: A Practical Guide to Loose CouplingKris Jusiak01h 28m
Shows concrete before/after C++ code: a god-object using singletons and chain calls like manager.instance.getSpeakers.get that is hard to test, then refactors…
Talk on
How to Rangify Your CodeTina Ulbrich01h 15m
Shows how to refactor real C++ loops into concrete range pipelines using range-v3, the standard library ranges and helpers like ranges::to; demonstrates…
Talk on
Crowd Your Way Out of a Paper BagFrances Buontempo01h 10m
Simulations show simple agent rules producing realistic crowd effects: a one‑lane queue produces ghost jam stop‑and‑go waves; a two‑lane hack causes risky lane…
Talk on
Level Up Your Debugging Workflow with CMake Presets, Disassembly View, & GitHub ActionsJulia Reid58m
Demonstrates using cmakepresets.json (requires CMake 3.21+) and the CMake Tools extension to build the same C++ project across three OSes and two editors, runs…
Talk on
What Classes We Design and HowPeter Sommerlad01h 20m
Categorizes C++ types as Value, Subject, Relation, Manager (scope, unique, general) and gives concrete rules: prefer the Rule of Zero, treat relation types…
Talk on
Live CodingDietmar Kühl04m
Live coding uses a commit-per-change workflow: every edit becomes a git commit that gets reloaded, driven by a small script that stitches files into a commit…
Lightning on
wordlexpr -- compile-time WordleVittorio Romeo05m
Implements a playable Wordle that runs entirely at C++ compile time by encoding game state in types, taking a seed and each guess as preprocessor defines, and…
Lightning on
How We Hired an Outstanding Junior DeveloperAustin Bingham05m
Company posts role in Norway requiring legal right to work and gets 77 applications. Two reviewers independently screen with veto rights, cut to about 20, then…
Lightning on
Building Graphical Appliances Made EasyAlan Griffiths05m
Shows a concrete workflow to get a graphical kiosk running on Ubuntu Core and reproduce the device on a Linux desktop: install the ubuntu-frame snap, set…
Lightning on
How lng is a Piece of StringSeb Rose05m
Estimation is hard and repeated practice alone does not reliably improve accuracy; research on the Agile Alliance shows relative estimation using story points…
Lightning on
Squid Game C++ EditionTina Ulbrich06m
Three rapid C++ puzzles ask for the return value given short snippets and an input hint rather than full code, delivered as multiple choice with three options…
Lightning on
My Thinking Is Not for SaleCharles Tolman05m
Argues that money buys body time in front of a computer but not the mental work of design, because thinking is a voluntary gift and cannot be directly…
Lightning on
A Happy Little AccidentPeter Bindels03m
A BMP image painted in GIMP becomes a raw .com program by saving a 102‑byte bitmap, renaming it to helloworld.com and running it under DOSBox. The file size…
Lightning on
MEAD!Dave Aronson05m
A simple home mead method: combine 300–400 g honey, 750 mL spring water and about a gram of yeast in a jar, stir until dissolved, cover with cloth and wait —…
Lightning on
Getting to ACCURobert Smallshire05m
Journey from Oslo to Bristol by car and rail: 40-minute drive to Oslo Central at 06:01, high-speed rail to Gothenburg arriving 09:45, onward to Copenhagen…
Lightning on
What Am I?Andy Balaam06m
Live-coded a simple simulation that visibly renders a green multi-part body and moves it by updating a leading edge array, mapping inputs to direction so arrow…
Lightning on
My Favorite Theorem: How Mathematics Can Surprise UsHendrik Niemeyer05m
A rapid tour of concrete surprises: the Banach–Tarski paradox shows a ball can be cut into a finite number of pieces and reassembled into two identical balls…
Lightning on
A Programmer: Still GrowingJim Hague05m
Career reflection that ties concrete milestones to learning: finding an August 1980 magazine and a February 1981 cover anchors decades of change, the original…
Lightning on
Direct Aggregate InitialisationTimur Doumler05m
C++20 lets aggregates be initialized with parentheses, enabling make_shared and emplace_back to perfect‑forward into aggregates and letting macros avoid…
Lightning on
Quantifying Dinosaur PeeJohn Lakos05m
Calculation uses simple calculus and an exponential decay model versus a discrete model, both giving nearly identical results for 165 million years and an…
Lightning on
Straw ManSeb Rose05m
Straw-bale studio built starting with eight concrete footings, a sawn-wood frame and piles of standard straw bales that cost £2.50 per bale; structural trusses…
Lightning on
Moving an `int` Is Slow: Debug Performance Matters!Vittorio Romeo05m
Benchmark shows C++20's std::accumulate uses std::move in assignment and on -O0 that call is not inlined, producing 1.4× slowdown versus C++17 for an int-heavy…
Lightning on
This One's for my MumDom Davis05m
Claim: programming is composing, not magic — treat code as musical score that a machine interprets like a musician reads notation. Schools expect universal…
Lightning on
co_pilotÓlafur Waage05m
Shows practical results from feeding C++ prompts to GitHub Copilot and inspecting its suggestions: attempts to write memory allocators, smart pointer…
Lightning on
The 5 Colour TheoremAndy Balaam06m
A concise, constructive proof that any planar map requires at most five colors, using proof by induction and the Kempe-style idea of swapping along alternating…
Lightning on
Clacks - Sending Home A TributeGail Ollis05m
A short live reading of a passage from Going Postal that shows how the clacks network uses semaphore shutters and an overhead code with flags like G, U and N…
Lightning on
Programming PuzzlersPete Goodliffe05m
A rapid live quiz that flashes about 30 icons each mapping to a programming term, using a slide deck of simple pictograms and a stopwatch. Audience correctly…
Lightning on
Better Support for Emotive Programming in C++Pablo G Halpern05m
Demonstrates that many emoji can already appear in C++ code via identifiers and user‑defined literals but the common smiley `: )` cannot because syntax forbids…
Lightning on
A Book That Everybody Should READFelix Petriconi04m
A tightly focused recommendation of a forensic book about the Horizon accounting system used in British Post Offices in the early 2000s, tracing how software…
Lightning on
Running A Student Conference For 15 Years (Give Or Take)Hannah Dee05m
A student-run women-in-tech conference starts in 2008 with 50 students funded with a small grant and homemade lunches, keeps the same program format, and grows…
Lightning on
Measuring The WorldMathieu Ropert05m
A rapid tour of measurement history gives concrete claims and surprises: the Egyptian cubit ≈50 cm, the Roman mille passus = 1,000 paces later morphing into…
Lightning on
Beelzebub Has A Devil Put Aside For MeDom Davis06m
Claim: USB-C is a connector not a protocol and the port says almost nothing about the data that travels over the wire. Thunderbolt is a separate, faster…
Lightning on
What Is The Connection Of A Scriber And An Interrupt Routine?Felix Petriconi05m
A backyard ground-source heat pump loop of 300 meters goes into the ground and connects to a home interface, metered with a one-pulse-per-watt sensor wired to…
Lightning on
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.