It's that time again! This month we have talks from Tony Wasserka and Valentin Galea, don't miss it!
Bitcoin Code Review: How C++ Powers The Biggest Cryptocurrency
By now everyone has heard of bitcoin, blockchain and the meteoric rise of cryptocurrencies. While the economic aspects of them are up to debate, the technology employed is intriguing and holds a lot of potential.
C++ powers the majority of this tech, with most of the crypto coin software written in it. We will concentrate on the oldest coin and the one that started it all: Bitcoin.
Originally written in 2009 by the mysterious Satoshi Nakamoto, the source code of the official Bitcoin Core client has evolved and it's being actively maintained. We will take a look at how it's structured, some of the design choices, bespoke data structures and its idiomatic use of C++. With such a long history of dev, we are bound to find some interesting details, and observe as well how it reflects C++'s own trajectory over time. We will also quickly contrast Bitcoin source code with other relatively newer currencies like Ripple and Ethereum.
Valentin is a professional video game developer based in London, UK. He currently works at Splash Damage for the award-winning "Gears of War" franchise on Windows 10 and Xbox One. C++ enthusiast and evangelist, focused on systems, graphics and engine programming. He has 10 years worth of experience, with past work ranging from MMO projects to mobile and handheld games. When he's not geeking out on games, he collects vinyl records.
Generative Programming in Action: Emulating the 3DS
Console emulation needs to stem the difficult balance between optimizing code for stable frame rates and maintaining the complex logic required to emulate the given hardware - any subtle bug in this system easily manifests in a user-visible glitch. How can modern C++ help?
Using the toolbox of generative programming, we take a look at the system call interface of the 3DS and see how far variadic templates, function reflection, and some metaprogramming will get us in terms of bridging the gap between performance, maintainability, and correctness.
This is a beginner-friendly talk - prior knowledge of metaprogramming is not required!
Low-level anything: Tony is a long-term C++ enthusiast who has worked extensively on the console emulator projects Dolphin (GameCube/Wii), PPSSPP (PSP), and Citra (3DS). At his day job, he's working on the Vulkan graphics driver for PowerVR GPUs.