Lightning Talk: Effective APIs in Practice in Cpp - Thamara Andrade - CppCon 2022
https://github.com/CppCon/CppCon2022
"Make interfaces easy to use correctly and hard to use incorrectly." That's easy to agree with, but hard to follow. Let's see how can we can improve our APIs and avoid the pitfalls that come from the interface's growth.
---
Thamara Andrade
__
Videos Streamed & Edited by Digital Medium: http://online.digital-medium.co.uk
Lightning Talk: Programming is Fun in C++! - Pier-Antoine Giguère - CppCon 2022
https://github.com/CppCon/CppCon2022
Programming is so fun! We should stop having examples 'return 42' or display a 'Hello World', this is why i'm presenting a little toy 'Realtime' Ray Tracer and what I love about it!
---
Pier-Antoine Giguère
Pier-Antoine Giguère has been programming for 20 years and is absolutely loving it!
__
Videos Streamed & Edited by Digital Medium: http://online.digital-medium.co.uk
Lightning Talks: -std=c++20 -- Will It Compile? That is the Question - Tulio Leao - CppCon 2022
https://github.com/CppCon/CppCon2022
New versions of the standard come and go and every team takes its time to adopt them, C++20 being no different. Come see some compilation issues found when porting to C++20 and ways to solve them for when the times come for yours!
---
Tulio Leao
---
Videos Streamed & Edited by Digital Medium: http://online.digital-medium.co.uk
Lightning Talk: Who is Looking for a Cpp Job? - Jens Weller - CppCon 2022
https://github.com/CppCon/CppCon2022
A few insights on who has been applying for C++ jobs and visited the Meeting C++ online job fairs.
---
Jens Weller
Jens Weller is the organizer and founder of Meeting C++. Doing C++ since 1998, he is an active member of the C++ Community. From being a moderator at c-plusplus.de and organizer of his own C++ User Group since 2011 in Düsseldorf, his roots are in the C++ Community. Today his main work is running the Meeting C++ Platform (conference, website, social media and recruiting). His main role has become being a C++ evangelist, as this he speaks and travels to other conferences and user groups around the world.
__
Videos Streamed & Edited by Digital Medium: http://online.digital-medium.co.uk
Aliasing in C++ - Risks, Opportunities and Techniques - Roi Barkan - CppCon 2022
https://github.com/CppCon/CppCon2022
The notion of *aliasing* in C++ is one of the trickiest legacy attributes inherited from C. Prevalent when writing object-oriented code, it can cause hard-to-spot functional bugs and far-too-common performance penalties.
In this talk we'll learn where aliasing appears, how impactful it can be, and how we can avoid it when needed. We'll also see when we might harness it to our advantage when appropriate.
We'll see and understand various examples of unexpected behavior and performance, and learn to inspect our code for common aliasing pitfalls.
We'll learn the details of *strict aliasing* rules, and use them to understand how to use get the compiler to understand what we mean. We'll understand how strong-typedefs, value-based design and various potential standards-proposals can be used to make our code more readable and more expressive.
---
Roi Barkan
Professional software developer and architect since 2000, Roi's main focus throughout his career was on high performance and distributed systems, implementing complex and innovative algorithms. Roi has been the VP technologies of Istra Research since 2014, where he helps creating low latency financial systems. Prior to working for Istra Research, Roi spent 12 years in software development, architecture and management in the IT Security field. Roi received his B.A in Computer Science with high honors from the Technion in Israel, and his executive MBA from Tel Aviv University.
---
Videos Streamed & Edited by Digital Medium: http://online.digital-medium.co.uk
Take Advantage of All the MIPS - SYCL & Cpp - Gordon Brown, Michael Wong, Ronan Keryell, Nevin Liber & Jakub Chlanda - CppCon 2022
https://github.com/CppCon/CppCon2022
Have you ever wanted to take advantage of all the MIPS in your machine with one cppcon.digital-medium.co.uk/tag/programming/">programming language?
Have you ever wanted to support any kind of offload devices in C++, be they FPGA, GPUs, matrix/tensors, or DSPs? Many people have by augmenting a SYCL compiler.
Have you wondered why US National Labs are choosing SYCL as a standard cppcon.digital-medium.co.uk/tag/programming/">programming model for exascale computing? This is because they know maximum performance can be achieved with a combination of host and accelerator devices in any vendor combination, so they choose SYCL.
Khronos SYCL is a framework language built on top of Modern C++. It is backed by an open standard in Khronos and enables ML frameworks and Standard C++ code on top of template libraries with lambda functions that have host and accelerate device code in a single source, but still enable separate compilation of host and device code. The device SYCL compiler may employ kernel fusion for better performance and the host CPU compiler can be any C++ compiler, from clang, GCC, VS C++, or IBM XL compiler. Many people have built SYCL compiler additions to dispatch to any variety of devices very quickly, from students to academia, to industry. There are already a number of backends including CUDA, PTX, OpenMP, AMD, NEC, Huawei, Kokkos, Raja, and TBB in addition to OpenCL.
There are also many interesting use cases with complex modern C++. PyTorch, Blender, ray-tracing, Flashlight ML, Eigen and Tensorflow, Gromacs, and CERN’s ATLAS experiment for high energy physics.
This talk from members of the SYCL and C++ community will talk about highlighted features from the latest SYCL 2020 as related to ISO C++. SYCL can serve even more Extreme Heterogeneity where Data Movement is still King. We also are entering the era of software and hardware Codesign with extreme Heterogeneity and SYCL can be a part of a standard cppcon.digital-medium.co.uk/tag/programming/">programming model for all HPC, Embedded AI/ML, and Automotive
This talk will showcase these features and show how SYCL 2020 has increased expressiveness and simplicity for modern C++ heterogeneous cppcon.digital-medium.co.uk/tag/programming/">programming.
---
Gordon Brown
Gordon Brown is a principal software engineer at Codeplay Software specializing in heterogeneous cppcon.digital-medium.co.uk/tag/programming/">programming models for C++. He has been involved in the standardization of the Khronos standard SYCL and the development of Codeplay’s implementation of the standard; ComputeCpp, from its inception. More recently he has been involved in the efforts within SG1/SG14 to standardize execution and to bring heterogeneous computing to C++, including executors, topology discovery and affinity.
---
Michael Wong
Michael Wong is a Distinguished Engineer at Codeplay Software, a company that produces compilers, debuggers, runtimes, testing systems, and other specialized tools. For 20 years, he was the Senior Technical Strategy Architect for IBM compilers. Michael is Chair of the Khronos C++ Heterogeneous Programming language SYCL, Editor for the Concurrency TS and the Transactional Memory TS, Canadian Head of Delegation to the ISO C++ Standard, Founding member of the ISO C++ Directions group, Director and VP of ISOCPP.org and Chair of al Programming Languages for Canada’s Standard Councils.
---
Ronan Keryell
Ronan Keryell is principal software engineer at AMD working on high-level cppcon.digital-medium.co.uk/tag/programming/">programming models for FPGA and member of the Khronos OpenCL & SYCL C++ committee. Ronan was assistant professor in the Comp Sci department at MINES Paris Tech and later at Télécom Bretagne (France), working on automatic parallelization, compilation of PGAS languages (High-Performance Fortran), high-level synthesis and co-design, networking, and secure computing. Co-founder of 3 start-ups, mainly in the area of High Performance Computing, and was the technical lead of the Par4All automatic parallelizer at SILKAN, targeting OpenMP, CUDA & OpenCL from sequential C & Fortran.
---
Nevin Liber
Nevin “:-)” Liber is a Computer Scientist in the ALCF (Argonne Leadership Computing Facility) division of Argonne National Laboratory, where he works on the oneAPI/DPC++/SYCL backend for Kokkos for Aurora. He also represents Argonne on the SYCL and C++ Committees, the latter as Vice Chair of LEWGI/SG18. He has worked in C++ across various industries and platforms (big data, low-latency, operating systems, embedded, telephony and now exascale computing, etc.). He has been a C++ Committee member since 2010 and hosted both the C++ and C standards meetings in Chicago.
---
Jakub Chlanda
At Codeplay, I work at the sharp edge between heterogeneous runtimes and compilers for CPU/GPU/DSP and FPGA systems. Launching myself into dark corners of both.
---
Videos Filmed & Edited by Bash Films: http://www.BashFilms.com
YouTube Channel Managed by Digital Medium Ltd https://events.digital-medium.co.uk
Using std::chrono Calendar Dates for Finance in C++ - Daniel Hanson - CppCon 2022
https://github.com/CppCon/CppCon2022
Dates and date calculations might not sound exciting, but they are vitally important in financial software development, particularly in areas such as fixed income analytics, mortgage backed-securities (MBS), and interest rate derivatives. A prime example is in applying the correct day-count convention to interest rate derivative calculations, as failure to do so can result in potentially significant losses for a trading desk.
Up until C++20, C++ financial developers had to rely on an external library for dates, or write their own customized code. This has now fortunately changed with the addition of the `std::chrono` calendar date classes.
Some of the operations are not exactly trivial, however, as one needs to identify and use the appropriate tools in the library. For example, naively applying the addition assignment operator to add a period of two months to December 30 can result in an invalid date of February 30. Another possible complication is if a date generated in a payment schedule falls on a non-business day at the end of the month. Remedies in these cases are provided by using a std::chrono object that represents the last day of the month object rather than a standard date.
Handling edge cases such as these is standard fare in working with financial date calculations. Methods available in `std::chrono` to adjust for them will be presented, and then parlayed into designing C++ code to properly generate a schedule of cash flows, perform business day adjustments for weekends and end of the month, construct and interpolate a term structure of interest rates, and calculate the present value of fixed income securities such as bonds and interest rate swaps.
---
Daniel Hanson
Daniel Hanson spent 24 years in quantitative development in finance, primarily with C++ implementation of option pricing and portfolio risk models, and related library development. He subsequently held a full-time lecturer position through 2022 in the Department of Applied Mathematics at the University of Washington, teaching quantitative development courses in the Computational Finance & Risk Management (CFRM) graduate and undergraduate programs. This included intermediate and advanced classes in computational C++, and mentoring students in Google Summer of Code projects involving implementation of mathematical models in C++ and R.
---
Videos Filmed & Edited by Bash Films: http://www.BashFilms.com
YouTube Channel Managed by Digital Medium Ltd https://events.digital-medium.co.uk
Bringing a Mobile Cpp Codebase to the Web - Li Feng - CppCon 2022
https://github.com/CppCon/CppCon2022
Djinni is a tool for generating cross-language interface bindings between C++ and other languages. At Snap we managed to add full featured WebAssembly support to it. This means the same interface definitions for mobile platforms can now expose C++ code to Javascript and TypeScript code running in web browsers.
This work has helped bring Snap's large mobile C++ code base to the web with minimal change. It is the foundation of the recently released Snapchat for Desktop Web. And it is currently available on Github (https://github.com/snapchat/djinni).
In this talk you will see how Djinni enabled Snapchat to reuse our mobile C++ codebase in a browser app, how it works under the hood, and how you can use this open source tool in your own web projects.
---
Li Feng
Li has been writing software in C++ for over 20 years. He is currently a software engineer at Snap and the maintainer of Snap's open source Djinni project.
---
Videos Streamed & Edited by Digital Medium: http://online.digital-medium.co.uk
How C++23 Changes the Way We Write Code - Timur Doumler - CppCon 2022
https://github.com/CppCon/CppCon2022
C++20 was a huge release: coroutines, concepts, ranges, and modules profoundly changed the way we write code and think about C++. In comparison, C++23 is a lot smaller in scope: its primary mission is to complete C++20, to fill holes, and to fix issues. Nevertheless, some great new features made the cut this time around, both in the standard library and in the core language. This is even more remarkable considering that the entire feature design phase of C++23 took place during the COVID-19 pandemic, challenging the ISO C++ committee to completely reinvent how we work together.
This is not a firehose talk about C++23 that tries to cram as many additions and improvements as possible into one hour. Instead, we deliberately focus on just a handful of new features that are going to noticeably change and improve the experience of the everyday C++ programmer. We will talk about how `std::expected` improves error handling, the huge impact that `std::mdspan` will have on scientific computing, how deducing `this` greatly simplifies longstanding C++ idioms such as CRTP, and how `std::print` will forever change how we write "Hello, World".
---
Timur Doumler
Timur Doumler is the Developer Advocate for C++ tools at JetBrains and an active member of the ISO C++ standard committee. As a developer, he worked many years in the audio and music technology industry and co-founded the music tech startup Cradle. Timur is passionate about building inclusive communities, clean code, good tools, low latency, and the evolution of the C++ language.
---
Videos Filmed & Edited by Bash Films: http://www.BashFilms.com
YouTube Channel Managed by Digital Medium Ltd https://events.digital-medium.co.uk
A Tour of Cpp Recognised User Type Categories - Nina Ranns - CppCon 2022
https://github.com/CppCon/CppCon2022
What's trivial about trivial types ? What can we say about the layout of the standard layout types? What is the lifetime of an implicit-lifetime type ? How are all these types different from aggregate types and literal types, why do we need them, and when do we care ? Modern C++ offers several new classification of types to help users optimize their code. Getting familiar with them will allow you to take advantage of the special provisions the language gives you and write better code. Knowing the boundaries of those specific situations will prevent you from falling into the UB abyss. Join me as we take a tour of language recognised user types, noting their advantages and pitfalls.
---
Nina Ranns
Nina Ranns has been a member of the C++ standard committee since 2013, focusing mostly on the core part of the language, and committee secretary since 2018. Throughout her career she has worked for Siemens, Motorola, Datasift, and Symantec on everything from parts of the UMTS network to cloud based antivirus products. Currently an independent consultant with contracts for EDG, QT, and most recently Bloomberg, where she is eagerly extending her library knowledge and helping create new polymorphic-allocator friendly library types.
---
Videos Filmed & Edited by Bash Films: http://www.BashFilms.com
YouTube Channel Managed by Digital Medium Ltd https://events.digital-medium.co.uk