Video & On-Demand

CppCon 2015: Last online videos

The videos of CppCon 2015 are coming online. You can see them all here: Youtube

Here are the most recent ones:

  • Evolving Legacy Code
  • Functional programming: functors and monads
  • Benchmarking C++ Code
  • Transactional Memory in Practice
  • Declarative Control Flow

 

Evolving Legacy Code, by Rachel Cheng & Michael VanLoon

We will be presenting on the evolution of a legacy monitoring subsystem modernized to C++11 with enhanced interfaces and better programming techniques. The presentation will cover some abstracted example problem areas, the solutions, and talk about the strategy employed to modernize the code.


Functional programming: functors and monads, by Michał Dominiak

Following the 'Applying functional programming in code design' session from Wednesday, I'd like to conduct a 'crash course' on functors and monads, and why they are important - and useful - regardless of the language you are writing code in.


Benchmarking C++ Code, by Bryce Adelstein-Lelbach

With the ending of Moore's Law and the rise of multicore systems, programmers from across the industry are increasing forced to develop and maintain highly performance sensitive software. For C++, a language frequently used for performance sensitive projects, benchmarking and performance analysis is especially important. Developing good benchmarks can be tricky; gathering and analyzing data from benchmarks can be an even greater challenge.

This talk will discuss techniques and best practices for writing C++ benchmarks using facilities from the standard library and Boost. We'll also cover the development of performance unit/regression tests. We'll discuss the statistical best practices for gathering data, as well as techniques for benchmarking a variety of different metrics - time, memory, algorithmic complexity, etc.

The main topics which will be covered:

* Statistical Best Practices (dealing with uncertainty, achieving statistical confidence, how to sample)
* Time-Based Benchmarking (best practices for timing, derived time-based metrics)
* Non-Time-Based Benchmarking (memory, algorithmic complexity in time and space, etc)
* Techniques for C++-specific Performance Metrics (counting copies/moves, allocator tricks)
* Converting Benchmarks into Tests


Transactional Memory in Practice, by Brett Hall

Transactional memory has been held up as a panacea for concurrent programming in some quarters. The C++ standardization committee is even looking at including it in the standard. But is it really a panacea? Has anyone used it in a shipping piece of software? There are scattered examples, mostly from the high-performance and super-computing realms. On the other end of the spectrum, at Wyatt Technology we've been using transactional memory in a desktop application that does data acquisition and analysis for the light-scattering instruments we build. That application is called Dynamics and we've been using a software transactional memory system in it for four years now. This talk will detail how our system works, how well it worked, and what pitfalls we've run into. Prior experience with transactional memory will not be assumed, though it would help if you have experience programming threads with locks and an open mind about alternatives and why we're looking for them.


Declarative Control Flow, by Andrei Alexandrescu

Getting exception handling right is a perennial problem in C++ that has eluded systematization. Not for much longer. New language and library developments make it possible to handle exceptions in a declarative manner, leading to drastic code simplification.

This talk discusses an alternative approach to handling exceptional flow that eliminates the need for small ancillary RAII classes, try/catch statements that rethrow, and other cleanup mechanisms. The popular Scope Guard idiom gets a spectacular generalization. Statements specify in a declarative manner actions to be taken if the current scope is left normally or via an exception. The resulting code is simpler, smaller, and easier to maintain.

CppCast Episode 30: Stop Teaching C (When Teaching C++) with Kate Gregory

Episode 30 of CppCast the only podcast for C++ developers by C++ developers. In this episode Rob and Jason are joined by Kate Gregory to talk about why we should stop teaching C (when teaching C++).

CppCast Episode 30: Stop Teaching C (When Teaching C++) with Kate Gregory

by Rob Irving and Jason Turner

About the interviewee:

Kate Gregory has been using C++ since before Microsoft had a C++ compiler, and has been paid to program since 1979. She loves C++ and believes that software should make our lives easier. That includes making the lives of developers easier! She'll stay up late arguing about deterministic destruction or how C++ these days is not the C++ you remember.

Kate runs a small consulting firm in rural Ontario and provides mentoring and management consultant services, as well as writing code every week. She has spoken all over the world, written over a dozen books, and helped thousands of developers to be better at what they do. Kate is a Microsoft Regional Director, a Visual C++ MVP, an Imagine Cup judge and mentor, and an active contributor to StackOverflow and other StackExchange sites. She develops courses for Pluralsight, primarily on C++ and Visual Studio. In 2014 and 2015 she was Open Content Chair for CppCon, the largest C++ conference ever held, where she also delivered sessions.

CppCast Episode 29: Expression Templates with Joel Falcou

Episode 29 of CppCast the only podcast for C++ developers by C++ developers. In this episode Rob and Jason are joined by Joel Falcou to discuss Expression Templates.

CppCast Episode 29: Expression Templates with Joel Falcou

by Rob Irving and Jason Turner

About the interviewee:

Joel Falcou is an assistant professor in France where he works on torturing compilers to get the best performance out of modern hardware. He's an active member of the Boost community and CTO of NumScale, a start-up aligned with parallel processing tools.

CppCast Episode 28: C++ Concurrency with Anthony Williams

Episode 28 of CppCast the only podcast for C++ developers by C++ developers. In this episode Rob and Jason are joined by Anthony Williams to discuss some of the Concurrency features of C++.

CppCast Episode 28: C++ Concurrency with Anthony Williams

by Rob Irving and Jason Turner

About the interviewee:

Anthony Williams is a UK-based developer and consultant with many years of experience in C++. He has been an active member of the BSI C++ Standards Panel since 2001, and is author or coauthor of many of the C++ Standards Committee papers that led up to the inclusion of the thread library in the new C++ Standard, known as C++11 or C++0x. He was the lead maintainer of boost thread from 2006 to 2011, and is the developer of the just::thread implementation of the C++11 thread library from Just Software Solutions Ltd. Anthony lives in the far west of Cornwall, England.

CppCon 2015 videos also on Channel 9

CppCon 2015's sessions, panels, and lightning talks were professionally recorded and will be available online worldwide for free in about a month. As you probably saw already on this site, the team made a special effort to post the big five talks early -- the three keynotes and two other daily plenary sessions are all available online now.

To try to make the videos as widely available as possible, like last year the videos are being posted on two different sites: YouTube and Channel 9. Feel free to use whichever works best in your country.

Again, the rest of the talk videos will take about a month to post. The slides will also be available soon and you will be able to find them at github.com/cppcon/cppcon2015. Enjoy!

Video available: Eric Niebler, "Ranges for the Standard Library" -- CppCon 2015 Friday endnote

niebler-cppcon2015-v.PNGCppCon 2015's inspiring endnote video is now available below. This is last of the rush-processed plenary sessions posted quickly (see the Video feed for the others). Of course, there'll be more: Like last year, all the sessions, panels, and lightning talks were professionally recorded and will be available online worldwide for free, but processing well over 100 videos is a lot of work and it will take about a month before they can be available; your patience is appreciated.

Here is the talk, available on both YouTube and Channel 9 (use whichever works best in your country). Slides will be available soon at github.com/cppcon/cppcon2015:

Ranges for the Standard Library (YouTube) (Channel 9)

by Eric Niebler, CppCon 2015

From the talk's outline:

Range-based interfaces are functional and composable, and lead to code that is correct by construction. With concepts and ranges coming to the STL, big changes are in store for the Standard Library and for the style of idiomatic C++. The effort to redefine the Standard Library is picking up pace. Come hear about one potential future of the STL from one of the key people driving the change.

I've been doing C++ professionally for the past 20 years, first for Microsoft, then as an independent consultant. Right now, I'm working on bringing the power of "concepts" and "ranges" to the Standard Library with the generous help of the Standard C++ Foundation. Ask me about the future of the Standard Library, or about range-v3, my reference implementation for C++11.

Video available: Chandler Carruth, "Tuning C++: Benchmarks, and CPUs, and Compilers!" -- CppCon

Chandler's talk about benchmarking, cheating the compiler's optimizer and optimizing code from the recent CppCon is online.

Tuning C++: Benchmarks, and CPUs, and Compilers! Oh My! (YouTube)

by Chandler Carruth, CppCon 2015

From the talk's outline:

A primary use case for C++ is low latency, low overhead, high performance code. But C++ does not give you these things for free, it gives you the tools to control these things and achieve them where needed. How do you realize this potential of the language? How do you tune your C++ code and achieve the necessary performance metrics?

This talk will walk through the process of tuning C++ code from benchmarking to performance analysis. It will focus on small scale performance problems ranging from loop kernels to data structures and algorithms. It will show you how to write benchmarks that effectively measure different aspects of performance even in the face of advanced compiler optimizations and bedeviling modern CPUs. It will also show how to analyze the performance of your benchmark, understand its behavior as well as the CPUs behavior, and use a wide array of tools available to isolate and pinpoint performance problems. The tools and some processor details will be Linux and x86 specific, but the techniques and concepts should be broadly applicable.

Interview with Bjarne Stroustrup at CppCon this week

stroustrup-cppcon2015-i.jpgRecorded at CppCon this week:

Going Native 42: Bjarne Stroustrup interview at CppCon

Interviewed by Steve Carroll, development manager for Visual C++

The 42nd episode is here with a special guest: Bjarne Stroustrup is joining us from CppCon to share more about his historic CppCon keynote this week. His focus is on how we can all write good C++14 code.

Interview highlights:

  • [02:13] What is the keynote about?
  • [02:47] How do we write modern C++ code?
  • [03:46] Guideline support library and Static analysis
  • [04:39] Call to action for the C++ community!
  • [05:34] Enhancing productivity by eliminating whole classes of bugs
  • [06:01] Extending the C++ core guidelines
  • [07:44] What do you expect from these static analysis checkers?
  • [10:47] How can I get started?
  • [14:47] Other talks about this at cppcon

Video available: Sean Parent, "Better Code: Data Structures" -- CppCon 2015 Wednesday keynote

parent-cppcon15-v.PNGThe wonderful week of CppCon 2015 has just concluded, and we now have the Wednesday keynote video available below. (Reminder: All the sessions, panels, and lightning talks are being professionally recorded and will be available online worldwide for free. Like last year, expect them about a month after the conference ends. We're making a special effort to make the daily keynote/plenary sessions available early.)

Here it is:

Better Code: Data Structures (YouTube)

by Sean Parent, CppCon 2015 day 3 keynote

The standard library containers are often both misused and underused. Instead of creating new containers, applications are often structured with incidental data structures composed of objects referencing other object. This talk looks at some of the ways the standard containers can be better utilized and how creating (or using non-standard library) containers can greatly simplify code. The goal is no incidental data structures.

Related (other CppCon 2015 videos posted early):

We hope posting these few highlights during and shortly following CppCon can help to let everyone in the worldwide C++ community share in the news and feel a part of the gathering here in the Seattle neighborhood this week. Even if you couldn't be here in person this year to enjoy the full around-the-clock technical program and festival atmosphere, we hope you enjoy this nugget in the video presentation.

Video available: Herb Sutter, "Writing Good C++14 by Default" -- CppCon 2015 day 2 plenary session

sutter-cppcon15-v.PNGCppCon is in full swing, and once again all the sessions, panels, and lightning talks are being professionally recorded and will be available online worldwide for free. Like last year, expect them about a month after the conference ends.

This year the team is trying to get a few of the big talks up early while still busily recording the 100+ others still in progress. Yesterday, they posted Bjarne Stroustrup's opening keynote video less than 48 hours after the live talk, and we're pleased to see that as of this writing over 10,000 of you have already enjoyed it online in its first day!

Today, the team posted the video for Herb Sutter's Day 2 plenary talk, which he described as "part 2 of Bjarne's keynote" with a focus on type and memory safety with live demos. If you couldn't be at CppCon on Tuesday in person, we hope you enjoy it:

Writing Good C++14... by Default (YouTube) (slides)

by Herb Sutter, CppCon 2015 day 2 plenary session

This talk continues from Bjarne Stroustrup’s Monday keynote to describe how the open C++ core guidelines project is the cornerstone of a broader effort to promote modern C++. Using the same cross-platform effort Stroustrup described, this talk shows how to enable programmers write production-quality C++ code that is, among other benefits, type-safe and memory-safe by default -- free of most classes of type errors, bounds errors, and leak/dangling errors -- and still exemplary, efficient, and fully modern C++.

Related:

We hope posting these few highlights while CppCon is still in progress can help to let everyone in the worldwide C++ community share in the news and feel a part of the gathering here in the Seattle neighborhood this week. Even if you couldn't be here in person this year to enjoy the full around-the-clock technical program and festival atmosphere, we hope you enjoy this nugget in the video presentation.