Tag: softwaredevelopment

Overcoming C++ Embedded Development Tooling Challenges – Marc Goodner – CppCon 2022

  • Lobby
  • Tag Archives: softwaredevelopment

https://cppcon.org/
---

Overcoming C++ Embedded Development Tooling Challenges - Marc Goodner - CppCon 2022
https://github.com/CppCon/CppCon2022

There are more challenges in embedded than convincing your boss to let you use C++ on your next project. To start with, every silicon vendor seems to have their own IDE. They often have desirable diagnostic capabilities but are lacking in terms of a modern editing experience and are tightly coupled with specialized compilers.

How can you use these compilers with your IDE of choice? If you can already, are you able to also get the diagnostic capabilities you need? How do you manage versions of the compilers you are using for your project generally, even if you can acquire them independently of a vendor IDE? This is a difficult challenge for teams that set versions of compilers and tools at the beginning of a project, but work on multiple projects requiring different tools at the right time. Now, if you can navigate these challenges for your team's local development how do you extend this to your CI system? Is it even possible to connect the outputs of CI to CD?

There is currently a lot of energy within the embedded tools ecosystem to solve these problems. This session will explore these problem areas and how participants in the ecosystem are addressing them. You will leave this session with a better understanding of this landscape and ideas you can bring back to address challenges you are having with managing your embedded tooling.
---

Marc Goodner

Marc Goodner is a product manager on the C++ team focused on improving the experience for embedded developers using Visual Studio, Visual Studio Code, and GitHub.
---

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

#cppcon #programming #embedded

Filed under: UncategorizedTagged with: , , , , ,

Back to Basics: Object-Oriented Programming in C++ – Amir Kirsh – CppCon 2022

  • Lobby
  • Tag Archives: softwaredevelopment

https://cppcon.org/
---

Back to Basics - Object-Oriented Programming in Cpp - Amir Kirsh - CppCon 2022
https://github.com/CppCon/CppCon2022

C++ is not just an Object-Oriented Programming Language, it supports many paradigms. But in this session we would focus on the object oriented aspects of C++, from encapsulation to inheritance and polymorphism.

The session aims to cover the basic syntax together with best practices, tips, pitfalls to avoid and more. We would discuss design considerations, the advantages and disadvantages of different approaches and other alternatives that the language provides. Some relevant design patterns may also pop-by.

This session is part of the Back to Basics track and is aimed for novice and intermediate C++ developers (up to about 2-3 years of C++ coding experience). More experienced developers are of course welcomed to join and enrich the discussion with their knowledge and experience.
---

Amir Kirsh

C++ lecturer at the Academic College of Tel-Aviv-Yaffo and Dev Advocate at Incredibuild. Previously the Chief Programmer at Comverse. Co-organizer of Core C++ conference and a member of the Israeli ISO C++ NB. Currently a visiting researcher at Stony Brook University, New-York.
---

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 #cppprogramming

Filed under: UncategorizedTagged with: , , , ,

C++ Coroutines, from Scratch – Phil Nash – CppCon 2022

  • Lobby
  • Tag Archives: softwaredevelopment

https://cppcon.org/
---

C++ Coroutines, from Scratch - Phil Nash - CppCon 2022
https://github.com/CppCon/CppCon2022

C++ 20 introduced coroutines into the language. Coroutines have the potential to greatly simplify some types of code - particularly, but not limited to, anything asynchronous in nature. But early adoption has been hindered by both the lack of library support in the standard and the inherent complexity of the feature itself (which, due to that lack of library support, you are typically more exposed to).

Now we have a bit of a “Blind men and an elephant” problem - where we’re getting disjointed glimpses of what coroutines, supposedly, are - without the big picture. I can’t claim to be able to give you a comprehensively big enough picture in a 60 or 120 minute talk, but my aim is to plot a journey through it by starting with a motivating example (a typical multiple async task problem), looking at how we might approach this without coroutines, then seeing what coroutines can do for us - and finally looking at what that would look like with library support.
---

Phil Nash

Phil Nash is the original author of the C++ test framework, Catch2, and composable command line parser, Clara. As Developer Advocate at SonarSource he’s involved with SonarQube, SonarLint and SonarCloud, particularly in the context of C++. He’s also a member of the ISO C++ standards committee, organiser of C++ London and C++ on Sea, as well as co-host and producer of the Cpp.chat and No Diagnostic Required podcasts.

More generally Phil’s an advocate for good testing practices, TDD and using the type system and functional techniques to reduce complexity and increase correctness. He’s previously worked in Finance and Mobile and offers training and coaching in TDD for C++.
__

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: , , , ,

Sockets – Applying the Unix Readiness Model When Composing Concurrent Operations in C++ – Filipp Gelman – CppCon 2022

  • Lobby
  • Tag Archives: softwaredevelopment

https://cppcon.org/
---

What I Learned From Sockets - Applying the Unix Readiness Model When Composing Concurrent Operations in C++ - Filipp Gelman - CppCon 2022
https://github.com/CppCon/CppCon2022

Unix systems implement a rich set of primitives for working concurrently with file descriptors. Interfaces like select, poll, epoll, and kqueue allow the caller to wait until an event occurs on any of the specified file descriptors - that is, until at least one of them becomes "ready" for some operation. The Go programming language has a "select" statement with similar semantics. It may be used to wait for any of several "channels" to become ready.

This talk will demonstrate to attendees that such an approach is also viable for solving problems that involve concurrent operations. It will also how C++ concurrency mechanisms could support similar semantics. By the end, it will provide answers to questions like: "How can I .get() the first of several futures?" and "How can I co_await the first of several coroutines?"
---

Filipp Gelman

At Bloomberg LP since 2016, Filipp enjoys exploring the obscure, arcane, and esoteric corners of the C++ language. He is known among his coworkers for heavy use of templates, emphasis on compile time computation, and abusing language features for nefarious purposes.
---

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

#cppcon #programming #unix

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

Value Semantics: Safety, Independence, Projection, & Future of Programming – Dave Abrahams – CppCon 22

  • Lobby
  • Tag Archives: softwaredevelopment

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

C++ Value Semantics: Safety, Independence, Projection, and the Future of Programming - Dave Abrahams - CppCon 2022
https://github.com/CppCon/CppCon2022

Support for first-class user-defined value types may be among C++'s greatest strengths—one that most recent language designs have sadly failed to emulate. That said, although value types are everywhere in C++, we don't have a commonly accepted definition of “value semantics”, and we tend to use the phrase with only an intuitive idea of what it means. This talk offers a deeper understanding of value semantics, defining it in a way that in turn reveals surprising truths about cppcon.digital-medium.co.uk/tag/programming/">programming in general. We'll expose the value semantics that underlies our mental model even when we're “forced” to use pointers or references, and discuss how a future C++ might close that expressivity gap, improving safety, performance, and programmer confidence. We'll conclude with some guidelines you can use today to improve your programs, and propose the next must-see session for value semantics lovers.

This presentation lays groundwork for another talk, “Val wants to be your friend.” If you're interested in that talk, you'll want to see this one first.
---

Dave Abrahams

Dave Abrahams is a founding contributor of the Boost C++ Libraries project and the founder of the first annual C++ conference, BoostCon/C++Now. He is a contributor to the C++ standard, and was a principal designer of the Swift cppcon.digital-medium.co.uk/tag/programming/">programming language. He recently spent seven years at Apple, culminating in the creation of the declarative SwiftUI framework, worked at Google on the Swift for TensorFlow project and, briefly, on the Carbon language, and is now a principal scientist at Adobe's Software Technology Lab.
---

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: , , , ,

Contemporary C++ in Action – Daniela Engert – CppCon 2022

  • Lobby
  • Tag Archives: softwaredevelopment

https://cppcon.digital-medium.co.uk/tag/cppcon/">cppcon.org/
https://github.com/CppCon/CppCon2022
---

Contemporary C++ in Action - Daniela Engert - CppCon 2022

This talk is different from typical conference presentations. Instead of focussing on one particular topic I want to take you with me on a journey where I put various pieces from the C++ landscape together into a small application and show how they fit together beautifully. My goal is to debunk the myth that the committee is looking to please experts and library developers instead of making life easier for the many developers in the trenches. This is not slideware, at the end of our tour the code will compile and run with some entertaining result.

On this journey, I will be visiting modules (using modularized popular libraries and others that constitute the app), do some network cppcon.digital-medium.co.uk/tag/programming/">programming with coroutines (based on ASIO executors, as there are no C++ standard executors yet), slip in one or two of the flagship C++23 features, like explicit object parameters or some of the new library stuff, and season the stew with items from recent C++ standards. It's a tiny application using techniques that an average programmer in the embedded or industrial world (like me) might find useful. The code I'll show also contains very tiny fragments of condensed or simplified sources in active development taken from our in-house codebase - old and trusted, but thrust into the modern age.

If time permits, I will detour a little into modules and show the options that C++20 gives you to create and compose your own modules. For that matter, almost every module translation unit type is present in the demo code to look at how these things can be done in practice. A second insert is a discussion of the object lifetime safety that coroutines can offer when composed well, and how important cancellation is.
---

Daniela Engert

Daniela has a degree in electrical engineering and has been working for more than 30 years in small innovative companies in the field of software and hardware development. She has spent her youth with exploring the very first microprocessors since the late 70's, and has been creating software professionally for 40 years now. After a long time using many different cppcon.digital-medium.co.uk/tag/programming/">programming languages, C++ has now been the exclusive workhorse throughout the last two decades. With great pleasure Daniela is now also a member of the ISO C++ committee. For the better part of her career, the domain was applied digital signal processing (medicine, metrology, reconnaissance), but during the last decade the focus shifted onto special engineering in the field of industrial non-destructive testing of semi-finished and finished steel products using ultrasound. Besides that, she loves to relax with hard metal and soft cheese, hot curries and cool jazz.
---

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: , , , , , ,

Back to Basics: Master C++ Value Categories With Standard Tools – Inbal Levi – CppCon 2022

  • Lobby
  • Tag Archives: softwaredevelopment

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

Back to Basics: Master C++ Value Categories With Standard Tools - Inbal Levi - CppCon 2022
https://github.com/CppCon/CppCon2022

Value categories are deeply ingrained in the C++ language.
Though as a beginner they might seem almost insignificant, the importance of having a proficient understanding of them increases as one gets deeper into library writing or generic code, but also when writing an application level code.
In the talk we will go over changes made to value categories during C++ versions, and explore the standard tools used to achieve the desired behavior in your code
---

Inbal Levi

Inbal Levi is a Senior Software Engineer with a passion for software design, software development lifecycle, and high performance.
She is a director of the ISO C++ foundation and an active member of the C++ Standards Committee as co-chair of Library Evolution, the chair of SG9 (Ranges group), and the chair of the ISO C++ Israeli NB. Inbal is also an organizer of the CoreCpp conference and user group.
---

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: , , , , ,

Introduction to Hardware Efficiency in Cpp – Ivica Bogosavljevic – CppCon 2022

  • Lobby
  • Tag Archives: softwaredevelopment

https://cppcon.org/
---

Introduction to Hardware Efficiency C++ - Ivica Bogosavljevic - CppCon 2022
https://github.com/CppCon/CppCon2022

Not all programs are created equally: some use hardware resources optimally, others not so much. In this lecture we will talk about two basic types of hardware bottlenecks: the CPU bottleneck and the memory bottleneck. We will give information how to recognize if your code is memory bound or CPU bound and some ideas on how to overcome these limitations.

If the session is two hours long then we add the following description:
We will also talk about instruction level parallelism: what is instruction level parallelism, how it is connected to your program's performance, and how to improve your program's speed by increasing instruction level parallelism.

All the examples will be given in C++.
---

Ivica Bogosavljevic

Senior Software Engineer with 10 years of experience active in the domain of Linux and bare-metal embedded systems. His professional focus is application performance improvement - techniques used to make your C/C++ program run faster by using better algorithms, better exploiting the underlying hardware, and better usage of the standard library, programming language, and the operating system. Writer for a performance-related tech blog: https://johnysswlab.com]
---

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

#cppcon #programming #hardware

Filed under: UncategorizedTagged with: , , ,

The Most Important Optimizations to Apply in Your C++ Programs – Jan Bielak – CppCon 2022

  • Lobby
  • Tag Archives: softwaredevelopment

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

The Most Important Optimizations to Apply in Your C++ Programs - Jan Bielak - CppCon 2022
https://github.com/CppCon/CppCon2022

Writing efficient programs is hard. This is because it requires a lot of knowledge, experience and strategic thinking. There have been many talks on optimization and often each addresses a single concept. Being able to achieve a bird’s eye view of factors affecting performance often requires many hours of researching the topic. To lessen the mental burden of optimizing programs, I have picked out the techniques, I believe are most important. During the talk, I will present them in an organized manner and provide practical examples of how they can be applied.

I will first discuss what I believe are the main goals efficient programs strive to achieve. Then, I will present the general methods of achieving those goals. Then, for the majority of the talk, we will discuss a few dozen performance opportunities. For each of them, I will explain the underlying mechanism of how the optimisation works. I will avoid bluntly giving guidelines to follow without explanation. Each of the techniques naturally comes with its costs, and those will be discussed as well.

I will additionally discuss various performance pitfalls. These are sometimes called “premature pessimisations” in contrast to the often used term of “premature optimizations”. I will show examples of optimizations which do not incur any cost on program readability or maintainability and as such should be considered performance best practices. Avoiding their use doesn’t improve code in any manner, while making it slower.

This talk is intended for a diverse audience, as after all, probably most of the C++ community is interested in performance. It is appropriate for hobbyists and professionals alike, with varying experience with the language, due to the gradual increase in difficulty of examples. It will be a time productively spent.
---

Jan Bielak

Jan Bielak is a student at the Warsaw Staszic High School. His main areas of interest are physics and computer science. He is especially into advanced C++ cppcon.digital-medium.co.uk/tag/programming/">programming and physically based real-time rendering. He also hosts and educational YouTube channel. He is involved in the CyberDuck project and in the PaSh project. In free time, he likes to create renders in Blender.

Website: janbielak.com
GitHub: janekb04
YouTube: JBGraphics
---

Videos Streamed & Edited by Digital Medium: http://online.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: , , , , , , , ,

Back to Basics: RAII in C++ – Andre Kostur – CppCon 2022

  • Lobby
  • Tag Archives: softwaredevelopment

https://cppcon.org/
---

Back to Basics: RAII in C++ - Andre Kostur - CppCon 2022
https://github.com/CppCon/CppCon2022

The RAII (Resource Acquisition is Initialization) idiom is a powerful tool used to guard against resource mishandling in C++. Learn about the idiom, examples provided in the Standard Library, and some design considerations for writing your own RAII classes.
---

Andre Kostur

He has been a professional C++ developer for nearly 30 years, and was responsible for introducing and championing the use of C++ in his previous company. He is responsible for forming and leading a C++ Users Group as his current company, routinely presenting on all topics regarding C++ ranging from the basics to the latest developments in C++20 and beyond.
__

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 #raii

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