Tag: coding

Cute C++ Tricks, Part 2.5 of N – Code You Should Learn From & Never Write – Daisy Hollman – CppCon22

  • Lobby
  • Tag Archives: coding

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

Cute C++ Tricks, Part 2.5 of N - More Code You Should Learn From and Never Write - Daisy Hollman - CppCon 2022
https://github.com/CppCon/CppCon2022

During the COVID-19 global pandemic, as we all searched for ways to stay connected to the C++ community, these 25-line or less C++ snippets of counterintuitive C++ code called the "Cute C++ trick of the day" started to appear on Twitter. The amount of attention these tricks got was surprising, and as more were posted, it became clear that these counterintuitive snippets of C++ code offer pithy and memorable ways to teach people some intermediate or advanced aspects of C++ (that often come up in real code!).

This talk builds on part 1 (of N), presented last year at CppCon 2021. In this presentation, I will dissect a few more of the most popular "Cute C++ tricks" to a level of detail not possible on social media platforms like Twitter. I'll talk about how and why these tricks work the way they do, talk about the dark corners of C++ they touch upon, and talk about what you should actually do if you need to produce the same effect in production code. While not targeted at beginners, these tricks span the gauntlet from features that most intermediate programmers are aware of (but never thought to use in a particular way) to dark corners of the language that many of my C++ committee colleagues were surprised to learn about. Throughout it all runs a common thread: learning how to exploit your own curiosity to expand your toolbox, gain a better grasp of the fundamentals of C++, and ultimately, become a better programmer.
---

Daisy Hollman

Dr. Daisy S. Hollman began working with the C++ standards committee in 2016, where she has made contributions to a wide range of library and language features, including proposals related to executors, atomics, generic cppcon.digital-medium.co.uk/tag/programming/">programming, futures, and multidimensional arrays. Since receiving her Ph.D. in Quantum Chemistry in 2013, her research has focussed primarily on parallel and concurrent cppcon.digital-medium.co.uk/tag/programming/">programming models, though a broader focus on general accessibility of complex abstractions has become her focus in more recent years. She currently works on C++ language and library design at Google, where she continues to focus on providing broad accessibility of cppcon.digital-medium.co.uk/tag/programming/">programming models and abstractions, with a particular focus on design for diversity and inclusivity.
---

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++ Coding with Neovim – Prateek Raman – CppCon 2022

  • Lobby
  • Tag Archives: coding

https://cppcon.org/
---

C++ Coding with Neovim - Prateek Raman - CppCon 2022
https://github.com/CppCon/CppCon2022

If the command line has ever piqued your interest, specially using Vim/Neovim for C++ coding, but you have some reservations about losing access to IDE like features, wonder no more. This talk will present a productive C++ development environment on the Command Line using Neovim and LSP. LSP (Language Server Protocol) is the protocol which powers semantic auto-completion and intellisense in modern IDEs and we'll learn how Neovim's built-in LSP client integrates seamlessly with language servers to provide a rich editing experience.

Neovim is a modern editor built on top off the giant shoulders of Vim, and lets us have all the speed and efficiency of Vim as we edit code, while also providing rich support for C++ coding with intellisense and auto-completion via LSP. Along the way we'll also demonstrate Neovim's rich LSP aware plugin ecosystem for project navigation and IDE like workflows, all on the command line.

Even if you're comfortable with Vim/Neovim, but would like to learn how to level up the experience with modern IDE features, you will find this talk interesting.
---

Prateek Raman

Senior Software Engineer at Bloomberg Lp, working on the IB chat platform offered with Bloomberg Professional Service.
---

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

#cppcon #coding #neovim

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

Back to Basics: C++ Smart Pointers – David Olsen – CppCon 2022

  • Lobby
  • Tag Archives: coding

https://cppcon.org/
---

Back to Basics: C++ Smart Pointers - David Olsen - CppCon 2022
https://github.com/CppCon/CppCon2022

Smart pointers were one of the many powerful additions to C++11, providing programmers with easy-to-use tools to help manage memory resources and avoid certain kinds of memory errors. This back-to-basics session will give you a solid foundation in smart pointers, explaining what smart pointers are in general and how to use the standard smart pointer types std::unique_ptr and std::shared_ptr. It will present a set of clear guidelines for when and how to use smart pointers. Attendees will leave this session having learned, among other things, how to write code that never leaks memory.
---

David Olsen

David Olsen has more than two decades of software development experience in a variety of programming languages and development environments. For the last six years he has been the lead engineer for the NVIDIA HPC C++ compiler, focusing on running parallel algorithms on GPUs. He is a member of the ISO C++ committee, where he was the champion for the extended floating-point feature in C++23.
---

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

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

The Ride with WebAssembly: Taking Your C++ and Going Places – by Nipun Jindal & Pranay Kumar – CppCon 22

  • Lobby
  • Tag Archives: coding

https://cppcon.org/
---

The Ride with WebAssembly : Taking Your C++ and Going Places - Nipun Jindal and Pranay Kumar - CppCon 2022
https://github.com/CppCon/CppCon2022

- You've heard of WebAssembly, and might have used it as well in web projects. This workshop explains tries to cover the good stuff that you would definitely need in the journey to expand your horizons on the web.

As C++ developers, we all wish to see a web application running core logic utilizing the same, almost cross-platform performant C++ source, No problem. As we know WebAssembly is an actual byte-code language one can compile your native code to instead. We'll discuss WebAssembly, and see how the magic of taking C++ code and turning it into executable code within the browser happens.

This workshop will explain well how WebAssembly works, how to use it, and how to build and use your WebAssembly modules from C++ code along with a demo. Important intermediary skills such as debugging, network communication, different types of file system access, and tweaks/caution needed would be provided in the workshop.

Additionally, possible dark places such as - threading issues, system calls tweaking, memory management would be covered as well. We would be taking a sample "Hello world", a sample (legacy vs modern) C++ project and would transform these for WebAssembly as part of the exercises along with some exercise at the end for regular, open-source C++ projects.

So grab C++ code, a modern browser, and let's get started!

Key Takeaways:

- You'll have the right footing you need to start building applications that feature WebAssembly.
- Have the vision to identify the web projects that may take advantage of C++ modules / libraries.
- Intermediate / Professional skills of WebAssembly
- Dark places / pitfalls of C++ WebAssembly development
---

Nipun Jindal

Nipun Jindal is a Senior Computer Scientist working at Adobe Systems. He has previously worked on multiple cross platform compatible desktop and mobile application like Flash, Adobe Photoshop, Adobe Capture, Adobe XD, developing his skill for cross platform development and eye for fast pace systems. His current set of responsibilities include moving the charter of fonts recommendation and fonts collaboration across different Adobe Creative Products. He is majorly interested in creating scalable systems with high performance. LinkedIn - https://www.linkedin.com/in/jindalnipun/

Pranay Kumar

Pranay Kumar is a Computer Scientist working in Adobe India with a passion for C++ development. He has been currently working towards utilizing the capabilities of emerging Adobe Fonts experience within the Adobe products. In the past several years with Adobe, he has contributed to the new licensing hybrid stack which is currently being used across the new version of Adobe Creative Cloud products such as Photoshop, Illustrator & InDesign, etc. His major interests lie in enabling the full potential of Adobe Fonts for consumers with modern C++ usage to ensure more secure, reliable & performant applications. Blog - https://medium.com/pranayaggarwal25 Website - http://pranayaggarwal.github.io/
__

Videos Streamed, Edited, and YouTube Channel Managed by Digital Medium: http://online.digital-medium.co.uk

#cppcon #programming #webassembly

Filed under: UncategorizedTagged with: , , , , ,

Understanding C++ Coroutines by Example: Generators (Part 1 of 2) – Pavel Novikov – CppCon 2022

  • Lobby
  • Tag Archives: coding

https://cppcon.org/
---

Understanding C++ Coroutines by Example: Generators (Part 1 of 2) - Pavel Novikov - CppCon 2022
https://github.com/CppCon/CppCon2022

Coroutines are a powerful tool added to C++20. There are no out-of-the-box facilities in the standard library that are user friendly and immediately usable, although there are plenty of libraries out there already providing such primitives.

Also there are now best practices regarding usage of coroutines in C++ that emerged while people were learning them, and that programmers should know about.

This time we will concentrate on the generators part of the coroutines.
We'll get up to speed with how coroutines work under the hood, and then learn about the co_yield keyword, and how simple generators and asynchronous generators conceptually work.

Note: this session is part 1 of a series of talks. They cover separate aspects of coroutines and are designed to be mostly independent. You can watch part 2 here: https://youtu.be/lz3F036_OvU
---

Pavel Novikov

Got an engineering degree in missilery from BMSTU (Moscow).

Loves C++ and knows how to cook it.

Likes metaprogramming, multithreading and asynchronous programming, coroutine adoption enthusiast.
__

Videos Streamed, Edited, and YouTube Channel Managed by Digital Medium: http://online.digital-medium.co.uk

#cppcon #programming #coroutines

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

Back to Basics: C++ Value Semantics – Klaus Iglberger – CppCon 2022

  • Lobby
  • Tag Archives: coding

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

Back to Basics: C++ Value Semantics - Klaus Iglberger - CppCon 2022
https://github.com/CppCon/CppCon2022

Modern C++ is more than new standards or an assortment of new features. Modern C++ is about a philosophy on how to use the language. An integral part of this philosophy is value semantics: preferring values and value-like types instead of pointers and references.

This talk explains the rational of this philosophy. It demonstrates the benefits of several value types from the standard library, such as std::optional, std::function and std::variant, and the drawbacks of several reference types, such as std::string_view and std::span. It also goes into detail about the most common questions about value semantics, as for instance how to properly use reference types and whether we should stop using reference parameters.
---

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

HPX – A C++ Library for Parallelism and Concurrency – Hartmut Kaiser – CppCon 2022

  • Lobby
  • Tag Archives: coding

https://cppcon.org/
---

HPX - A C++ Library for Parallelism and Concurrency - Hartmut Kaiser - CppCon 2022
https://github.com/CppCon/CppCon2022

With the advent of modern computer architectures characterized by -- amongst other things -- many-core nodes, deep and complex memory hierarchies, heterogeneous subsystems, and power-aware components, it is becoming increasingly difficult to achieve best possible application scalability and satisfactory parallel efficiency. The community is experimenting with new programming models that rely on finer-grain parallelism, and flexible and lightweight synchronization, combined with work-queue-based, message-driven computation. The recently growing interest in the C++ programming language in industry and in the wider community increases the demand for libraries implementing those programming models for the language.

In this talk, we present HPX -- A C++ Standards Library for Parallelism and Concurrency that is built around lightweight tasks and mechanisms to orchestrate massively parallel (and -- if needed -- distributed) execution. We also implement a full set of standard parallel algorithms and related asynchronous extensions to those. The library enables an asynchronous execution model that uses the concept of (Standard C++) futures to make data dependencies explicit, employs explicit and implicit asynchrony to hide latencies and to improve utilization, and manages finer-grain parallelism with a work-stealing scheduling system enabling automatic load balancing of tasks. Lately we have been experimenting with the new sender/receiver model that is currently being discussed as part of the C++ standardization process.

HPX is a C++ library exposing a higher-level parallelism API that is fully conforming to the existing C++11/14/17/20 standards and is aligned with the ongoing standardization work. This API and programming model has shown to enable writing highly efficient parallel applications for heterogeneous resources with excellent performance and scaling characteristics. This talk will highlight the implemented extensions to the C++ standard parallel algorithms and shows recent performance results.
---

Hartmut Kaiser

Hartmut is a research professor at Louisiana State Universities Center for Computation and Technology (CCT). He is probably best known for his involvement in open-source software projects, such as being the author of several C++ libraries he has contributed to Boost, which are in use by thousands of developers worldwide. His current research is focused on leading the STE||AR group at CCT working on the practical design and implementation of future execution models and programming methods. His research interests are focused on the complex interaction of compiler technologies, runtime systems, active libraries, and modern system's architectures. His goal is to enable the creation of a new generation of scientific applications in powerful, though complex environments, such as high-performance computing, distributed and grid computing, spatial information systems, and compiler technologies.
__

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

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

import CMake, CMake and C++20 Modules – Bill Hoffman – CppCon 2022

  • Lobby
  • Tag Archives: coding

https://cppcon.org/
---

import CMake, CMake and C++20 Modules - Bill Hoffman - CppCon 2022
https://github.com/CppCon/CppCon2022

Originally developed as part of the National Institutes of Health (NIH) open source medical segmentation and registration toolkit ITK in 1999, CMake has grown to take on a vital role in the C++ ecosystem. Bill Hoffman, a founder of Kitware (www.kitware.com), and the creator of CMake will talk about where CMake is in 2022. The talk will start with a brief history of CMake and how it fits into the world of C++. It will then talk about recent developments to support C++20 modules.

For most of CMake's history, CMake has played catch up and implemented new features as compilers and IDEs have been released. With C++ modules, CMake developers have engaged the standards committee and compiler vendors to help craft the standard in such a way that CMake and other build systems can more seamlessly implement C++ modules. CMake has worked with Fortran modules for many years and has updated the ninja build tool to be able to dynamically update dependency information as it is discovered. To do this CMake requires a Fortran parser built into CMake. For obvious reasons CMake does not want to get into having its own C++ parser. This is the main driving force for pushing this work into the compilers. This talk will go over the road map for CMake C++ module support.

In addition to the history of CMake, C++ module support, this talk will include material covering important CMake features supporting the seamless building, testing and deployment of C++ across most computing platforms. In summary, listeners will learn about CMake origins, the roadmap of C++ module support in CMake and get an overview of the current set of features in CMake.
---

Bill Hoffman

Mr. Hoffman is a founder of Kitware and currently serves as Chairman of the Board, Vice President, and Chief Technical Officer (CTO). He is the original author and a lead architect of CMake, an open source, cross-platform build and configuration tool that is used by hundreds of projects around the world, and he is the co-author of the accompanying text, Mastering CMake. Using his 20+ years of experience with large software systems development, Mr. Hoffman is also a major technical contributor to Kitware’s Visualization Toolkit, Insight Toolkit, and ParaView projects

Mr. Hoffman received a B.S. in Computer Science from the University of Central Florida and an M.S. in Computer Science from Rensselear Polytechnic Institute (RPI). Prior to the formation of Kitware, he spent nine years at the General Electric Corporate Research and Development center, working in the Computer Vision Group. He has planned and taught several graduate-level courses at RPI as well as a course in object-oriented programming at New York University.
__

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

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

Back to Basics: C++ Move Semantics – Andreas Fertig – CppCon 2022

  • Lobby
  • Tag Archives: coding

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

Back to Basics: C++ Move Semantics - Andreas Fertig - CppCon 2022
https://github.com/CppCon/CppCon2022

Move semantics is a topic that feels hard to understand. This talk will give you a good understanding, demystifying some myths out there using a new and unique way of talking about moving.

For example, you've heard those move operations should be noexcept. In this talk, you will learn the why while we write things like an efficient move constructor and a move assignment operator.

During this talk, we will look at rules for when to use std::move and when to use std::forward.

There is one topic we have to discuss as well, what is a moved-from object, and what can you do with such an object?

You're eager to squeeze out the last drop of performance? Then we should talk about the ref-qualifiers. Why waste performance?

At the end of this talk, you have a solid understanding of move semantics, enabling you to write competitive performant code.
---

Andreas Fertig

Andreas Fertig, CEO of Unique Code GmbH, is an experienced trainer and lecturer for C++ for standards 11 to 20.

Andreas is involved in the C++ standardization committee, in which the new standards are developed. At international conferences, he presents how code can be written better. He publishes specialist articles, e.g., for iX magazine, and has published several textbooks on C++.

With C++ Insights (https://cppinsights.io), Andreas has created an internationally recognized tool that enables users to look behind the scenes of C++ and thus to understand constructs even better.

Before working as a trainer and consultant, he worked for Philips Medizin Systeme GmbH for ten years as a C++ software developer and architect focusing on embedded systems.

You can find Andreas online at
andreasfertig.com
__

Videos Streamed, Edited, and YouTube Channel Managed 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: , , , , , ,