SlideShare a Scribd company logo
1 of 35
Download to read offline
Version 2017-01-19
Trip Report from Meeting C++ 2017:

It'sWay MoreThan C++
Andrey Upadyshev, Amazon AWS
Licensed under a CC BY-SA 4.0 License.
Contents
✤ Meeting C++ 2017 overview
✤ This year's hot themes
✤ Briefly go thru top* talks
✤ What's next?
* according to my personal judgment
Meeting C++ 2017 Overview
✤ http://meetingcpp.com/2017/
✤ 9th - 11th November, Berlin
✤ The biggest C++ conference in Europe
✤ 3 days
✤ 4 tracks
✤ 44 talks + lightning talks ⚡
✤ ~600 participants, quite busy
✤ Tasty food 🍺🍕
The Meeting's HotThemes
C++17/20 and Beyond
✤ What just came in C++17?
✤ What's coming next?
✤ Jason Turner "Practical C++17" and "Practical constexpr"
✤ Kris Jusiak "Concepts driven design"
✤ Anton Bikineev "Reflection in C++Next"
✤ Niall Douglas "Introduction to proposed std::expected"
✤ Marc Mutz "Stringviews, stringviews everywhere" and "Structured Bindings
Demystified" ⚡
✤ Guy Davidson "Dragging C++ into the modern era: a proposal for a 2D Graphics API"
✤ Jonathan Müller "Fun with (user-defined) attributes"
✤ Miro Knejp "Is This Available?" ⚡
Teaching and Learning C++
✤ Because it's hard
✤ Kate Gregory "Its complicated!" and "5 Things I Figured
Out While I was Supposed to be Dying" ⚡
✤ Jens Weller "Beginning with C++" (Panel)
✤ Quite some talks that suitable for beginners
Nextgen Parallel Programming
✤ Demand for high(er) level parallel programming
✤ Borrowing functional language concepts (next topic)
✤ Rainer Grimm "Threads and Locks must Go"
✤ Alfred Bratterud "True parallelism with no concept of
threads"
✤ Felix Petriconi "There Is A New Future"
Adopting Foreign Concepts
✤ There is still hype about functional languages
✤ Ivan Čukić "Functional Data Structures"
✤ Kevlin Henney "Declarative Thinking, Declarative Practice"
✤ Juan Pedro Bolívar Puente "The most valuable values"
✤ Niall Douglas "Introduction to proposed std::expected"
✤ Andreas Reischuck "Improve your C++ with inspirations
from other languages"
Tools
✤ Incredible amount of talks about tooling
✤ Simon Brand "How C++ Debuggers Work"
✤ Dori Exterman "How to Use Free Visualization Tools to Optimize
Applications and Parallel Computing"
✤ Gábor Horváth "Advanced Tools for Better Productivity" and "How to
deal with a multi- million line codebase?" ⚡
✤ Peter Steinbach "The Performance Addict's toolbox"
✤ Diego Rodriguez-Losada, Luis Martinez de Bartolome "C++ is late to
the party: package management is only the beginning"
MoreTools
✤ Mathieu Ropert "Modern CMake for modular design" and "The
need for a package manager interface" ⚡
✤ Anastasia Kazakova "Tools from the C++ eco-system to save a
leg"
✤ Victor Ciura "Bringing Clang-tidy Magic to Visual Studio C++
Developers"
✤ Arvid Gerstmann "A Very Quick View Into a Compiler" ⚡,
"FASTBUILD: A Short Introduction" ⚡ and "The Case For
Vendored Builds" ⚡
Performance, Design and
Architecture
✤ A lot of talks as always...
✤ ...but less than last year
✤ Is it because everybody is about tools now? 😱
TopTalks (Not Really About C++)
"Better Code:Human interface"
Sean Parent
"Better Code:Human interface"
Sean Parent
✤ Sean Parent is a Principal Scientist at Adobe
✤ The talk's main topics:
✤ Designing consistent HI (and code)
✤ Effective algorithms to work with large collections
✤ “The purpose of a human interface is not to hide what the code does
but to accurately convey what the code does.” – Darin Adler
✤ "Don't lie"
"Better Code:Human interface"
Sean Parent
✤ Taxonomy of Everything:
✤ Collections
✤ Objects
✤ Properties
✤ Operations
✤ Relationships
✤ Model-View-Controller concept is F'ed up in different
ways by different companies
"Better Code:Human interface"
Sean Parent
"Better Code:Human interface"
Sean Parent
✤ Large collections pose a problem:
✤ How to observe the collection interactively, allowing the user to arrange,
filter, and browse
✤ Examples of algorithms to work with large collections
✤ nth_element() + partial_sort() = sort_subrange() for effective
sorting of large collections
✤ stable_partition() + rotate() to manipulate collections while
keeping relative order of elements and elements selection
✤ Interval sets are a good data structure to represent selections
"Better Code:Human interface"
Sean Parent
✤ Relationship vs structure vs architecture.
✤ Within an HI relationships can be challenging to
represent
✤ Example of modelling relationship in HI
"How C++ DebuggersWork"
Simon Brand
"How C++ DebuggersWork"
Simon Brand
«At some point in your life, your kids may ask you
“how debuggers are made?”. You’ll be able to dodge
the bullet here by directing them to Simon Brand’s
talk which explains it all :)»
– Mathieu Ropert
"How C++ DebuggersWork"
Simon Brand
✤ Really about any native debugger, (almost) nothing C++ specific
✤ No background knowledge required
✤ GDB/LLDB
✤ Topics:
✤ ELF/DWARF
✤ ptrace
✤ Debug information
✤ Breakpoints
✤ Stepping
✤ Backtrace
✤ Expression evaluation
✤ Reversible debugging
✤ Awesome "Find the Bug" slides 🐞
"Deep Learning with C++"
Peter Goldsborough
"Deep Learning with C++"
Peter Goldsborough
✤ Introduction into machine learning
✤ Good trampoline to finally start it
✤ Random words from the talk:
✤ OSI Model of Machine Learning, Classification,
Generative, Convolution, TensorFlow, Graph Layer
Parallelism, Forward Pass, C++, cuBLAS, Google,
im2col, Sigmoid Activation Function, Bob, Caffe2, Static
Graph, Facebook, Python, TPU, MXNet, GPU, cuDNN,
Quantization, Amazon
"FantasticAlgorithms andWhereTo FindThem"
Nicholas Ormrod
"FantasticAlgorithms andWhereTo FindThem"
Nicholas Ormrod
✤ Nicholas Ormrod is an infrastructure engineer at Facebook
✤ 4 space efficient algorithms:
✤ Heavy Hitters - finding heavy hitters , which are elements that
occur at least X% of the time (for X = 50% it's called Majority
Element, or Boyer-Moore's Majority Vote)
✤ Used in some Facebook infrastructure services to find traffic
outliers for DoS (not DDoS) protection (not intention attacks)
✤ Used by Gcov profiler to find the value of function argument
that occurs the vast majority of time
"FantasticAlgorithms andWhereTo FindThem"
Nicholas Ormrod
✤ Morris Traversal - non-destructively in-order traverse a tree
✤ Used for unbalanced trees to prevent stack smashing due to recursive calls (not
needed for a balanced tree)
✤ Reservoir Sampling - selects k elements with a random probability from an
unknown length stream
✤ Used in BigGrep, a Facebook's internal grep tool for entire codebase
✤ HyperLogLog - count the number of distinct elements in a collection that's too big to
fit in memory
✤ Probabilistic cardinality estimation
✤ Needs about O(log log n) memory, where n is cardinality
✤ Recommended Michael VanLoon's talk "STL Algorithms in Action" (CPPcon)
Top C++Talks (Very Briefly)
Top C++Talks
✤ Jason Turner "Practical C++17"
✤ All the practical things you need to know about the new standard
✤ Klaus Iglberger "Free your functions"
✤ In-depth advocating why non-member functions are better than members
✤ Made like a preaching 👻
✤ Joel Falcou "The Three Little Dots and the Big Bad Lambdas - A Constructive Approach
to Code Generation"
✤ Simple approach for code-generation without TMP ("Write code generators not
type wranglers")
✤ A lot of other good talks
C++Talks for Beginners
✤ Kate Gregory "Its complicated!" and "5 Things I Figured Out While I
was Supposed to be Dying" ⚡
✤ How to teach C++ and where to seek for C++ knowledge.
✤ Milosz Warzecha "An inspiring introduction to Template
Metaprogramming"
✤ Hm... it's exactly what the title says
✤ Antonio Mallia, Jaime Alonso Lorenzo "C++: unexpected
behaviour"
✤ C++'s cave of horror
Bookmarks
✤ ChiaScript - an easy to use embedded scripting
language for C++ (Jason Turner's talks, mostly in
"Practical constexpr")
✤ IncludeOS is a zero-overhead library operating
system. Written from scratch in modern C++ (Alfred
Bratterud's "True parallelism with no concept of threads")
✤ rr - reversible debugger (touched in Simon Brand's
"How C++ Debuggers Work")
What's Next?
What's Next?
✤ I'll organise:
✤ Voting for talks you're interested in.
✤ FLS replay & discussion session for top 3 (?)
voted talks.
✤ Something else? Let me know
What's Next?
✤ All talks and slides are available online (or will be
there soon):
✤ http://meetingcpp.com/2017/slides_meetingcpp_2017.zip
✤ https://www.youtube.com/playlist?
list=PLRyNF2Y6sca3EUO_RTNv5t7gUmppFl9R1

or

https://www.youtube.com/user/MeetingCPP

> playlists > Meeting C++ 2017
Questions?
Thank you!

More Related Content

Similar to Trip Report from Meeting C++ 2017: It's Way More Than C++

Resisting The Feature Creature
Resisting The Feature CreatureResisting The Feature Creature
Resisting The Feature CreatureChristian Heilmann
 
Evolving as a professional software developer
Evolving as a professional software developerEvolving as a professional software developer
Evolving as a professional software developerAnton Kirillov
 
An Introduction to Machine Learning
An Introduction to Machine LearningAn Introduction to Machine Learning
An Introduction to Machine LearningAngelo Simone Scotto
 
OpenFest 2012 : Leveraging the public internet
OpenFest 2012 : Leveraging the public internetOpenFest 2012 : Leveraging the public internet
OpenFest 2012 : Leveraging the public internettkisason
 
HAX - Chaotic Good
HAX - Chaotic GoodHAX - Chaotic Good
HAX - Chaotic Goodbtopro
 
Not Your Fathers C - C Application Development In 2016
Not Your Fathers C - C Application Development In 2016Not Your Fathers C - C Application Development In 2016
Not Your Fathers C - C Application Development In 2016maiktoepfer
 
Pre-Aggregated Analytics And Social Feeds Using MongoDB
Pre-Aggregated Analytics And Social Feeds Using MongoDBPre-Aggregated Analytics And Social Feeds Using MongoDB
Pre-Aggregated Analytics And Social Feeds Using MongoDBRackspace
 
Codemotion Berlin 2015 recap
Codemotion Berlin 2015   recapCodemotion Berlin 2015   recap
Codemotion Berlin 2015 recapTorben Dohrn
 
OSCON 2014: Data Workflows for Machine Learning
OSCON 2014: Data Workflows for Machine LearningOSCON 2014: Data Workflows for Machine Learning
OSCON 2014: Data Workflows for Machine LearningPaco Nathan
 
Moving Forward with AI
Moving Forward with AIMoving Forward with AI
Moving Forward with AIAdrian Hornsby
 
DevTalks Cluj - Open-Source Technologies for Analyzing Text
DevTalks Cluj - Open-Source Technologies for Analyzing TextDevTalks Cluj - Open-Source Technologies for Analyzing Text
DevTalks Cluj - Open-Source Technologies for Analyzing TextSteffen Wenz
 
PyData Berlin Meetup
PyData Berlin MeetupPyData Berlin Meetup
PyData Berlin MeetupSteffen Wenz
 
시니어가 들려주는 "내가 알고 있는 걸 당신도 알게 된다면"
시니어가 들려주는 "내가 알고 있는 걸 당신도 알게 된다면"시니어가 들려주는 "내가 알고 있는 걸 당신도 알게 된다면"
시니어가 들려주는 "내가 알고 있는 걸 당신도 알게 된다면"InfraEngineer
 
Planning JavaScript and Ajax for larger teams
Planning JavaScript and Ajax for larger teamsPlanning JavaScript and Ajax for larger teams
Planning JavaScript and Ajax for larger teamsChristian Heilmann
 
How to Be a 10x Data Scientist
How to Be a 10x Data Scientist How to Be a 10x Data Scientist
How to Be a 10x Data Scientist Stephanie Kim
 

Similar to Trip Report from Meeting C++ 2017: It's Way More Than C++ (20)

Resisting The Feature Creature
Resisting The Feature CreatureResisting The Feature Creature
Resisting The Feature Creature
 
Evolving as a professional software developer
Evolving as a professional software developerEvolving as a professional software developer
Evolving as a professional software developer
 
An Introduction to Machine Learning
An Introduction to Machine LearningAn Introduction to Machine Learning
An Introduction to Machine Learning
 
Machine learning with Google machine learning APIs - Puppy or Muffin?
Machine learning with Google machine learning APIs - Puppy or Muffin?Machine learning with Google machine learning APIs - Puppy or Muffin?
Machine learning with Google machine learning APIs - Puppy or Muffin?
 
Craft of coding
Craft of codingCraft of coding
Craft of coding
 
OpenFest 2012 : Leveraging the public internet
OpenFest 2012 : Leveraging the public internetOpenFest 2012 : Leveraging the public internet
OpenFest 2012 : Leveraging the public internet
 
HAX - Chaotic Good
HAX - Chaotic GoodHAX - Chaotic Good
HAX - Chaotic Good
 
Not Your Fathers C - C Application Development In 2016
Not Your Fathers C - C Application Development In 2016Not Your Fathers C - C Application Development In 2016
Not Your Fathers C - C Application Development In 2016
 
Tf itpbapm
Tf itpbapmTf itpbapm
Tf itpbapm
 
Pre-Aggregated Analytics And Social Feeds Using MongoDB
Pre-Aggregated Analytics And Social Feeds Using MongoDBPre-Aggregated Analytics And Social Feeds Using MongoDB
Pre-Aggregated Analytics And Social Feeds Using MongoDB
 
Bridging the future gap
Bridging the future gap Bridging the future gap
Bridging the future gap
 
Codemotion Berlin 2015 recap
Codemotion Berlin 2015   recapCodemotion Berlin 2015   recap
Codemotion Berlin 2015 recap
 
OSCON 2014: Data Workflows for Machine Learning
OSCON 2014: Data Workflows for Machine LearningOSCON 2014: Data Workflows for Machine Learning
OSCON 2014: Data Workflows for Machine Learning
 
Moving Forward with AI
Moving Forward with AIMoving Forward with AI
Moving Forward with AI
 
DevTalks Cluj - Open-Source Technologies for Analyzing Text
DevTalks Cluj - Open-Source Technologies for Analyzing TextDevTalks Cluj - Open-Source Technologies for Analyzing Text
DevTalks Cluj - Open-Source Technologies for Analyzing Text
 
PyData Berlin Meetup
PyData Berlin MeetupPyData Berlin Meetup
PyData Berlin Meetup
 
시니어가 들려주는 "내가 알고 있는 걸 당신도 알게 된다면"
시니어가 들려주는 "내가 알고 있는 걸 당신도 알게 된다면"시니어가 들려주는 "내가 알고 있는 걸 당신도 알게 된다면"
시니어가 들려주는 "내가 알고 있는 걸 당신도 알게 된다면"
 
Planning JavaScript and Ajax for larger teams
Planning JavaScript and Ajax for larger teamsPlanning JavaScript and Ajax for larger teams
Planning JavaScript and Ajax for larger teams
 
TXJS 2013 in 10 minutes
TXJS 2013 in 10 minutesTXJS 2013 in 10 minutes
TXJS 2013 in 10 minutes
 
How to Be a 10x Data Scientist
How to Be a 10x Data Scientist How to Be a 10x Data Scientist
How to Be a 10x Data Scientist
 

More from Andrey Upadyshev

Hot C++: Rvalue References And Move Semantics
Hot C++: Rvalue References And Move SemanticsHot C++: Rvalue References And Move Semantics
Hot C++: Rvalue References And Move SemanticsAndrey Upadyshev
 
Hot С++: Universal References And Perfect Forwarding
Hot С++: Universal References And Perfect ForwardingHot С++: Universal References And Perfect Forwarding
Hot С++: Universal References And Perfect ForwardingAndrey Upadyshev
 
Hot C++: New Style of Arguments Passing
Hot C++: New Style of Arguments PassingHot C++: New Style of Arguments Passing
Hot C++: New Style of Arguments PassingAndrey Upadyshev
 
[OLD VERSION, SEE DESCRIPTION FOR THE NEWER VERSION LINK] Hot С++: Universal ...
[OLD VERSION, SEE DESCRIPTION FOR THE NEWER VERSION LINK] Hot С++: Universal ...[OLD VERSION, SEE DESCRIPTION FOR THE NEWER VERSION LINK] Hot С++: Universal ...
[OLD VERSION, SEE DESCRIPTION FOR THE NEWER VERSION LINK] Hot С++: Universal ...Andrey Upadyshev
 
[OLD VERSION, SEE DESCRIPTION FOR NEWER VERSION LINK] Hot C++: Rvalue Referen...
[OLD VERSION, SEE DESCRIPTION FOR NEWER VERSION LINK] Hot C++: Rvalue Referen...[OLD VERSION, SEE DESCRIPTION FOR NEWER VERSION LINK] Hot C++: Rvalue Referen...
[OLD VERSION, SEE DESCRIPTION FOR NEWER VERSION LINK] Hot C++: Rvalue Referen...Andrey Upadyshev
 

More from Andrey Upadyshev (6)

Hot C++: Rvalue References And Move Semantics
Hot C++: Rvalue References And Move SemanticsHot C++: Rvalue References And Move Semantics
Hot C++: Rvalue References And Move Semantics
 
Hot С++: Universal References And Perfect Forwarding
Hot С++: Universal References And Perfect ForwardingHot С++: Universal References And Perfect Forwarding
Hot С++: Universal References And Perfect Forwarding
 
Where to type_std_move?
Where to type_std_move?Where to type_std_move?
Where to type_std_move?
 
Hot C++: New Style of Arguments Passing
Hot C++: New Style of Arguments PassingHot C++: New Style of Arguments Passing
Hot C++: New Style of Arguments Passing
 
[OLD VERSION, SEE DESCRIPTION FOR THE NEWER VERSION LINK] Hot С++: Universal ...
[OLD VERSION, SEE DESCRIPTION FOR THE NEWER VERSION LINK] Hot С++: Universal ...[OLD VERSION, SEE DESCRIPTION FOR THE NEWER VERSION LINK] Hot С++: Universal ...
[OLD VERSION, SEE DESCRIPTION FOR THE NEWER VERSION LINK] Hot С++: Universal ...
 
[OLD VERSION, SEE DESCRIPTION FOR NEWER VERSION LINK] Hot C++: Rvalue Referen...
[OLD VERSION, SEE DESCRIPTION FOR NEWER VERSION LINK] Hot C++: Rvalue Referen...[OLD VERSION, SEE DESCRIPTION FOR NEWER VERSION LINK] Hot C++: Rvalue Referen...
[OLD VERSION, SEE DESCRIPTION FOR NEWER VERSION LINK] Hot C++: Rvalue Referen...
 

Recently uploaded

JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...Bert Jan Schrijver
 
Understanding Plagiarism: Causes, Consequences and Prevention.pptx
Understanding Plagiarism: Causes, Consequences and Prevention.pptxUnderstanding Plagiarism: Causes, Consequences and Prevention.pptx
Understanding Plagiarism: Causes, Consequences and Prevention.pptxSasikiranMarri
 
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...kalichargn70th171
 
oracle 23c new features for developer and dba
oracle 23c new features for developer and dbaoracle 23c new features for developer and dba
oracle 23c new features for developer and dbaRemote DBA Services
 
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jGraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jNeo4j
 
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingOpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingShane Coughlan
 
Effectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorEffectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorTier1 app
 
OpenMetadata Community Meeting - 4th April, 2024
OpenMetadata Community Meeting - 4th April, 2024OpenMetadata Community Meeting - 4th April, 2024
OpenMetadata Community Meeting - 4th April, 2024OpenMetadata
 
Mastering Project Planning with Microsoft Project 2016.pptx
Mastering Project Planning with Microsoft Project 2016.pptxMastering Project Planning with Microsoft Project 2016.pptx
Mastering Project Planning with Microsoft Project 2016.pptxAS Design & AST.
 
Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited CatalogueRonisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogueitservices996
 
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdfAndrey Devyatkin
 
full course of software engineering mid term.pdf
full course of software engineering mid term.pdffull course of software engineering mid term.pdf
full course of software engineering mid term.pdfAbdul salam
 
Strategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsStrategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsJean Silva
 
What is Mendix and the concept of low-code development.docx
What is Mendix and the concept of low-code development.docxWhat is Mendix and the concept of low-code development.docx
What is Mendix and the concept of low-code development.docxTechnogeeks
 
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...OnePlan Solutions
 
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdfSteve Caron
 
Transform your Corporate Strategy Office - Harness OnePlan’s Strategic Portfo...
Transform your Corporate Strategy Office - Harness OnePlan’s Strategic Portfo...Transform your Corporate Strategy Office - Harness OnePlan’s Strategic Portfo...
Transform your Corporate Strategy Office - Harness OnePlan’s Strategic Portfo...OnePlan Solutions
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfRTS corp
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics
 
Revolutionize Your Video Editing with InVideo.io: A Comprehensive Review
Revolutionize Your Video Editing with InVideo.io: A Comprehensive ReviewRevolutionize Your Video Editing with InVideo.io: A Comprehensive Review
Revolutionize Your Video Editing with InVideo.io: A Comprehensive Reviewjw364beach
 

Recently uploaded (20)

JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
 
Understanding Plagiarism: Causes, Consequences and Prevention.pptx
Understanding Plagiarism: Causes, Consequences and Prevention.pptxUnderstanding Plagiarism: Causes, Consequences and Prevention.pptx
Understanding Plagiarism: Causes, Consequences and Prevention.pptx
 
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...
 
oracle 23c new features for developer and dba
oracle 23c new features for developer and dbaoracle 23c new features for developer and dba
oracle 23c new features for developer and dba
 
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jGraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
 
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingOpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
 
Effectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorEffectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryError
 
OpenMetadata Community Meeting - 4th April, 2024
OpenMetadata Community Meeting - 4th April, 2024OpenMetadata Community Meeting - 4th April, 2024
OpenMetadata Community Meeting - 4th April, 2024
 
Mastering Project Planning with Microsoft Project 2016.pptx
Mastering Project Planning with Microsoft Project 2016.pptxMastering Project Planning with Microsoft Project 2016.pptx
Mastering Project Planning with Microsoft Project 2016.pptx
 
Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited CatalogueRonisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogue
 
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
 
full course of software engineering mid term.pdf
full course of software engineering mid term.pdffull course of software engineering mid term.pdf
full course of software engineering mid term.pdf
 
Strategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsStrategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero results
 
What is Mendix and the concept of low-code development.docx
What is Mendix and the concept of low-code development.docxWhat is Mendix and the concept of low-code development.docx
What is Mendix and the concept of low-code development.docx
 
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
 
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
 
Transform your Corporate Strategy Office - Harness OnePlan’s Strategic Portfo...
Transform your Corporate Strategy Office - Harness OnePlan’s Strategic Portfo...Transform your Corporate Strategy Office - Harness OnePlan’s Strategic Portfo...
Transform your Corporate Strategy Office - Harness OnePlan’s Strategic Portfo...
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
 
Revolutionize Your Video Editing with InVideo.io: A Comprehensive Review
Revolutionize Your Video Editing with InVideo.io: A Comprehensive ReviewRevolutionize Your Video Editing with InVideo.io: A Comprehensive Review
Revolutionize Your Video Editing with InVideo.io: A Comprehensive Review
 

Trip Report from Meeting C++ 2017: It's Way More Than C++

  • 1. Version 2017-01-19 Trip Report from Meeting C++ 2017:
 It'sWay MoreThan C++ Andrey Upadyshev, Amazon AWS Licensed under a CC BY-SA 4.0 License.
  • 2. Contents ✤ Meeting C++ 2017 overview ✤ This year's hot themes ✤ Briefly go thru top* talks ✤ What's next? * according to my personal judgment
  • 3. Meeting C++ 2017 Overview ✤ http://meetingcpp.com/2017/ ✤ 9th - 11th November, Berlin ✤ The biggest C++ conference in Europe ✤ 3 days ✤ 4 tracks ✤ 44 talks + lightning talks ⚡ ✤ ~600 participants, quite busy ✤ Tasty food 🍺🍕
  • 5. C++17/20 and Beyond ✤ What just came in C++17? ✤ What's coming next? ✤ Jason Turner "Practical C++17" and "Practical constexpr" ✤ Kris Jusiak "Concepts driven design" ✤ Anton Bikineev "Reflection in C++Next" ✤ Niall Douglas "Introduction to proposed std::expected" ✤ Marc Mutz "Stringviews, stringviews everywhere" and "Structured Bindings Demystified" ⚡ ✤ Guy Davidson "Dragging C++ into the modern era: a proposal for a 2D Graphics API" ✤ Jonathan Müller "Fun with (user-defined) attributes" ✤ Miro Knejp "Is This Available?" ⚡
  • 6. Teaching and Learning C++ ✤ Because it's hard ✤ Kate Gregory "Its complicated!" and "5 Things I Figured Out While I was Supposed to be Dying" ⚡ ✤ Jens Weller "Beginning with C++" (Panel) ✤ Quite some talks that suitable for beginners
  • 7. Nextgen Parallel Programming ✤ Demand for high(er) level parallel programming ✤ Borrowing functional language concepts (next topic) ✤ Rainer Grimm "Threads and Locks must Go" ✤ Alfred Bratterud "True parallelism with no concept of threads" ✤ Felix Petriconi "There Is A New Future"
  • 8. Adopting Foreign Concepts ✤ There is still hype about functional languages ✤ Ivan Čukić "Functional Data Structures" ✤ Kevlin Henney "Declarative Thinking, Declarative Practice" ✤ Juan Pedro Bolívar Puente "The most valuable values" ✤ Niall Douglas "Introduction to proposed std::expected" ✤ Andreas Reischuck "Improve your C++ with inspirations from other languages"
  • 9. Tools ✤ Incredible amount of talks about tooling ✤ Simon Brand "How C++ Debuggers Work" ✤ Dori Exterman "How to Use Free Visualization Tools to Optimize Applications and Parallel Computing" ✤ Gábor Horváth "Advanced Tools for Better Productivity" and "How to deal with a multi- million line codebase?" ⚡ ✤ Peter Steinbach "The Performance Addict's toolbox" ✤ Diego Rodriguez-Losada, Luis Martinez de Bartolome "C++ is late to the party: package management is only the beginning"
  • 10. MoreTools ✤ Mathieu Ropert "Modern CMake for modular design" and "The need for a package manager interface" ⚡ ✤ Anastasia Kazakova "Tools from the C++ eco-system to save a leg" ✤ Victor Ciura "Bringing Clang-tidy Magic to Visual Studio C++ Developers" ✤ Arvid Gerstmann "A Very Quick View Into a Compiler" ⚡, "FASTBUILD: A Short Introduction" ⚡ and "The Case For Vendored Builds" ⚡
  • 11. Performance, Design and Architecture ✤ A lot of talks as always... ✤ ...but less than last year ✤ Is it because everybody is about tools now? 😱
  • 12. TopTalks (Not Really About C++)
  • 14. "Better Code:Human interface" Sean Parent ✤ Sean Parent is a Principal Scientist at Adobe ✤ The talk's main topics: ✤ Designing consistent HI (and code) ✤ Effective algorithms to work with large collections ✤ “The purpose of a human interface is not to hide what the code does but to accurately convey what the code does.” – Darin Adler ✤ "Don't lie"
  • 15. "Better Code:Human interface" Sean Parent ✤ Taxonomy of Everything: ✤ Collections ✤ Objects ✤ Properties ✤ Operations ✤ Relationships ✤ Model-View-Controller concept is F'ed up in different ways by different companies
  • 17. "Better Code:Human interface" Sean Parent ✤ Large collections pose a problem: ✤ How to observe the collection interactively, allowing the user to arrange, filter, and browse ✤ Examples of algorithms to work with large collections ✤ nth_element() + partial_sort() = sort_subrange() for effective sorting of large collections ✤ stable_partition() + rotate() to manipulate collections while keeping relative order of elements and elements selection ✤ Interval sets are a good data structure to represent selections
  • 18. "Better Code:Human interface" Sean Parent ✤ Relationship vs structure vs architecture. ✤ Within an HI relationships can be challenging to represent ✤ Example of modelling relationship in HI
  • 20. "How C++ DebuggersWork" Simon Brand «At some point in your life, your kids may ask you “how debuggers are made?”. You’ll be able to dodge the bullet here by directing them to Simon Brand’s talk which explains it all :)» – Mathieu Ropert
  • 21. "How C++ DebuggersWork" Simon Brand ✤ Really about any native debugger, (almost) nothing C++ specific ✤ No background knowledge required ✤ GDB/LLDB ✤ Topics: ✤ ELF/DWARF ✤ ptrace ✤ Debug information ✤ Breakpoints ✤ Stepping ✤ Backtrace ✤ Expression evaluation ✤ Reversible debugging ✤ Awesome "Find the Bug" slides 🐞
  • 22. "Deep Learning with C++" Peter Goldsborough
  • 23. "Deep Learning with C++" Peter Goldsborough ✤ Introduction into machine learning ✤ Good trampoline to finally start it ✤ Random words from the talk: ✤ OSI Model of Machine Learning, Classification, Generative, Convolution, TensorFlow, Graph Layer Parallelism, Forward Pass, C++, cuBLAS, Google, im2col, Sigmoid Activation Function, Bob, Caffe2, Static Graph, Facebook, Python, TPU, MXNet, GPU, cuDNN, Quantization, Amazon
  • 25. "FantasticAlgorithms andWhereTo FindThem" Nicholas Ormrod ✤ Nicholas Ormrod is an infrastructure engineer at Facebook ✤ 4 space efficient algorithms: ✤ Heavy Hitters - finding heavy hitters , which are elements that occur at least X% of the time (for X = 50% it's called Majority Element, or Boyer-Moore's Majority Vote) ✤ Used in some Facebook infrastructure services to find traffic outliers for DoS (not DDoS) protection (not intention attacks) ✤ Used by Gcov profiler to find the value of function argument that occurs the vast majority of time
  • 26. "FantasticAlgorithms andWhereTo FindThem" Nicholas Ormrod ✤ Morris Traversal - non-destructively in-order traverse a tree ✤ Used for unbalanced trees to prevent stack smashing due to recursive calls (not needed for a balanced tree) ✤ Reservoir Sampling - selects k elements with a random probability from an unknown length stream ✤ Used in BigGrep, a Facebook's internal grep tool for entire codebase ✤ HyperLogLog - count the number of distinct elements in a collection that's too big to fit in memory ✤ Probabilistic cardinality estimation ✤ Needs about O(log log n) memory, where n is cardinality ✤ Recommended Michael VanLoon's talk "STL Algorithms in Action" (CPPcon)
  • 27. Top C++Talks (Very Briefly)
  • 28. Top C++Talks ✤ Jason Turner "Practical C++17" ✤ All the practical things you need to know about the new standard ✤ Klaus Iglberger "Free your functions" ✤ In-depth advocating why non-member functions are better than members ✤ Made like a preaching 👻 ✤ Joel Falcou "The Three Little Dots and the Big Bad Lambdas - A Constructive Approach to Code Generation" ✤ Simple approach for code-generation without TMP ("Write code generators not type wranglers") ✤ A lot of other good talks
  • 29. C++Talks for Beginners ✤ Kate Gregory "Its complicated!" and "5 Things I Figured Out While I was Supposed to be Dying" ⚡ ✤ How to teach C++ and where to seek for C++ knowledge. ✤ Milosz Warzecha "An inspiring introduction to Template Metaprogramming" ✤ Hm... it's exactly what the title says ✤ Antonio Mallia, Jaime Alonso Lorenzo "C++: unexpected behaviour" ✤ C++'s cave of horror
  • 30. Bookmarks ✤ ChiaScript - an easy to use embedded scripting language for C++ (Jason Turner's talks, mostly in "Practical constexpr") ✤ IncludeOS is a zero-overhead library operating system. Written from scratch in modern C++ (Alfred Bratterud's "True parallelism with no concept of threads") ✤ rr - reversible debugger (touched in Simon Brand's "How C++ Debuggers Work")
  • 32. What's Next? ✤ I'll organise: ✤ Voting for talks you're interested in. ✤ FLS replay & discussion session for top 3 (?) voted talks. ✤ Something else? Let me know
  • 33. What's Next? ✤ All talks and slides are available online (or will be there soon): ✤ http://meetingcpp.com/2017/slides_meetingcpp_2017.zip ✤ https://www.youtube.com/playlist? list=PLRyNF2Y6sca3EUO_RTNv5t7gUmppFl9R1
 or
 https://www.youtube.com/user/MeetingCPP
 > playlists > Meeting C++ 2017