Events

CppCon Program Preview, 2 of N -- Boris Kolpackov

cppcon-096.PNGMore CppCon 2014 accepted talks have just been announced, below. For past announcements about the conference program, see also CppCon Program Preview, 1 of N and CppCon 2104: Initial Partial Topics and Speakers.

Super Early Bird registration has sold out, but Early Bird registration is available until June 30.

CppCon Program Preview, 2 of N

by Boris Kolpackov

From the announcement:

Continuing with the program preview, the next set of accepted talks is below (summary first, abstracts following):

  • Andrei Alexandrescu: “Mo’ Hustle Mo’ Problems”
  • Andrew Sutton: “Generic Programming with Concepts Lite”
  • Marshall Clow: “Hardening Your Code”
  • Nate Kohl: “cppreference.com: Documenting C++ One Edit at a Time”
  • Kate Gregory, James McNellis: “Modernizing Legacy C++ Code”

Andrei Alexandrescu: “Mo’ Hustle Mo’ Problems"

Reasonably-written C++ code will be naturally fast. This is due to C++’s excellent low-penalty abstractions and a memory model close to the machine. However, a large category of applications have no boundaries on desired speed, meaning there’s no point of diminishing returns in making code faster. Better speed means less power consumed for the same work, more workload with the same data center expense, better features for the end user, more features for machine learning, better analytics, and more. Optimizing has always been an art, and in particular optimizing C++ on contemporary hardware has become a task of formidable complexity. This is because modern hardware has a few peculiarities about it that are not sufficiently understood and explored. This talk discusses a few such effects, and guides the attendee on how to navigate design and implementation options in search for better performance.

Speaker’s bio: Andrei Alexandrescu is a researcher, software engineer, and author. He wrote three best-selling books on programming (Modern C++ Design, C++ Coding Standards, and The D Programming Language) and numerous articles and papers on wide-ranging topics from programming to language design to Machine Learning to Natural Language Processing. Andrei holds a PhD in Computer Science from the University of Washington and a BS in Electrical Engineering from University “Politehnica” Bucharest. He works as a Research Scientist for Facebook.

Andrew Sutton: “Generic Programming with Concepts Lite"

In this talk, I will give an overview of the Concepts Lite language extension for C++ and present examples of its use in design and implementation of real-world generic libraries. Concepts Lite provides the ability for programmers to directly state constraints on template arguments as part of the template declaration. These constraints are predicates which determine whether or not a template argument can be used with that template. Constraints are checked by the compiler at the point of use, meaning that that effectively constrained generic libraries will not suffer from the usual problems of insane diagnostics. Libraries written using concepts will be far more readable and maintainable than the status quo. This talk will focus on generic programming, proposed language features, and their use in building real-world libraries. Concepts Lite is a forthcoming ISO Technical Specification (TS) aimed at publication alongside C++14. Concepts Lite is implemented in a branch of GCC, which will be made available to the audience for experiments and experience.

Speaker’s bio: Andrew Sutton is an assistant professor at the University of Akron in Ohio where he teaches and conducts research at the intersection of Software Engineering and Programming Languages. Dr. Sutton helped design and implemented the Concepts Lite proposal for the C++ programming language. He is also the author of the Origin C++ Libraries, an experimental collection of generic libraries that supports ideas and research for generic programming. Dr. Sutton had previously worked as a postdoctoral researcher at Texas A&M University where he worked with Bjarne Stroustrup and Gabriel Dos Reis on the design and implementation of language support for generic programming (i.e., Concepts Lite). He is a member of the C++ Standards Committee and Project Editor for the Concepts Lite Technical Specification. He graduated with a PhD in computer science from Kent State University in Ohio in 2010.

Marshall Clow: “Hardening Your Code"

Ok, you’ve written some code, and it seems to work. How can you be sure that it works? It’s a busy, complicated, dangerous world out there, and software has to work in lots of different environments. How can you gain confidence about your code? How can you make your code more reliable? There are a lot of techniques available to developers today; I’ll talk about several of them: Unit tests, static analysis, runtime analysis, fuzzing, decoding compiler warnings and probably others.

Speaker’s bio: Marshall is a long-time Boost participant. He is one of the moderators of the Boost-Users mailing list, and helps keep the Trac system running. Marshall is a principal engineer at Qualcomm, Inc. in San Diego. He is the author of the Boost.Algorithm library, maintains Boost.Array and Boost.StringAlgo, and is the leader of the Boost Community Maintenance team.

Nate Kohl: “cppreference.com: Documenting C++ One Edit at a Time"

How do you convert hundreds of pages of C++ standardese into a resource that is accessible to software engineers around the world? This talk will describe the process of building a community-run website that documents all of the nooks and dark corners of the C++ programming language. I’ll look back at the history of how C++ was defined, cover the current state of documentation, examine the pros and cons of running a fairly high-profile publicly-editable wiki, and try to guess at what the future holds.

Speaker’s bio: Nate Kohl is a software engineer at Google who enjoys herding cats.

Kate Gregory, James McNellis: “Modernizing Legacy C++ Code"

C++ is a programming language with a long, storied history spanning over three decades–four if one includes its C ancestry. The C++ language has undergone many changes during that time, compiler technology has advanced substantially, and computers today are very different from the computers of decades past. But despite all of these advances, there’s an awful lot of C++ code in use today that looks like it was written in the 1980s. In C++ some cases, the code was written in the 1980s and it’s still in use; in other cases, it’s recently-written code that just doesn’t use modern style. In this talk, we’ll discuss some of the problems with legacy code, and review some practical techniques for applying principles of modern C++ to gradually improve the quality of legacy code and improve maintainability and debuggability. We’ll show how some very small changes to code can yield huge benefits.

Speakers’ bio: Kate Gregory has been using C++ since before Microsoft had a C++ compiler. She writes, mentors, codes, and leads projects, in both C++ and .NET, especially for Windows 7 and 8. Kate is a Microsoft Regional Director, a Visual C++ MVP, and has written over a dozen books (the most recent on C++ AMP for Microsoft Press) and speaks at conferences and user groups around the world. Kate develops courses on C++, Visual Studio, and Windows programming for Pluralsight, founded the East of Toronto .NET Users group, and is a member of adjunct faculty at Trent University in Peterborough.

James McNellis is a senior engineer on the Microsoft Visual C++ team, where he is responsible for the Visual C++ C Runtime (CRT) and C Standard Library implementation. He was previously a member of the Microsoft Expression Blend team, developing the XAML designer tools for Windows 8 apps. Prior to joining Microsoft in 2010, he spent several years working on real-time 3-D simulation and robotics projects in the defense industry. James is a prolific contributor on the Stack Overflow programming Q&A website and occasionally writes for the Visual C++ Team Blog.

CppCon Program Preview, 1 of N -- Boris Kolpackov

The countdown continues: Today we are exactly 100 days out from CppCon 2014.

This morning, the organizers announced that CppCon will have some 100 talks, which going by the size of the program likely makes this the biggest C++ event in... ever. Also, we now have the first set of accepted talks.

CppCon Program Preview, 1 of N

by Boris Kolpackov

From the announcement:

Good news: Due to the large number of submissions (we got over 140), the conference will have 6 tracks instead of the planned 5. This means there will be approximately 100 talks, and that’s not counting keynotes, plenary sessions, and lightning talks (more on those soon). As far as we know no other conference has ever had this number of C++-related presentations which will make CppCon 2014 the biggest event in the history of the language.

Understandably, many of you would like to see the conference program before registering. However, due to a greater than expected number of submissions, the final program is still some weeks away. So to help you make up your mind (or convince your boss) we are going to start publishing the talks as they are accepted. So here is the first chunk (summary first, abstracts following):

Scott Meyers: “Type Deduction and Why You Care”

John JT Thomas: “Embarcadero Case Study: Bringing CLANG/LLVM to Windows”

Rachel Cheng, Michael VanLoon: “Boost: A Bridge from C++98 to C++11; An Introduction to Using More Boost”

Titus Winters: “The Philosophy of Google’s C++ Code”

James McNellis: “Unicode in C++”

 

Scott Meyers: "Type Deduction and Why You Care"

C++98 had template type deduction, and it worked so intuitively, there was little need to understand what took place under the covers. C++11 extends type deduction to include universal references, applies it to auto variables and lambda expressions, then throws in a special auto-only deduction rule. C++14 pushes the boundary further, adding two forms of function return type deduction (auto and decltype(auto)) for arbitrary functions and offering auto parameters for lambdas. The result is that what could be treated as a black box in C++98 has become a topic that practicing C++ developers really need to understand. This talk will give you the information you need to do that.

Speaker’s bio: Scott Meyers is one of the world’s foremost experts on C++ software development. He wrote the best-selling Effective C++ series (Effective C++, More Effective C++, and Effective STL) and is also author of Overview of the New C++ (C++11/14) and Effective C++ in an Embedded Environment.

John JT Thomas: "Embarcadero Case Study: Bringing CLANG/LLVM to Windows"

CLANG/LLVM delivers a highly conforming C++ compiler and architecture for targeting multiple CPUs, and, as such, has seen success in iOS and other operating systems. Embarcadero has successfully delivered the first commercial compiler for Windows based on CLANG/LLVM. This session describes the benefits of CLANG/LLVM as well as the challenges in bringing it to the Windows operating system. Particular emphasis is placed on the managing the changes in CLANG as well as the additional features added to enable Windows development.

Speaker’s bio: John “JT” Thomas, Director of Product Management at Embarcadero Technologies, has more than 15 years of product management and product development experience including hands-on experience with the early versions of Delphi and C++Builder at Borland Software. While at Borland he was a delegate on the ANSI/ISO C++ standards committee. He earned his Computer Science degree from University of California, Santa Cruz and his MBA and MSE from San Jose State University.

Rachel Cheng and Michael VanLoon: "Boost: A Bridge from C++98 to C++11; An Introduction to Using More Boost"

Part one is for those who are stuck with a C++98/03 compiler, but are interested in using more advanced C++11-like strategies. We will discuss some of the differences between C++98 and C++11 while demonstrating how strategic use of Boost libraries can bridge the gap, allowing more modern programming paradigms in many cases.  Part two is a deeper dive into some interesting Boost libraries for those who may be new to Boost usage. We will explore how C++98 and C++11 can be enhanced and extended by the additional richness of Boost libraries. We will use as example some of the boost libraries used in the F5 Networks code base. If there is time leftover, we will discuss our experience upgrading GCC.

Speakers’ bio: Rachel Cheng is a recent graduate from The Evergreen State College is currently employed at F5 Networks. Michael VanLoon is a Senior Software Engineer at F5 Networks, is a member of the Northwest C++ Users group, and has attended ISO C++ Standards Committee meetings. He has benefited from time at Microsoft, Yahoo!, and VMware, among others, before joining F5. He is fascinated with crafting code and is dismayed at code that falls short of its potential.

Titus Winters: "The Philosophy of Google’s C++ Code"

The Google C++ Style Guide is a fairly popular guide for C++ coding practices, both at Google and externally, but some of its recommendations often seem dated and have created controversy and perceived tension with more modern C++ In this talk we will focus on the core philosophies underlying that guide, ranging from the common (be consistent) to the unusual (leave an explicit trace for the reader), and debunk the idea that Google’s C++ is anything less than modern. We’ll discuss how these core ideas inform contentious rules like “No non-const references” and “Don’t use exceptions,” and how the application of those rules has worked for us in practice, both as developers and reliability engineers (SREs).

Speaker’s bio: Titus Winters has spent the past three years working on Google’s core C++ libraries. He’s particularly interested in issues of large scale software engineering and codebase maintenance: How do we keep a codebase of over 100M lines of code consistent and flexible for the next decade? Along the way he has helped Google teams pioneer techniques to perform automated code transformations on a massive scale, and helps maintain the Google C++ Style Guide.

James McNellis: "Unicode in C++"

In some programming languages, text processing is easy. Unfortunately, C++ is not one of those languages. C++ lacks good, built-in support for Unicode, though the situation is starting to improve. This session will begin with a brief overview of text encodings, and an introduction to Unicode and the various Unicode encodings. We’ll look at the woeful state of Unicode support in C++98 (or, really, lack thereof), then take a look at the improvements that were made in C++11 and other improvements that have recently been proposed for standardization. We’ll finish up with a discussion of several libraries designed to make it easier to work with Unicode in C++, including the widely-used, open-source International Components for Unicode (ICU) library.

Speaker’s bio: James McNellis is a senior engineer on the Microsoft Visual C++ team, where he is responsible for the Visual C++ C Runtime (CRT) and C Standard Library implementation. He was previously a member of the Microsoft Expression Blend team, developing the XAML designer tools for Windows 8 apps. Prior to joining Microsoft in 2010, he spent several years working on real-time 3-D simulation and robotics projects in the defense industry. James is a prolific contributor on the Stack Overflow programming Q&A website and occasionally writes for the Visual C++ Team Blog.
 

CppCon: My Proposed Talks (Part 2) -- Herb Sutter

cppcon-108.PNGFollowing up on Herb's three talk proposals posted yesterday, the other two titles and abstracts are now posted, this time of new talks (note: again, pending review and selection by the program committee, so this is not final -- they may or may not be selected if there is stronger material).

CppCon: My Proposed Talks (Part 2)

by Herb Sutter

From the post:

GC for C++, and C++ for GC: “Right” and “Wrong” Ways to Add Garbage Collection to C++ (1 to 2 hours)

"Garbage collection is essential to modern programming!" "Garbage collection is silly, who needs it!"

As is usual with extremes, both of these statements are wrong. Garbage collection (GC) is not needed for most C++ programs; we're very happy with determinism and smart pointers, and GC is absolutely penalizing when overused, especially as a default (or, shudder, only) memory allocator. However, the truth is that GC is also important to certain high-performance and highly-concurrent data structures, because it helps solve advanced lock-free problems like the ABA problem better than workarounds like hazard pointers.

This talk presents thoughts about how GC can be added well to C++, directly complementing (not competing with) C++'s existing strengths and demonstrating why, as Stroustrup says, "C++ is the best language for garbage collection."

 

Addressing C++’s #1 Problem: Defining a C++ ABI (1 hour)

"Why can't I share C++ libraries even between my own internal teams without using the identical compiler and switch settings?" "Why are operating system APIs written in unsafe C, instead of C++?" "Why can’t I use std::string in a public shared library interface; it's the C++ string, isn't it?!"

These and more perennial questions are caused by the same underlying problem: For various historical reasons, C++ does not have a standard binary interface, or ABI. Partial solutions exist, from the Itanium ABI which addresses only the language and only on some platforms, to COM and CORBA which do both less and far more than is needed.

It is deeply ironic that there actually is a way to write an API in C++ so that it has a de facto stable binary ABI on every platform: extern "C".

This session describes current work driven by the presenter to develop a standard C++ ABI. This does not mean having identical binaries on all platforms. It does mean tackling all of the above problems, including directly addressing the #1 valid reason to use C instead of C++, and removing a major obstacle to sharing binary C++ libraries in a modern way.

CppCon: My Proposed Talks (Part 1) -- Herb Sutter

cppcon-109.PNGWith the CppCon talk submission deadline upon us, we're starting to get glimpses of the potential CppCon conference program. In today's post, Herb Sutter mentions three of his five talk proposals (note: pending review and selection by the program committee, so this is not final -- they may or may not be selected if there is stronger material).

CppCon: My Proposed Talks (Part 1)

by Herb Sutter

From the post:

Lock-Free Programming – or, How to Juggle Razor Blades (~2 hours)

Example-driven talk on how to design and write lock-free algorithms and data structures using C++ atomic<> – something that can look deceptively simple, but contains very deep topics. (Important note: This is not the same as my "atomic<> Weapons" talk; that talk was about the "what they are and why" of the C++ memory model and atomics, and did not cover how to actually use atomics to implement highly concurrent algorithms and data structures.)

This talk is about the "how to use them successfully" part of atomics, including:

  • Best practices and style for using atomic<>s
  • Three or more examples, including lock-free mail slots and iterations of a lock-free linked list, all in portable Standard C++
  • Defining and applying the different levels of "lock-freedom" (wait-free, lock-free, obstruction-free) to develop highly concurrent algorithms and data structures
  • Explaining and applying key concepts including especially: linearizability; trading off concurrency vs. promptness; and trading off concurrency vs. throughput/utilization
  • Demonstrating and solving the ABA problem, with clean and simple code – that's right, did you know that in C++11 you can solve this without relying on esoterica like double-wide CAS (which isn’t always available) or hazard pointers (which are deeply complex) or garbage collection (which isn’t in the C++ standard... yet)?

Standardization Update: C++14 and the Seven Dwarfs (1 hour)

Standardization has accelerated: By the time we meet at CppCon, C++14 might already be ratified. But that's only one of eight (so far) work items now in flight. In this session, I'll give a brief summary of the new features coming in C++14 itself, and then a tour of the seven (7) near-term separate Technical Specifications already underway – think of these as the "C++14 wave" of deliverables.

The ISO C++ committee has transitioned to a "decoupled" model where updated versions of the standard are published more frequently, while at the same time major pieces of work can progress and be published independently from the Standard itself and delivered asynchronously in the form of Technical Specifications (TS’s) that are separate from the main Standard and can later be incorporated into the Standard. Come to this session to see how this is helping both the standard and C++ compiler implementations near you stay current with the latest in C++.

The topics covered will be:

  • C++14: What’s new in the new standard due this year
  • File System TS: Portable file system access
  • Library Fundamentals TS (small): string_view and optional<>
  • Array Extensions TS: Language and library dynamic arrays
  • Concepts Lite TS: Templates + constraints = ++usability and ++diagnostics
  • Concurrency TS: Nonblocking futures (.then, .when_*), executors, and (maybe) await
  • Parallelism TS: A whole new Parallel STL with both parallel and vector execution support
  • One of:
        – Networking TS (small): IP addresses, URIs, byte ordering
        – Transactional Memory TS: Language and library extensions for transactional memory instead of mutexes for many kinds of concurrency control

This session will present an overview of each set of features, what it looks like and how to use it, and why it’s important for the standard and for your own portable C++ code.

Modern C++ Style: Idioms of C++11/14 (1 to 3 hours)

This session will cover modern and current C++ style, focusing on C++14. It will demonstrate how major features and idioms from C++98 are now entirely replaced or subsumed and should be used no more; how other major features and idioms have been dramatically improved to the point where your code is cleaner and safer and you’ll even think in a different style; and how pervasive styles as common as variable declarations are changed forever, and not just for style but for serious technical safety and efficiency benefits. For one thing, you’ll never look at auto the same way again – and if hearing that makes you worry, worry not, just attend the session to dig deep into the good reasons for the new reality.

Why C++14? Two reasons: First, it really does "complete C++11" with small but important consistency features like generic lambdas and make_unique that let us teach modern C++ style with fewer “except for” footnotes. Second, C++14 “is” C++ for the next several years and it’s real; it is feature-complete and in the final stages of standardization, and more importantly we are already seeing near-complete conforming implementations becoming widely available around the same time C++14 is expected to be formally published.

C++14 is a small but important improvement on C++11 that really does complete the language. What this means is that we’re going to have a complete and simpler set of idioms and styles to learn and use.
 

Very Strong C++ Track at the NDC Conference [June 2-6, Oslo, Norway] -- Anders Schau Knatten

A useful reminder:

Very Strong C++ Track at the NDC Conference [June 2-6, Oslo, Norway]

by Anders Schau Knatten

From the article:

... there’ll be no less than 13 talks, by Nico Josuttis, Scott Meyers, Andrei Alexandrescu, Hubert Matthews, Mike Long, Isak Styf, Ismail Pazarbasi, Olve Maudal, and myself. In addition, Andrei Alexandrescu will give a two day workshop. Here’s the full list:

CppCon 2014: Initial partial topics and speakers, talk submission deadline

cppcon-120.pngCppCon is now just 120 days away! The final program is expected to be available in late June, but in the meantime the organizers have shared a sneak peek at a partial list of speakers and topics for this year's event.

Program Update, Submission Deadline Reminder

by Boris Kolpackov

Speakers proposing talks so far include a nice mix of speakers -- not only the most widely known veteran C++ speakers and many active standards committee members, but also a range of speakers from industry and specific domains, and from all around the world forming a truly international cast:

  • Alan Uthoff
  • Andrew Stepanchuk
  • Bjarne Stroustrup (keynote)
  • Boris Kolpackov
  • Brett Hall
  • Camille Coti
  • Edouard Alligand
  • Eric Niebler
  • Herb Sutter
  • Jason Turner
  • Jens Weller
  • Joel Falcou
  • John Farrier
  • Jon Kalb
  • Kate Gregory
  • Marshall Clow
  • Michael Caisse
  • Michael Wong
  • Nate Kohl
  • Robert Ramey
  • Roland Bock
  • Pedro Ramalhete
  • Peter Sommerlad
  • Scott Meyers
  • Sridhar Poduri
  • Stefanus Du Toit
  • Steve Heller

That's just the start, and is already more than 3x the number of speakers there were at GoingNative.

From the talks submitted so far, we are seeing several popular topic themes, with multiple sessions in each of the following themes (with more themes to come):

  • new Standards Committee proposals for features and libraries
  • how to write better and more modern C++ code or make the compiler help you do that
  • developing for mobile platforms
  • writing reliable and exception-safe code
  • concurrent and lock-free programming
  • database access and object persistence
  • continuous delivery integration
  • various memory models (shared, user mode virtual, and transactional)

Do you have a topic you could speak about for anything from 30 min to 3 hours? Submit a session proposal! The talk submission deadline is still open for at least another week. From the article:

While we already have some great content, we need more, so don’t forget to submit your proposal before the deadline, May 15. You only have one week left! To make the submission process smoother there is also the new, easier to use submission form.

Super Early Bird registration sold out, but Early Bird registration will be open until June 30. We look forward to seeing you with us in the hot crowd at this year's C++ fest in the beautiful Seattle area this September.

Talks for Meeting C++ 2014 are online

I released most of the talks for this years Meeting C++ conference:

Meeting C++ 2014 - Talks

I have yet only published the talks where I could reach the speakers. So some more to come. The popular Track in the mainhall is also alreay known:

  • Monads in chains
  • Expression Templates Revisited: Separating Facts from Urban Legends
  • Pruning Error Messages From C++ Template Code
  • Sqlpp11, An EDSL For Type-Safe SQL In C++ For Databases, Containers, Streams And More
  • Multithreading done right?
  • Testdriven C++ with Catch
  • The C++ Memory Model

The schedule will be online around the beginning of June.

C++ User Group Meetings in May

Again, a list of user group meetings for this month. In total its going to be 16 user groups meeting this month:

C++ User Group Meetings in May 2014

by Jens Weller

From the Article:

The Meetings

    8th May C++ UG Aachen - SIMD Programmierung
    8th May C++ UG Belgium
        Parallelism in the C++ Standard, what to expect from C++17
        Asynchronous Programming with futures and await
    8th May C++ UG Dresden - C++ Memory Model
    8th May C++ UG New York - Whats next for C++
    13th May C++ UG Philadelphia - Profiling and Perfomance
    14th May C++ UG San Francisco/Bay area
    15th May C++ UG Malmö/Sweden - Battle of the build systems
    19th May C++ UG Denver - CppNow, Eclipse Configuration, Qt Creator and more...
    20th May C++ UG Berlin - C++ in the demo scene
    21st May C++ UG Düsseldorf - Expression Templates
    21st May C++ UG Hamburg
    21st May C++ UG Seattle/Northwest - Agile Architecture
    23rd May C++ UG Paris
        Introspection et reflection en C++
        Le SIMD en pratique avec boost SIMD
        Clang & C++
    27th May C++ UG Chicago
    28th May C++ UG Heidelberg
    28th May C++ UG San Francisco/Bayarea - C++Now tripreport

Announcing the student program for Meeting C++ 2014

Today I have the honor to announce the details of this years student program for Meeting C++ 2014

Meeting C++ 2014: the student program

by Jens Weller

From the article:

The Meeting C++ Student program will enable 50 students to attend Meeting C++ 2014 plus 3 exclusive workshops organized by think-cell one day before the conference on December 4th. So, for students this will be a 3 day conference! After the workshops you will be invited to the student dinner by think-cell.

CppCon 2014 super early bird almost sold out -- ~20 tickets left

cppcon-144.PNGIf you've been thinking of registering for CppCon, you can save by doing it in the next couple of days. Over at CppCon.org, Boris Kolpackov reports:

Super Early Bird Last Chance

In the past couple of weeks a lot of C++ enthusiasts have registered for CppCon 2014 and as a result we only have about 20 super early bird entries left. If you are planning to attend, this is your last chance to register at the most affordable price.

After the limited Super Early Bird is full, Early Bird registration will be available until the end of June. Student registrations are also available at a heavily subsidized rate to ensure students can take advantage of the program.

See also the Call For Submissions to see the kinds of topics that you can expect to see covered.