ACCU 2017
2017-04-24..2017-04-29
Bristol, United Kingdom
ACCU ·
[ACCU 2016, ACCU 2017, ACCU 2018, ACCU 2019, ACCU Autumn 2019 Belfast, ACCU 2021 Online, ACCU 2022, ACCU 2023, ACCU 2024, ACCU 2025]
who it's for
C++ developers, systems programmers, performance engineers, language designers, tooling authors, Python developers, web developers, game developers
topics
Chapel parallel programming; Kotlin JVM and JavaScript interop; C++ type system and templates; modern C++ idioms and teaching; C++ Core Guidelines and GSL; program optimization and microarchitecture; local arena memory allocators; Elm for web frontends; DNS protocol, DNSSEC and DNS over TLS; Python 3 coroutines and asyncio; SG13 HMI 2D API game development; SIMD, AVX and low-level tuning
| title | author | length |
|---|---|---|
| The Audacity of Chapel: Scalable Parallel Programming Done Right | Brad Chamberlain | 54m |
Chapel is a general-purpose parallel language that maps a single program across serial, multi-core and distributed runs by swapping domain maps; it exposes… | ||
| An introduction to Kotlin by example | Dmitry Kandalov | 01h 27m |
Kotlin is a JetBrains language that compiles to JVM and JavaScript (Apache 2) and teams it into existing Maven/Gradle/IntelliJ workflows; development starts in… | ||
| The C++ Type System Is Your Friend | Hubert Matthews | 01h 10m |
Argues C++ types and templates enforce domain rules with zero runtime cost: concrete examples include whole value pattern year/month/day wrappers, user‑defined… | ||
| Learning (and teaching) modern C++ - Challenges and Resources | Arne Mertz | 01h 01m |
Argues that “modern C++” means using current standard features and best practices (RAII, unique_ptr, lock_guard) rather than old C idioms, noting a MeetingCpp… | ||
| Writing games in very modern C++ | Guy Davidson | 01h 25m |
Walks through using the SG13 HMI 2D API proposal and a Cairo-based reference implementation to write a playable Asteroids clone in modern C++: implements… | ||
| An Overview of Program Optimization Techniques | Mathias Gaunard | 01h 37m |
Covers what hardware actually does (pipelining, out‑of‑order, superscalar ports, caches, NUMA and SMT) and when manual changes help: use Sandy Bridge… | ||
| DNS at 30 | Jim Hague | 01h 27m |
RFC1035 (1987) still shapes DNS but recent changes matter: DNSSEC signs zones with a KSK (kept offline) and ZSK (rotated several times a year), DANE lets TLS… | ||
| C++ Core Guidelines - Modernize your C++ Code Base | Peter Sommerlad | 01h 29m |
The C++ Core Guidelines are presented with concrete enforcement: a header‑only GSL provides owner<T>, not_null and span types; Cevelop adds interactive static… | ||
| Local (arena) Memory Allocators | John Lakos | 01h 41m |
Local arena allocators can cut runtime by up to order-of-magnitude in real benchmarks by keeping related objects contiguous and in-cache, especially in a… | ||
| Functional Programming for the Web with Elm | Austin Bingham | 01h 28m |
Elm compiles to JavaScript with a statically typed, Haskell‑inspired system that reduces runtime exceptions and shows competitive render times versus… | ||
| Standardised Coroutine Concurrency in Python 3 | Robert Smallshire | 01h 29m |
Shows how a tiny scheduler is built from generators, demonstrates a mechanical refactor into real Python 3.5+/asyncio with ensure_future, and explains why… | ||
| Efficient data aggregation with Fenwick trees | Ahto Truu | 13m |
Fenwick tree stores cumulative blocks inside the original array so it gives no extra memory while supporting O(log n) updates and queries; building the… | ||
| Requirement: Creativity | Dirk Haun | 11m |
A compact, repeatable creativity technique using a five-minute prompt-and-constraint ritual with a random-word generator and forced recombination, followed by… | ||
| The missing piece of the continuous integration puzzle | Greg Law | 18m |
Continuous integration runs orders of magnitude more tests now — thousands per hour — and about 25% of failures remain hard, intermittent and… | ||
| Passwords. Are. Not. Hard! | Dom Davis | 14m |
Argues that complexity rules weaken security: forcing mixed-case, digits and symbols often reduces entropy from ~10^16 (96^8) to ~10^13 and GPUs (e.g. a GTX… | ||
| Contracts programming after C++17 | J Daniel Garcia | 01h 34m |
Proposal targets C++20 and adds language-level contracts with new attributes expects/ensures/assert, three assertion levels default/audit/axiom and three build… | ||
| Improving Sense of Smell Low-Level Debugging | Matthew Dodkins | 01h 20m |
We often use the metaphor of smell to describe issues with code which haven’t necessarily manifested, but could end up causing serious problems (“code… | ||
| Machine Learning with Python Case Study | Pedro Ferriera | 15m |
Recommendation system for holiday accommodation built with Python 3.5.1 and Jupyter using Pandas, NumPy/SciPy and scikit‑learn, trained on ~1 million bookings… | ||
| Intro to TDD and BDD | Seb Rose | 15m |
Explains that TDD is the concrete red-green-refactor loop (write the next specification, make it pass quickly, then refactor without changing behavior) and… | ||
| Design and Evolution of cyber-dojo | Jon Jagger | 18m |
cyber-dojo migrates from a Ruby monolith to separate services and a Travis-driven build chain where each repo builds a Docker image, runs its tests inside that… | ||
| LLVM C/C++ compiler frontend in Java | Petr Kudriavtsev | 15m |
Clang - is the name of the C/C++ frontend in LLVM project. It has many powerful features and one of them is its design. It was written in a way that allows to… | ||
| The Ethics of Software - some practical considerations | Burkhard Kloss | 47m |
Argues that everyday engineering choices have measurable social effects and few safeguards: logging decisions can expose users to government requests, hiring… | ||
| History of Time: Asynchronous C++ | Steven Simpson | 01h 31m |
Begins from a simple blocking server that manages 190,000 req/s baseline then measures select (drops to ~160k, collapses past ~1k FDs), threading (nearly… | ||
| AI: Actual Intelligence | Frances Buontempo | 54m |
Gives concrete examples: an fMRI study that flags a dead salmon due to multiple statistical tests, chatbots that learn abusive behavior and get shut down… | ||
| Automatic C++ source code generation with clang | Sergei Sadovnikov | 47m |
Almost every C/C++ programmer eventually runs into a situation when they have to write a lot of boilerplate code. Enum to string conversion (and vice versa)… | ||
| Mastering Git’s index | Charles Bailey | 01h 01m |
The index is a path-to-blob mapping that doubles as a stat cache; commands shown manipulate it directly: using read-tree to populate an empty index or import a… | ||
| Coroutines and C++ DSLs for Human Scale Concurrency | Dominic Robinson | 01h 32m |
Claim: C++ stackless coroutines (available in Visual Studio 2015 and coming to clang/llvm) can be metaprogrammed into higher‑level concurrency constructs… | ||
| Easy High Constancy | Sergey Nepomnyachiy | 12m |
C++ library called yogic instruments calls to databases and remote services, records per-label execution history, and cancels likely-to-fail calls to save… | ||
| Missing Optimizations on Node-based Containers | Elliot Goodrich | 13m |
Rewrites of std::list methods trade pointer-chasing for independent memory loads: run forward and backward iterators per loop, buffer reads then commit writes… | ||
| Using Trompeloeil, a mocking framework for modern C++ | Björn Fahller | 01h 25m |
Trompeloeil is a C++14, header-only mocking framework (single header ~3.5k lines) that stays within the language and integrates via small adapters to existing… | ||
| Metaprogramming in C++14 | Louis Dionne | 01h 34m |
Uses C++14 and Boost.Hana to represent types, integers and strings as values and builds concrete examples: a parser combinator that returns tuple results, an… | ||
| A look at C++ through the glasses of a language tool | Anastasia Kazakova | 54m |
IDE developers must balance correctness and latency, so parsers postpone work but C++ forces early resolution: distinguishing types from expressions… | ||
| Making Sense Of Microservices | Russ Miles | 37m |
Claims that microservices mainly amplify cognitive overhead and the false assumption "we know what we're doing," and proposes automation and chat-driven… | ||
| Bluff your way in x64 assembler | Roger Orr | 01h 25m |
Quick practical guide to reading x64: common instructions are mostly mov, lea, call and test so learning 20 covers 90–95% and the top three cover ~50–60%… | ||
| A Test of Strength | Chris Oldwood | 01h 10m |
Addresses how poorly organized unit tests—bad naming, scope, and structure—turn into brittle, write-only suites that slow development. Recommends practical… | ||
| The Detection Idiom - a simpler way to SFINAE | Marshall Clow | 53m |
Explains a practical way to replace messy enable_if SFINAE with the detection idiom from the Library Fundamentals TS that uses void_t plus a hidden detector… | ||
| Atomic’s memory orders, what for? | Frank Birbacher | 01h 28m |
Explains concrete effects of C++11 std::atomic memory_order options using microtests: plain int gets optimized away, volatile increments fail, atomic… | ||
| How to write a programming language | Andy Balaam | 01h 13m |
A tiny interpreter called Cell (github.com/andybalaam/cell) is implemented in Python and deliberately short to show core ideas. The lexer tokenizes input, the… | ||
| Lock-free programming with modern C++ | Timur Doumler | 01h 32m |
Uses C++11/14's std::atomic and the standard memory model to demonstrate a fixed-capacity ring buffer (size = N+1) implemented as a… | ||
| Thinking Outside the Synchronisation Quadrant | Kevlin Henney | 01h 35m |
Argues that concurrency is not just locks but a 2×2 state/ownership model (the synchronisation quadrant is only one corner) and shows concrete alternatives… | ||
| Implementing variant Visitation Using Lambdas | Vittorio Romeo | 01h 31m |
Demonstrates a concrete implementation of lambda-based visitation for std::variant and other variants: builds an overload set via multiple inheritance and… | ||
| Functional C++ For Fun And Profit | Phil Nash | 01h 04m |
Argues that C++ can adopt practical functional ideas: use C++11 lambdas and immediately-invoked lambda tricks to make expression-oriented code, prefer… | ||
| Mongrel Monads, Dirty, Dirty, Dirty | Niall Douglas | 01h 35m |
Compares C, C++98 exceptions, C++11 std::error_code and the WG21 expected proposal, benchmarks on GCC 6.2, Clang 4 and MSVC 2017, and shows throwing a C++… | ||
| A Browse Through ES2016 | Jez Higgins | 01h 22m |
Covers concrete ES2015+ changes and how to use them now: let/const block scope replaces var, generators + iterators enable lazy pipelines (example: Lucas… | ||
| Concurrency, Parallelism and Coroutines | Anthony Williams | 01h 32m |
C++17 adds new overloads with an execution policy so algorithms can run as seq, par, par_unseq; coroutines (co_await / co_yield / co_return) suspend and resume… | ||
| Modern C++ Design reloaded | Odin Holmes | 01h 28m |
Argues that Alexandrescu-style patterns become practical with C++11/20 features and shows concrete techniques: continuation-based TMP with aliases, polymorphic… | ||
| Grill the C++ committee | Panel Discussion | 01h 25m |
Panelists explain how to push real changes: file a short proposal (motivation, examples, proposed wording) via isocpp.org and open a library issue rather than… | ||
| Introduction to Qt 3D - Giuseppe D’Angelo - [ACCU 2017] | Giuseppe D'Angelo | 01h 35m |
Qt 5.7 ships Qt3D: an Entity‑Component System that models scene data as components, runs a threaded simulation backend, and exposes both C++ and QML APIs… | ||
| Thoughts on Metaclasses - Herb Sutter | Herb Sutter | 01h 11m |
Proposal adds meta classes on top of assumed reflection and compile-time programming, letting library code rewrite class declarations (interfaces, value types… | ||
| nothing matches | ||