Tag: softwareengineering

-memory-safe C++ – Jim Radigan – CppCon 2022

  • Lobby
  • Tag Archives: softwareengineering

https://cppcon.digital-medium.co.uk/tag/cppcon/">cppcon.org/
---

-memory-safe C++ - Jim Radigan - CppCon 2022
https://github.com/CppCon/CppCon2022

Memory safety issues are one of the most costly and common of software vulnerabilities. They were listed as 6 out of the 2021 CWE (Common Weakness Enumeration) Top 25, and account for 40% of the total points scored for all categories of the Most Dangerous Software Weaknesses listed. To combat this, we introduce a new compiler and runtime to enable building memory safe C++ and C applications. The binaries built with this new tooling require no modifications to source code and can find common memory safety issues such as buffer overflow, double free, use-after-free, new-delete type mismatch, and much more, at compile-time and runtime.

In this talk, we will present the new tooling and discuss how static analysis is key to early detection of program errors in the developer’s inner loop. Using concise examples, we will illustrate scenarios where static analysis can never completely prove memory safety for unaltered C++ or C. We demonstrate how our new tooling addresses memory safety with formal analysis that falls back to runtime checks when required for all safety guarantees. All runtime checks diagnose, report, and allow the application to continue.
---

Jim Radigan

Architect with over twenty years of experience shipping code gen. technology at Microsoft. Shipped C++ compilers, JIT’s, runtimes, and built large retail operating systems for initial release. Experience leading teams, recruiting, while implementing key technologies on the critical path. Implemented key compiler technology for SSA based global optimizations, vectorization, parallelization, coroutines, hot-patching, secure code gen, Asan, JIT’s and IDE functionality. Started and shipped: platforms on V1 hardware and created lasting cross-team processes to bring up Windows XP through Win 11 (for x86, X64, arm, arm64).
---

Videos Filmed & Edited by Bash Films: http://www.BashFilms.com
YouTube Channel Managed by Digital Medium Ltd https://events.digital-medium.co.uk

#cppcon.digital-medium.co.uk/tag/cppcon/">cppcon #cppcon.digital-medium.co.uk/tag/programming/">programming #cpp

Filed under: UncategorizedTagged with: , , , ,

C++ in the World of Embedded Systems – Vladimir Vishnevskii – CppCon 2022

  • Lobby
  • Tag Archives: softwareengineering

https://cppcon.org/
---

C++ in the World of Embedded Systems - Vladimir Vishnevskii - CppCon 2022
https://github.com/CppCon/CppCon2022

The talk offers an introduction into the concepts, variety and architectural specifics of embedded systems and reviews the application of the C++ language and the ecosystem for embedded software development. With the focus on the modern C++ features and frameworks that can be leveraged in embedded projects the presentation will explore benefits along with potential implications and limitations of the C++ language utilization. Similarities between embedded and high-performance systems will be highlighted and general availability and applicability of the C++ for the development of embedded code will be assessed. Language features and program constructs that can introduce risks in embedded environments will be reviewed. Examples of the modern C++ software design under conditions of restricted dynamic memory allocation will be presented with focus on publicly available 3-rd party libraries developed for high-performance applications that can be used in embedded projects. Metaprogramming techniques for low-level hardware abstractions will be discussed.
---

Vladimir Vishnevskii

Vladimir is a software engineer with more than 17 years of experience applying C++ for development of complex software in areas like distributed systems and networking with focus on performance and reliability. Before his recent switch to Intel he was for more than 6 years part of the effort to bring modern C++ into automotive embedded software development.
---

Videos Streamed & Edited by Digital Medium: http://online.digital-medium.co.uk

#cppcon #programming #embeddedsystems

Filed under: UncategorizedTagged with: , , , , ,

The Dark Corner of STL in Cpp: MinMax Algorithms – Simon Toth – CppCon 2022

  • Lobby
  • Tag Archives: softwareengineering

https://cppcon.org/
---

The Dark Corner of STL in Cpp : MinMax Algorithms - Šimon Tóth - CppCon 2022
https://github.com/CppCon/CppCon2022

How many problems could one possibly run into when calling a simple algorithm such as std::min?

In this talk, we will take a deep dive into the ergonomics of min-max algorithms and explore several language features in the process:
• reference semantics and lifetime issues
• const correctness and use of const_cast
• costs of using the std::initializer_list

We will finish by exploring the options for addressing these issues when implementing functions with similar semantics.
---

Šimon Tóth

Currently on a mission to share my 20 years' worth of Software Engineering experience with the world.
__

Videos Streamed & Edited by Digital Medium: http://online.digital-medium.co.uk

#cppcon #programming #stl

Filed under: UncategorizedTagged with: , , , , , , ,

Breaking Dependencies – C++ Type Erasure – The Implementation Details – Klaus Iglberger CppCon 2022

  • Lobby
  • Tag Archives: softwareengineering

https://cppcon.digital-medium.co.uk/tag/cppcon/">cppcon.org/
---

Breaking Dependencies - C++ Type Erasure - The Implementation Details - Klaus Iglberger - CppCon 2022
https://github.com/CppCon/CppCon2022

“If I could go back in time and had the power to change C++, rather than adding virtual function, I would add language support for Type Erasure …” (Eric Niebler, June 19, 2020, Twitter).

For many developers Type Erasure is superior to inheritance with respect to dependency management. And indeed, it has proven itself to be a powerful design pattern, helping to significantly reduce coupling between software entities. Unfortunately, there is no language support for Type Erasure (yet) and many shy away from the seemingly complex implementation details.

In this talk I will give advice on the different ways of how to implement Type Erasure. I’ll start with two very simple, ~20 line implementations for owning and non-owning Type Erasure Wrappers. But I’ll also go into detail about different performance optimization strategies, such as the manual implementation of virtual functions and the Small Buffer Optimization (SBO). After this talk, attendees will know everything to realize and utilize Type Erasure in their own code bases.
---

Klaus Iglberger

Klaus Iglberger is a freelance C++ trainer and consultant. He has finished his PhD in Computer Science in 2010 and since then is focused on large-scale C++ software design. He shares his expertise in popular advanced C++ courses around the world (mainly in Germany, but also in the rest of the EU and the US). Additionally, he is the initiator and lead designer of the Blaze C++ math library (https://bitbucket.org/blaze-lib/blaze/), one of the organizers of the Munich C++ user group (https://www.meetup.com/MUCplusplus/), and the organizer of the Back-to-Basics track at CppCon.
---

Videos Filmed & Edited by Bash Films: http://www.BashFilms.com
YouTube Channel Managed by Digital Medium Ltd https://events.digital-medium.co.uk

#cppcon.digital-medium.co.uk/tag/cppcon/">cppcon #cppcon.digital-medium.co.uk/tag/programming/">programming #cpp

Filed under: UncategorizedTagged with: , , , , ,

Managing External API’s in Enterprise systems – Pete Muldoon – CppCon 2022

  • Lobby
  • Tag Archives: softwareengineering

https://cppcon.org/
---

Managing External API’s in Enterprise systems - Pete Muldoon - CppCon 2022
https://github.com/CppCon/CppCon2022

Many codebases use external libraries and wrap their associated API's for application use. Once these external dependencies are entrenched and widely used in your system even small changes in the use of these external APIs can force sweeping changes across your codebase.
This presentation will take an example request API and demonstrate using sound engineering choices how to encapsulate it to provide a more efficient modern interface i.e. move-only results, futures/promise instead of callbacks, void pointers etc.
After showing the use of this API, new requirements will now emerge that require new source data from the API potentially causing large scale code changes with branching required for a gradual transition from the old data source to the new source is rolled out.
We will explore various techniques to preserve the global calling semantics and introduce localized decoupling so wide spread code changes are not needed. These codes changes are transparent to the original callers of the API hence no calling code changes are needed. This approach will then be expanded to apply the same engineering techniques to the unit & system testing code. The final decommissioning and removal of the old code is explored and shown now to be simple and straight forwards.
Additional real world problems are then incorporated like batching, parallelization while again localizing code changes on the migration path.
This prioritizing of the migration path for introducing API use changes will lead to a novel perspective for the next time your codebase has external dependency changes imposed on it from within or without.

This is all backed up with code examples. This alternative approach has being successfully employed for real world situations in Bloomberg.
---

Pete Muldoon

Pete Muldoon has been using C++ since 1991. Pete has worked in Ireland, England and the USA and is currently employed by Bloomberg. A consultant for over 20 years prior to joining Bloomberg, Peter has worked on a broad range of projects and code bases in a large number of companies both tech and finance. Such broad exposure has, over time, shown what works and what doesn't for large scale engineering projects. He's a proponent of elegant solutions and expressive code.
---

Videos Filmed & Edited by Bash Films: http://www.BashFilms.com
YouTube Channel Managed by Digital Medium Ltd https://events.digital-medium.co.uk

#cppcon #programming #api

Filed under: UncategorizedTagged with: , , , , ,

Deciphering Coroutines – A Visual Approach – Andreas Weis – CppCon 2022

  • Lobby
  • Tag Archives: softwareengineering

https://cppcon.org/
---

Deciphering Coroutines - A Visual Approach - Andreas Weis - CppCon 2022
https://github.com/CppCon/CppCon2022

Coroutines are a powerful addition to C++20, allowing developers to drastically simplify code for certain kinds of problems and be adapted to a wide range of different use cases. But anyone trying to familiarize themselves with them will quickly notice that this flexibility comes at a price: In their current state, C++ coroutines are notoriously difficult to learn and their tight integration with the compiler gives them a feel quite unlike any other feature in the language.

The goal of this talk is to give a sustainable introduction on how to read and reason about coroutine code. We will learn how all the different elements of the mechanism fit together and to distinguish the parts of the code that follow the new rules of coroutines from those that still follow the well known conventional rules of C++. We will approach this through the construction of a coroutine cheat sheet, a collection of diagrams that serve as visual maps for navigating the complexities of the feature. Special care is taken to provide visual cues that are easily recognizable later on, to compensate for the fact that learners tend to forget the numerous details of the mechanism very fast if they don't use it in their everyday coding.

To account for the complexity of the topic, this talk focuses exclusively on providing a comprehensive introduction to the coroutine syntax, without discussing any advanced use cases. However, with the knowledge obtained from this talk, attendees will be able to easily follow more advanced presentations of coroutines later on without getting lost in the technical details of its peculiar syntax.
---

Andreas Weis

Andreas Weis has been writing C++ code in many different domains, from real-time graphics, to distributed applications, to embedded systems. As a library writer by nature, he enjoys writing portable code and exposing complex functionalities through simple, richly-typed interfaces. Both of which C++ allows him to do extensively. Andreas is also one of the co-organizers of the Munich C++ User Group, which allows him to share this passion with others on a regular basis.

He currently works for Woven Planet, where he focuses on building modern software for use in safety critical systems.
__

Videos Filmed & Edited by Bash Films: http://www.BashFilms.com
YouTube Channel Managed by Digital Medium Ltd https://events.digital-medium.co.uk

#cppcon #programming #coroutines

Filed under: UncategorizedTagged with: , , , , ,