community

CppCon 2014 Founding C++ User Groups--Jon Kalb & Jens Weller

Have you registered for CppCon 2015 in September? Don’t delay – Early Bird registration is open now.

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

Founding C++ User Groups

by Jon Kalb & Jens Weller

(watch on YouTube) (watch on Channel 9)

Summary of the talk:

Jens and Jon will share their experiences starting and working with local user groups and C++ conferences. They share some history and pointers on what has worked for them.

If you'd like to start or be active in a local tech group this session will be a good place to start.

CppCast Episode 12: Modern C++ for the Windows Runtime with Kenny Kerr

Episode 12 of CppCast the only podcast by C++ developers for C++ developers. In this episode Rob and Jason are joined by Kenny Kerr to talk about Modern C++ for the Windows Runtime. Kenny also shares his thoughts on printf and tells us about his new Pluralsight course.

CppCast Episode 12: Modern C++ for the Windows Runtime with Kenny Kerr

by Rob Irving and Jason Turner

About the interviewee:

Kenny Kerr is a computer programmer and recognized expert in Windows operating system development and programming languages. Kenny has published numerous articles about the Windows operating system, network security, and C++ for MSDN Magazine as well as other publications. Microsoft has recognized Kenny’s expertise in network and operating system security with the Microsoft MVP Award for security. He has also held the Microsoft MVP Award since 2007 for his contributions to the C++ development community.

C++ Best Practices: A Forkable Standards Document - Jason Turner

A forkable coding standards and best practices document for C++.

C++ Best Practices

by Jason Turner

From the book

It (C++ Best Practices) compliments books such as Effective C++ (Meyers) and C++ Coding Standards (Alexandrescu, Sutter). We fill in some of the lower level details that they don't discuss and provide specific stylistic recommendations while also discussing how to ensure overall code quality.

...

This document is based on my personal experiences. You are not supposed to agree with it 100%. It exists as a book on github so that you can fork it for your own uses or submit back proposed changes for everyone to share.

 

CppCast Episode 11: Boost 2.0 with Robert Ramey

Episode 11 of CppCast the only podcast by C++ developers for C++ developers. In this episode Rob and Jason are joined by Robert Ramey to talk about the future of the Boost C++ Libraries.

CppCast Episode 11: Boost 2.0 with Robert Ramey

by Rob Irving and Jason Turner

About the interviewee:

Robert Ramey is a freelance Software Developer living in Santa Barbara, California. His long and varied career spans various aspects of software development including business data processing, product, embedded systems, custom software, and C++ library development. Lately, he has been mostly interested in C++ library design and implementation related to Boost. He is the author and maintainer of the Boost Serialization library and Boost library incubator

CppCon 2014 Defensive Programming Done Right, Part II--John Lakos

While we wait for CppCon 2015 in September, we’re featuring videos of some of the 100+ talks from CppCon 2014. Here is today’s feature:

Defensive Programming Done Right, Part II

by John Lakos

(watch on YouTube) (watch on Channel 9)

Summary of the talk:

In our component-based development methodology, each developer is responsible for ensuring that the software he or she creates is easy to understand and use, and not especially easy to misuse. One common form of misuse is to invoke a library function or method under circumstances where not all of its preconditions are satisfied, leading to undefined behavior. Contracts having undefined behavior are not necessarily undesirable, and (for many engineering reasons) are often optimal. Most would agree that a well-implemented library should do something other than silently continue when a pre-condition violation is detected, although these same folks might not agree on what specific action should be taken. Unfortunately, validating preconditions implies writing additional code that will execute at runtime. More code runs slower, and some would fairly argue that they should not be forced to pay for redundant runtime checks in the library software they use. Whether and to what extent library functions should validate their preconditions, and what should happen if a precondition violation is detected are questions that are best answered on an application by application basis - i.e., by the owner of main. "Defensive Programming Done Right" makes it all possible.

In this talk, we begin by reviewing the basic concepts of Design-By-Contract (DbC), and what we mean by the term "Defensive Programming" (DP). We then explore our overall approach to institutionalizing defensive programming in robust reusable library software such that each application can conveniently specify both the runtime budget (e.g., none, some, lots) for defensive checking, and also the specific action to be taken (e.g., abort, throw, spin) should a precondition violation occur. Along the way, we touch on how modern compilers and linkers work, binary compatibility, and the consequences of possibly violating the one-definition rule in mixed-mode builds. We conclude the talk by describing and then demonstrating our "negative testing" strategy (and supporting test apparatus) for readily verifying, in our component-level test drivers, that our defensive checks detect and report out-of-contract client use as intended. Actual source for the supporting utility components will be presented throughout the talk and made available afterwards.

CppCon 2014 Defensive Programming Done Right, Part I--John Lakos

While we wait for CppCon 2015 in September, we’re featuring videos of some of the 100+ talks from CppCon 2014. Here is today’s feature:

Defensive Programming Done Right, Part I

by John Lakos

(watch on YouTube) (watch on Channel 9)

Summary of the talk:

In our component-based development methodology, each developer is responsible for ensuring that the software he or she creates is easy to understand and use, and not especially easy to misuse. One common form of misuse is to invoke a library function or method under circumstances where not all of its preconditions are satisfied, leading to undefined behavior. Contracts having undefined behavior are not necessarily undesirable, and (for many engineering reasons) are often optimal. Most would agree that a well-implemented library should do something other than silently continue when a pre-condition violation is detected, although these same folks might not agree on what specific action should be taken. Unfortunately, validating preconditions implies writing additional code that will execute at runtime. More code runs slower, and some would fairly argue that they should not be forced to pay for redundant runtime checks in the library software they use. Whether and to what extent library functions should validate their preconditions, and what should happen if a precondition violation is detected are questions that are best answered on an application by application basis - i.e., by the owner of main. "Defensive Programming Done Right" makes it all possible.

In this talk, we begin by reviewing the basic concepts of Design-By-Contract (DbC), and what we mean by the term "Defensive Programming" (DP). We then explore our overall approach to institutionalizing defensive programming in robust reusable library software such that each application can conveniently specify both the runtime budget (e.g., none, some, lots) for defensive checking, and also the specific action to be taken (e.g., abort, throw, spin) should a precondition violation occur. Along the way, we touch on how modern compilers and linkers work, binary compatibility, and the consequences of possibly violating the one-definition rule in mixed-mode builds. We conclude the talk by describing and then demonstrating our "negative testing" strategy (and supporting test apparatus) for readily verifying, in our component-level test drivers, that our defensive checks detect and report out-of-contract client use as intended. Actual source for the supporting utility components will be presented throughout the talk and made available afterwards.

CppCast Episode 10: SQLpp11 with Roland Bock

Episode 10 of CppCast the only podcast by C++ developers for C++ developers. In this episode Rob and Jason are joined by Roland Bock to talk about sqlpp11 and some of Rolands ideas for the future of C++.

CppCast Episode 10: SQLpp11 with Roland Bock

by Rob Irving and Jason Turner

About the interviewee:

Roland Bock is Head of Development at PPRO Financial Ltd, an FCA regulated e-Money institute offering prepaid MasterCard card programs and comprehensive financial solutions for international electronic payment transactions. Since 2008 he has been using SQL in C++. Being unhappy with the string-based approach of most SQL libraries, he decided to do something about it and developed a type-safe EDSL for SQL in C++: sqlpp11. In his spare time Roland is working on sqlpp11, experimenting with Concepts Lite and trying to write a proposal about compile-time configurable names for C++ standard. He lives and codes in Munich (Germany).

Modern C++ Workshop at Polyglot Unconference 2015

This workshop is an introduction to new features and best practices of modern C++. We will delve into the core of C++ and all new features introduced in C++11 and C++14.

Introduction to Modern C++ Workshop happening at Polyglot Unconference 2015 in Vancouver, BC.

by Alejandro Isaza

From the workshop summary:

  • Write C++ code using the latest language features while following the best practices
  • Use third-party libraries and frameworks

 

 

5 awesome C++ libraries we use--Edouard

An interesting post on interesting librairies:

5 awesome C++ libraries we use

by Edouard

From the article:

This is an opinionated post about five libraries we use in the production code of quasardb.

We of course use many more great libraries (for example Boost.ASIO which is not listed here). Maybe those five libraries are not the most important, but I felt they deserved some special highlight as they are not so well-known or understood...

C++ User Group Meetings in May

The monthly overview on the current user group meetings:

C++ User Group Meetings in May

by Jens Weller

From the article:

    6.5 C++ UG Saint Louis - DD Part 5 - "Atomic" weapons OR ??
    6.5 C++ UG Munich - What is new in VS2015 for C++ Developers
    6.5 C++ UG Saint Louis - "Atomic weapons" part II
    6.5 C++ UG Austin - Charming Python with C++
    7.5 C++ UG NRW/Aachen - C++ User Gruppe (Mai)
    7.5 C++ UG Dresden - Coding Dojo
    11.5 C++ UG Zentralschweiz - Compile-time computation in C++14" mit Prof. Peter Sommerlad
    13.5 C++ UG Utah - Test-Driven Development in C++
    13.5 C++ UG San Francisco/ Bay area - Presentation and Q&A
    15.5 C++ UG Taipei - monthly meetup
    16.5 C++ UG Pune, India - Mastering C++14
    18.5 C++ UG Austin - North Austin Monthly C/C++ Pub Social
    20.5 C++ UG Düsseldorf - Cooking with C++
    20.5 C++ UG Arhus - Kickoff Meeting
    20.5 C++ UG Northwest/Seattle - STL Concepts and Ranges
    21.5 C++ UG Bristol - Lightning Talks
    27.5 C++ UG San Francisco/ Bay area - Workshop and Discussion Group
    27.5 C++ UG Hamburg - C++ Expression Templates
    27.5 C++ UG Udine (Italy)
    28.5 C++ UG Rhein-Neckar - (C++) build system olympics.