July 2016

CppCon 2015 Organizational Leadership with Modern C++--Kevin Kostrzewa & Johm Wyman

Have you registered for CppCon 2016 in September? Don’t delay – Registration is open now.

While we wait for this year’s event, we’re featuring videos of some of the 100+ talks from CppCon 2015 for you to enjoy. Here is today’s feature:

Organizational Leadership with Modern C++

by Kevin Kostrzewa & Johm Wyman

(watch on YouTube) (watch on Channel 9)

Summary of the talk:

With the "C++ Renaissance" it is imperative that the technical leadership prove their mettle to lead a large organization into adopting modern practices and idioms.

In this talk, John and Kevin will discuss various techniques that they have employed to help drive their large development organization (~ 75 software engineers) towards a culture of modernization - some techniques that have worked well, and some that have not.

This will not be a discussion on specifics and nuances of the language. This is more a "fuzzy" discussion on what it means to be both at the forefront of the language and a leader / champion for your peers.

CppCon 2015 completion T : Improving the future T with monads--Travis Gockel

Have you registered for CppCon 2016 in September? Don’t delay – Registration is open now.

While we wait for this year’s event, we’re featuring videos of some of the 100+ talks from CppCon 2015 for you to enjoy. Here is today’s feature:

completion T : Improving the future T with monads

by Travis Gockel

(watch on YouTube) (watch on Channel 9)

Summary of the talk:

std::future provides us a mechanism for asynchronous communication between a provider and receiver. However, the C++14 standard does not allow for actual asynchronous programming, as the only ways to interact with an std::future are blocking calls. The proposed then helps, but the interface is awkward and can be extremely slow when handling exceptions. Here, I will talk about completion a high-performance, async-only and monadic alternative to std::future and how it is used at SolidFire.

CppCon 2016: Dan Saks Keynote and Some Program Previews (Embedded, Coroutines and Accelerators)

<img alt="" data-cke-saved-src="http://cppcon.org/wp-content/uploads/2015/11/DanSaksbw-225x300.jpeg" src="http://cppcon.org/wp-content/uploads/2015/11/DanSaksbw-225x300.jpeg" 225px;="" height:="" 300px;="" float:="" left;"="" style="float: right;">

I'm very pleased to announce that Dan Saks will be one of the keynotes at CppCon 2016! Dan is one of the world's leading experts on the C and C++ programming languages and their use in developing embedded systems.

He is the president of Saks & Associates, which offers training and consulting in C, C++ and embedded programming. Dan has previously served as secretary of the ANSI and ISO C++ Standards committees and as a member of the ANSI C Standards committee.

Dan used to write the “Programming Pointers” column for embedded.com. He has also written for numerous publications including The C/C++ Users Journal, The C++ Report, The Journal of C Language Translation, Software Development, Embedded Systems Design and Dr. Dobb's Journal. With Thomas Plum, he wrote C++ Programming Guidelines, which won a 1992 Computer Language Magazine Productivity Award. He has presented at conferences such as Software Development and Embedded Systems. More recently, he contributed to the CERT Secure C Coding Standard and the CERT Secure C++ Coding Standard.

Dan's keynote, extern “C”: Talking to C Programmers About C++, will be about migrating C code (and C programmers) to modern C++:

Most of us have heard this story. We’ve even told it ourselves… C++ is nearly all of C, plus a whole lot more. Migrating code from C to C++ is pretty easy. Moreover, the migration itself can yield immediate benefits by exposing questionable type conversions that can be sources of latent bugs. After migration, the code performs as well in C++ as in the original C. And now that it’s C++, you have ready access to a wealth of advanced features you can (but don’t have to) use to implement enhancements. Who wouldn’t want that? Legions of C programmers, apparently. Despite the success of C++ in numerous application domains, C remains considerably more popular, especially in embedded, automotive, and aerospace applications. In many cases, projects resist C++ because their managers think the risks outweigh the benefits. In other cases, the resistance comes from programmers who persist in believing bad things about C++, even when those things aren’t true. What can the C++ community do to overcome this resistance? Drawing on lessons from cognitive science, linguistics and psychology, and (of course) computer science, this talk offers suggestions about how to make the case for C++ more persuasive to C programmers.

We've also got some CppCon program previews from three tracks today. The full program will be announced this Sunday. Here's some of our content on embedded programming:

We've also got a lot of great talks about the upcoming Coroutines TS:

And finally, some talks about accelerator and GPU programming:

Come join us at CppCon in Bellevue this September - registration is still open!

 

-- Bryce Adelstein Lelbach, CppCon Program Committee

CppCon 2015 Functional Design Explained--David Sankel

Have you registered for CppCon 2016 in September? Don’t delay – Registration is open now.

While we wait for this year’s event, we’re featuring videos of some of the 100+ talks from CppCon 2015 for you to enjoy. Here is today’s feature:

Functional Design Explained

by David Sankel

(watch on YouTube) (watch on Channel 9)

Summary of the talk:

An oft-cited benefit of learning a functional language is that it changes one's approach to solving problems for the better. The functional approach has such a strict emphasis on simplistic and highly composable solutions that an otherwise varied landscape of solution possibilities narrows down to only a few novel options.

This talk introduces functional design and showcases its application to several real-world problems. It will briefly cover denotational semantics and several math-based programming abstractions. Finally, the talk will conclude with a comparison of functional solutions to the results more traditional design methodologies.

No prior knowledge of functional programming or functional programming languages is required for this talk. All the examples make use of the C++ programming language.

CppCon 2015 Simple, Extensible Pattern Matching in C++14--John R. Bandela

Have you registered for CppCon 2016 in September? Don’t delay – Registration is open now.

While we wait for this year’s event, we’re featuring videos of some of the 100+ talks from CppCon 2015 for you to enjoy. Here is today’s feature:

Simple, Extensible Pattern Matching in C++14

by John R. Bandela

(watch on YouTube) (watch on Channel 9)

Summary of the talk:

Recently, there has been in increased interest in applying functional programming techniques to C++. A very convenient construct that is used in functional programming languages is pattern matching. Due to the features introduced in C++11 and C++14 we can actually write a simple, easy to use, understandable, and extensible pattern matching library that is header only and uses no macros.

In this talks we will discuss the motivations for pattern matching, and see examples of use from other languages. We will then go on to design and implement a pattern matching library in C++. Particular attention will be payed to new C++14 features that greatly simplify the implementation such as integer_sequence, function return type deduction, and generic lambdas. The implementation will also serve a practical guide to using variadic templates and std::tuple.

We will show how the library can be easily extended and customized by working through some examples of customization such as working with user defined classes and structs, pointers, tuples, boost::optional, and boost::variant. At the end of the session, the audience will have an appreciation for pattern matching, as well as a sense that the C++11/14 features open new paradigms without sacrificing understandable code.

CppCast Episode 62: C++ and Lua Game Development with Elias Daler

Episode 62 of CppCast the only podcast for C++ developers by C++ developers. In this episode Rob and Jason are joined by Elias Daler, CS student and Indie game developer to discuss game development with C++ and Lua.

CppCast Episode 62: C++ and Lua Game Development with Elias Daler

by Rob Irving and Jason Turner

About the interviewee:

Ilya Daylidenok, better known as Elias Daler, is a CS student, indie game developer and C++ enthusiast. Passion for game development was the starting point for learning C++ and he's been programming in it for 6 years. Elias is working on a game called Re:creation and various open source C++ libraries. He also writes various articles about game development, C++ and Lua/C++ integration at eliasdaler.wordpress.com. These articles are well received and frequently shared on various game development subreddits and forums.

An interview with Sean Parent

I had the opportunity to interview Sean Parent!

An Interview with Sean Parent

by Jens Weller

From the Interview:

Lets start with the Introduction, who is Sean Parent?

Introducing yourself is always the toughest question. I’ve been a software developer for nearly 30 years and I’ve been fortunate enough to work on some great products and with some great people. I started my career at a small company, Orange Micro, where I wrote a print spooler for Mac (before MultiFinder) and “hijacked” Apple’s ImageWriter printer drivers to work with a wide variety of printers. I worked at Apple in the QuickDraw GX printing group (GX didn’t survive but lives on in spirit in Skia) and I worked on the PowerMac team that did the transition from 68K processors to PowerPC. I joined the Photoshop team at Adobe during the development of Photoshop 3.0, and managed Adobe’s Software Technology Lab for many years. I worked briefly at Google on the ChromeOS project, and then returned to Adobe where I’ve been working on mobile and web digital imaging products since.

What is your role as a principal scientist at adobe?

The role of a principal scientist in general is to act as a multiplier. I act as a consultant for individuals and groups, I work on various products and projects where I perceive a need. I helped to bring the rendering technology from Lightroom and the Photoshop Camera Raw plugin to mobile, first for the Revel product (a now defunct Lightroom like product for non-professionals) and then for Lightroom Mobile. I also brought the engine up inside the browser which is now part of Lightroom Web.

CppCon 2015 Time Programming Fundamentals--Greg Miller

Have you registered for CppCon 2016 in September? Don’t delay – Registration is open now.

While we wait for this year’s event, we’re featuring videos of some of the 100+ talks from CppCon 2015 for you to enjoy. Here is today’s feature:

Time Programming Fundamentals

by Greg Miller

(watch on YouTube) (watch on Channel 9)

Summary of the talk:

"Time zones are logical and easy to use." -- No one ever

Time programming is notoriously difficult and error prone. Attempts at handling daylight-saving time, for example, often yield baffling code, which of course is explained by a similarly misguided comment. Programmer confusion can spread virally throughout the codebase when these misconceptions find their way into library interfaces.

The problem is not that dates and times are fundamentally complicated (though they are). The problem is the lack of a simplified mental model with library support. This would give programmers the concepts and vocabulary necessary to reason about and discuss these concepts, and the ability to express this reasoning in simple C++ terms.

In this talk I will show how date and time programming evolved into what it is today. I will present a greatly simplified mental model that applies to all programming languages. I will show clear examples using an open source C++ library that implements these simplified concepts. And I will present practical tips for proper time hygiene that should be used by everyone immediately.