CppCon 2016 has ended

Log in to bookmark your favorites and sync them to your phone or calendar.

demonstration [clear filter]
Monday, September 19

2:00pm PDT

Cache Optimised Hash library
Hashes and caches, why another hash library ?
Problems,shortcomings and advantages of current open source hash libraries. Includes split between open and closed addressing methods and how these can be combined to give a better solution without much trade off by exploiting the strengths of each.

Benchmarks of the library with high and medium entropy data, mostly pictures.

A short description of the algorithms employed and why they work. This will include a short history of the library and why certain design decisions where made. Use of the birthday problem to model the low memory use evident from the benchmarks.

Practical uses
Demonstrate use cases of the library in treestore MySQL storage engine. Uses include concurrent version control algorithms and a mostly lock free allocation pool. This will include a short session with facebook link bench to illuminate possible advantages.

avatar for Christiaan Pretorius

Christiaan Pretorius

Technical Lead, Retro Rabbit
Writer maintainer of treestore MySQL storage Engine and Rabbit hash table library. https://github.com/tjizep/treestore \rabbit

Monday September 19, 2016 2:00pm - 3:00pm PDT
White (Room 407) Meydenbauer Center
  demonstration  lecture
Tuesday, September 20

3:15pm PDT

Conan, a C and C++ package manager for developers
Conan is a FOSS (MIT license) and portable C and C++ package manager for developers:

  • Decentralized, git-like, the server is also released OSS, so it can be hosted in-house, and use conan totally behind the firewall, or just for your private packages. Using local caches, allows full offline usage, also for creating and testing packages.

  • Handles both binary packages and building them from source. Packages defined with simple yet powerful python recipes. Build system agnostic, so any build system can be wrapped while creating packages. Generators also allow to consume packages directly from many environments: CMake, Visual Studio, XCode, etc.

  • Growing and Involved community, contributing in Github repositories with code and feedback, and actively using conan.

This talk will give a brief technical introduction to conan, showing first how to consume existing packages, defining dependencies, using generators for different build systems (e.g. cmake), using package options (e.g. shared/static linkage) and settings (compiler, version, architecture, libstdc++/libc++/libstdc++11, build type, etc) to install or build the right packages. Also, different handling of paths for shared libraries in different OS will be summarized, and how conan approaches them.

Then, how to create packages will be introduced by example. How to retrieve source code from external sources (github, sourceforge, or any other origin), or integrating the recipe in the same source project, how to build the packages from sources, considering the different inputs (as compiler, architecture, etc. settings and options), how to package artifacts and how to define package information. A short discussion about how upstream dependencies affect your own package depending on linkage, visibility, versions, etc, will be done.

avatar for Diego Rodriguez-Losada Gonzalez

Diego Rodriguez-Losada Gonzalez

Lead Architect, JFrog
Diego's passions are robotics and SW engineering and development. He has developed many years in C and C++ in the Industrial, Robotics and AI fields. Diego was also a University (tenure track) professor and robotics researcher for 8 years, till 2012, when he quit academia to try... Read More →

Tuesday September 20, 2016 3:15pm - 3:45pm PDT
Vanity (Room 404) Meydenbauer Center
Wednesday, September 21

10:30am PDT

Rich Code For Tiny Machines: A Simple Commodore 64 Game In C++17
The Commodore 64 was released in 1982 and is the best selling computer model of all time. At 34 years old, even the most simple embedded processor today outperforms it. Join me on an exploration of how C++17 techniques can be utilized to write expressive, high performance, high level code for simple computers. Together we will create a game for this aging system.

You'll leave the talk with a better understanding of what your compiler is capable of and be able to apply these ideas to create better code on modern systems

avatar for Jason Turner

Jason Turner

Owner, Jason Turner
Host of C++Weekly https://www.youtube.com/c/JasonTurner-lefticus, Co-host of CppCast http://cppcast.com, Co-creator and maintainer of the embedded scripting language for C++, ChaiScript http://chaiscript.com, and author and curator of the forkable coding standards document http://cppbestpractices.com.I'm... Read More →

Wednesday September 21, 2016 10:30am - 12:00pm PDT
Bowie Hall (1st Floor Hall) Meydenbauer Center

3:15pm PDT

Achieving ultimate performance in financial data processing through compile time introspection: CME MDP3 example
C++ does not yet have complete introspection (reflection), but in many cases it may be easy to complete. We will present an example of what we think is is a general method whenever data specifications may be converted to C++ through a code generator. We have done this for processing financial market data very sensitive to latencies and obtained huge advantages of
* Economy of effort
* Performance
* Reliability
* Extensibility
over any other option we considered. We will show:
* How we converted the specification of market data from an important exchange, CME MDP3, into C++ types and a minimal set of variadic templates that give us full introspection capabilities
* The code and the techniques to implement generic introspecting software components, including these concrete examples:
* Converting any value that belongs to the specification into string
* Testing for whether the value is null in any of the three ways the specification allows encoding of null values
* Applying design patterns such as flyweights to traverse the data with zero or minimal performance cost
* Subscription mechanisms

We hope these code examples will show how straightforward and maintainable metaprogramming techniques can emulate introspection for truly significant quality gains.

Support code at github:

avatar for Eduardo Madrid

Eduardo Madrid

Software Developer, Crabel Capital Management
Eduardo Madrid has over 18 years of C++ experience and works as Software Developer at Crabel Capital Management. The material for this presentation is derivative of work made by him currently running in production at "Crabel" to process CME MDP3 financial data. "Crabel" is a Hedge... Read More →

Wednesday September 21, 2016 3:15pm - 4:15pm PDT
White (Room 407) Meydenbauer Center